我的函数seta()如下所示:
public double setA(){
double a;
aField.getText() == null || aField.getText().trim().isEmpty() ? a = 1 : a = Double.parseDouble(aField.getText());
//a = aField.getText() == null || aField.getText().trim().isEmpty() ? a = 1 : a = Double.parseDouble(aField.getText());
//return aField.getText() == null || aField.getText().trim().isEmpty() ? a = 1 : a = Double.parseDouble(aField.getText());
/*if(aField.getText() == null || aField.getText().trim().isEmpty())
a = 1;
else
a = Double.parseDouble(aField.getText());*/
return a;
}
我想去掉if/else,用三元运算符重写它。这3个三元选项都不起作用,在构建时,它们显示出相同的错误:
java:需要意外类型:找到变量:值
同时,注解的if/else块工作正常。将textfield afield传递到函数中并完成此操作。在我看到建筑前帮不上忙
变量“a”可能尚未初始化
怎么了?
3条答案
按热度按时间pzfprimi1#
试试这个:
r8uurelv2#
看起来很好,除了一件事你是怎么设置的
a
变量。您还可以使用
Apache
utils简化了一点代码。mitkmikd3#
三元尝试的问题是,它们没有在语法方面得到纠正:
对于java语言规范(§15.25):
15.25. 条件运算符?:
条件运算符?:使用一个表达式的布尔值来决定应计算其他两个表达式中的哪一个。
ConditionalRexpression:ConditionalRexpression ConditionalRexpression?表达式:条件表达式
那么在你的例子中是一个=(条件表达式)?“a”的值,如果
conditional expression
为真:如果conditional expression
是假的;