Kotlinのこのビットを考えると:
object OldTownRoad {
const val COWBOY_HATS = "from Gucci"
const val WRANGLER = "on my booty"
}
そしてこのJavaクラス:
public class Scrap {
@Named(OldTownRoad.COWBOY_HATS)
public void lilNasXrefs() {
System.out.println(OldTownRoad.COWBOY_HATS);
System.out.println(OldTownRoad.WRANGLER);
}
}
コンパイラーはprintln()
呼び出しに満足しています。これは、使用文句を言うCOWBOY_HATS
では@Named
このAndroidのメーカー3.5.3スクリーンショットに見られるように、「属性値が一定でなければならない」と言って、注釈:
私が試した@JvmStatic
し、@JvmField
それらのconst val
宣言が、コンパイラは、どちらものために有効であることを不平を言うconst
性質。
私は同じ結果を得るcompanion object
:
class OldTownRoad {
companion object {
const val COWBOY_HATS = "from Gucci"
const val WRANGLER = "on my booty"
}
}
Javaアノテーションから参照されたときに機能する他のKotlin定数構文はありますか?
最終値?.....
—
リックサンチェス
どのKotlinバージョンを使用していますか?これは再現できません。
—
natario
@RickSanchez:
—
CommonsWare
final const val
「finalは冗長修飾子です」という結果になります。それもfinal val
問題を解決するものでもありません。
@natario:Kotlin 1.3.61
—
CommonsWare
@natario:再現できなかったことを指摘してくれてありがとう!これは不正なAndroid Studio検査エラーのようです-コードは正常にコンパイルされます。
—
CommonsWare