我想为现有的类库创建一些简单的包装类。为了使语法更好阅读和猜测(通过代码完成)我想删除 java.lang.Object 的方法。
问题是java中的所有非原子事物都继承自Object,因此具有这些方法。我已经尝试通过枚举和接口创建包装器语法,但没有成功;因为枚举和接口也是 java.lang.Objects 。
java.lang.Object有九个方法,我不希望在我的接口的代码完成中看到。这是我要删除的内容(红色)以及我想要保留的内容(绿色):
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
语句转换为接口会降低方法可见性,例如:如果构建器实现了更多的那个接口。遗憾的是,所有java.lang.Object方法都将保留。
如果这种方法隐藏在Java中是可能的(可能使用Annotations?),我可以创建一个与IDE无关的好库(各处都有很好的代码完成)。如果不是,那么至少Eclipse IDE(可能是一个插件?)可以提供一个可以提供java.lang.Object方法隐藏的技巧。
答案 0 :(得分:28)
对于Eclipse 3.4,至少可以执行以下操作:
1)转到首选项 - > Java - >外观 - >类型过滤器
2)单击“添加”,然后输入java.lang.Object
现在在代码辅助中,直接从java.lang.Object
继承的方法将消失