对具有原始数值返回类型的方法的反思

对具有原始数值返回类型的方法的反思,第1张

对具有原始数值返回类型方法的反思

反射说对象的返回类型(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>
为原始数字类型提供一个,而不是显式映射。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5501969.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存