2012-04-13 122 views
0

我有一些類A沒有源代碼和這個類使用了一些類B 2層的方法,如#get(): int和標準的Java庫設置#set(int value): void替代方法沒有源代碼

我可以替代這2種方法或所有類改變A這個類的一些功能?

例如,此類A使用標準類B來保存一些信息,但我希望使用此另一個容器進行某些操作。有可能嗎?

+3

這些方法的簽名不是Java。 – 2012-04-13 19:45:46

回答

2

你可以使用一些字節碼操作庫,例如。然而一個更簡單的方法是使用和編織類,無論是靜態或動態。 AspectJ的甚至可以編織標準的Java庫(rt.jar)。

+0

感謝您的信息!也許你有一些例子如何使用'AspectJ'來替換方法? – dzav 2012-04-13 21:03:51

+0

@vanveber:沒有例子,但很少的提示:搜索*圍繞建議* - 不調用包裝的方法。 – 2012-04-13 21:08:14

1

我不確定,但我相信你想要做的是 擴展類,然後重寫該方法。

正如柯克沃爾說,這看起來並不像Java。