Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么可以';我不能用Java访问这个创建的对象吗?_Java_Oop_Object - Fatal编程技术网

为什么可以';我不能用Java访问这个创建的对象吗?

为什么可以';我不能用Java访问这个创建的对象吗?,java,oop,object,Java,Oop,Object,我有一个关于这个简单Java对象创建的问题 我的代码如下所示: @RequestMapping(value = "/salvaDatiContabiliEnte", method = RequestMethod.POST) public String salvaDatiContabiliEnte(HttpServletRequest request, Model model) throws Exception { CodIbanEspanso ibanEspanso; Tid

我有一个关于这个简单Java对象创建的问题

我的代码如下所示:

@RequestMapping(value = "/salvaDatiContabiliEnte", method = RequestMethod.POST)
public String salvaDatiContabiliEnte(HttpServletRequest request, Model model) throws Exception {

    CodIbanEspanso ibanEspanso;

    Tid023Intervento progettoSelezionato = (Tid023Intervento) model.asMap().get("progettoSelezionato");
    System.out.println("INTO salvaDatiContabiliEnte, progettoSelezionato: " + progettoSelezionato.toString());

    Tid022Anagraficarup anagraficaRup = progettoSelezionato.getTid022Anagraficarup();               // Angrafica del RUP
    Tid018Entebeneficiario enteBeneficiario = progettoSelezionato.getTid018Entebeneficiario();      // Ente beneficiario

    DefaultMultipartHttpServletRequest multipartRequest = (DefaultMultipartHttpServletRequest) request;
    GestioneDatiContabiliForm gestioneDatiContabiliForm = new ObjectMapper().readValue(multipartRequest.getParameterMap().get("form")[0], GestioneDatiContabiliForm.class);

    if(gestioneDatiContabiliForm.getIban() != null) {       // Se l'IBAN inserito non è null ---> Se la regione non è il Friuli
        ibanEspanso = new CodIbanEspanso(gestioneDatiContabiliForm.getIban());  // Costruisce l'IBAN espanso a partire dal codice IBAN intero

    }

    return "blablabla";
}
正如您所看到的,在我的方法的开头,我声明了一个CodIbanEspanso-ibanEspanso对象,而不是通过调用构造函数来初始化它

然后在下面的语句中初始化它:

if(gestioneDatiContabiliForm.getIban() != null) {       // Se l'IBAN inserito non è null ---> Se la regione non è il Friuli
    ibanEspanso = new CodIbanEspanso(gestioneDatiContabiliForm.getIban());  // Costruisce l'IBAN espanso a partire dal codice IBAN intero
}
使用调试器,我看到它确实输入了if语句,并且它确实检查了对象字段是否由其构造函数正确初始化

但是,在
if
语句之后,如果我试图查看ibanEspanso对象(我已初始化)的内容,Eclipse调试器会给我以下错误消息:

"ibanEspanso"    <error(s)_during_the_evaluation>   
ibanEspanso cannot be resolved to a variable    
“ibanEspanso”
ibanEspanso无法解析为变量

怎么可能呢?为什么当程序输入上一条
if
语句时,无法找到该对象是否已初始化?我遗漏了什么?

可能是因为您的参考资料没有初始化。您可以尝试以下方法:

CodIbanEspanso ibanEspanso = null;

ibanEspanso
永远不会在if语句之后使用。把它放在if语句之后,任何操作都可以:

System.out.println(ibanEspanso);

不能取消对不保证初始化为某个对象的指针的引用。当
…getIban()==null
时会发生什么?@boristeider的确切含义是什么?你能更深入地解释一下吗?我的意思是,当
gestioneDatiContabiliForm.getIban()==null
ibanEspanso有什么值?请参阅,“局部变量(§14.4,§14.14)在使用前必须显式给定一个值”。如果尝试使用
ibanEspanso
,则会出现编译器错误,例如
ibanEspanso可能尚未初始化。这与此无关,如果使用OPs代码,则无法编译。