【问题标题】:Does java support generic method support all kinds of argument input?java支持泛型方法支持各种参数输入吗?
【发布时间】:2019-01-02 01:21:36
【问题描述】:

我想为 hystrix 默认后备方法编写一些方法,例如:

//declaration
public void voidDefaultFallback(generic argument list) {
    return;
}

public int intDefaultFallback(generic argument list) {
    return 0;
}

public Object nullDefaultFallback(generic argument list) {
    return null;
}
//invocation
nullDefaultFallback("a", "b");
nullDefaultFallback("a", 0);
nullDefaultFallback("a", 0, "abc");

java 支持这样的泛型方法吗?

【问题讨论】:

  • 我不清楚您所说的 generic argument list 到底是什么意思。您的示例可以通过多种方式描述:K, V...K...
  • 用你的方法传递参数列表对象

标签: java generics hystrix fallback


【解决方案1】:

是的,你可以在方法中使用这个参数来做到这一点

public void method (Object ... objects){
        for(Object obj : objects){
            //do stuff
        }
    }

它叫做 varargs ,你可以找到更多信息here

【讨论】:

    【解决方案2】:

    你可以随时使用

    nullDefaultFallback(Object...args);
    

    【讨论】:

      【解决方案3】:

      对于具有相同方法名称的不同返回类型,您需要指定不同的方法签名。例如:

      public void m(K...) {...}
      public int m(K...) {...}
      

      不是有效大小写,但是,例如:

      public void m(K){...}
      public int m(K, K) {...}
      

      可以正常使用

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-15
        • 1970-01-01
        • 1970-01-01
        • 2020-07-09
        • 1970-01-01
        • 2011-01-30
        • 2011-01-27
        • 1970-01-01
        相关资源
        最近更新 更多