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

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

域改如何理解?

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



一个实例:

 

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 + ";");
		}
	}
}

 

结果:


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


Field的getModifiers()方法返回int类型值表示该字段的修饰符
具体参见:http://blog.csdn.net/zhangfei_jiayou/article/details/7341936


 

转载于:https://www.cnblogs.com/yunxianli/archive/2012/12/05/4111969.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值