`
paddy.w
  • 浏览: 505090 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于.getClass()和.class的区别

    博客分类:
  • Java
阅读更多
        在学习反射时想到了这个问题,.getClass()和.class有没有什么区别?
        当然,最明显的区别就是.getClass()是一个对象实例的方法,只有对象实例才有这个方法,具体的类是没有的。类的Class类实例是通过.class获得的,显然,类没有.getClass()方法。
        从网上还找到一些其他资料:
        1、出现的时期不同:Class.forName()和getClass()是在运行时加载;Class.class是在编译器加载,即.class是静态加载,.getClass()是动态加载。
        2、举个例子,Iterator it = s.iterator();得到的it的真正类型是KeyIterator,是Iterator 的子类,按常理来说应该可以执行next()方法,但是值得注意的是,KeyIterator是hashmap的内部类,JAVA给的提示是can not access a member of class java.util.HashMap$KeyIterator with modifiers "public"
        从上面的那些例子上也能看出,除内部类外的其他类的应用上.class功能完全等于.getClass()!只是一个是用类直接获得的,一个是用实例获得的。
分享到:
评论

相关推荐

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

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

    详解java中this.getClass()和super.getClass()的实例

    this.getClass() 和 super.getClass() 都可以用来获取当前类的 Class 对象,但是它们之间有着微妙的区别。在实际应用中,我们需要根据具体情况选择合适的方法来获取当前类的 Class 对象。 Java 中的继承机制是面向...

    java 反射getClass .class 的使用方法示例

    Java 反射机制中getClass()和.class的使用方法示例 本文主要介绍了 Java 反射机制中getClass()和.class的使用方法,并结合实例形式分析了 Java 类反射机制的相关操作技巧。 一、获取类的反射 在 Java 中,可以...

    Java 使用getClass().getResourceAsStream()方法获取资源

    在Java编程中,`getClass().getResourceAsStream()`是一个非常实用的方法,用于从类路径(Classpath)中加载资源,如配置文件、图片、字体等。这个方法返回一个`InputStream`对象,可以通过它读取到资源文件的内容。...

    JAVA反射机制中getClass和class对比分析

    JAVA反射机制中,getClass和class都是获取类名的方法,但是它们有着本质的区别。 首先,让我们了解一下JAVA反射机制。JAVA反射机制可以理解为在运行时期获取对象类型信息的操作。反射可以使编程人员在编写代码时,...

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

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

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

    上面的例子中,即使`date1`和`date2`是两个不同的`Date`对象,但它们所属的类相同,所以`getClass`方法返回的`Class`对象也是相同的。这是因为JVM只为每个类维护一个`Class`对象,不论该类实例化了多少个对象。 2....

    Class对象获取的三种方法

    在Java编程语言中,`Class`对象扮演着至关重要的角色,它提供了运行时关于类、接口、数组类、基本类型和枚举类型的反射信息。获取`Class`对象的方法有多种,其中最为常见的便是通过`.class`语法、`Class.forName...

    Java instanceof和getClass()区别实例解析

    Java instanceof 和 getClass() 区别实例解析 Java instanceof 和 getClass() 是 Java 语言中两个常用的操作符,用于判断对象的类型或类别。然而,很多开发者对这两个操作符的使用和区别不够了解。在本文中,我们将...

    java元数据——CLass类

    4. 对于引用数据类的引用(必须初始化),可以通过 Object 类继承的 getClass() 方法获取这个引用的Class对象由于引用已经被初始化,所以这种方式也不会初始化静态域,因为静态域已经被初始化过。另外,前面的方式...

    GPRS网络开关

    final Class conmanClass = Class.forName(conman.getClass().getName()); final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService"); iConnectivityManagerField.setAccessible(true)...

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

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

    java反射机制及Method.invoke解释

    Class ownerClass = owner.getClass(); Field field = ownerClass.getField(fieldName); Object property = field.get(owner); return property; } ``` 这个方法首先通过 `owner.getClass()` 得到该对象的 ...

    Java 反射(Reflection) 经典实用例子

    Class ownerClass = owner.getClass():得到该对象的Class。 Field field = ownerClass.getField(fieldName):通过Class得到类声明的属性。 Object property = field.get(owner):通过对象得到该属性的实例,如果...

    Java中isAssignableFrom的用法详解

    3. 反之,如果 `class1` 和 `class2` 没有上述关系,或者 `class2` 是一个基本类型而不是 `class1` 的包装类,`class1.isAssignableFrom(class2)` 将返回 `false`。 一个简单的例子可以帮助我们更好地理解这个方法...

    Java中Class对象详解.docx

    Class<?> testGetClassType = testGetClass.getClass(); ``` - **特点**: - 需要有该类的一个实例。 - 如果类没有被加载,则会自动加载。 #### 三、Class对象的生成原理 1. **加载过程**:当一个新的Java类...

    JAVA基础--JAVA中的反射机制详解

    在上面的代码中,首先通过 `owner.getClass()` 获取对象的 Class,然后配置参数的 Class 数组,接着通过 `ownerClass.getMethod(methodName, argsClass)` 获取该对象的方法,最后通过 `method.invoke(owner, args)` ...

    java中instanceof和getClass()的区别分析

    在Java编程语言中,`instanceof` 和 `getClass()` 是两个重要的操作符和方法,它们在类型检查和对象实例识别方面发挥着关键作用。本文将深入探讨这两个概念的区别及其应用场景。 `instanceof` 关键字主要用于判断一...

    用反射的方式获取父类中的所有属性和方法

    首先,我们需要导入`java.lang.reflect`包中的关键类:`Class`、`Field`和`Method`。`Class`对象代表运行时的类信息,`Field`表示类的成员变量,而`Method`则表示类的方法。 1. 获取父类信息: 要获取一个类的父类...

    Spring原理模拟代码

    public class ClassPathXmlApplicationContext implements BeanFactory { private Map, Object> beans = new HashMap, Object>(); @SuppressWarnings("unchecked") public ClassPathXmlApplicationContext() ...

Global site tag (gtag.js) - Google Analytics