Myclass.class 和 new MyClass() 有什么区别?
What is difference between Myclass.class vs new MyClass()?
团队,
在学习 java(特别是泛型)时,我可以在方法中看到两个不同的参数(.class 和对象引用)。什么时候使用 .class 选项和新的 myclass()?给我一些例子来理解
new MyClass():
将创建类型为 MyClass
的 instance/object
MyClass.class:
是一个 "class literal" - 一种获取特定类型的 Class 的简单方法。为了提取有关 class 的元数据,例如字段和方法。
有关详细信息,请参阅 Java Language Specification。 (15.8.2 Class 文字)
MyClass obj = new MyClass();
它 returns 一个 MyClass 类型的新对象,并且将具有 MyClass 中定义的所有全局变量和方法,但是,
Class obj1 = MyClass.class;
这里obj1不能作为MyClass的对象。
obj1 是 Class.java 的对象(在 java 中预定义了 class)。
它没有 MyClass 的所有信息。
但是 Class.java 中定义的某些方法具有 MyClass 的一些通用信息,例如:
object.name
会给出 MyClass
团队, 在学习 java(特别是泛型)时,我可以在方法中看到两个不同的参数(.class 和对象引用)。什么时候使用 .class 选项和新的 myclass()?给我一些例子来理解
new MyClass():
将创建类型为 MyClass
MyClass.class:
是一个 "class literal" - 一种获取特定类型的 Class 的简单方法。为了提取有关 class 的元数据,例如字段和方法。
有关详细信息,请参阅 Java Language Specification。 (15.8.2 Class 文字)
MyClass obj = new MyClass();
它 returns 一个 MyClass 类型的新对象,并且将具有 MyClass 中定义的所有全局变量和方法,但是,
Class obj1 = MyClass.class;
这里obj1不能作为MyClass的对象。
obj1 是 Class.java 的对象(在 java 中预定义了 class)。
它没有 MyClass 的所有信息。
但是 Class.java 中定义的某些方法具有 MyClass 的一些通用信息,例如:
object.name
会给出 MyClass