java - 返回与 Java 中参数之一相同的类型

标签 java generics

我想知道是否有办法从方法返回 Dog对象或 List<Dog>例如,使用 Java 泛型或 Java 中的任何其他工具。

我尝试了以下方法,但我非常怀疑它是否正确或安全;

<T extends Dog> T method(T param){
     // do stuff
     return (T) result; 
}

如果参数是Dog我要回Dog如果参数是 List<Dog>我要回List<Dog>

总而言之,我想要一种返回与其中一个参数具有相同类型的方法。

我需要对上述方法进行哪些更改才能使其正常工作并尽可能安全地使用?

最佳答案

另一种非限制性方法可以是;

<T> T method(T param) {
     T result;
     // whatever
     return result;
}

当然,这个方法不允许任何限制,在这种情况下,您将需要创建两个不同的方法。

关于java - 返回与 Java 中参数之一相同的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49897719/

相关文章:

java - 无法执行二进制文件 - 可执行 Jar 文件

c# - 如何在 C# 中实例化具有抽象约束的泛型类

java - 我们可以在运行时从泛型类型实例化一个对象吗?

java - 获取所有元素

java - 我正在尝试使用 Java 8 在下面的代码片段中实现策略设计模式。寻找更好的实现方法?

java - 如何在运行时设置通用Java类的类型?

ios - 协议(protocol)上的关联类型和泛型

java - 如何引用内部类成员的泛型类型?

用于查找不以特定子字符串结尾的数字的 Java 模式正则表达式

Java断言不打印其 "reason"