如何在Java中建立类类型的类型,而无需实例化对象?
假设我在Java中有一个类值数组,我想遍历该数组以查找Double位于哪个位置。 我尝试了以下方法:如何在Java中建立类类型的类型,而无需实例化对象?,java,class,Java,Class,假设我在Java中有一个类值数组,我想遍历该数组以查找Double位于哪个位置。 我尝试了以下方法: public class ClassTypes { public static void main(String[] args) { Class []types = {String.class, Double.class}; for (int i = 0 ; i < types.length; i++) {
public class ClassTypes {
public static void main(String[] args) {
Class []types = {String.class, Double.class};
for (int i = 0 ; i < types.length; i++)
{
if (types[i].isInstance(Double.class)){
System.out.println("DOUBLE"); //never printed
}
}
}}
公共类类类型{
公共静态void main(字符串[]args){
Class[]types={String.Class,Double.Class};
for(int i=0;i
我没有对象的实例,因此不能使用instanceof,我希望避免在类对象上使用getName来执行比较。
有人能建议我怎么做吗?类型[i].equals(Double.class)
?类型[i].equals(Double.class)
?你真正需要的是,不是equals
和not==(它们对于类来说是一样的)。对于像Double和String这样的期末课程,这当然不重要
如果您试图检查该类是否为java.lang.Number
(或任何接口/抽象类),则==方法将失败。您实际需要的是,而不是等于和不==(它们对于类是相同的)。对于像Double和String这样的期末课程,这当然不重要
如果您试图检查类是否是java.lang.Number
(或任何接口/抽象类),则==方法将失败。方法isInstance
将对象作为参数,而不是类的实际实例。方法isInstance
将对象作为参数,不是类的实际实例
。事实上,==
而不是equals()
在这里也是有效的。是的,类的定义是==但==和equals都不反映的实例
,答案是误导性的。实际上,=
而不是equals()
在这里也是有效的。是的,类的定义是==但==和equals都不能反映isInstanceOf
,答案是误导性的。