如果你有一個包含getFoo
方法的bean,當你詢問foo
的值時,你正在使用的任何框架如何知道如何調用getFoo
方法?這是使用反射API完成的嗎?或者它使用註釋以某種方式完成?很顯然,我知道如何根據屬性的名稱來派生方法,我只是不知道該方法是如何被調用的。框架如何調用javabeans上的get和set方法?
2
A
回答
0
實際的方法調用確實是通過反射完成的。你可以看看BeanUtil,特別是MethodUtil來源。要反射地調用方法,請使用
method.invoke(bean, parameters);
查看reflection tutorial的示例。
1
Java按方法名稱約定使用「屬性」。對於類型爲T
的房產camelCase
,您應該定義public T getCamelCase()
和public void setCamelCase(T t)
中的一個或兩個。您可以使用此代碼對Bean測試性能:
Introspector.getBeanInfo (bean.getClass()).getPropertyDescriptors();
注意,因爲屬性不是第一類對象和依靠命名約定,很容易不小心打破這種pseudoproperty。例如。如果您定義了setFoo(int)
和setFoo(int, boolean)
,則班級中不會有任何屬性foo
。
相關問題
- 1. 如何使用get/set方法?
- 2. 何時調用屬性get和set方法?
- 3. 需要使用get()和set()方法
- 4. 如何使用get方法在yii框架上插入記錄?
- 5. 苗條框架和GET/PUT/POST方法
- 6. get和set方法的替代樣式
- 7. get和set無法正常
- 8. 爲什麼javabeans框架爲NON索引方法創建IndexedPropertyDescriptor
- 9. Get方法和Set方法在類中的區別
- 10. 商店使用get set方法
- 11. 如何從javascript函數中調用javabeans方法?
- 12. C#Get/Set語法用法
- 13. 如何在C#中使用get和set?
- 14. 如何使用框架方法和支持庫的方法
- 15. C++的set/get方法同步
- 16. Get&Set方法的自動生成?
- 17. NHibernate:自定義屬性訪問器的Get和Set方法不被調用
- 18. 的InvocationTargetException當使用JavaFX set和get方法
- 19. Android如何使用get set方法獲取圖像?
- 20. 如何調用自定義get方法
- 21. 使用get和set循環?
- 22. set和get使用sseions thymleaf
- 23. 爲什麼在XAML中不調用附加屬性Set和Get靜態方法?
- 24. set和get與TransientModel
- 25. REST框架:404上GET
- 26. 當有很多屬性時,不使用set和get方法
- 27. Android HttpURLConnection set GET請求方法
- 28. 如何使用get和set在C方法++與被初始化新
- 29. 如何發送HTTPS get和set?
- 30. AS3:內聯方式寫get和set?