java - Java 中的泛型特定接口(interface)定义

标签 java generics

是否可以在Java中定义以下内容:

public interface IGenericRepo<T> {
    void add();
    void delete();
    void attach();
}

public interface IGenericRepo<Book> {
    default String bookSpecificMethod(){
      return "smthn";
    }
}

public class NHGenericRepo<T> implements IGenericRepo<T>{
    /* implementation */
}

public class NHUnitOfWork implements UnitOfWork{
    @Autowired
    public void setBookRepo(NHGenericRepo<Book> bookRepo) {
        this.bookRepo= bookRepo;
    }
    public NHGenericRepo<Book> getBookRepo() {
       return bookRepo;
    }
    private NHGenericRepo<Book> bookRepo;
}

并且能够在代码中的某个地方拥有:

{
    @Autowired
    public void setNhuw(NHUnitOfWork nhuw) {
        this.nhuw = nhuw;
    }

    private NHUnitOfWork nhuw;

    /**/

    {
        String st = this.nhuw.getBookRepo().bookSpecificMethod();
    }
}

在 .net 中,可以通过使用扩展方法并将“this IGenericRepo”作为第一个方法参数实现这一点。

最佳答案

您能得到的最接近的是:

public interface IBookGenericRepo extends IGenericRepo<Book> {
    void BookSpecificMethod();
}

关于java - Java 中的泛型特定接口(interface)定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23430685/

相关文章:

java - Consumer<?> 和 Consumer<T> 似乎不完全等价 - 与任何 Consuming 功能接口(interface)相同

generics - typescript 中的类型字典?

java - 泛型:为什么实现的集合返回一个对象而不是指定的类型?

java - 在 Mac 上确定 Java SDK 的版本

java - 调整主框架大小时 JPanel 窗口不缩放

java - 不兼容的类型 : String[] cannot be converted to String

java - 集合中的通配符构造函数

java - 注册表以外的 Truelicense Java 首选项存储

java - 为作为 Windows 服务运行的 Java 应用程序创建安装程序

Swift 3泛型函数不明确返回