可选或默认通用参数

Ale*_*lls 6 java generics typescript optional-typing gradual-typing

假设我有 3 个通用参数:

  public static interface Mapper<V,T,E> {
    public void map(KeyValue<V> v, AsyncCallback<T,E> cb);
  }
Run Code Online (Sandbox Code Playgroud)

如何使参数可选?如果用户只提供第一个参数,如何为参数提供默认值?

使用 TypeScript,它看起来像:

  public static interface Mapper<V,T = any,E = any> {
    public void map(KeyValue<V> v, AsyncCallback<T,E> cb);
  }
Run Code Online (Sandbox Code Playgroud)

因此,如果用户不提供 T 和 E,它们将默认为any。有没有办法用 Java 来做到这一点?

小智 1

我会说不。当 Java 的所有变量都被设置为某种类型并且永不改变时,Java 会很高兴。如果您想找到最大的灵活性,请尝试找到尽可能大的超类,例如 T = Object 和 E = Object。稍后当您需要使用该对象时,您可以将其类型转换为您想要的内容吗?或许?