我發展與軌道包科特林應用程序,但我有一些問題是界定演員Unresolved reference: T
轉換Java來科特林
class HelloActor():AbstractActor<T>,Hello
應該是什麼的T PARAM?在文檔中:* @param <T> a class that represents the state of this actor.
我發展與軌道包科特林應用程序,但我有一些問題是界定演員Unresolved reference: T
轉換Java來科特林
class HelloActor():AbstractActor<T>,Hello
應該是什麼的T PARAM?在文檔中:* @param <T> a class that represents the state of this actor.
我不太瞭解演員的框架,但根據你在評論中給出的細節,我認爲你應該用Any
替換T.
你HelloActor應該是這樣的:
class HelloActor(): AbstractActor<Any>,Hello
在科特林,Any
被映射到java.lang.Object
,或AnyRef
在Scala中,他們具有相同的功能和用途。可以使用Object
或AnyRef
的地方使用Any
。查看更多kotlin到Java類映射here。
編輯:其實kotlin更類似於Java,所以你應該遵循Java教程而不是scala。
Kotlin'Any'不等於Java'Object'。它只是在字節碼中映射而已。而且,Kotlin'Any'沒有Java'Object'和Scala'AnyRef'的功能和目的。 Kotlin「Any」更像Scala「AnyVal」。 「Any」是所有類型的超類型,包括像'Int'和'Double'這樣的基本類型。 – Naetmul
@Naetmul是的,我知道,但實際上他們可以被認爲是一樣的。 Kotlin沒有強調原始類型和其包裝類型之間的區別。與Java不同,它使用相同的名稱,並且您無意顯式使用封裝類型(或反向)。所以很難說它是「AnyVal」或「AnyRef」,甚至是「Any」,因爲在kotlin中沒有「AnyVal」的地方。 – glee8e
如果您嘗試HelloActor()'代替'會發生什麼'HelloActor()'' –
這種類型有一個構造函數,因此必須here' – lai0n
@ lai0n是否使用IntelliJ IDEA的初始化?你可以用Java實現你的類,然後[轉換成Kotlin](https://www.jetbrains.com/help/idea/2017.1/converting-a-java-file-to-kotlin-file.html) – ledniov