我应该如何使List方法返回一个String值?

时间:2015-04-23 16:47:41

标签: java

不确定如何说出来。基本上我有一个返回List的方法,但如果列表为空,那么我想要返回一个String。这样做的最佳方式是什么?

if(list.isEmpty()){
    return "index";
    }else{
    return list;
    }

2 个答案:

答案 0 :(得分:2)

Java的一个主要优点是它是强类型语言,你应该避免破坏它的尝试(如果这对你来说是个问题,使用类似JavaScript的弱类型语言,其中类型可以在运行时轻松更改)。

如果需要返回String,请使用1个元素的不可变列表包装它:

return list.isEmpty() ? Arrays.asList("index") : list;

另一种方法是返回最常规的类型:Object,但我认为它绝对没有意义。

答案 1 :(得分:0)

首先,返回ListString的唯一方法是返回Object。但这会强制调用者确定返回对象的实际类型。

在此处返回String的目的是什么?看起来是通知调用者错误。如果是这样,那么这里适当的程序是抛出异常。而不是返回"index",抛出某种异常,无论是内置的还是您创建的类型。然后你可以让方法的返回类型为List(或List<SomeDataType>)。