Java中获取class对象
创始人
2025-05-30 02:34:30
0次

1 为什么要获取class对象

当我们要获取类的信息及方法,利用Java中的反射机制,便于我们更加灵活的编写代码,可以在程序运行时装配代码,还可以实现动态代理。

反射机制允许程序在运行期间,获取任何一个已知名称的class内部信息。

那么获取class对象及内容信息的获取,主要有三种方式。

2 使用 getClass() 方法

2.1 创建 Person 类

package com.clazz;public class Person {private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

2.2 创建测试类

package com.clazz;public class Test {public static void main(String[] args) {Person person = new Person();Class clazz = person.getClass();System.out.println(clazz.getName());}
}

输出的结果为该class完整的包路径名及类名:

com.clazz.Person

需要注意的是: 当对同一个类,同时创建多个对象实例时,class对象实际只有一份。

Person person1 = new Person();
Person person2 = new Person();
System.out.println(person1.getClass() == person2.getClass());

运行的结果为 true。

3 使用 class 静态属性

这种方式不需要对类进行实例化,直接使用类的 class 静态属性即可获取到该类的 class 对象。

package com.clazz;public class Test {public static void main(String[] args) {Class personClass = Person.class;System.out.println(personClass.getName());}
}

输出的结果为该class完整的包路径名及类名:

com.clazz.Person

4 使用 Class 类中的静态方法 forName()

使用这种方式获取 class 对象,需要在 forName() 方法中指定要获取 Class 对象类的全路径,即包名+类名。

package com.clazz;public class Test {public static void main(String[] args) {try {Class aClass = Class.forName("com.clazz.Person");System.out.println(aClass.getName());} catch (ClassNotFoundException e) {e.printStackTrace();}}
}

输出的结果为该class完整的包路径名及类名:

com.clazz.Person

这里有个问题需要注意,因为是我们手工指定该类的全路径信息,有可能该包未被我们引入,或者是手滑将包名、路径信息输入错误,有可能报错,所以这种方式需要向外抛出异常。

 

相关内容

热门资讯

总算了解开挂!众乐乐开挂AI攻... 总算了解开挂!众乐乐开挂AI攻略,众乐乐多功能都是存在有开挂攻略1、上手简单,内置详细流程视频教学,...
程序员教你辅助!英豪娱乐城辅助... 程序员教你辅助!英豪娱乐城辅助AI工具,英豪娱乐城多功能原来真的是有辅助工具暗藏猫腻,小编详细说明英...
盘点几款辅助!冰球突破辅助AI... 盘点几款辅助!冰球突破辅助AI插件,冰球突破多功能其实真的有辅助插件1、冰球突破脚本辅助下载、冰球突...
分享一款辅助器!建湖好运麻将辅... 分享一款辅助器!建湖好运麻将辅助器AI教程,建湖好运麻将多功能竟然真的是有辅助器教程1、在建湖好运麻...
每日必备透视挂!新老夫子透视挂... 每日必备透视挂!新老夫子透视挂AI技巧,新老夫子多功能原来真的有透视挂技巧1、新老夫子脚本辅助下载、...
分享认知作弊器!星际互联作弊器... 分享认知作弊器!星际互联作弊器AI方法,星际互联多功能都是存在有作弊器方法1、每一步都需要思考,不同...
玩家必备攻略作弊器!闲逸斗地主... 玩家必备攻略作弊器!闲逸斗地主作弊器AI方法,闲逸斗地主多功能果然是有作弊器方法1、闲逸斗地主透视辅...
分辨真假透视挂!宁波游戏大厅透... 分辨真假透视挂!宁波游戏大厅透视挂AI软件,宁波游戏大厅多功能一直是有透视挂软件1、让任何用户在无需...
每日必看教程透视挂!君悦来透视... 每日必看教程透视挂!君悦来透视挂AI工具,君悦来多功能本来是有透视挂工具1、上手简单,内置详细流程视...
发现一款外挂!半岛外挂AI工具... 发现一款外挂!半岛外挂AI工具,半岛多功能一贯真的有外挂工具1、起透看视 半岛辅助软件价格2、随意选...