java反射拿到类的属性
时间: 2023-08-30 19:07:32 浏览: 103
回答: 要使用Java反射来获取一个类的属性,可以使用以下代码示例:
```java
import java.lang.reflect.Field;
import org.junit.Test;
public class TestConstructor {
@Test
public void test1() throws Exception {
String str = new String("exer03.Person");
@SuppressWarnings("unchecked")
Class<Person> clazz = (Class<Person>) Class.forName(str);
// 获取运行时类的属性
Field\[\] fields = clazz.getDeclaredFields();
for(Field field : fields) {
// 获取属性的权限修饰符
int modifiers = field.getModifiers();
String modifierStr = Modifier.toString(modifiers);
System.out.print(modifierStr + " ");
// 获取属性的变量类型
Class<?> fieldType = field.getType();
System.out.print(fieldType.getName() + " ");
// 获取属性的变量名
String fieldName = field.getName();
System.out.println(fieldName);
System.out.println();
}
}
}
```
以上代码示例中,我们使用Java反射来获取一个名为"exer03.Person"的类的属性。首先,我们通过`Class.forName()`方法获取到该类的`Class`对象。然后,使用`getDeclaredFields()`方法获取到该类的所有属性。接下来,我们遍历属性数组,通过`getModifiers()`方法获取属性的权限修饰符,通过`getType()`方法获取属性的变量类型,通过`getName()`方法获取属性的变量名。最后,我们将这些信息打印出来。
#### 引用[.reference_title]
- *1* *2* *3* [通过反射获取类的属性与方法【Java】](https://blog.csdn.net/qq_56402474/article/details/124226613)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文