我想知道是否可以对EntrySet进行排序< K,V>基于K使用lambdaj的某些属性?
我不认为Lambdaj会让我,我只是想确认一下。
例如,如果我有一张地图< A,B>其中A具有以下结构:
public class A{
private double published;
public double getPublished()
{
return double;
}
}
我可以在A.getPublished上使用lambdaj对输入集进行排序吗?
答案 0 :(得分:3)
不幸的是,由于类型擦除,你所要求的是不可能的。事实上,假设你有Map类型的地图,你想要做的是:
sort(map.entrySet(), on(Map.Entry.class).getKey().getPublished());
这不起作用,因为lambdaj不知道Map.Entry实际上是Map.Entry(当然也不允许像on(Map.Entry.class).getKey()...这样的语法) 。这意味着on(Map.Entry.class).getKey()调用只返回Object类的对象,然后就不允许在其上调用getPublished()方法。