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