java获取对象类型_Java笔记之获取class对象的四种方式

方式一:类型名.class

缺点: 要求编译期这个类型就要存在

优点:最简洁

@Test

public void test01() {

Class c1 = int.class;// 基本数据类型

Class c2 = void.class;// 特殊的空类型

Class c3 = String.class;// 系统定义的类

Class c4 = TestClass.class;// 自定义的类

Class c5 = Serializable.class;//接口类型

Class c6 = ElementType.class;//枚举类型

Class c7 = Override.class;//注解类型

java.lang.Class c8 = int[].class;//数据类型

}

方式二:对象.getClass()

这个方法在java.lang.Object类型中声明的,返回对象运行时类型

适用于:你先有对象

@Test

public void test02() {

Class c1 = "".getClass();

Class c2 = String.class;

System.out.println(c1==c2);

}

方式三:Class.forName("类型全名称")

优势:这个类型可以在编译期间未知,这个类型名称可以在代码中出现,也可以配置在配置文件中,或者键盘输入方式指定

@Test

public void test03() throws ClassNotFoundException {

Class c1 = "".getClass();

Class c2 = String.class;

Class c3 = Class.forName("java.lang.String");

}

方式四:使用类加载器对象.loadClass("类型全名称")

一般都是用在自定义类加载器对象去加载指定路径下的类去使用

@Test

public void test04() throws ClassNotFoundException {

Class c = TestClass.class;

ClassLoader loader = c.getClassLoader();

//第四种方法

Class c2 = loader.loadClass("clas.TestClinit1");

Class c3 = TestClinit1.class;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值