已知字符串“java.lang.Float”
如何获取java.lang.Float.TYPE
注意是字符串,通过反射得到Float类后获取TYPE
Class.forName("java.lang.Float")这个可以得到Float
但无法获取Float的TYPE
之所以要这么搞,是因为我需要通过字符串来获取float.class,int.class,boolean.class这些无法直接反射得到的基本类型
补充,现在希望传入字符串类型参数,“java.lang.Float”,“java.lang.Double”等,得到其基础类,不想用枚举,如果用枚举的话直接三目运算即可。。。
public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException, IllegalAccessException {
Class clazz= Class.forName("java.lang.Float");
Field field =clazz.getField("TYPE");
Class<Float> TYPE_VALUE= (Class<Float>) field.get(clazz);
System.out.println(TYPE_VALUE);
}
目前遇到的主要问题是,如何传递参数的方式来获取对应的基本类型,比如“java.lang.Float”,“java.lang.Double”,返回 float.class,double.class 的,此处不想用枚举,如果用枚举的话直接三目运算就可以了。。。
@jokersora:
为什么需要获得基本类型? Float等包装类型可以自动转换成基本类型的 0.0
直接点.... 存个map 键是包装类型, 值是基本类型就得了