为什么我不能在Java中访问这个创建的对象?

And*_*ili 1 java oop object

我有一个与这个简单的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";
}
Run Code Online (Sandbox Code Playgroud)

如您所见,在我的方法的开头,我声明了一个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
}
Run Code Online (Sandbox Code Playgroud)

使用调试器我看到它确实输入了if语句,它确实检查了对象字段是否被其构造函数正确初始化.

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

"ibanEspanso"    <error(s)_during_the_evaluation>   
ibanEspanso cannot be resolved to a variable    
Run Code Online (Sandbox Code Playgroud)

这怎么可能?如果在程序进入上一个if语句时初始化了该对象,为什么不能找到它?我错过了什么?

小智 5

也许是因为你的引用没有初始化.您可以尝试以下方法:

CodIbanEspanso ibanEspanso = null;
Run Code Online (Sandbox Code Playgroud)