我從這個改變了我的代碼
object SomeHelper{}
對此
@Component
class SomeHelper{}
在我的測驗課上,我寫了這樣的東西:
class SomeHelperTester{
val cut = SomeHelper
//...
}
當 SomeHelper 是一個物件時,它曾經可以正常作業,但現在該行val cut = SomeHelper帶有下劃線,并顯示錯誤Classifier SomeHelper does not have a companion object, and thus must be initialized。我怎樣才能使這行代碼作業?
uj5u.com熱心網友回復:
只需()在其后面添加,例如
val cut = SomeHelper()
uj5u.com熱心網友回復:
這歸結為一個object(一個單例,只有一個實體)和一個class(您可以根據需要創建任意數量的實體)之間的區別。
當你用初始化器宣告一個變數時(就像你用 一樣cut),初始化器需要計算一個物件。當SomeHelper被宣告為一個物件時,它會評估為唯一的實體,它可以很好地作為初始化器。但是當它被宣告為 a 時class,類名本身并沒有任何意義。
您需要做的是通過呼叫其建構式來創建該類的實體。在這種情況下,由于您尚未指定建構式,因此您將獲得不帶引數的默認建構式。因此,您可以簡單地通過附加一對空括號來呼叫它,并將其用作初始化程式:
val cut = SomeHelper()
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/345412.html
下一篇:如何在房間里做多張桌子
