ฉันคิดว่าสิ่งนี้อาจเป็นไปไม่ได้ใน Java เพราะคำอธิบายประกอบและพารามิเตอร์ของมันได้รับการแก้ไขในเวลารวบรวม ฉันมีส่วนต่อประสานดังนี้
public interface FieldValues {
String[] FIELD1 = new String[]{"value1", "value2"};
}
และอีกชั้นหนึ่งว่า
@SomeAnnotation(locations = {"value1", "value2"})
public class MyClass {
....
}
ฉันทำเครื่องหมายหลายคลาสด้วยคำอธิบายประกอบและฉันต้องการทราบว่าฉันสามารถหลีกเลี่ยงการระบุสตริงในคำอธิบายประกอบทุกครั้งที่ฉันต้องการใช้แทน
@SomeAnnotation(locations = FieldValues.FIELD1)
public class MyClass {
....
}
อย่างไรก็ตามสิ่งนี้ให้ข้อผิดพลาดในการคอมไพล์เช่นค่าคำอธิบายประกอบควรเป็น initializer ของอาร์เรย์เป็นต้นมีใครรู้ว่าฉันสามารถใช้ค่าคงที่แบบสตริงหรือค่าคงที่สตริง [] เพื่อให้ค่าของคำอธิบายประกอบได้หรือไม่