java 尚未初始化变量_java – 三个参数运算符:局部变量可能尚未初始化

我有以下代码……

import java.util.Random;

public class ThreeArgumentOperator {

private static final Random RANDOM = new Random();

public static void main(String[] args) {

String test;

System.out.println(test = getValue() == null ? "" : test);

}

public static String getValue() {

if (RANDOM.nextBoolean()) {

return "";

} else {

return null;

}

}

}

Eclipse编译器(我正在使用Juno)报告以下错误:

The local variable test may not have been initialized

我的问题是:在这种情况下,编译器是否应该报告它不能将boolean转换为String?我理解运算符==优先于=因此编译器应该抱怨转换,而是抱怨可能没有初始化值.

当我更改以下行时

System.out.println(test = getValue()== null?“”:test);

System.out.println((test = getValue())== null?“”:test);

一切正常.

编辑:我也尝试直接使用javac编译它.它给出了同样的错误.

error: variable test might not have been initialized

System.out.println(test = getValue() == null ? "" : test);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值