java-反射

本文探讨了Java反射中如何获取静态属性。对于非静态字段,需要传入反射类的对象,而静态字段则可以接受任何对象,包括null。通过Class对象的不同获取方式,如Class.forName(), A.class, 或者对象的getClass()方法,可以实现对类的加载和初始化。" 56666172,1436818,自定义Android圆形进度条控件实现,"['Android开发', '自定义组件', '图形渲染']
摘要由CSDN通过智能技术生成

反射获取静态属性

Class c=Topic.class();
Field[] fields=c.getDeclaredFields();
for(Field f:fields){
    Object o;
    try{
        o=f.get(null);
        String top=o.toString();

    }

}
public  Object get(Object obj)

字段不是静态字段的话,要传入反射类的对象.如果传null,报错java.lang.NullPointerException 
字段是静态字段的话,传入任何对象都是可以的,包括null

  1)Class cl=A.class; JVM将使用类A的类装载器,将类A装入内存(前提是:A还没有装入内存),不对类A做类的初始化工作.返回类AClass的对象

2)Class cl=对象引用o.getClass();返回引用o运行时真正所指的对象(因为:儿子对象的引用可能会赋给父对象的引用变量中)所属的类的Class的对象 

3)Class.forName("类名"); JAVA人都知道.装入类A,并做类的初始化


 4 ,获取方法,和构造方法,不再详细描述,只来看一下关键字:

方法关键字

含义

getDeclaredMethods()

获取所有的方法

getReturnType()

获得方法的放回类型

getParameterTypes()

获得方法的传入参数类型

getDeclaredMethod("方法名",参数类型.class,……)

获得特定的方法

 

 

构造方法关键字

含义

getDeclaredConstructors()

获取所有的构造方法

getDeclaredConstructor(参数类型.class,……)

获取特定的构造方法

 

 

父类和父接口

含义

getSuperclass()

获取某类的父类

getInterfaces()

获取某类实现的接口

  

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值