第16章总结

一.反射
        众所周知,所有 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所示

[例16.1]反射一个类的所有构造方法

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

        1.getFields();

        2.getField(String name)

        3.getDeclaredFields()

        4.getDeclaredFields(String name)

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

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

3.访问成员方法
利用Method 对象可以操纵相应的方法:

1.getMethods().

2.getMethods(String name, Class<?>...parameterTypes).

3.getDeclaredMethods()

4.getDeclaredMethods(String name, Class<?>...parameterTypes)

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

objectClass.getDeclaredMethod("print", String.class, int.class);
objectClass.getDeclaredMethod("print", new Classl (String.class, int.class ));
Method 类中提供的常用方法如表 16.5 所示

[例16.3]反射一个类的所有成员方法

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

public @interface NoMenberAnnotation{
}


2.下面的代码定义了员工只包含一个Annotation类型

public @interface NoMenberAnnotation{
String value();
}


[例16.4]创建自定义的注解

2.访问Annotation 信息
[例16.5]访问注释中的信息

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值