猿问

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

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

慕沐林林
浏览 109回答 2
2回答

白衣非少年

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

大话西游666

8个基本类型都不是类 而发射机制都是以类为对象反射的 不能对于一个基本类型进行反射操作。包装类他也是类,不过是对基本类型进行封装而已,所以可以用反射
随时随地看视频慕课网APP

相关分类

Java
我要回答