首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >clarifai2 java客户端。concept.name()返回Java NullPointerException,但concept.value返回置信值

clarifai2 java客户端。concept.name()返回Java NullPointerException,但concept.value返回置信值
EN

Stack Overflow用户
提问于 2018-03-06 13:30:39
回答 1查看 61关注 0票数 0

在图像上调用clarifai API时,它将返回ClarifaiOutput概念列表。但在访问概念时,只能访问值。访问概念的名称会产生NullPointerException

concept.name()会导致异常,而concept.value()可以正常工作

可以使用try catch块处理异常,但我想知道预测的概念名称。

请告诉我可以做些什么来解决这个问题。

下面是相同的代码:

代码语言:javascript
复制
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();
                                }
                            }
                        }
                    }
                }
            }
EN

回答 1

Stack Overflow用户

发布于 2018-03-06 15:10:09

NullPointerException不是由concept.name()引起的,而是由ResultList.add()方法引起的。

需要初始化ResultList以避免异常

代码语言:javascript
复制
List<String> ResultList = new ArrayList<String>();

这就解决了这个问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49123976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档