精华内容
下载资源
问答
  • getClass

    2014-07-02 18:12:28
     大家都知道Object类有一个getClass()方法 打开API看看它是这样说的  返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。  返回:表示此对象运行时类的 Class ...
    小菜总结到 
        大家都知道Object类有一个getClass()方法 打开API看看它是这样说的 

    返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。 
    返回:表示此对象运行时类的 Class 对象。
     
      疑问来了 返回此Object的运行时类 它这里Object运行时类指那个类? 什么又是运行时类的Class对象 它到底是啥对象? 
      来点代码吧 我们这里有两个类 Test类测试用的 还有一个Never类 
    Never类 
    Java代码  收藏代码
    1. package woca;  
    2.   
    3. public class Never {  
    4.       static{  
    5.           System.out.println("Never类被初始化了");  
    6.       }  
    7.       public void shuChu(){  
    8.           System.out.println("Never类shuChu()方法执行");  
    9.       }  
    10. }  


      Test类 
    Java代码  收藏代码
    1. package woca;  
    2.   
    3. public class Test {  
    4.     static{  
    5.         System.out.println("Test类被初始化了");  
    6.     }  
    7.     public void testClass() throws Exception, Exception{  
    8.         this.getClass();  
    9.     }  
    10.       
    11.     public void shuChu(){  
    12.         System.out.println("本类的Class对象");  
    13.     }  
    14.       
    15.     public static void main(String[] args) throws Exception {  
    16.         Test t = new Test();  
    17.         t.testClass();  
    18.     }  
    19. }  

    猜猜会输出什么? 。。。。。。。。 
    输出
    Java代码  收藏代码
    1. Test类被初始化了  
    到这里只能说明一个问题我们调用一个对象的getClass()方法会初始化这个类也就是执行static代码块  你可能会问这里的this指什么呢?  它指的那个对象呢? 
    答:是Object对象 其实你可以通过你的MyEclipse的自动代码提示功能看到 当你打点的时候会出来Object的许多方法 
    我们还是用代码来验证以下吧!下面我来改写main方法 
    Java代码  收藏代码
    1. package woca;  
    2.   
    3. public class Test {  
    4.     static{  
    5.         System.out.println("Test类被初始化了");  
    6.     }  
    7.     public void testClass() throws Exception, Exception{  
    8.          Object ob = this.getClass().newInstance();  
    9.         if (ob instanceof Object) {  
    10.             System.out.println("ob是一个Object实例");  
    11.               
    12.         }  
    13.     }  
    14.       
    15.     public void shuChu(){  
    16.         System.out.println("本类的Class对象");  
    17.     }  
    18.       
    19.     public static void main(String[] args) throws Exception {  
    20.         Test t = new Test();  
    21.         t.testClass();  
    22.     }  
    23. }  

    输出结果是: 
    Java代码  收藏代码
    1. Test类被初始化了  
    2. ob是一个Object实例  

    所以this指的是Object对象 

    接下来我们看这个main方法 
    Java代码  收藏代码
    1. package woca;  
    2.   
    3. public class Test {  
    4.     static{  
    5.         System.out.println("Test类被初始化了");  
    6.     }  
    7.     public void testClass() throws Exception, Exception{  
    8.         Test test = this.getClass().newInstance();  
    9.         test.shuChu();  
    10.     }  
    11.       
    12.     public void shuChu(){  
    13.         System.out.println("本类的Class对象");  
    14.     }  
    15.       
    16.     public static void main(String[] args) throws Exception {  
    17.         Test t = new Test();  
    18.         t.testClass();  
    19.           
    20.     }  
    21. }  

    输出结果: 
    Java代码  收藏代码
    1. Test类被初始化了  
    2. 本类的Class对象  

    这说明我们这句:Test test = this.getClass().newInstance();得到了一个Test对象  我们调用object.getClass()方法 返回一个Class对象 
    这个Class对象 和Test对象不同 然后我们调用newInstance()创建了一个实例 
    API 里边说返回运行时类的Class对象 其实就是说 当前运行这个类的Class对象(在你不指定对象的情况下) 
    java.lang.Class类里边有很多实用的方法 当你得到一个对象的Class对象之后就可以调用这些方法 
    这个类里边只要一个静态方法那就是forName("指定类名")其实它和getClass 的功能一样都会对一个类初始化都是返回一个对象的Class对象 只不过它的参数里边直接指定类名  注意这个参数 是完全限定类型鸟 得加上包名! 还有它是一个静态方法你可以直接Class.forName()这样用方便些如果你这样写:
    Java代码  收藏代码
    1. this.getClass().forName("woca.Test");  

    效果和this.getClass();一样只不过上边那种有点二 
    forName()方法还有一个重载方法 
    类似这种
    Java代码  收藏代码
    1. Class.forName("woca.Never"falsethis.getClass().getClassLoader());  

      第一个参数还是指定类名 第二个参数指定要不要初始化 第三个参数是指定类的加载器 
    我把第二参数改为false 就不会初始化Never这个类 也就不会执行静态代码块了!
    展开全文
  • getclass

    2009-08-04 13:17:00
    getclass()运行时根据实际实例确定public final Class<?> getClass() 返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。 实际结果类型是 Class<? ...
    getclass()运行时根据实际实例确定
    public final Class<?> getClass()
    返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。

    实际结果类型是 Class<? extends |X|>,其中 |X| 表示清除表达式中的静态类型,该表达式调用 getClass 例如,以下代码片段中不需要强制转换:

    Number n = 0;
    Class<? extends Number> c = n.getClass();

     

    返回:
    表示此对象运行时类的 Class 对象。
    另请参见:
    The Java Language Specification, Third Edition (15.8.2 Class Literals)

    转载于:https://www.cnblogs.com/elina/archive/2009/08/04/1538394.html

    展开全文
  • 主要介绍了详解java中this.getClass()和super.getClass()的实例的相关资料,需要的朋友可以参考下
  • Object getClass() 方法用于获取对象的运行时对象的类。语法object.getClass()参数无。>返回值返回对象的类。实例以下实例演示了getClass()方法的使用,字符串和ArrayList继承了Object,所以可以直接使用getClass...

    Object getClass() 方法用于获取对象的运行时对象的类。

    语法

    object.getClass()

    参数

    无。>

    返回值

    返回对象的类。

    实例

    以下实例演示了getClass()方法的使用,字符串和ArrayList继承了Object,所以可以直接使用getClass()方法:

    import java.util.ArrayList;

    class MybjTest {

    public static void main(String[] args) {

    // getClass() with Object

    Object obj1 = new Object();

    System.out.println("obj1 的类为: " + obj1.getClass());

    // getClass() with String

    String obj2 = new String();

    System.out.println("obj2 的类为: " + obj2.getClass());

    // getClass() with ArrayList

    ArrayList obj3 = new ArrayList<>();

    System.out.println("obj3 的类为: " + obj3.getClass());

    }

    }

    以上程序执行结果为:

    obj1 的类为: class java.lang.Object的类为: class java.lang.Object

    obj2 的类为: class java.lang.String的类为: class java.lang.String

    obj3 的类为: class java.util.ArrayList的类为: class java.util.ArrayList

    自定义类调用 getClass() 方法:

    class MybjTest {

    public static void main(String[] args) {

    // 创建 MybjTest 类的对象

    MybjTest obj = new MybjTest();

    // MybjTest 继承 Object 类,Object 是所有类的超类

    // 调用 getClass() 方法

    System.out.println(obj.getClass());

    }

    }

    以上程序执行结果为:

    class MybjTest

    展开全文
  • getClass方法

    千次阅读 2014-07-31 17:01:16
    第一:不管是T1的getClass()还是Date的getClass(),他们都是非覆盖式的从Object继承来的。 第二:Object的getClass()方法的释义是:返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static ...

    下面程序的输出结果是多少?
    import java.util.Date;
    public  class Test extends Date{
    public static void main(String[] args) {
    new Test().test();
    }

    public void test(){
    System.out.println(super.getClass().getName());
    }
    }

    很奇怪,结果是Test

    第一:不管是T1的getClass()还是Date的getClass(),他们都是非覆盖式的从Object继承来的。


    第二:Object的getClass()方法的释义是:返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。

        /**
         * Returns the runtime class of this {@code Object}. The returned
         * {@code Class} object is the object that is locked by {@code
         * static synchronized} methods of the represented class.
         **/

        释义指出,要返回此Object运行时类,这外当然不可能指Object自己了,否则所有类调用getClass()方法都返回Object.class了。

        那到底谁是Object的运行时类呢,不是Object自己,当然就只能是他的儿子、或各种孙子了,到底是谁呢,举个例子:
        Date作为直接继承Object的类,作为Object的儿子,如果调用Date.getClass(),返回的是什么呢?在Date中,无论是this.getClass()还是super.getClass(),毫无疑问都指向了Object.getClass()。根据上一段解释,Object.getClass()返回不可能是Object.class,那没得说,只能是Date.class了。

        根据上段:new Date()时,Date是Object的运行时类。

        同理:根据LZ的例子,new T1()时,运行是类不可能是T1他老子Date,更不会他各种老老子(如Object),只能是自己。

        再回到Object.getClass()释义,返回的只能是T1.class

    第三:如果想要从T1中得到Date.class,可以用T1.getClass().getSuperClass();
    展开全文
  • java中getClass()方法简介

    万次阅读 多人点赞 2018-01-23 14:56:38
    getClass() 返回此 Object 的运行时类。 一、示例代码: public class Test { public static void main(String[] args) { Person p = new Person(1,"刘德华"); System.out.println(p.getClass()); S
  • GetClass(...) is obsolete. It just calls TClass::GetClass(...). Instead, calling TClass::GetClass() directly is recommended by the ROOT team, and it saves a function call.</p><p>该提问来源于开源项目&#...
  • isa指针的实现是相当于调用方法:object_getClass(id )[object class]的实现相当于调用方法:objc_getClass(const char * _Nonnull name)这两个方法的区别可以通过下面两个例子来展示:Son *sonObject = [Son new];...
  • 定义和用法getClass() 函数可返回一个 JavaObject 的 JavaClass。语法getClass(javaobj)参数描述javaobj一个 JavaObject 对象。返回值javaobj 的 JavaClass 对象。说明该函数可接受一个 JavaObject 对象作为其参数,...
  • 前面有给大家介绍一下Java Object类equals()方法方面的知识,下面的话就要来介绍一下JavaObject类getClass()方法方面的知识。getClass()方法返回对象所属的类,是一个Class对象。通过Class对象可以获取该类的各种...
  • objc_getClass

    千次阅读 2015-10-30 14:48:36
    objc_getClass
  • object_getClass

    千次阅读 2015-10-30 13:08:37
    object_getClass
  • getClass()

    2019-12-23 20:11:01
    代码: ... public class ObjectDemo2 { public static void main(String[] args) { //创建对象 ObjectDemo2 od2=new ObjectDemo2(); //全路径名—包名+类名 ...System.out.println(od2.getClass()); }...
  • java getclass 对象类最终类getClass() (Object Class final Class getClass()) This method is available in java.lang.Object.getClass(). 此方法在java.lang.Object.getClass()中可用。 This method is used to ...
  • 原文地址:http://leihuang.org/2014/11/14/getClass-method/ 首先看一段代码: import java.util.Date; public class Test extends Date{ public static void main(String[] args) { new Test...
  • getClass和.class作用

    2021-02-10 11:05:16
    getClass和.class作用 在Java中,万事万物皆对象,每个类都有一个相应的Class对象。通过Class类,可以获得一个类的基本信息,比如属性、方法和构造方法等。 getClass()是Object类的方法,该方法的返回值类型是Class...
  • super.getClass()和this.getClass()
  • java getClass, getName

    千次阅读 2017-07-02 06:11:18
    java 中的 getClass 返回类的类型, 而 getName 可以返回类的名字, 举例: class Person{ String name; Person(String name){ this.name=name; } Person(){ this.name=""; } } public class ...
  • 关于runtime的objc_getClass和object_getclass

    千次阅读 2016-05-10 10:40:41
    objc_getClass参数是类名的字符串,返回的就是这个类的类对象;object_getClass参数是id类型,它返回的是这个id的isa指针所指向的Class,如果传参是Class,则返回该Class的metaClass。 Class currentClass = [self ...
  • 今天dubug代码时发现this.getClass()和super.getClass()得到的竟然是同一个类,都是当前类。 遍访网络资料得出:  getClass()不受this和super影响,而是有当前的运行类决定的。 详细解释:  getClass public...
  • <p>I faced some loops in our phpcr admin imlementation casuse we used <code>getClass() method in our</code>AbstractAdmin::getSubject()` implementation, cause getClass() calls getSubject() again. ...
  • java getclass对象类最终类getClass() (Object Class final Class getClass())This method is available in java.lang.Object.getClass(). 此方法在java.lang.Object.getClass()中可用。 This method is used to ...
  • 主要介绍了JAVA反射机制中getClass和class对比分析,具有一定参考价值,需要的朋友可以了解下。
  • final_getclass笔记

    2019-05-12 10:21:05
    1.某类对象.getClass() 获取class对象 某类对象.getSuperClass() 获取超类对象 class对象.getName() 获取当前class对象的名称(带包名) getSimpleName() 获取当前class对象的名称(不带包名) 例如: @...
  • Java Object getClass() 方法 Java Object 类 Object getClass() 方法用于获取对象的运行时对象的类。 语法 object.getClass() 参数 无。 返回值 返回对象的类。 实例 以下实例演示了 getClass() 方法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,709
精华内容 5,883
关键字:

getclass