我有一个对象列表说car.我想基于使用Java 8的一些参数来过滤此列表.但是如果参数是null,它会抛出NullPointerException.如何过滤掉空值?
目前的代码如下
requiredCars = cars.stream().filter(c -> c.getName().startsWith("M"));
Run Code Online (Sandbox Code Playgroud)
NullPointerException如果getName()返回则抛出null.
如何在Java 8 lambda中使用非final变量.它抛出编译错误,说'在封闭范围中定义的局部变量日期必须是最终的或有效的最终'
我其实想要实现以下目标
public Integer getTotal(Date date1, Date date2) {
if(date2 == null || a few more conditions) {
date2 = someOtherDate;
}
return someList.stream().filter(filter based on date1 and date2).map(Mapping Function).reduce(Addition);
}
Run Code Online (Sandbox Code Playgroud)
我该如何实现这一目标?它会引发date2的编译错误.谢谢,
我有对象列表说需要转换为地图的汽车.
Public Class Car {
private Integer carId;
private Integer companyId;
private Boolean isConvertible;
private String carName;
private String color;
private BigDecimal wheelBase;
private BigDecimal clearance;
}
Run Code Online (Sandbox Code Playgroud)
我有另一个对象,我想把它当作Map的关键.
public class Key<L, C, R> {
private L left;
private C center;
private R right;
}
Run Code Online (Sandbox Code Playgroud)
我想从List of Car对象创建一个地图.
List<Car> cars;
Map<Key, Car> -> This map contains Key object created from 3 field of Car object namely carId, companyId, isConvertible.
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何使用Java 8 Lambda执行此操作
cars.stream.collect(Collectors.toMap(?, (c) -> c);
Run Code Online (Sandbox Code Playgroud)
在上面的语句中,代替?,我想使用当前car对象中存在的值创建Key类的对象.我怎样才能做到这一点?
我想在Mybatis的Result Map中选择Collection of Integers作为Collection.我无法找到解决这个问题的方法.
结果类是
class Mapping {
private String name;
private List<Integer> ids;
}
Run Code Online (Sandbox Code Playgroud)
Mybatis如下:
<resultMap id="mapping" type="some.package.Mapping">
<result property="name" column="name"/>
<collection property="ids" column="id" javaType="java.util.List" ofType="java.lang.Integer" />
</resultMap>
<select id="getMapping" resultMap="mapping">
SELECT name, id
FROM mapping
</select>
Run Code Online (Sandbox Code Playgroud)
这段代码不适合我.我错过了什么?
我有一个对象列表,我想为列表中的每个对象填充一个属性.我可以像这样使用for循环.
for(Car car : cars) {
String abcd = getSomeValue();
car.setAbcd(abcd);
}
Run Code Online (Sandbox Code Playgroud)
我可以在Java8中使用Lambda做同样的事情.