我看到两种可能的情况,您为什么要这样做:
第一个 - GenericObserver 和 GenericObserver 对于实现类接口都是必不可少的。在这种情况下,您可能存在设计缺陷,因为对象应该尽可能专门化(即最好有两个不同的类,每个类都专注于专门的任务,而不是一个类混合它们)。因此,您可能应该创建两个单独的类,一个实现 GenericObserver,另一个实现 GenericObserver。当您尝试使用不同类型参数两次实现 GenericObserver 时,编译器会抱怨,因为 Java 中的泛型是使用擦除实现的,因此 GenericObserver 和 GenericObserver 在运行时本质上是相同的 GenericObserver。
第二种情况 - 这些接口是您的实现细节的一部分。然后您可以使用内部类(或静态嵌套类)来实现您的目标。例如:
public class OuterClass {
private String hello = "Hello";
private String world = "World";
private class InnerClass1 implements GenericObserver<DataService, Tools> {
public String interfaceMethod() {
return hello + " " + world;
}
// more implementation
}
private class InnerClass2 implements GenericObserver<MobileService, Tools> {
// implementation
}
}
如果您使用内部类,那么您可以轻松访问包含类的字段,正如您从这个有点做作的示例中看到的那样。