在Java 8中扩展List <T>

奥尔登

我经常想将一个列表映射到另一个列表。例如,如果我有一个人列表,并且想要一个人名列表,我想这样做:

目标

List<Person> people = ... ;

List<String> names = people.map(x -> x.getName());

Java 8可能会发生以下情况:

JAVA 8版本

List<String> names = people.stream()
                           .map(x -> x.getName())
                           .collect(Collectors.toList());

但这显然不是那么好。实际上,我认为使用番石榴更干净:

番石榴版本

List<String> names = Lists.transform(people, x -> x.getName());

但是,我喜欢链接。那么,我的目标有可能吗?

我听说有人说Java 8的默认方法类似于C#扩展方法。使用C#扩展方法,我可以轻松地将辅助方法添加到IEnumerable<T>

public static IEnumerable<TRet> Map<T, TRet>(this IEnumerable<T> list, Func<T, TRet> selector)
{
    return list.Select(selector);
}

但是我不知道如何使用默认方法扩展现有接口

同样,这显然是一个简单的例子。通常,我希望能够扩展List<T>Iterable<T>接口,以更轻松地与流api进行交互。

ak

没有; 你不能那样做。

默认方法与扩展方法不同。它们只能在原始接口中定义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

<T将Enum <T >> T []扩展为Java 8中的返回类型

来自分类Dev

数组<?在Java中扩展T>

来自分类Dev

在Java 8中,如何从Stream <获取Stream <T>?扩展Collection <T >>吗?

来自分类Dev

List <interfaceI>与List <?在Java中扩展InterfaceI>

来自分类Dev

可以在Java 8中扩展枚举吗?

来自分类Dev

jAVA中List <T>的异常行为

来自分类Dev

行类HanoiStack <T扩展Comparable <T >>扩展Stack <T>中的Java泛型编译错误

来自分类Dev

Java中的新<T>

来自分类Dev

Java 8 List <T>到Map <K,V>

来自分类Dev

为什么有<?在java.util.Collections.unmodifiableList API中扩展了T>而不是<T>

来自分类Dev

Java 中的泛型 - 为什么我不能做 Comparable<? 扩展 T> 而不是 Comparable<? 超级T>?

来自分类Dev

Java 8 Optional <T>获得

来自分类Dev

java泛型T扩展了Simpletype吗?

来自分类Dev

Java中的通用方法<T>

来自分类Dev

ArrayList 作为 Java 8 中 List 的实现

来自分类Dev

转换列表<T>地图<T,U>使用Java 8

来自分类Dev

java.util.List <T>代表什么?

来自分类Dev

Java JDBC存储过程进入List <T>

来自分类Dev

java.util.Comparator.naturalOrder采用<T扩展Comparable <?超级T >>并返回Comparator <T>-为什么?

来自分类Dev

Java错误将参数传递给采用T的方法,其中T扩展了Comparable <T>

来自分类Dev

转换流<流<T >>到T [] [与流/λ的在Java中]

来自分类Dev

对Java中的`toArray(T [] a)`方法感到困惑

来自分类Dev

Java中T(通用类型)的实例

来自分类Dev

对Java中的`toArray(T [] a)`方法感到困惑

来自分类Dev

如何在 Java 拥有类中的“List<T>”中的“T”属性发生更改时实现和触发事件

来自分类Dev

扩展并扩展了Java中泛型的组合

来自分类Dev

在Java8中使用Predicate <T>实现过滤器

来自分类Dev

我怎样才能宣布Java中的uint8_t数组

来自分类Dev

可选<T>时isPresent()获取属性或空时,它为空; 在Java中8个功能风格

Related 相关文章

  1. 1

    <T将Enum <T >> T []扩展为Java 8中的返回类型

  2. 2

    数组<?在Java中扩展T>

  3. 3

    在Java 8中,如何从Stream <获取Stream <T>?扩展Collection <T >>吗?

  4. 4

    List <interfaceI>与List <?在Java中扩展InterfaceI>

  5. 5

    可以在Java 8中扩展枚举吗?

  6. 6

    jAVA中List <T>的异常行为

  7. 7

    行类HanoiStack <T扩展Comparable <T >>扩展Stack <T>中的Java泛型编译错误

  8. 8

    Java中的新<T>

  9. 9

    Java 8 List <T>到Map <K,V>

  10. 10

    为什么有<?在java.util.Collections.unmodifiableList API中扩展了T>而不是<T>

  11. 11

    Java 中的泛型 - 为什么我不能做 Comparable<? 扩展 T> 而不是 Comparable<? 超级T>?

  12. 12

    Java 8 Optional <T>获得

  13. 13

    java泛型T扩展了Simpletype吗?

  14. 14

    Java中的通用方法<T>

  15. 15

    ArrayList 作为 Java 8 中 List 的实现

  16. 16

    转换列表<T>地图<T,U>使用Java 8

  17. 17

    java.util.List <T>代表什么?

  18. 18

    Java JDBC存储过程进入List <T>

  19. 19

    java.util.Comparator.naturalOrder采用<T扩展Comparable <?超级T >>并返回Comparator <T>-为什么?

  20. 20

    Java错误将参数传递给采用T的方法,其中T扩展了Comparable <T>

  21. 21

    转换流<流<T >>到T [] [与流/λ的在Java中]

  22. 22

    对Java中的`toArray(T [] a)`方法感到困惑

  23. 23

    Java中T(通用类型)的实例

  24. 24

    对Java中的`toArray(T [] a)`方法感到困惑

  25. 25

    如何在 Java 拥有类中的“List<T>”中的“T”属性发生更改时实现和触发事件

  26. 26

    扩展并扩展了Java中泛型的组合

  27. 27

    在Java8中使用Predicate <T>实现过滤器

  28. 28

    我怎样才能宣布Java中的uint8_t数组

  29. 29

    可选<T>时isPresent()获取属性或空时,它为空; 在Java中8个功能风格

热门标签

归档