java - 通用接口(interface)有好处吗?

标签 java generics interface

最近在 answer有人向我建议:

public interface Operation<R extends OperationResult, P extends OperationParam> {

    public R execute(P param);
}

比这更好:

public interface Operation {

    public OperationResult execute(OperationParam param);
}

但是我看不出使用第一个代码块比使用第二个代码块有任何好处......

鉴于 OperationResultOperationParam 都是接口(interface),实现者无论如何都需要返回派生类,这对我来说似乎很明显。

那么您认为使用第一个代码块而不是第二个代码块有什么原因吗?

最佳答案

这样您就可以声明您的Operation 实现以返回更具体的结果,例如

 class SumOperation implements Operation<SumResult, SumParam>

虽然这对您的应用程序是否有任何值(value)完全取决于情况。

更新:当然,您可以在没有通用接口(interface)的情况下返回更具体的结果,但这样您也可以限制输入参数。

关于java - 通用接口(interface)有好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4943686/

相关文章:

java - 向 String 添加转义符,可能吗?

java - 文件未找到异常 : Playing an mp3 file with Java/Eclipse

Java泛型运算结果类型

将 DataRow 转换为 T 类型时,C# Int64Converter 无法从 System.Int64 错误转换

c# - 如果类的接口(interface)是逆变的,使用泛型引用类型参数有什么好处吗?

Java 数据库不返回值

java - 使用 DB2 和 Java(以及 Hibernate?)将 XML 转换为关系型

java - 接口(interface)类型的匿名内部类访问 'overrided'字段

c# - WPF 通过界面集合在设计器中显示虚假数据

c# - 如何在 C# 中将 DllImport 与接口(interface)一起使用?