草庐IT

null-stream

全部标签

来自 null 的 java 静态字段

这个问题在这里已经有了答案:Howcomeinvokinga(static)methodonanullreferencedoesn'tthrowNullPointerException?(5个答案)关闭8年前。我在Internet上找到了这段代码,希望有人能向我解释一下...publicclassFoo{staticintfubar=42;publicstaticvoidmain(String[]args){System.out.println(((Foo)null).fubar);}}此代码编译并正常工作,输出结果42。如何在不抛出NullPointerException的情况下从n

java - 在 Java 中有一个静态的 "NULL"对象?

在浏览我正在使用的库的一些代码时,我遇到了这个代码片段:publicclassSomeClass{privatestaticfinalclassNull{/*...*/}publicstaticfinalObjectNULL=newNull();}用一个特殊的NULL对象代替Java的null是一种常见的做法吗?这样做而不是使用Java的内置null有什么好处?我很好奇的主要原因是,在使用该库时,我一直在检查SomeClass是否为null,而没有意识到他们正在使用特殊的NULL对象来表示SomeClass的null对象。编辑:对于那些想知道的人,来自源代码的确切代码是:publicc

java - 如何在 Java 中将 String 转换为 Boolean,但将 null 与 false 区别对待?

我想知道是否有一种直接的方法(一行,无需创建函数)来转换String至Boolean在Java中,但在某种程度上Boolean是null如果String是null.如果我没看错,Boolean中的所有方法类正在返回false如果输入字符串是null.这是为什么?为什么Boolean.valueOf(Strings)更好返回false在s的情况下正在null,而不是返回null? 最佳答案 WhyisitbetterthatBoolean.valueOf(Strings)returnsfalseinthecaseofsbeingnul

java - 使用 Stream 而不是 for 循环创建增量 int 数组

我想创建一个构建递增数字数组的函数。例如,我想获取如下内容:int[]array=newint[]{1,2,3,4,5,6,7,8,...,1000000};该函数会接收两个参数:起始编号(含)和数组的最终长度:publicint[]buildIncrementalArray(intstart,intlength){...}我知道如何使用for循环来做到这一点:publicint[]buildIncrementalArray(intstart,intlength){int[]result=newint[length];for(inti=0;i我不想使用for循环,而是想使用Java8S

java - 如何从 Java 8 Streams 中的 forEach 循环获取列表输出

我有两个不同的相同对象列表,但属性不同,并且在这些对象中具有公共(public)标识符。我想遍历第一个列表并从第二个列表(具有公共(public)属性)中获取相应的对象,然后将这些对象包装起来,最后使用JavaStreams将该对象添加到列表中。这是我举的例子。privateclassPerson{privateStringname;privatebooleanisSenior;privatePerson(Stringname,booleanisSenior){this.name=name;this.isSenior=isSenior;}publicStringgetName(){re

java - Struts2,JSP,迭代中的 null 和 Empty 测试字符串

我正在使用Struts2。并且在测试String是否为null或空时遇到问题。字符串在循环中。到目前为止我所做的是在Action类中我有一个List.User有id和name字段并具有getter和setter...在JSP中我正在做这样的事情${user.name}问题是它不工作:(,我看不到名字,如果我删除block,它们是可见的。 最佳答案 试试这个 关于java-Struts2,JSP,迭代中的null和Empty测试字符串,我们在StackOverflow上找到一个类似的问题:

JAVA stream应用

JAVAstream应用一、根据某个参数查询List中匹配的数据(单个对象)orElse(null):如果没有找到,则将结果置为null1.单个条件Useruser=list.stream() .filter(m->"123".equals(m.getName())) .findAny() .orElse(null);2.多个条件Useruser=list.stream() .filter(m->"123".equals(m.getName())) .filter(m->"1".equals(m.getType())) .findAny() .orElse(null);二、根据某

java - Spring @Async : null hibernate session on LAZY collection

我在服务层方法上使用了@Async注释。当我EAGERLY加载@OneToMany集合字段时一切正常,但是当我尝试访问LAZY加载元素时我发现HibernateSessionImplementor对象session为空。这显然给了我一个异常(exception):org.hibernate.LazyInitializationException:failedtolazilyinitializeacollectionofrole:....这是我的Collection字段:@OneToMany(mappedBy="abc",fetch=FetchType.LAZY,cascade=Casc

java - 改变 Stream 中的元素

在Stream中改变元素是否有“最佳实践”?我特别指的是流管道内的元素,而不是流管道外的元素。例如,考虑我想要获取用户列表的情况,为null属性设置默认值并将其打印到控制台。假设用户类:classUser{Stringname;staticUsernext(inti){Useru=newUser();if(i%3!=0){u.name="user"+i;}returnu;}}在Java7中,它类似于:for(inti=0;i在java8中,我似乎会使用.map()并返回对变异对象的引用:IntStream.range(0,7).mapToObj(User::next).map(user

java - JAXB 返回 null 而不是空字符串

如果内部XML属性值为空,我如何在解码时检索null值?现在我在getter中检查null:publicStringgetLabel(){if(label.isEmpty()){returnnull;}else{returnlabel;}}但可能存在其他更优雅的方式?谢谢。 最佳答案 我认为您的XML看起来或多或少像这样:不幸的是,这意味着您传递了一个空字符串。如果你想通过null你有两个选择:根本不要传递此标记(您的XML根本不应包含标记)。使用xsi:nil.如果使用xsi:nil,首先您必须将您的xml元素(在XSD文件中)声