基本类型类(java)
我想得到一个与对象数组中的类相对应的类数组。我写了这段代码:基本类型类(java),java,Java,我想得到一个与对象数组中的类相对应的类数组。我写了这段代码: Object[] parameters = new Object[]{...}; Class[] classes = new Class[parameters.length]; for(int i = 0; i < parameters.length; i++){ classes[i] = parameters[i].getClass(); } Object[]参数=新对象[]{…}; Class[]classes=新类
Object[] parameters = new Object[]{...};
Class[] classes = new Class[parameters.length];
for(int i = 0; i < parameters.length; i++){
classes[i] = parameters[i].getClass();
}
Object[]参数=新对象[]{…};
Class[]classes=新类[parameters.length];
对于(int i=0;i
但是,我需要将诸如int或float之类的基本类型写成float.class或int.class
可以,但我得到的是java.lang.Float或java.lang.Integrer。有什么我可以做的吗?一个
对象[]
永远不能直接包含基元类型。它只能包含包装类型Integer
/Float
/
这就是为什么代码中的classes[i]
永远不会包含int.class
请注意,
Object[]
可以包含int[]
,而int
又可以包含int
值(并且只包含int
值),但这似乎不是您想要的。不是真的,但谢谢。我确实需要它来进行反射。对象[]
中的值永远不能是基元类型。仅浮点
/整数
/。。。如果发生这种情况,则无法获得浮点值
/int
/。。。这里。@Progman:他们希望int.class
由parameters[i].getClass()
返回(其中parameters
是一个对象[]
)。这显然永远不会发生,因为对象[]
不能保存基元值。有没有办法从包装器类型中获取基元类型?@xImperiak:不幸的是,在JDK中没有一行解决方案可以提供这一点,这就是为什么。