将if/else转换为三值运算符Java

将if/else转换为三值运算符Java,java,if-statement,conditional-operator,Java,If Statement,Conditional Operator,我的函数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() ?

我的函数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,用三元运算符重写它。 这三个三元选项都不起作用,在构建过程中,它们显示出相同的错误:

java:意外类型 必需:变量 发现:价值

同时,注释的if/else块工作正常。 将TextField aField传递到函数中并完成此操作。在我看到建筑之前没有帮助

变量“a”可能尚未初始化

怎么了?

试试这个:

a = (aField.getText() == null || aField.getText().trim().isEmpty())
 ? 1.0 : Double.parseDouble(aField.getText());
试试这个:

a = (aField.getText() == null || aField.getText().trim().isEmpty())
 ? 1.0 : Double.parseDouble(aField.getText());

看起来很不错,除了设置变量的方式

double a = <condition> ? <true> : <false>:

看起来很不错,除了设置变量的方式

double a = <condition> ? <true> : <false>:

三元尝试的问题在于,它们在语法方面没有得到纠正:

//a = aField.getText() == null || aField.getText().trim().isEmpty() ? a = 1 : a = Double.parseDouble(aField.getText());
对于Java语言规范():

15.25。条件运算符?:

条件运算符?:使用一个表达式的布尔值 决定应计算其他两个表达式中的哪一个

条件性压力: 条件性压迫 条件性压迫?表达式:条件表达

因此,在您的例子中是a=(条件表达式)如果
条件表达式
为真,则为'a'的值如果
条件表达式
为假,则为'a'的值

a = aField.getText() == null || aField.getText().trim().isEmpty() 
  ? 1 
  : Double.parseDouble(aField.getText());

三元尝试的问题在于,它们在语法方面没有得到纠正:

//a = aField.getText() == null || aField.getText().trim().isEmpty() ? a = 1 : a = Double.parseDouble(aField.getText());
对于Java语言规范():

15.25。条件运算符?:

条件运算符?:使用一个表达式的布尔值 决定应计算其他两个表达式中的哪一个

条件性压力: 条件性压迫 条件性压迫?表达式:条件表达

因此,在您的例子中是a=(条件表达式)如果
条件表达式
为真,则为'a'的值如果
条件表达式
为假,则为'a'的值

a = aField.getText() == null || aField.getText().trim().isEmpty() 
  ? 1 
  : Double.parseDouble(aField.getText());