Java反射:获取字段的类
我有一个方法,它需要像Java反射:获取字段的类,java,reflection,Java,Reflection,我有一个方法,它需要像Double.class这样的东西作为它的输入之一 e、 g 我有另一个类,它有一组不同数据类型的字段,我希望将这些字段作为输入提供给这个方法,而不是显式地编写Integer.class的Double.class等 我知道这涉及到java反射,但我不太确定如何实现我想要的。我正在尝试类似的方法,但不起作用: for(Field field : Class.forName(MyClassWithLotsOfFields.class.getCanonicalName()).ge
Double.class
这样的东西作为它的输入之一
e、 g
我有另一个类,它有一组不同数据类型的字段,我希望将这些字段作为输入提供给这个方法,而不是显式地编写Integer.class的Double.class
等
我知道这涉及到java反射,但我不太确定如何实现我想要的。我正在尝试类似的方法,但不起作用:
for(Field field : Class.forName(MyClassWithLotsOfFields.class.getCanonicalName()).getFields()){
someOutput = SomeObj.someMethod("parameter",field.getClass());
//Do more stuff here...
}
但是field.getClass()
并没有给我MyClassWithLotsOfFields
中字段的实际类,而是java.lang.reflect.field
有什么办法可以做我想做的吗?你需要
返回一个类
对象,该对象标识字段的声明类型
由该字段
对象表示
getClass()
是从Object
继承的一种方法,它返回对象本身的类型。通过执行Class.forName(MyClassWithLotsofields.Class.getCanonicalName())
而不仅仅是MyClassWithLotsofields.Class
,您试图实现什么?我不是下一个投票人,但我怀疑他们可能一直在想,你可以通过阅读javadoc for字段
得到答案,你已经知道了。
for(Field field : Class.forName(MyClassWithLotsOfFields.class.getCanonicalName()).getFields()){
someOutput = SomeObj.someMethod("parameter",field.getClass());
//Do more stuff here...
}