第十六章-----反射与注解

一.反射


        众所周知,所有 Java 类均继承了 bjet 类,在 Object 类中定义了一个 getClass0方法,该回一个类型为Class的对象。例如下面的代码:

Demo1 d1= new Demo1();
        Class c1 = d1.getClass();

1.访问构造方法
        在通过下列一组方法访问构造方法时,将返回Constructor类型的对象或数组。每个Constructor对象代表一个构造方法,利用Constructor 对象可以操纵相应的构造方法:

        1.getConstructors()。

        2.getConstructor(Class<?>...parameterTypes)

        3.getDeclaredConstructors()

        4.getDeclaredConstructor(Class<?>...parameterTypes)。

        如果是访问指定的构造方法,需要根据该构造方法的入口参数的类型来访问。例如,访问一个入口参数类型依次为 String 型和 nt 型的构造方法,通过下面两种方式均可实现:

objectClass.getDeclaredConstructor(String.class, int.class);
objectClass.getDeclaredConstructor(new Class[] ( String.class, int.class );

Constructor 类中提供的常用方法如表 16.2所示

Modifier类常用静态方法如表16.3所示

2.访问成员变量
 1.利用Field对象可以操纵相应的成员变量

        1.getFields();

        2.getField(String name)

        3.getDeclaredFields()

        4.getDeclaredFields(String name)

Field 类中提供的常用方法如表 16.4所示.

[例16.2]反射一个类的所有成员变量

二.Annotation注解功能


1.定义Annotation类型
1.在定义Annotation类型时,,也需要用到用来定义接口的 interface,

public @interface NoMenberAnnotation{
}
2.下面的代码定义了员工只包含一个Annotation类型

public @interface NoMenberAnnotation{
String value();

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值