反射说对象的返回类型(int.class)不能分配给Number.class,但是当我继续进行方法调用时,实际上得到的是Integer.class吗?
绝对。反射API不能 可能 返回你实际的
int,所以它在盒子的价值
Integer。它还能做什么?
它必须装箱的事实 不会
将可分配性从更改
int为
Number。查看以下文档
isAssignableFrom:
如果此Class对象表示原始类型,则如果指定的Class参数正是此Class对象,则此方法返回true;否则,此方法返回true。否则返回false。
因此,它的行为完全符合文档规定。
我想知道是否还有其他方法可以解决此问题,而不是维护int的Map-> Integer,Integer-> Integer,float->
Float,Float-> Float?(现在已完成,所以这是为了学习)
是的,对我来说听起来不错。或者只
Set<Class>为原始数字类型提供一个,而不是显式映射。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)