Java 通过反射获取最终的非空字段
如果给定对象的所有字段不为空,如何从这些对象中获取这些字段?Java 通过反射获取最终的非空字段,java,reflection,Java,Reflection,如果给定对象的所有字段不为空,如何从这些对象中获取这些字段? 此代码在f.get(“”)时失败 无法设置最终字符串字段名 当字段为空时 class MyObject { private final String name; private final String uuid; } get的第一个参数应该是对象。因此,f.get(object)是您想要的,而不是f.get(“”),它是从object“”请求字段的值,这不起作用,因为”是java.lang.String的实例,而不是MyO
此代码在
f.get(“”)时失败
无法设置最终字符串字段名
当字段为空时
class MyObject {
private final String name;
private final String uuid;
}
get
的第一个参数应该是对象。因此,f.get(object)
是您想要的,而不是f.get(“”
),它是从object“
”请求字段的值,这不起作用,因为”
是java.lang.String
的实例,而不是MyObject.class
,将其更改为System.out.println(f.getName()+“:”+f.get(object));异常消息具有误导性,这是一个老问题。但是,仍然没有理由假设在此上下文中,空字符串是f.get(…)
的有效输入。
Arrays.stream(object.getClass().getDeclaredFields())
.forEach(f -> {
try {
f.setAccessible(true);
system.out.println(f.getName() + ":" + f.get(""));
} catch (IllegalAccessException e) {
e.printStackTrace();
}
});