java类域_理解关于java反射中类的域及修饰符

本文详细介绍了在Java中使用反射机制通过Class类的getFields()和getDeclaredFields()方法来获取类的字段信息。getFields()仅返回public修饰的字段,而getDeclaredFields()则可以获取类的所有字段,包括private和protected等。通过示例代码展示了如何遍历这些字段并打印其类型和名称。

Class类中的Filed[] getFields()方法返回的是类提供的public 域(Filed数组),getDeclaredFileds()返回的是类的全部域(Field数组)

域改如何理解?

(1)非静态域也称作实例变量(公有,私有属性);(2)静态域(静态变量,属于类)

aa8661167cee99cac4a5fd625a947fa6.png

一个实例:

class MyDemo {

private int id;

public String name;

public static String city = "hangzhou";

}

class Demo5 extends MyDemo {

private int newId;

public String newName;

}

public class Demo3 {

public static void main(String[] args) {

Demo5 demo = new Demo5();

Class cl = demo.getClass();

Field[] f1 = cl.getFields();

Field[] f2 = cl.getDeclaredFields();

System.out.println("显示当前类及超类的公有域:");

for (Field f : f1) {

Class type = f.getType();

String name = f.getName();

String modifiers = Modifier.toString(f.getModifiers());

if (modifiers.length() > 0)

System.out.print(modifiers+" ");

System.out.println(type.getName()+" "+ name + ";");

}

System.out.println("只显示当前类的全部域:");

for (Field f : f2) {

Class type = f.getType();

String name = f.getName();

String modifiers = Modifier.toString(f.getModifiers());

if (modifiers.length() > 0)

System.out.print(modifiers + " " );

System.out.println(type.getName()+" "+ name + ";");

}

}

}

结果:

1354696103_3536.JPG

www.cnblogs.com

www.cnblogs.com

参考资料:类中定义的域http://book.2cto.com/201208/2874.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值