Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中强制转换内部条件运算符_Java_Eclipse_List_Casting_Conditional Operator - Fatal编程技术网

在Java中强制转换内部条件运算符

在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

这在eclipse IDE中给出了一个错误。(错误符号出现在行号附近)

在这之后,我做了一些事情,比如初始化数组等等。但是根据一些条件。所以我想使用一个条件运算符,如下所示

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());