`
peonyzzdx
  • 浏览: 589701 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

类名.class, class.forName(), getClass()区别

 
阅读更多
.getClass()是动态的,其余是静态的。

.class和class.forName()只能返回类内field的默认值,getClass可以返回当前对象中field的最新值

Class.forName() 返回的是一个类,.newInstance() 后才创建一个对象,Class.forName()的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的


package demo;
public class A
{
    public static void main(String[] args) throws Exception
    {
        System.out.println(A.class);//通过类.class获得Class对象

        A a = new A();
        System.out.println(a.getClass());//通过 实例名.getClass()获得Class对象
        System.out.println(Class.forName("demo.A"));//通过Class.forName(全路径)获得Class对象
            System.out.println(".................................");
        System.out.println(a);//使用不同的方式创建对象
        System.out.println(A.class.newInstance());
        System.out.println(a.getClass().newInstance());
        System.out.println(Class.forName("demo.A").newInstance());  
    }
}
结果:class demo.A
      class demo.A
      class demo.A   (这里也可以得到一个类的Class对象是唯一的)
分享到:
评论

相关推荐

    浅谈java中类名.class, class.forName(), getClass()的区别

    Java 中类名.class, class.forName(), getClass() 的区别 Java 中有三种方式可以获取 Class 对象,即类名.class、class.forName() 和 getClass()。这些方法都可以获取 Class 对象,但是在获取 Class 对象的过程中,...

    class literal & instance.getClass() & Class.forName(String className)

    在Java编程语言中,"class literal"、"instance.getClass()" 和 "Class.forName(String className)" 是三个与类加载和类型查询紧密相关的概念。了解这些概念对于深入理解Java运行时的类加载机制至关重要。 首先,让...

    Java中通过Class类获取Class对象的方法详解

    通过Class类可以获取Class对象,获取Class对象有三种方式:通过Object类的getClass()方法、通过类名.class获取Class对象、通过Class类中的forName()方法。每种方式都有其特点和应用场景,掌握这些方式可以帮助开发者...

    一些有关反射的方法

    Class Class.forName(String packageNameAndClassName); Class类的静态成员方法,通过完整的包名.类名获取对应.class文件的Class对象 同时也可以作为.class文件加载的方法。 Class 类名.class; 通过类名.class...

    java.lang.Class类

    1. 使用forName和newInstance结合起来,可以根据存储在字符串中的类名创建对象。 2. 使用Class类可以实现类的反射机制,动态地加载和使用类。 3. 使用Class类可以实现对象的克隆和序列化。 Java.lang.Class类是Java...

    Java中Class对象详解.docx

    1. **Class.forName(类名字符串)**: 这种方式通过传入类的全名(包括包名)作为参数,动态地加载并返回对应的Class对象。如果类尚未被加载到JVM,那么它会先进行加载。 2. **类名.class**: 这是一种更直接的方式,...

    JAVA反射机制-Class类-Class对象的获取.pdf

    当我们不知道具体的类名,只能通过字符串形式传递时,可以使用`Class.forName`方法。 ```java try { Class<?> clazz = Class.forName("org.whatisjava.reflect.Foo"); Object obj = clazz.newInstance(); ...

    java元数据——CLass类

    1. 通过 Class 的 forName(String name) 方法传入一个类的完整类路径,也可以获得Class 对象,但由于使用的是字符串,必须强制转换才可以获取泛型的Class的Class对象,并且你应该考虑到这个方法可能抛出的 ...

    Java反射学习笔记

    目录1. 获取类类型2. 获取类内部信息2.1 构造函数2.1.1 获取构造函数2.1.2 使用构造函数构造实例2.2 Field 对象2.2.1 获取 Field 对象2.2.2 Field 的 set...通过全类名获取:Class.forName(“全类名”),这是Class 类的

    java中的Class类和反射.docx

    - 使用`Class.forName("类的全限定名")`,例如`Class.forName("java.lang.String")`。 #### 二、Class类的特性 `Class`类自身并没有公共的构造方法,它是由JVM自动创建的。这意味着我们无法直接实例化`Class`对象...

    JAVA反射之类对象

    类对象与类的对象的区别:  类的对象:基于某个类new出来的对象,也称为实例对象  类对象:类加载的产物,...Class c = Class.forName(“包名.类名”);//工厂:创建类对象工厂public static Object createObject(S

    温习java反射,让你对反射有全新的认识(csdn)————程序.pdf

    Class<?> clazz = Class.forName("java.util.Date"); ``` 这需要提供类的全限定名,并且如果类不存在,会抛出`ClassNotFoundException`。 在实际应用中,`getClass()`常用于简单Java类与参数自动赋值的场景,如...

    Java EE:Reflect 反射技术.docx

    - 通过类的全名获取:`Class.forName(完整类名)` - 通过类加载器获取:`this.getClass().getClassLoader().loadClass(类名)` - 其他:如通过子类的`getSuperclass()`获取父类的Class对象,或者通过基本类型获取其...

    java反射深入剖析(推荐)

    1. 使用`Class.forName("类全名")`,此方法需要提供类的完全限定名(包括包名),并可能抛出`ClassNotFoundException`。 2. 调用对象的`getClass()`方法,如`new Demo().getClass()`,这会返回该对象所属类的`Class`...

    【Java基础笔记】反射.docx

    - `java.lang.Class`:表示运行时的类信息,通过类名获取`Class`对象的方法有`forName()`、`getClass()`、`类名.class`等。 - `java.lang.reflect.Method`:表示类的方法信息,提供了获取方法和调用方法的功能。 ...

    java反射机制.rar

    - 使用Class.forName()方法,传入类全名(包括包名)。 - 对象.getClass()方法,用于获取对象的Class对象。 - 类名.class,静态调用,直接获取对应的Class对象。 二、反射的主要功能 1. 创建对象:通过Class对象...

    652.650.JAVA基础教程_反射-获取运行时类的方法的内部结构(652).rar

    - `Class.forName(String className)`:通过类名获取Class对象。 - `类名.class`:在类实例或类名后面加上`.class`也可以得到该类的Class对象。 - `某个对象.getClass()`:通过对象实例获取其Class对象。 4. **...

    Java 基础(7-8) - 反射机制详解.pdf

    每个 Java 类运⾏时都在 JVM ⾥表现为⼀个 Class 对象,可以通过类名.class、类型.getClass()、Class.forName("类名") 等方法获取 Class 对象。 二、Class 类 Class 类是 Java 反射机制的核心。它提供了多种方法来...

Global site tag (gtag.js) - Google Analytics