100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java 反射 镜子 java反射机制 - 巍巍的个人页面 - OSCHINA - 中文开源技术交流社区...

java 反射 镜子 java反射机制 - 巍巍的个人页面 - OSCHINA - 中文开源技术交流社区...

时间:2023-09-01 06:57:46

相关推荐

java 反射 镜子 java反射机制 - 巍巍的个人页面 - OSCHINA - 中文开源技术交流社区...

java反射机制

一、

1、了解反射的作用

2、掌握Class类的操作及使用

3、可以通过反射取得一个类的实例化对象

4、可以通过反射取得类的结构,可以通过反射进行属性方法的调用

二、认识反射

Java反射机制就好像是一面镜子,照镜子可以发现自己的所有的特征,一个类可以通过反射(照镜子)发现自己的所有的方法。

反射机制在框架上面运用的尤其多!(怎么应用的?)

比如,javascript就是动态语言,有如下代码:

Var a=1;

a=”weiwei”;

a=false;

由这三行代码可知:a可以在运行时动态的改变,由int类型改为字符串类型,又由字符串类型变为boolean类型,即在程序运行时,允许改变程序结构或变量类型,这就是动态语言。而java、C++等式不允许这样的如果a是int类型,就不能随便改动了。所以说java是静态语言。

解释:Class.forName("org.lxh.demo.classdemo02.Person")。//程序在编译的时候并不知道org.lxh.demo.classdemo02.Person是一个person类,只知道它是一个字符窜,只有在程序运行的时候才知道是个person类,即我们可以与运行时加载、探知、使用编译期间完全未知的classes。

如下所以:运用getDeclaredMethods()方法,可以知道一个已知名称的类中有哪些方法的申明,包括私有方法。

正常情况下,一个类要想使用,则必须找到此类,然后通过此类实例化一个对象,必须先有类再有对象,那么现在如果想通过一个对象找到其所在的类呢?

三、认识Class类

在反射机制中,Class类是一个操作的源头,所有的反射操作从此类展开,但是如果想实例化此类的对象,可以通过三种方式;

1、 Object类的getClass()方法

2、 通过类Class的形式,如:Person.class(第二常用)

3、 Class.forName()(最常用)

四、通过Class类实例化对象

在Class类的使用中,实例化对象是最常用的一种操作,而且日后所有框架的各个程序的实现原理都是依靠Class类完成的。

1、实例化无参构造的类

如果一个类中存在无参的构造方法,那么就可以直接通过Class类进行实例化操作。

现有如下代码:

步骤:1、获取class对象

2、生产类的实例 package org.lxh.demo.classdemo02;

public class Person {

public String toString() {

return "hello world!!!";

}

}

public class InstanceDemo01 {

public static void main(String[] args) {

Class> c = null;

try {

c = Class.forName("org.lxh.demo.classdemo02.Person");//先实例化对象

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

try {

Person p = (Person) c.newInstance();//创建对象

System.out.println(p);

} catch (InstantiationException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

}

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。