gpt4 book ai didi

java - 如何从具有泛型类型的方法中输入和返回值?

转载 作者:行者123 更新时间:2023-12-01 16:47:36 25 4
gpt4 key购买 nike

我正在尝试创建方法deNull()来检查输入值。这些输入值可能是 String、int、double、Timestamp。因此,我使用泛型类型创建方法。

如果输入值为null,则返回“”;

如果输入值不为空,则返回原始值。

我的代码如下:

public static <T> T deNull(T value){
if(value == null ){
return "";
} else {
return value;
}
}

但是,此方法在第 3 行出现异常,并显示类型不匹配:无法从 String 转换为 T。

我应该如何修改这个方法以使其按预期运行?

最佳答案

intdouble 无论如何都不能为 null,剩下 TimestampString 作为唯一的两个选项。

在我看来,只编写两个没有泛型的方法,不值得这么麻烦。

如果您确实需要两种以上类型,我建议将方法更改为。

public static <T> T deNull(T value, T orElse){
if(value == null ){
return orElse;
} else {
return value;
}
}

String x = deNull( string, "");
Integer y = deNull( integer, 0);

(我还建议将方法名称更改为 valueOrElse)

关于java - 如何从具有泛型类型的方法中输入和返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47047821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com