我最近在一個setter上使用的項目中看到了這個JAXB註釋。我從我自己的經驗中知道@XmlElement可以用於屬性和getter。我不確定這個註釋是否可以並且應該用在setter上,我搜索了它並且找不到明確的答案。請指教。哪裏可以放置@XmlElement?
1
A
回答
2
從JAXB 2.2規範的章節「8.9屬性&字段」(參見:https://jcp.org/aboutJava/communityprocess/mrel/jsr222/index2.html)
對於屬性,一個給定的註釋可以應用於讀取或 寫屬性而不是兩者。
換句話說,註釋可以放在get或set方法中。根據我的經驗,大多數人把註釋放在get方法上。
2
The code明確表示它的制定者的工作:
public abstract class AbstractInlineAnnotationReaderImpl<T,C,F,M>
implements AnnotationReader<T,C,F,M> {
...
public final <A extends Annotation> A getMethodAnnotation(Class<A> annotation, M getter, M setter, Locatable srcPos) {
A a1 = getter==null?null:getMethodAnnotation(annotation,getter,srcPos);
A a2 = setter==null?null:getMethodAnnotation(annotation,setter,srcPos);
if(a1==null) {
if(a2==null)
return null;
else
return a2;
} else {
if(a2==null)
return a1;
else {
// both are present
getErrorHandler().error(new IllegalAnnotationException(
Messages.DUPLICATE_ANNOTATIONS.format(
annotation.getName(), fullName(getter),fullName(setter)),
a1, a2));
// recover by ignoring one of them
return a1;
}
}
}
...
}
不過,我也無法找到這個規範性引用。
相關問題
- 1. 哪裏可以放置InvokeRepeating?
- 2. 哪裏可以設置NavigationController.NavigationBar.isUserInteractionEnabled
- 3. 哪裏可以放置外出的配置信息?
- 4. iOS核心位置(在哪裏可以放置代碼?)
- 5. 我在哪裏可以放置IPython配置文件?
- 6. 哪裏可以放置代碼配置永久存儲遷移
- 7. 在哪裏可以放置Axis2 Web服務的配置文件?
- 8. 哪裏可以放置雲9 ace編輯器配置?
- 9. 哪裏可以放gradle-2.2.1-all
- 10. 哪裏可以放這個getdate()調用?
- 11. 哪裏可以放我的AJAX代碼
- 12. C#哪裏可以放一般方法?
- 13. 哪裏可以放置代碼來改變UIView的屬性
- 14. 我可以在哪裏放置我的遊戲邏輯?
- 15. 哪裏可以放置setScrollsToTop自定義單元格
- 16. 我在哪裏可以在Tomcat中放置跨域XML?
- 17. 我在哪裏可以在Tomcat 6中放置servlet jar文件?
- 18. 哪裏可以放置我的base.html文件?
- 19. 我在哪裏可以放置JQUERY UI主題文件夾?
- 20. 哪裏可以在導航欄上放置另一個按鈕
- 21. 在char設備中,我可以在哪裏放置ioread?
- 22. 哪裏可以在短信的codeignater中放置全局函數?
- 23. 我可以在哪裏放置我的源文件?
- 24. 我可以在哪裏放置laravel 4過濾器類?
- 25. 我在哪裏可以放置一個post-commit鉤子腳本?
- 26. MVC文件上傳在哪裏可以放置代碼
- 27. 設計:在哪裏可以放置經理選項?
- 28. 哪裏可以放置div而不破壞當前佈局
- 29. 哪裏可以放置我的包在流明框架
- 30. 混凝土5 - 哪裏可以放置.htcaccess
我已經添加了一個答案與規範參考:http://stackoverflow.com/a/26259767/383861 – 2014-10-08 14:44:52