gpt4 book ai didi

java - Java 有没有办法将数字作为参数传递?

转载 作者:行者123 更新时间:2023-11-30 06:00:46 27 4
gpt4 key购买 nike

我正在类中分配一个 T 数组,T 扩展了 Number。我可以这样做:

myClass test = new myClass(Double.class, 20);

然后是构造函数本身:

myClass(Class<T> type, size)
{
array = (T[]) Array.newInstance(type, size);
}

我想知道是否可以这样做:

myClass(Number n, size)
{
array = (T[]) Array.newInstance(n.getClass(), size);
}

但是,我尝试使用第二个构造函数实例化一个对象:

myClass test = new myClass(Double, 15);

而且它不起作用。我做错了什么吗,还是根本不可能?

最佳答案

在 Java 中不能使用类名作为输入参数。引入 Object.class 是为了允许传递“类名”

所以答案是否定的,您不能将 Number 作为参数传递,但可以传递 Number.class。这就是它的用途:)

** 更新 **

也来自你的第二个构造函数定义

myClass(Number n, int size)
{
array = (T[]) Array.newInstance(n.getClass(), size);
}

很明显,输入参数是 Number 或其子类的实例,而不是该类本身。我知道这是显而易见的,但它更清楚地说明了为什么不可能做你想做的事情

关于java - Java 有没有办法将数字作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/432006/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com