java - 如何在 Java 中定义 F<T> 和 F<T,U> 和 F<T,U,V> 接口(interface)?

标签 java

我将如何定义 F<T>F<T,U>F<T,U,V> Java 中的接口(interface)(代替 C# 中的 Action,它们将具有一个、两个和三个参数的函数,并在内部返回 void)?

当我尝试将它们创建为嵌套类型时,出现“重复嵌套类型 F”的错误消息,当我尝试将它们创建为顶级类型时,我必须同时放置 F<T>F<T,U>在 F.java 中。

我可以通过将每个 F 放在单独的包中来解决这个问题,但我不喜欢这种解决方案,因为我必须定义尽可能多的包和我拥有的通用参数。

实现具有多个泛型参数的 Tuple 类也是如此。

代码示例,不工作:

public interface F<T>{
    public void f(T arg1);
}

public interface F<T,U>{
    public void f(T arg1,U arg2);
}

最佳答案

您不能使用相同的接口(interface)名称。 Java 删除参数化类型。

其他工具包使用 F1、F2 和 F3 等名称完成了类似的事情。它有点冗长,但有效。

关于java - 如何在 Java 中定义 F<T> 和 F<T,U> 和 F<T,U,V> 接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14801051/

相关文章:

java - Apache Camel 支持嵌套路由吗?

java - varchar 类型的 SymmetricDS 长度不能超过 N

java - 无法在 Android 应用程序中使用 javax 发送电子邮件

java - Spring Security SecurityContextHolder.getContext().getAuthentication() 返回 null

java - 从 Informix 批量导入到 Oracle

java:从 StringBuilder 中删除所有空格的最有效方法是什么

java - 使用 compileOnly 和 testCompileOnly 时 gradle 测试失败

java - 如何删除启动配置(Eclipse)中的旧项目

java - x-power-by 在响应 header 中显示

java - 使用 AES 加密和连续解密后数据不同