代码之家  ›  专栏  ›  技术社区  ›  Matthias Ronge

是否可以缩写删除变量的Java函数?

  •  2
  • Matthias Ronge  · 技术社区  · 7 年前

    () -> new ArrayList()
    

    然后显示:

    ArrayList::new
    

    s.map(var -> var.getFoo()).flatMap(var -> var.parallelStream()).map(var -> var.getBar())
    

    如果前缀为 var -> var.

    s.map(::getFoo()).flatMap(::parallelStream()).map(::getBar())
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   Nikolas Charalambidis    7 年前

    JLS-15 Object::method 没有讨论-你不能写 ::method var 是对象的实例,对吗?因此:

    s.map(MyObject::getFoo).flatMap(Collection::parallelStream).map(MyObject::getBar)
    

    var -> var.method() .这是一个讨论和个人偏好的问题。

        2
  •  2
  •   GhostCat    7 年前

    s.map(FooHolder::getFoo).flatMap(Whatever::parallelStream).map(OwnersOfBar::getBar)
    

    推荐文章