开发者社区> 问答> 正文

当有不同的泛型时,使用接口有意义吗

我有两个不同的类,需要一些具有相同签名的查询方法。比如MyString和MyInteger。

我想用一个方法定义一个接口: public interface MyInterface{

// no type is specified for the list, because each implementation will have different type of object List query();
} 所以基本上我需要实现两个不同的类,这些类实现了上面的接口。第一个将获得List ,第二个将从List 查询方法中获得结果。

我不喜欢在接口中不指定泛型,因为我以后需要转换。

那么在这里使用接口是否有意义,或者在没有公共接口的情况下更好地实现具有相同方法签名的两个单独的类呢?

展开
收起
小六码奴 2019-10-10 19:54:07 751 0
1 条回答
写回答
取消 提交回答
  • 泛型的关键是你不需要这样做。 public interface MyInterface { List query();
    }

    public class MyInteger implements MyInterface { // ... }

    // ... MyInteger foo = new MyInteger();

    // ... List list = foo.query();

    // ... Integer i = list.get(index); 或使用var,因为它已经使用了一段时间的语言:// ... var foo = new MyInteger();

    // ... var list = foo.query();

    // ... var i = list.get(index); 如果您你要实现多个类,MyInterface 并且需要以一种通用的方式来处理这些类的实例(例如,用MyInterface 引用它们而不是类),并且/或者如果MyInterface代表了整个结构的某些基本方面,那么使用接口可能很有意义。如果没有,仅仅是因为你要使用List query方法来使用两个不同的类,那么可能就没有。这取决于整体设计和风格。

    2019-10-10 20:00:36
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
继承与功能组合 立即下载
建立联系方法之一 立即下载
低代码开发师(初级)实战教程 立即下载