初始化Java String文字给出错误

时间:2019-01-13 12:18:24

标签: java optional-parameters

此Java字符串文字初始化会在初始化代码处于检查par1是否具有值的范围内时给出错误。我不确定我在做什么还是其他问题?

enter image description here

public class optionalFields {

    public static void main(String args[])
    {
        optional_func(Optional.of(true));
    }

        public static void optional_func(Optional<Boolean> par1)
    {
        if(par1.isPresent())
            String s = "test";
        System.out.println(s);
    }
 }

1 个答案:

答案 0 :(得分:5)

应该是:

if (par1.isPresent()) {
    String s = "test";
    System.out.println(s);
}

除非将声明放在块中,否则不能在if语句中声明变量。此外,由于您正在打印s,因此println语句也应该位于if语句的块内。

如果即使条件为假也要打印s,则应该为:

String s = null;
if (par1.isPresent())
    s = "test";
System.out.println(s);