object.getClass()和Object.class的区别
来源:互联网 发布:淘宝迪曼宠物是真的吗 编辑:程序博客网 时间:2024/06/05 20:55
两者的区别如下:
类名.class叫做“类字面量”,因class是关键字, 所以类名.class编译时确定。而getclass()是某个具体的方法来调用,是运行时根据实际实例确定,getClass()是动态而且是final的。
例如:
String.class 是能对类名的引用取得在内存中该类型class对象的引用,而new String().getClass() 是通过实例对象取得在内存中该实际类型class对象的引用。
我们可以使用一个小例子来看两者的不同:
1.抽象类
package com.kang;public abstract class Animal {}
2.实例类
package com.kang;public class Dog extends Animal { public static void main(String[] args) { Animal animal = new Dog(); System.out.println(animal.getClass().getName()); //输出com.kang.Dog System.out.println(Animal.class.getName()); //输出com.kang.Animal }}
3.结果
com.kang.Dogcom.kang.Animal
4.解释
animal.getClass().getName()是在程序运行时获得运行时实例的类类型。而Animal.class.getName()是在编译阶段就确定了的,与运行时的状态无关。
阅读全文
1 0
- object.getClass()和Object.class的区别
- .class和.getClass()的区别
- Scala的object和class的区别
- scala中 object 和 class的区别
- scala class和object的区别
- scala class和object,trait的区别
- object与class的区别
- Object 类的 getClass方法
- Scala和Java的区别--Object与Class的区别
- 关于.getClass()和.class的区别
- getClass(),forName()和.class的区别
- 关于.getClass()和.class的区别
- 关于.getClass()和.class的区别
- 关于.getClass()和.class的区别
- 对象.class 和对象.getClass() 的区别
- class和getClass()的区别
- Java中.getClass()和.class的区别
- 关于.getClass()和.class的区别
- 前端学习内容
- Java回炉重造(五)使用Apache Commons Text生成随机字符串
- c++中的友元
- 为何GET只发一次TCP连接,POST发两次TCP连接
- 欢迎使用CSDN-markdown编辑器
- object.getClass()和Object.class的区别
- 如何使用nodejs创建Web服务器
- convert numbers
- 循环+if判断
- Equal Cost Multipath Load Sharing
- win10下点开头的文件夹
- Thread 线程同步
- Android fragment基础
- Naming beans