我不知道如何讓一個類的對象在斯卡拉的對象類型。好吧,這是一個滿嘴,因爲對象的雙重含義。因此,這裏的例子將失敗:如何獲得classOf的斯卡拉對象類型
object Main
{
private [this] val TAG = classOf [Main].getName;
} // Main
如果Main
是類它完美的作品。有任何想法嗎?
我不知道如何讓一個類的對象在斯卡拉的對象類型。好吧,這是一個滿嘴,因爲對象的雙重含義。因此,這裏的例子將失敗:如何獲得classOf的斯卡拉對象類型
object Main
{
private [this] val TAG = classOf [Main].getName;
} // Main
如果Main
是類它完美的作品。有任何想法嗎?
scala> Main.getClass
res1: java.lang.Class[_] = class Main$
由於主要是一個對象,爲您的示例工作,只需更換你的作業符合;
private [this] val TAG = this.getClass.getName;
之所以classOf[Main]
不起作用是因爲Main
不是型。
類和特性定義類型,對象沒有。
是的。我明白了,現在它變得清晰起來。 'object's只有一個實例,因此你可以調用'getClass'。謝謝。 – Martin 2012-03-09 14:36:54
@Martin其實,我會說這是不正確的。 '對象'根本不具有實例,因爲它們不是類型;它們是(編譯器生成的)類的唯一實例,這就是爲什麼你可以調用'getClass'。 – 2012-03-10 12:17:07
是他們的一種方式來做到這一點作爲編譯時間常量,以便它可以用於Class類型的Java Annotation屬性? – 2016-01-09 20:36:57