当前位置: 首页 > 面试题库 >

调用MyClass.class和MyClass.getClass()有什么区别?

商皓
2023-03-14
问题内容

MyClass.class而且MyClass.getClass()似乎都返回了java.lang.Class。是否有细微的区别或可以互换使用?另外,是MyClass.classClass阶级的公共财产吗?(我知道这是存在的,但似乎在javadocs中找不到任何提及)


问题答案:

一个是实例方法,因此它返回特定对象的类,另一个是Class常量(即在编译时已知)。

 Class n = Number.class;
 Number o = 1;
 o.getClass() // returns Integer.class
 o = BigDecimal.ZERO;
 o.getClass();  // returns BigDecimal.class

两种情况都返回Class对象的实例,该实例描述了特定的Java类。对于相同的类,它们返回相同的实例(每个类只有一个Class对象)。

到达Class对象的第三种方法

Class n = Class.forName("java.lang.Number");

请记住,接口也具有Class对象(例如上述Number)。

另外,MyClass.class是超类Class类的公共属性吗?

这是一个语言关键字。



 类似资料:
  • 问题内容: 以下是MainClass.java中列出的代码。 thnx coobird …我发现这篇文章很有用。:) 但是,关于litereals,我的知识仅限于: 我知道的唯一非原始的litereal 和类字面量,你和乔恩·斯基特(Jon Skeet)对我很清楚。 在Java中找到更多的文字了吗??? 同意…因此,根据讨论,总字面量归类为: 原始文字 字符串文字 类文字 空值 还有更多的文字(使

  • 问题内容: 两者都意味着空间,但是有什么区别吗? 问题答案: 一个是不间断空间,另一个是常规空间。不间断的空格表示该行不应在该点处换行,就像它不会在一个单词的中间换行一样。 此外,正如斯文德(Svend)在其评论中指出的那样,不间断的空间不会崩溃。

  • 本文向大家介绍<%# %> 和 <% %> 有什么区别?相关面试题,主要包含被问及<%# %> 和 <% %> 有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 答:<%# %>表示绑定的数据源 <%%>是服务器端代码块  

  • 问题内容: 我们可以通过3种方法获得Class类对象: MyClass.class obj.getClass Class.forName(“ className”) 我不了解:和之间的区别。 因为两者都需要类名。 问题答案: forName是“类”类的静态方法。我们需要提供所需类别的完全限定名称。当在运行时知道类名时可以使用此方法。 .class不是方法,它是关键字,可以与int之类的原始类型一起

  • 问题内容: java中的按引用传递和按引用调用有什么区别? 问题答案: Java不会通过引用传递任何变量。 考虑使用Java中的引用传递对象是很诱人的,但是很有害。对象类型的变量是引用。传递时,它们按值传递。 在其他语言中,按引用传递和按引用调用是同一回事。 编辑: 现有的stackoverflow问题“Java是否通过引用传递?”中提供了更多详细信息。(剧透:没有)

  • 问题内容: 以下代码之间有什么区别: 和 Python建议采用一种做事方式,但有时似乎不止一种。 问题答案: 一个是函数调用,一个是文字: 使用第二种形式。它更具Python风格,并且可能更快(因为它不涉及加载和调用单独的函数)。