您的位置:首页 > 其它

学习4

2016-01-06 21:38 106 查看
今天学习了新的知识类的加载和反射,感觉理解上有点困难,调用方法调用什么的容易绕晕,私下里还是需要多多的练习啊

获得Class对象的方式主要有以下三种:

方式一:如果一个类的实例已经得到,你可以使用

Class c = 对象名.getClass();

例: TextField t = new TextField();

Class c = t.getClass();

Class s = c.getSuperclass();

方式二:如果你在编译期知道类的名字,你可以使用如下的方法 Class c = JButton.class;

或者 Class c = Integer.TYPE;

方式三:如果类名在编译期不知道, 但是在运行期可以获得, 你可以使用下面的方法

Class c = Class.forName(strg);

反射机制中为获取以上三个部分分别提供了常用类及方法。

Filed类:提供有关类或接口的属性信息。

Constructor类:提供关于类的单个构造方法的信息以及对它的访问权限。

Method类:提供关于类或接口上单独某个方法(以及如何访问该方法)的信息。

Filed类常用方法:

Field getField(String name) 获得指定的公共字段

Field[] getFields() 获得类的所有公共字段

Field getDeclaredField(String name) 获得指定的字段

Field[] getDeclaredFields() 获得类声明的所有字段

Constructor类常用方法:

Constructor getConstructor(Class[] params) 获得使用特殊的参数类型 的公共构造函数

Constructor[] getConstructors()

获得类的所有公共构造函数

Constructor getDeclaredConstructor(Class[] params)

获得使用特定参数类型的构造函数(与访问级别无关)

Constructor[] getDeclaredConstructors()

获得类的所有构造函数(与访问级别无关)

Method类常用方法:

Method getMethod(String name, Class[] params)

使用特定的参数类型,获得命名的公共方法

Method[] getMethods()

获得类的所有公共方法

Method getDeclaredMethod(String name, Class[] params)使用特定的参数 类型,获得类声明的命名的方法

Method[] getDeclaredMethods()

获得类声明的所有方法

利用反射技术而进行的常用操作主要有三个:

通过Constructor创建对象

通过Method执行方法

通过Field为属性赋值取值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: