共計(jì) 1056 個(gè)字符,預(yù)計(jì)需要花費(fèi) 3 分鐘才能閱讀完成。
要使用 Java 反射獲取屬性名和值,可以按照以下步驟進(jìn)行操作:
-
獲取類的 Class 對象:
Class clazz = object.getClass();
-
獲取類的所有屬性:
Field[] fields = clazz.getDeclaredFields();
-
遍歷屬性數(shù)組,獲取屬性名和值:
for (Field field : fields) {// 設(shè)置屬性可訪問,否則私有屬性無法獲取 field.setAccessible(true); String fieldName = field.getName(); Object fieldValue = field.get(object); System.out.println(" 屬性名:" + fieldName + ",屬性值:" + fieldValue); }
完整示例代碼如下所示:
import java.lang.reflect.Field;
public class ReflectionExample {public static void main(String[] args) {// 創(chuàng)建對象
Person person = new Person("Tom", 18, "Male");
// 獲取類的 Class 對象
Class clazz = person.getClass();
// 獲取類的所有屬性
Field[] fields = clazz.getDeclaredFields();
// 遍歷屬性數(shù)組,獲取屬性名和值
for (Field field : fields) {// 設(shè)置屬性可訪問,否則私有屬性無法獲取
field.setAccessible(true);
String fieldName = field.getName();
Object fieldValue;
try {fieldValue = field.get(person);
System.out.println(" 屬性名:" + fieldName + ",屬性值:" + fieldValue);
} catch (IllegalAccessException e) {e.printStackTrace();
}
}
}
}
class Person {private String name;
private int age;
private String gender;
public Person(String name, int age, String gender) {this.name = name;
this.age = age;
this.gender = gender;
}
}
運(yùn)行該示例代碼,就可以獲取到 Person 對象的所有屬性名和值。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完