在clarifai
图像上调用 API 时,它会返回 ClarifaiOutput 概念列表。但是在访问概念时,只能访问值。访问概念的名称会导致NullPointerException
.
concept.name() 导致异常,而 concept.value() 工作正常
可以使用 try catch 块处理异常,但我想知道预测的概念名称。
请让我知道可以做些什么来解决这个问题。
下面是相同的代码:
public void run() {
List<String> ResultList = null;
String ResultString = "";
final List<ClarifaiOutput<Concept>> predictionResults = client.getDefaultModels().generalModel().predict().
withInputs(ClarifaiInput.forImage(new File(pictureFile.getAbsolutePath())))
.executeSync()
.get();
if(predictionResults!=null && predictionResults.size()>0){
ListIterator<ClarifaiOutput<Concept>> itr= predictionResults.listIterator();
while(itr.hasNext()){
ClarifaiOutput<Concept> output = itr.next();
List<Concept> concepts = output.data();
if(concepts != null && concepts.size() > 0){
for (int j = 0; j < concepts.size(); j++) {
Concept concept = concepts.get(j);
float cval=0;
cval = concept.value();
if(cval > 0){
ResultList.add(concept.name());
ResultString += concept.name();
}
}
}
}
}
}