这是什么意思的.class在Java中?(What does .class mean in Java

2019-07-20 12:33发布

是什么.class意味着在Java中? 例如,如果我创建了一个名为类Print 。 是什么Print.class返回?

Answer 1:

当你写.class类名称后,它引用的类文本- java.lang.Class表示关于某一类信息的对象。

例如,如果你的类是Print ,然后Print.class是代表类的对象Print上运行。 它是受返回的同一对象getClass()中的任何(直接)实例的方法Print

Print myPrint = new Print();
System.out.println(Print.class.getName());
System.out.println(myPrint.getClass().getName());


Answer 2:

当没有可用的类的实例。类使用。
当有可用的类的一个实例.getClass()被使用。

object.getClass()返回类的给定对象。 例如:

String string = "hello";
System.out.println(string.getClass().toString());

这将输出

class java.lang.String

这是类String对象的:)



Answer 3:

如果一个对象的实例可用,则让同级车中最简单的方法是调用Object.getClass()

.class语法

如果类型是可用的,但没有实例,然后就可以通过追加来获取类.class的类型的名称。 这也是以获得类为基本类型的最简单的方法。

boolean b;
Class c = b.getClass();   // compile-time error

Class c = boolean.class;  // correct

请参阅: docs.oracle.com有关类



Answer 4:

只是为了澄清,这”的.class'的方法是不是指你编译Java代码也不是OOP理论课与对象的概念之间的混乱后,看到的字节码文件。

这”的.class'的方法是用Java用于代码反思。 一般来说,你可以收集你的类元数据,如全限定类名,常量的列表,公共领域的名单,等等,等等。

检查这些链接(上面已经提到)来获取所有的细节:
https://docs.oracle.com/javase/tutorial/reflect/class/classNew.html
https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html

通常情况下,你不打算使用反射时,马上开始建立你的项目。 这是,你知道你试图管理已经工作的代码之后需要的东西。 很多时候,你需要用它来管理你的程序的多个实例。 也许你要找出每一个特定的“克隆”,以确定如果事情已经定义,或计数的功能的数量,或者只是简单地记录你的类的特定实例的详细信息。



Answer 5:

如果没有可用的实例,然后.class语法用于获取相应的Class对象的一类,否则,你可以使用的getClass()方法来获取Class对象。 因为,没有原始数据类型的情况下,我们必须使用.class语法基本数据类型。

    package test;

    public class Test {
       public static void main(String[] args)
       {
          //there is no instance available for class Test, so use Test.class
          System.out.println("Test.class.getName() ::: " + Test.class.getName());

          // Now create an instance of class Test use getClass()
          Test testObj = new Test();
          System.out.println("testObj.getClass().getName() ::: " + testObj.getClass().getName());

          //For primitive type
          System.out.println("boolean.class.getName() ::: " + boolean.class.getName());
          System.out.println("int.class.getName() ::: " + int.class.getName());
          System.out.println("char.class.getName() ::: " + char.class.getName());
          System.out.println("long.class.getName() ::: " + long.class.getName());
       }
    }


Answer 6:

我认为这里的关键是理解一个类和对象之间的区别。 对象是类的实例。 但是,在一个完全面向对象的语言, 类也是一个对象 。 因此调用.class获取参照该类别,然后可以被操纵的对象类。



Answer 7:

一类文字是由类,接口,数组或基本类型或伪型空隙,随后的名称的表达“” 和令牌类。 之一在JDK 5.0的变化是java.lang.Class类是通用的, java.lang.Class Class<T>因此:

Class<Print> p = Print.class;

参考这里:

https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html

http://docs.oracle.com/javase/tutorial/extra/generics/literals.html

http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.8.2



文章来源: What does .class mean in Java?