前言
本文主要给大家介绍的是关于Java通过Class类获取Class对象的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:
阅读API的Class类得知,Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的
获取Class对象的三种方式(实例采用Person类)
方式1:通过Object类的getObject()方法
Person p = new Person(); Class c = p.getClass();
方式2: 通过 类名.class 获取到字节码文件对象(任意数据类型都具备一个class静态属性,看上去要比第一种方式简单)。
Class c2 = Person.class;
方式3: 通过Class类中的方法(将类名作为字符串传递给Class类中的静态方法forName即可)。
Class c3 = Class.forName("Person");
注意:第三种和前两种的区别
前两种你必须明确Person类型.
后面是指定这种类型的字符串就行.这种扩展更强.我不需要知道类名.我只提供字符串,按照配置文件加载就可以了
代码演示:
public class ReflectDemo { public static void main(String[] args) throws ClassNotFoundException { //通过Object类的getObject()方法 Person p = new Person(); Class c1 = p.getClass(); System.out.println(c1); //类名.class 获取到字节码文件对象 Class c2 =Person.class; System.out.println(c2); //通过Class类中的方法forName() Class c3 = Class.forName("cn.shiqi.demo1.Person"); System.out.println(c3); } }
class Person{ }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对小牛知识库的支持。
Objects类提供适用于所有对象的辅助函数,例如equals,hashCode等。 Class 声明 (Class Declaration) 以下是com.google.common.base.Objects类的声明 - @GwtCompatible public final class Objects extends Object Class Methods Sr.No 方法和描述 1
问题内容: 为一个类获取类文字很容易: 但是,如何获取数组类型的类对象? 这可行,但是很丑陋,可能不是编译时间常数: 我查看了JLS,但唯一发现的是,根据JLS的定义,我所谓的“类文字”不是“文字”。 问题答案: 即使对于数组类型,您仍然可以使用类文字。这样编译就可以了。 JLS的15.8.2节规定: 甲 类文字 是由类,接口,的名称的表达 阵列 ,或原语类型或伪类型,接着是“” 和令牌。 (加粗
问题内容: 我正在使用Spring注入豆类。我正在使用一些注释来注释Bean方法(安全性,TransactionManagement,ExceptionHanling,日志记录)。问题是: 我想创建JUnit测试来检查是否忘记了一些方法。但是Spring返回$ ProxyXXX类,方法上没有任何注释。 如何获取方法的注释或获取真实的类对象? PS Spring 2.5.6,JDKDynamicPr
本文向大家介绍JavaScript实现获取dom中class的方法,包括了JavaScript实现获取dom中class的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript实现获取dom中class的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的javascript程序设计有所帮助。
本文向大家介绍简单了解JAVA中类、实例与Class对象,包括了简单了解JAVA中类、实例与Class对象的使用技巧和注意事项,需要的朋友参考一下 类 类是面向对象编程语言的一个重要概念,它是对一项事物的抽象概括,可以包含该事物的一些属性定义,以及操作属性的方法。面向对象编程中,我们都是以类来编码。 实例 简单理解,就是new,就是对类的实例化,创建这个类对应的实际对象,类只是对事物的描述,而实例
问题内容: 为什么这是错误的: ? 给定一个类对象,没有办法实例化特定类型的类吗? 显然,我永远不会直接这样做,这只是显示所需内容的一个示例。在实际的代码中,我需要不知道类型的名称。例如 问题答案: