为了账号安全,请及时绑定邮箱和手机立即绑定

我想通过这种方式得到一个int类型的数值,该怎么做?

我想通过这种方式得到一个int类型的数值,该怎么做?

慕沐林林 2023-04-08 18:14:25
String age = "123";Class clazz = double.class;clazz.getConstructor(String.class).newInstance(age);---------------------------------------------------------------------1、我去打印得到的 clazz。getConstructors(),发现没有构造方法,是不是可以说明这不可以反射?2、从而java中8中基本数据类型(String除外)都是不可以同过反射转换的?3、反射是不是都是 类对象?而基本数据类型不是类?--------------------------------------------------------------------------------------基本数据类型不可以反射,但是可以通过包装类转换。Integer,就是需要个方法转换double -改成- > int
查看完整描述

2 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

基本数据类型都是可以反射的,你的clazz有个isPrimitive()方法,就是用来表示这个反射的字节码是不是基本类型,没有构造方法只是说明这个基本类型的字节码本来就没有构造方法,
这种基本类型的反射一般可以通过包装类来识别,像 int.class == Integer.TYPE; boolean.class == Boolean.TYPE,另外void 都可以反射呢,void.class == Void.TYPE

查看完整回答
反对 回复 2023-04-11
?
大话西游666

TA贡献1817条经验 获得超14个赞

8个基本类型都不是类 而发射机制都是以类为对象反射的 不能对于一个基本类型进行反射操作。包装类他也是类,不过是对基本类型进行封装而已,所以可以用反射

查看完整回答
反对 回复 2023-04-11
  • 2 回答
  • 0 关注
  • 108 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信