Я хочу создать несколько простых классов-оболочек для существующей библиотеки классов. Чтобы синтаксис был приятным для чтения И приятно угадывать (с помощью завершения кода), я хотел бы удалить методы java.lang.Object.Как скрыть все методы 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
заявления застройщика к INTERF туз уменьшит видимость метода, например. если построитель реализует больше одного интерфейса. К сожалению, все методы java.lang.Object останутся.
Если этот способ скрывался в Java (возможно, с помощью аннотаций?), Я мог бы создать красивую библиотеку, которая является агностикой IDE (приятное завершение кода везде). Если нет, может быть, есть трюк, по крайней мере, для Eclipse IDE (может быть, плагин?), Который может обеспечить скрытие метода java.lang.Object.
Я думаю, вы можете ограничить эту область определенной средой IDE (например, Eclipse). Я на 99% уверен, что IntelliJ IDE делает это прямо из коробки (т. Е. Сначала ставит наиболее релевантные методы). –