我有一個約90字段的Java類。我希望能夠爲每個領域做些事情(例如生成一個XML元素),而無需使用90次輕微替換編寫相同的5行代碼。在Objective C中,我認爲你可以用類似於訪問Dictionary元素(ObjectForKey)的方式獲取實例變量。在Java中有沒有類似的東西,我可以得到一個字段數組,然後對每個字段做一些事情?枚舉Java字段
Q
枚舉Java字段
3
A
回答
5
是的,它叫做Reflection API。
尤其MyClass.class.getDeclaredFields()
將返回此類聲明的字段的完整列表(see API for details)
1
這裏的另一種方法:使用Introspector API與JDK來獲取類的豆般的性能。如果你的班級有getter和setter,並且不想直接訪問私人領域,這會很有幫助。 通過Introspector獲取BeanInfo並從中獲取所有propertyDescriptors。找到該屬性的獲取者。
我不得不承認,使用此API是有點麻煩和反射(尼基塔Rybak的建議)更直截了當。
但有一個實用Apache BeanUtils,它所有的刻苦努力使內部豆的工作變得簡單。
地址:
如果您使用的是反射API,我建議你註釋你的bean字段或您的getter方法使用自定義的註釋。
public class MyClassWith90Fields {
@XmlSerialize("name")
private String screenName; // shoudl serialize as <name>...</name>
@XmlSerialize
private String email; // shoud serialize as <email>...</email>
@XmlSerializeIgnore
pirvate boolean flag; // shoud not serialize as annotated as ignore
}
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD})
public @annotation XmlSerialize {
public String value;
}
完成後,您的代碼可以檢查(使用反射)帶註釋的字段並將它們序列化爲適當的XML。
相關問題
- 1. 擴展字段枚舉的Java
- 2. 枚舉的枚舉[JAVA]
- 3. Java類枚舉枚舉類
- 4. Java枚舉找到枚舉
- 5. Anorm和枚舉字段
- 6. Spring roo,字段枚舉
- 7. 區分枚舉和字段
- 8. 在枚舉java
- 9. 「 - 」枚舉的Java
- 10. Java枚舉
- 11. Java枚舉值
- 12. 嵌套枚舉不能訪問枚舉類的私有字段
- 13. jOOQ並選擇枚舉字段到枚舉對象
- 14. Java:從枚舉枚舉<String>
- 15. Java自定義枚舉值枚舉
- 16. 是枚舉Java中的枚舉
- 17. Java在枚舉中的枚舉
- 18. Java:舊枚舉子集的新枚舉
- 19. 解析IDL枚舉到Java枚舉
- 20. Java的枚舉和PostgreSQL枚舉
- 21. 從字符串獲取枚舉字段
- 22. Java的枚舉:一個內有多個字符串枚舉
- 23. ID3 Java枚舉樹
- 24. Java枚舉協會
- 25. 枚舉在Java中
- 26. 使用Java枚舉
- 27. Java-連接枚舉?
- 28. 抽象Java枚舉
- 29. Java級聯枚舉?
- 30. Java枚舉等於