如何引用接口在 Java 中实现的类类型?
2022-09-02 10:16:01
我在我正在制作的程序中遇到了一个接口问题。我想创建一个接口,其中一个方法接收/返回对自己对象类型的引用。它是这样的:
public interface I {
? getSelf();
}
public class A implements I {
A getSelf() {
return this;
}
}
public class B implements I {
B getSelf() {
return this;
}
}
我不能在“?”的地方使用“I”,因为我不想返回对接口的引用,而是返回类。我搜索并发现Java中没有“自我引用”的方法,所以我不能只是用示例中的“?”来代替“self”关键字或类似的东西。实际上,我提出了一个解决方案,如下所示
public interface I<SELF> {
SELF getSelf();
}
public class A implements I<A> {
A getSelf() {
return this;
}
}
public class B implements I<B> {
B getSelf() {
return this;
}
}
但它似乎真的是一种解决方法或类似的东西。有没有另一种方法可以做到这一点?