我想爲現有的類庫創建一些簡單的包裝類。爲了使語法很好閱讀和很好猜(通過代碼完成)我想刪除java.lang.Object的方法。如何從代碼完成中隱藏所有的java.lang.Object方法?
問題是,java中的所有非原子事物都從Object繼承,因此具有這些方法。我已經嘗試通過枚舉和接口創建包裝語法,但沒有成功;因爲枚舉和接口也是java.lang.Objects。
java.lang.Object有9個方法,我不想在代碼完成我的接口中看到。這是我想刪除(紅色),我想保留什麼(綠色):
alt text http://ju.venile.de/upload/java-lang-object-methods.png
以下是創建好的包裝圍繞現有的類(Builder模式)一些示例代碼:
public interface IMySyntax{
public IMySyntax myMethod1();
public IMySyntax myMethod2();
}
public class MyBuilder implements IMySyntax{
public static IMySyntax build(){ return (IMySyntax) new MyBuilder() }
public IMySyntax myMethod1(){ /* do something */ return (IMySyntax) this }
public IMySyntax myMethod2(){ /* do something */ return (IMySyntax) this }
}
新包裝代碼的
用法應該是這樣的:
MyBuilder.build()
.myMethod1()
.myMethod2();
鑄造建設者的所有this
語句的INTERF ace會降低方法的可見度,例如如果構建器實現更多的那個接口。不幸的是,所有的java.lang.Object方法都會保留。
如果此方法隱藏可能在Java中(可能使用Annotations?),我可以創建一個IDE不可知的良好庫(到處都有很好的代碼完成)。如果沒有,至少Eclipse IDE(也許是一個插件)可能會有一個技巧,它可以提供java.lang.Object方法隱藏。
我想你可能想限制這個範圍到一個特定的IDE(如Eclipse)。我99%肯定IntelliJ IDE是這樣開箱即用的(即它首先提供了最相關的方法)。 – 2009-02-23 19:43:07