Java - 函数可以返回与输入参数之一相同的类型吗?

Muh*_*far 1 java

我在 Java 中有两个非常相似的函数:

public Connector GetRelevantConnector(MyData myData, Connector c1, Connector c2) {
    if(myData.useC1()){
         return c1;
    } 
    return c2;
}
Run Code Online (Sandbox Code Playgroud)

同样,我有以下功能:

public String GetRelevantConnector(MyData myData, String c1, String c2) {
    if(myData.useC1()){
         return c1;
    } 
    return c2;
}
Run Code Online (Sandbox Code Playgroud)

上面的函数已经被简化,但无论如何,函数内部的所有逻辑都依赖于 myData 来选择 c1 或 c2。这些函数本质上是重复的代码,我想知道是否可以将 Connector/String 声明为泛型类型,并且无论泛型输入是什么,函数的返回类型都是如此。这可能吗?

Til*_*hcy 8

是的,这就是 Java 的泛型方法的用途:

public <T> T GetRelevantConnector(MyData myData, T c1, T c2) {
    if(myData.useC1()){
         return c1;
    } 
    return c2;
}
Run Code Online (Sandbox Code Playgroud)

请参阅https://docs.oracle.com/javase/tutorial/extra/generics/methods.html