我需要根据是否设置了参数(opath)来更改类/流类型,但是当我在if-else语句中声明时,netbeans抱怨找不到变量oos。

我不明白这一点,因为var oos总是被设置的,而且它永远都不会被定义?

if(_param.get("opath") != null) {
    FileOutputStream oos = new FileOutputStream(_param.get("opath").toString());
} else {
    OutputStream oos = csocket.getOutputStream();
}

do something with oos...

最佳答案

将您的代码更改为以下内容

OutputStream oos;
if(_param.get("opath") != null) {
    oos = new FileOutputStream(_param.get("opath").toString());
} else {
    oos = csocket.getOutputStream();
}
//do something with oos


它只是关于作用域,并使对象可用于您要使用它的代码中

关于java - 在if else语句中使用可选的类类型定义变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51978127/

10-11 10:36