|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 必需 | 可選 | 詳細資訊: 元素 |
@Documented @Retention(value=RUNTIME) @Target(value=METHOD) public @interface DescriptorKey
描述註釋元素與 Descriptor
中欄位之間關聯方式的元註釋。它可以是 MBean 的 Descriptor,也可以是 MBean 中屬性、操作或建構子的 Descriptor,還可以是操作或建構子的參數的 Descriptor。
考慮下例中的註釋:
@Documented @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Units { @DescriptorKey("units") String value(); }
以及註釋的這種用法:
public interface CacheControlMBean { @Units("bytes") public long getCacheSize(); }
當 Standard MBean 由 CacheControlMBean
產生時,通常的規則意味著它將有一個稱為 CacheSize
的型別為 long
的屬性。在給定上述定義的情況下,@Units
屬性將確保此屬性的 MBeanAttributeInfo
將具有一個 Descriptor
,該 Descriptor
有一個稱為 units
的欄位,且其相應的值為 bytes
。
類似地,如果註釋的形式如下:
@Documented @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Units { @DescriptorKey("units") String value(); @DescriptorKey("descriptionResourceKey") String resourceKey() default ""; @DescriptorKey("descriptionResourceBundleBaseName") String resourceBundleBaseName() default ""; }
且用法如下:
public interface CacheControlMBean { @Units("bytes", resourceKey="bytes.key", resourceBundleBaseName="com.example.foo.MBeanResources") public long getCacheSize(); }
則得到的 Descriptor
將包含以下欄位:
名稱 | 值 |
---|---|
units | "bytes" |
descriptionResourceKey | "bytes.key" |
descriptionResourceBundleBaseName | "com.example.foo.MBeanResources" |
@Units
之類別的註釋可以應用於:
忽略註釋的其他用途。
只在定義 Standard MBean 或 MXBean 的管理介面的具體介面上檢查介面註釋,而不在其父介面上檢查。只在方法出現的最具體的介面中檢查方法註釋;換句話說,如果子介面覆寫了父介面中的方法,則只考慮子介面中該方法中的 @DescriptorKey
註釋。
由同一個程序元素上的不同註釋提供的 Descriptor 欄位必須一致。也就是說,兩個不同註釋或同一註釋的兩個成員不得為同一 Descriptor 欄位定義不同的值。獲取方法上的註釋欄位也必須與相應設置方法上的註釋欄位一致。
從這些註釋中得到的 Descriptor 將與實作提供的任何 Descriptor 欄位合併,如 MBean 的 immutableInfo
欄位。註釋中的欄位必須與實作提供的這些欄位一致。
要轉換為描述符欄位的註釋元素可以是 Java 語言允許的任何型別,註釋或註釋陣列除外。欄位值由以下註釋元素的值導出:
註釋元素 | 描述符欄位 |
---|---|
基本型別值(5 、false 等) |
包裹值(Integer.valueOf(5) 、Boolean.FALSE 等) |
類別常數(如 Thread.class ) |
Class.getName() 得到的類別名稱(如 "java.lang.Thread" ) |
列舉常數(如 ElementType.FIELD ) |
Enum.name() 得到的常數名稱(如 "FIELD" ) |
類別常數或列舉常數組成的陣列 | 將這些規則應用於每個元素而派生的字元串陣列 |
任何其他型別的值 ( String 、String[] 、int[] 等) |
相同的值 |
必需元素摘要 | |
---|---|
String |
value
|
元素詳細資訊 |
---|
public abstract String value
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 必需 | 可選 | 詳細資訊: 元素 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。