Đưa ra một chút của Kotlin:
object OldTownRoad {
const val COWBOY_HATS = "from Gucci"
const val WRANGLER = "on my booty"
}
và lớp Java này:
public class Scrap {
@Named(OldTownRoad.COWBOY_HATS)
public void lilNasXrefs() {
System.out.println(OldTownRoad.COWBOY_HATS);
System.out.println(OldTownRoad.WRANGLER);
}
}
Trình biên dịch hài lòng với các println()
cuộc gọi. Nó phàn nàn về việc sử dụng COWBOY_HATS
trong @Named
chú thích, nói rằng "Giá trị thuộc tính phải không đổi", như đã thấy trong ảnh chụp màn hình Android Studio 3.5.3 này:
Tôi đã thử @JvmStatic
và @JvmField
trên các const val
khai báo đó, nhưng trình biên dịch phàn nàn rằng không hợp lệ cho const
các thuộc tính.
Tôi nhận được kết quả tương tự từ một companion object
:
class OldTownRoad {
companion object {
const val COWBOY_HATS = "from Gucci"
const val WRANGLER = "on my booty"
}
}
Có một số cú pháp hằng số Kotlin khác hoạt động khi được tham chiếu từ một chú thích Java không?
final const val
kết quả trong "cuối cùng là một sửa đổi dự phòng". Không phải điều đó cũng không final val
làm sáng tỏ vấn đề.