返回值 | 方法说明 |
---|---|
Field | getField(String name)返回一个 Field 对象,它反映此 Class 对象所表示的类的public属性。(可以获取父类的方法) |
Field[] | getFields()返回所有Field属性,它反映此 Class 对象所表示的类的public属性。(可以获取父类的方法) |
Field | getDeclaredField(String name)返回一个 Field 对象,该对象反映此 Class 对象所表示的类的public/private属性。(只获取当前类的方法) |
Field[] | getDeclaredFields()返回所有Field属性,该对象反映此 Class 对象所表示的类的public/private属性。(只获取当前类的方法) |
示例代码如下:
@Slf4j
public class Test {
public static void main(String[] args) throws Exception {
Class<Man> manClass = Man.class;
Man man = manClass.newInstance();
Field hair = manClass.getDeclaredField("hair");
hair.setAccessible(true);
hair.set(man, "浓密的黑发");
log.info(hair.get(man).toString());
log.info(man.getHair());
Class<?> type = hair.getType();
Class<?> declaringClass = hair.getDeclaringClass();
log.info(type.getCanonicalName());
log.info(declaringClass.getCanonicalName());
}
}
@Getter
class Man extends User {
private String hair;
}
输出内容如下:
17:13:17.903 [main] INFO com.ldx.test.Test - 浓密的黑发
17:13:17.909 [main] INFO com.ldx.test.Test - 浓密的黑发
17:13:17.909 [main] INFO com.ldx.test.Test - java.lang.String
17:13:17.909 [main] INFO com.ldx.test.Test - com.ldx.test.Man
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。