2013-02-16 34 views
1

想象一下,您必須包裝java.sql.ResultSet的實例。你不能擴展它,因爲你不知道具體實現ResultSet的具體類是什麼。您可以只聚合實例,實施ResultSet並覆蓋所有方法。對象包裝的代碼生成工具

現在想象一下你想改變一個方法的行爲。所有其他重載方法只是一個很長的樣板是這樣的:

public void foo() { 
    wrapped.foo(); 
} 

你知道任何自動代碼生成工具,可以爲我(無論是獨立的或納入普通的IDE)完成這項任務?

回答

2

Eclipse,用ResultSet作爲成員創建一個類,把光標放在這個成員上,然後選擇菜單「Source> Generate delegate Methods」。

enter image description here

檢查你想要的方式來產生的代表,它的完成。

+0

真的很可愛。我在Eclipse中沒有注意到的東西。謝謝! – gd1 2013-02-16 19:42:25

+0

+1這真的很不錯,它會派上用場。 – arshajii 2013-07-23 20:32:38

1

任何體面的IDE應該能夠做到這一點。例如。在InteilliJ的想法:代碼 - >生成 - >委託方法

如果該類具有類實現/擴展的類型的成員字段此選項變得可用。