tratar que pointer error como avoid java nullpointerexception sparql jena dbpedia

error - que es java null pointer exception



Inexpected NullPointerException al acceder a los resultados de una consulta (1)

Tengo excepción de puntero nulo en esta línea: array.add (soln.get (query.getProjectVars (). Get (i) .getVarName ()). AsResource (). ToSt ring ());

Rompe la expresión para encontrar el NPE. Una posibilidad es que no sea un URI, por lo que la asResource es incorrecta.

Mejor podría ser

for(String var : query.getResultVars() { Resource r = soln.getResource(var) ; array.add(r.getURI()) ; }

(cuidado con los nodos en blanco)

Esta pregunta ya tiene una respuesta aquí:

Tengo este código y no entiendo por qué obtengo una NullPointerException:

public static ArrayList<String> retrieveObject(String istance,String property){ String sparqlQueryString= "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf- syntax-ns#> "+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> "+ "PREFIX dbpedia: <http://dbpedia.org/resource/> "+ "PREFIX o: <http://dbpedia.org/ontology/> "+ "PREFIX dbprop: <http://dbpedia.org/property/>"+ "PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>" + "select ?c"+ "where {<"+istance+"> "+property+" ?c.}"; ArrayList<String> array = new ArrayList<String>(); Query query = QueryFactory.create(sparqlQueryString); QueryExecution qexec = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", query); ResultSet res = qexec.execSelect(); for(; res.hasNext();) { QuerySolution soln = res.nextSolution(); for(int i=0;i<query.getProjectVars().size();i++){ array.add(soln.get(query.getProjectVars().get(i).getVarName()).asResource().toString()); } } return array; }

Llamo al método de esta manera:

System.out.println(retrieveObject("http://dbpedia.org/resource/Immanuel_Kant","o:deathPlace"));