Java基础之—反射(一)
【摘要】
Java基础之—反射(一)
概述:
1、介绍什么是反射
2、获得Class类对象的三种方式
一、什么是反射
描述得到数据结构的结构的数据的一种行为。
二、通过反射可以得到什么?
三、获得Class类对象的三种方式
public class ClassDemo { public stat...
Java基础之—反射(一)
概述:
1、介绍什么是反射
2、获得Class类对象的三种方式
一、什么是反射
描述得到数据结构的结构的数据的一种行为。

二、通过反射可以得到什么?

三、获得Class类对象的三种方式
-
public class ClassDemo {
-
public static void main(String[] args) throws Exception {
-
-
-
-
//第一种方式 使用 class的属性得到Class对象
-
Class<String> c = String.class;//String.class就表示JVM里的一份表示String类的字节码
-
-
Class<String> c2 = String.class;
-
-
System.out.println(c == c2);//true,表示同一份字节码文件,肯定相同
-
-
//第二种方式:
-
//Class 没有公共构造方法
-
//new Class(String.class);
-
-
//static Class<?> forName(String className)
-
-
//Class<String> clazz = (Class<String>) Class.forName("String");//ERROR
-
Class<String> clazz = (Class<String>) Class.forName("java.lang.String");
-
System.out.println(clazz);
-
System.out.println(clazz == c);//true
-
-
//第三种方式
-
//Object类: Class<?> getClass() 返回此 Object 的运行时类。
-
-
List<String> list = new ArrayList<String>();
-
Class<?> listClz = list.getClass();//得到的是listClz的真正类型类
-
System.out.println(listClz);//java.util.ArrayList
-
-
boolean b = listClz.isInstance(list);//等价于 list instanceof ArrayList
-
System.out.println("-->"+b);
-
-
}
-
-
public void show(){
-
Class<?> clz = this.getClass();
-
Class<ClassDemo> clz1= (Class<ClassDemo>) clz;
-
System.out.println(clz1);//ClassDemo
-
}
-
}
文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。
原文链接:brucelong.blog.csdn.net/article/details/95513790
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)