Java 类级别类型推断

标签 java generics

我知道下面的代码无法编译,是的,我可能疯了。我想做的是将抽象类 (A) 的实现(下面的 B)作为类 (C) 的父类(super class),它也扩展了抽象类。我还想将方法重写推迟到父类(super class)。类似...

abstract class A {
  abstract Object get();
  abstract Object do();
  Object action();
}

class B extends A {
  B(B obj) {
      super(obj.getName()...)
   }
  Object get() { ... }
  Object do() { ... }
}

C<T> extends <T extends A> {
   C(<T extends A> obj) {
      super(obj)
   }

   Object do() { ... }

   Object whatever() {
      return action();
   }
}

哪里...

C aC = new aC(new B());
aC.get() -> B.get()
aC.do() -> C.do()
aC.action() -> A.action()

最佳答案

我认为您想使用委托(delegate)模式。

class C extends A {

   private final A delegate;

   C(A obj) {
      this.delegate = obj;
   }

   Object get() { return delegate.get() }

   Object whatever() {
      return action();
   }
}

关于Java 类级别类型推断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1746589/

相关文章:

java - 当从Java中的JComboBox中选择一个项目时,我想在JTable中添加数据?

c# - 从通用函数内部调用正确的重载

Java:接口(interface)和工厂中的泛型

java - Spring boot启用注释被忽略

C# generics - 可以创建具有 n 个泛型类型的方法..?

C# 是具有泛型类型约束的泛型类型

typescript - 是否可以在 TypeScript 中使用模板文字生成字符串文字组合?

java - 多个 Java 对象到单个端点

java - JPA Hibernate 和具有用于 map 的 ElementCollection

java - Java 可以省略在 HTTP 请求中发送一些 header 吗?