java – 从对象列表的getter创建值列表

前端之家收集整理的这篇文章主要介绍了java – 从对象列表的getter创建值列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

好的,所以我说我有一个非常简单的课程,例如

public class Baby {
   private String Name = "alf";
   public String getName() {
      return Name;
   }
}

现在我想知道.鉴于Baby的列表,在Java中是否有任何更简单/更酷/更短的方式来创建婴儿名字的阵列/ arraylist而不是简单地循环遍历所有婴儿并将他们的名字添加到新列表中?相当于:

ArrayList

……但更酷明白我的意思了吗?

最佳答案
您可以使用Guava’s Lists.transform

Function

这里的关键区别在于,babyNames是原始列表的视图,其中转换是懒惰地执行的.从文档:

The function is applied lazily,invoked when needed. This is necessary@H_404_35@ for the returned list to be a view,but it means that the function@H_404_35@ will be applied many times for bulk operations like@H_404_35@ List.contains(java.lang.Object) and List.hashCode(). For this to@H_404_35@ perform well,function should be fast. To avoid lazy evaluation when@H_404_35@ the returned list doesn’t need to be a view,copy the returned list@H_404_35@ into a new list of your choosing.

显然,实现Function的语法相当冗长 – 直到lambdas才是你的Java.我通常将常用函数保留为常量,以避免在调用站点出现混乱和重新实例化:

public class Baby {

    ...

    public static class Functions {

        private static final Function

是的,它甚至更多的代码,但它隐藏起来,更易于维护.然后在呼叫站点

List
原文链接:https://www.f2er.com/java/438240.html

猜你在找的Java相关文章