我正在使用Java開發我的第一個真正的項目。儘管我對動態語言有更多的經驗,但我已經開始習慣這門語言了。Java元編程
我有,其行爲類似於下面的一類:
class Single
{
public void doActionA() {}
public void doActionB() {}
public void doActionC() {}
}
然後,我有一個SingleList
類充當這些類(特別是,它是一個2D雪碧庫,並集合了「行動「是各種轉變:旋轉,剪切,縮放等)。我希望能夠做到以下幾點:
class SingleList
{
public void doActionA() {
for (Single s : _innerList) {
s.doActionA();
}
}
... etc ...
}
有沒有辦法簡單地推遲的方法(或方法的一個已知列表)的內部列表中的每個成員?任何方式,而不必具體列出每種方法,然後循環通過每個內部成員,並手動應用它?
爲了讓事情變得更難,這些方法具有不同的參數,但都是返回類型「void」。
我覺得你可以看看Java反射,它允許你在運行時調用的方法。 – Alvin 2012-01-15 07:11:09
但我仍然需要生成SingleList類中的所有方法存根。我正在尋找更多的解決方案,充當全面調用的方法。就像使用PHP或python getattr調用一樣。 – efritz 2012-01-15 07:13:37
哦,你不需要執行,用反射你可以做SingleList.get(「someAttr」),然後反射會爲你調用方法getSomeAttr()。你可以谷歌「org.springframework.beans.BeanUtils」,這是你想要的。如果沒有人讓我感到厭煩,我會在後面寫一個例子作爲正式答案。 – Alvin 2012-01-15 08:02:20