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支持泛型方法支持各种参数输入吗?的主要内容,如果未能解决你的问题,请参考以下文章

C#泛型学习

java中啥叫泛型??

lua不支持的泛型方法

Java泛型

Java泛型

Java 泛型