java支持泛型方法支持各种参数输入吗?
Posted
技术标签:
【中文标题】java支持泛型方法支持各种参数输入吗?【英文标题】:Does java support generic method support all kinds of argument input? 【发布时间】: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 variable number or arguments for a method的可能重复
用你的方法传递参数列表对象
【参考方案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) ...
可以正常使用
【讨论】:
以上是关于java支持泛型方法支持各种参数输入吗?的主要内容,如果未能解决你的问题,请参考以下文章