Đư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_HATStrong @Namedchú 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ử @JvmStaticvà @JvmFieldtrên các const valkhai báo đó, nhưng trình biên dịch phàn nàn rằng không hợp lệ cho constcá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 valkế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 vallàm sáng tỏ vấn đề.