在Java中强制转换内部条件运算符
这在eclipse IDE中给出了一个错误。(错误符号出现在行号附近) 在这之后,我做了一些事情,比如初始化数组等等。但是根据一些条件。所以我想使用一个条件运算符,如下所示在Java中强制转换内部条件运算符,java,eclipse,list,casting,conditional-operator,Java,Eclipse,List,Casting,Conditional Operator,这在eclipse IDE中给出了一个错误。(错误符号出现在行号附近) 在这之后,我做了一些事情,比如初始化数组等等。但是根据一些条件。所以我想使用一个条件运算符,如下所示 List<String> finalText = (allText != null) ? Arrays.asList(allText) : (List<String>) Collections.emptyList(); List finalText=(allText!=null)? asLi
List<String> finalText = (allText != null) ?
Arrays.asList(allText) : (List<String>) Collections.emptyList();
List finalText=(allText!=null)?
asList(allText):(List)Collections.emptyList();
如果我把我的铸件放在等号后面,效果会很好
这个错误的目的是什么
List<String> allHotels = (List<String>) ((allText != null) ?
Arrays.asList(allText) : Collections.emptyList());
List allHotels=(List)((allText!=null)?
Arrays.asList(allText):Collections.emptyList();
以下计算结果为布尔值
(allText != null)
你的演员阵容如何运作还不清楚。错误是正确的
(List<String>) (true or false)
(列表)(正确或错误)
下面应该可以。(不确定我是否答对了你的问题)
List allHotels=(allText!=null)?
Arrays.asList(allText):Collections.emptyList();
查看java.util.Collections代码,emptyList()方法如下所示:
public static <T> List<T> emptyList() {
return (List<T>) EMPTY_LIST;
}
公共静态列表emptyList(){
返回(列表)空_列表;
}
当您将emptyList()更改为EMPTY_LIST时,不进行任何强制转换就可以了,但当然会有警告(EMPTY_LIST是emptyList类的一个实例,与所有列表类一样是泛型的)。问题是关于泛型参数,您必须设置类型。
如果愿意,您可以这样做,甚至不需要任何警告:
List<String> finalText = ((allText != null) ? Arrays.asList(allText) : Collections
.<String> emptyList());
List finalText=((allText!=null)?Arrays.asList(allText):集合
.emptyList());
它在抱怨,因为编译器试图将强制转换应用于三元运算符的第一部分,而不是整个表达式。所以这部分代码:
(List<String>) (allText != null)
注意整个三元运算符周围的括号
实际上,您根本不需要执行强制转换,因为编译器在执行Collections.emptyList()时会推断出正确的类型
List<String> finalText = ((allText != null) ? Arrays.asList(allText) : Collections
.<String> emptyList());
(List<String>) (allText != null)
List<String> allHotels = (List<String>) ((allText != null) ?
Arrays.asList(allText) : Collections.emptyList());