我在Java中寻找一种方法来强制实现某个接口的类来定义某个构造函数。
示例:
@Constructor(X, Y, Z)
public interface A {}
public class B implements A {
public B(X x, Y y, Z z) {}
}
在这种情况下,它会强制实现类包含带有该参数列表的构造函数。有没有办法真正做到这一点?
P.S。我理解这违背了接口的设计实践,它只是在我的情况下实现类需要的东西,因为某个编译器解耦的工厂方法实现。
答案 0 :(得分:2)
为什么不为此使用抽象类?否则,您必须推出注释处理器和类路径扫描,以检查所有实现类是否遵循注释。如果您决定使用此路径,maven插件也可以在编译阶段帮助并扫描类路径以确保实现类已定义构造函数