我在代码中使用了此lambda表达式:
File slika = new File(tempPath + File.separator + imena.stream().filter(x -> !x.trim().equals("null")).findFirst().get());
应该从发布到我的servlet的文件中获取一个不等于null的名称。我检查了的内容ArrayList<String> imena
,发现其中包含以下内容(用逗号分隔):null,null,null,Photo0098.jpg。最后一个是我发布到服务器的那个,应该被过滤器拾取的那个,但是我得到一个空指针异常。相同的代码可以在另一个处理文件上载的servlet上运行。有人可以告诉我为什么我的代码即使在相同条件下在其他地方也可以在这里工作吗?
看起来列表中的值是实际值null
,而不是内容为的字符串"null"
。使用方法引用Objects.nonNull
是一种过滤掉它们的好方法:
File slika =
new File(tempPath +
File.separator +
imena.stream().filter(Objects::nonNull).findFirst().get());
// Here --------------^
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句