如何在Java中定义F<T>F<T,U>F<T,U,V>接口(代替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);
}

最佳答案

您不能使用相同的接口名称进行操作。 Java删除参数化类型。

其他工具箱也使用F1 ,F2 和F3 之类的名称执行了类似的操作。它有点冗长,但可以。

09-26 07:01