当前位置: 主页 > JAVA语言

java 反射获取属性值-unity获取反射材质属性

发布时间:2023-03-23 16:11   浏览次数:次   作者:佚名

知识点:使用java中的反射获得object对象的属性

一:场景

unity获取反射材质属性_java 反射获取属性值_java 反射 获取 field

这两天开发代码时java 反射获取属性值,调用别人的后台接口,返回值为Object对象(json形式的),我想获得object中指定的属性值,没有对应的get方法,也不像在js中用object.属性获得,这里可以通过反射获得了Object对象的属性值。

二:实例

java 反射 获取 field_unity获取反射材质属性_java 反射获取属性值

java 反射获取属性值_java 反射 获取 field_unity获取反射材质属性

unity获取反射材质属性_java 反射 获取 field_java 反射获取属性值

java 反射获取属性值_java 反射 获取 field_unity获取反射材质属性

如上我想获得object对象的data中的一个属性值eventId,就可以使用反射获得data的属性值java 反射获取属性值,之后强转类型即可。

代码如下:

unity获取反射材质属性_java 反射获取属性值_java 反射 获取 field

Object entitySave = subEventService.save(entity);

//反射获取object的data属性值(subEvent中的eventId)
String eventId = null;
Class jsonClass = entitySave.getClass();//通过entitySave的Object对象,获取运行时类的对象
Field dataField = null;

unity获取反射材质属性_java 反射 获取 field_java 反射获取属性值

try {

    //获取object中的data属性
dataField = jsonClass.getDeclaredField("data");
dataField.setAccessible(true);//设置data属性为可访问的

SubEvent tempSubEvent= new SubEvent();
try {
//通过Field.get(Object)获取object的data(SubEvent)中的eventId属性
tempSubEvent = (SubEvent) dataField.get(entitySave);
eventId = tempSubEvent.getEventId();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
} catch (NoSuchFieldException e) {
e.printStackTrace();
}