Я использую библиотеку Eclipse JDT для генерации некоторого кода.
На данный момент у меня есть код, который сгенерирует интерфейс для меня. Теперь я приведу реализацию класса для этого интерфейса. Проблема в том, что я не могу найти какие методы мне нужно использовать из документации , чтобы сделать это.
import org.eclipse.jdt.core.dom.*;
import java.util.List;
public class Main {
public static void main(String[] args) {
AST ast = AST.newAST(AST.JLS13, true);
CompilationUnit unit = ast.newCompilationUnit();
// define strategy interface
TypeDeclaration type = ast.newTypeDeclaration();
type.setInterface(Boolean.TRUE);
type.modifiers().add(ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD));
type.setName(ast.newSimpleName("Strategy"));
// define strategy interface method
MethodDeclaration methodDeclaration = ast.newMethodDeclaration();
methodDeclaration.setConstructor(false);
List modifiers = methodDeclaration.modifiers();
modifiers.add(ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD));
methodDeclaration.setName(ast.newSimpleName("algorithmInterface"));
methodDeclaration.setReturnType2(ast.newPrimitiveType(PrimitiveType.VOID));
type.bodyDeclarations().add(methodDeclaration);
unit.types().add(type);
System.out.println(unit);
TypeDeclaration concreteType = ast.newTypeDeclaration();
concreteType.setInterface(Boolean.FALSE);
concreteType.setName(ast.newSimpleName("ConcreteStrategy"));
System.out.println(concreteType);
}
}
Приведенные выше результаты:
public interface Strategy {
public void algorithmInterface();
}
class ConcreteStrategy {
}
Обратите внимание на класс ConcreteStrategy
выше. Вместо этого я хочу вот что:
public interface Strategy {
public void algorithmInterface();
}
class ConcreteStrategy implements Strategy {
public void algorithmInterface() {
// ...
}
}