![](/img/trans.png)
[英]Null pointer access: The variable arrayLocations can only be null at this location
[英]Null pointer access in variable inside a for
在標有$的行中顯示以下消息:
此行上有多個標記-空指針訪問:變量InformeSalvaguardasAGR僅在該位置為空-空指針訪問:變量InformeSalvaguardasAGR僅在此位置為空
但是我不知道為什么,InformeAmenazasAGR是一個高級變量,他們可以訪問。 為什么顯示此消息以及如何正確顯示?
List<Object> InformeAmenazasAGR = null;
List<Object> InformeSalvaguardasAGR = null;
try {
Locale locale = (Locale)request.getSession().getAttribute(Globals.LOCALE_KEY);
if (locale == null){
locale = Locale.getDefault();
}
ResourceBundle recursos = ResourceBundle.getBundle(ProcopGlobals.FICHERO_MULTILENGUAJE,locale);
manager = new AGRInformesManager();
// EXTRAER TODAS LAS AMENAZAS.
InformeAmenazasAGR = manager.preparaInformeRiesgoActivos(idDimension, tipoActivo, idActivo, tipoActivoTexto, nombreActivo, recursos);
for (int i = 0; i < InformeAmenazasAGR.size()-1; i++) {
String Amenaza = InformeAmenazasAGR.get(i).toString();
Amenaza = Amenaza.substring(1,3);
Object resultadoQuery = manager.SalvaguardaPorAmenaza(Amenaza);
if(resultadoQuery!= null){
$ InformeSalvaguardasAGR.add(resultadoQuery);
} else {
}
}
if (InformeSalvaguardasAGR != null) {
//Prueba
String informetexto =InformeSalvaguardasAGR.toString();
}
} catch( Exception e ) {
log.error( "No fue posible generar el informe AGR para el Tipo: "+tipoActivo+" Activo: "+idActivo+" en Dimension: "+idDimension+".EX:" + e.toString());
e.printStackTrace();
} finally {
if( manager != null ) {
try {
manager.closeDAO();
} catch( Exception e ) {
e.printStackTrace();
}
manager = null;
}
}
JSONArray JSonArray = new JSONArray();
JSonArray.put(InformeSalvaguardasAGR);
String InformeSalvasAGR = JSonArray.toString();
InformeSalvasAGR = InformeSalvasAGR.substring(1, InformeSalvasAGR.length()-1);
request.setAttribute("InformeAmenazasAGR", InformeSalvasAGR);
先感謝您。
盡管它是全局的,但從未初始化。 您不能添加到為空的列表。 因此,將列表初始化為:
List<Object> InformeSalvaguardasAGR = new ArrayList<Object>();
代替
List<Object> InformeSalvaguardasAGR = null;
如果在try-catch-finally
塊發生了任何事情,則InformeSalvaguardasAGR
和InformeAmenazasAGR
都不會被初始化並保持為null
。 將來如果它們為null
,則可以讓NPE
嘗試調用它們的方法。 我建議您替換為:
List<Object> InformeAmenazasAGR = null;
List<Object> InformeSalvaguardasAGR = null;
有了這個:
List<Object> InformeAmenazasAGR = new ArrayList<Object>();
List<Object> InformeSalvaguardasAGR = new ArrayList<Object>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.