不确定如何说出来。基本上我有一个返回List的方法,但如果列表为空,那么我想要返回一个String。这样做的最佳方式是什么?
if(list.isEmpty()){
return "index";
}else{
return list;
}
答案 0 :(得分:2)
Java的一个主要优点是它是强类型语言,你应该避免破坏它的尝试(如果这对你来说是个问题,使用类似JavaScript的弱类型语言,其中类型可以在运行时轻松更改)。
如果需要返回String
,请使用1个元素的不可变列表包装它:
return list.isEmpty() ? Arrays.asList("index") : list;
另一种方法是返回最常规的类型:Object
,但我认为它绝对没有意义。
答案 1 :(得分:0)
首先,返回List
或String
的唯一方法是返回Object
。但这会强制调用者确定返回对象的实际类型。
在此处返回String
的目的是什么?看起来是通知调用者错误。如果是这样,那么这里适当的程序是抛出异常。而不是返回"index"
,抛出某种异常,无论是内置的还是您创建的类型。然后你可以让方法的返回类型为List
(或List<SomeDataType>
)。