我在我正在制作的程序中遇到了接口问题。我想创建一个接口,它的其中一种方法接收/返回对自己对象类型的引用。它是这样的:
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;
}
}
但这似乎真的是一种解决方法或类似的东西。还有其他方法吗?