1

我想知道是否可以使用 lambdaj 基于 K 的某些属性对 EntrySet< K, V > 进行排序?

我不认为 Lambdaj 会让我我只是想确认一下。

例如,如果我有一个 Map< A, B > 其中 A 具有以下结构:

public class A{
private double published;

     public double getPublished()
     {
           return double; 
     }
}

我可以在 A.getPublished 上使用 lambdaj 对条目集进行排序吗?

4

1 回答 1

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() 方法。

于 2012-06-29T22:02:58.827 回答