Class tempClass = obj.getClass();
时间: 2023-11-16 20:06:25 浏览: 304
这也是一个 Java 代码片段,它定义了一个名为 tempClass 的 Class 类型变量。该变量通过 obj 对象的 getClass() 方法获得,这个方法返回 obj 对象所属的类的 Class 对象。通过这个 tempClass 变量,可以获取 obj 对象的类信息,例如类名、父类信息、接口信息等。可以使用反射机制基于这个 tempClass 变量来动态地操作对象的属性和方法。
相关问题
public void dictionaryConvert(Object obj, HttpServletRequest request) { try { if (obj == null) return; //当前view和entity中的所有types的字段 List<String> fieldNameList = new ArrayList<>(); Class tempClass = obj.getClass(); while (tempClass !=null) { Field[] declaredFields = tempClass.getDeclaredFields(); for (Field f : declaredFields) { f.setAccessible(true); if (f.getType().getName().equals("java.lang.Integer") && f.getName().contains("Types")) { fieldNameList.add(f.getName()); } } tempClass = tempClass.getSuperclass(); //得到父类,然后赋给自己 }
这段代码的作用是将对象中所有类型为java.lang.Integer并且字段名中包含"Types"的属性名保存到一个List中。首先判断传入的对象是否为空,然后通过反射获取对象的Class对象,并通过while循环遍历该对象及其父类的所有 declaredFields 字段。对于每个字段,如果其类型为java.lang.Integer,并且字段名包含“Types”,则将该字段名添加到 fieldNameList 列表中。最后返回 fieldNameList 列表。
while (tempClass !=null) { Field[] declaredFields = tempClass.getDeclaredFields(); for (Field f : declaredFields) { f.setAccessible(true); if (f.getType().getName().equals("java.lang.Integer") && f.getName().contains("Types")) { fieldNameList.add(f.getName()); } } tempClass = tempClass.getSuperclass(); //得到父类,然后赋给自己 }
这是另一个 Java 代码片段,它是基于之前的代码片段继续操作一个对象的属性。这段代码的作用是获取 obj 对象以及其父类中所有类型为 Integer,名称包含 "Types" 的字段名,并将这些字段名添加到之前定义的 fieldNameList 中。
该代码使用了反射机制,通过 tempClass.getDeclaredFields() 方法获取 obj 对象中所有声明的字段,并遍历这些字段。对于每个字段,使用 f.getType() 方法获取其类型,并使用 getName() 方法获取类型名称。如果字段类型为 Integer,且字段名称包含 "Types",则将该字段的名称添加到 fieldNameList 中。
由于 obj 对象可能存在多级父类,因此代码使用 tempClass.getSuperclass() 方法获取 obj 对象的父类,然后将其赋值给 tempClass 变量继续进行遍历。这样就可以获取 obj 对象以及其所有父类中符合条件的字段名。
阅读全文