1 / 27
文档名称:

java反射详解.doc

格式:doc   大小:319KB   页数:27页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

java反射详解.doc

上传人:mh900965 2018/1/12 文件大小:319 KB

下载得到文件列表

java反射详解.doc

相关文档

文档介绍

文档介绍:本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解。
下面开始正文。
【案例1】通过一个对象获得完整的包名和类名
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package Reflect;
 
/**
 * 通过一个对象获得完整的包名和类名
 * */
class Demo{
    //other codes...
}
 
class hello{
    public static void main(String[] args) {
        Demo demo=new Demo();
        (().getName());
    }
}
【运行结果】:
添加一句:所有类的对象其实都是Class的实例。
【案例2】实例化Class类对象
?
1
2
3
4
5
6
7
8
9
10
package Reflect;
class Demo{
    //other codes...
}
 
class hello{
    public static void main(String[] args) {
        Class<?> demo1=null;
        Class<?> demo2=null;
        Class<?> demo3=null;
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
        try{
            //一般尽量采用这种形式
            demo1=("");
        }catch(Exception e){
            ();
        }
        demo2=new Demo().getClass();
        demo3=;
         
        ("类名称   "+());
        ("类名称   "+());
        ("类名称   "+());
         
    }
}
【运行结果】:
类名称  
类名称  
类名称  
【案例3】通过Class实例化其他类的对象
通过无参构造实例化对象
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package Reflect;
 
class Person{
     
    public String getName() {
        return name;
    }
    public void setName(String name) {
         = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
         = age;
    }
    ***@Override
    public String toString(){
        return "["++"  "++"]";
    }
    private String name;
    private int age;
}
 
class hello{
    public static void main(S