lxk11153
V2EX  ›  Java

Java stream 方法匹配的简写?请看举例

  •  
  •   lxk11153 · Sep 26, 2020 · 3343 views
    This topic created in 2229 days ago, the information mentioned may be changed or developed.
    .collect(Collectors.toCollection(LinkedHashSet::new))
    
    // java.util.LinkedHashSet#LinkedHashSet()
    // java.util.LinkedHashSet#LinkedHashSet(int)
    

    如果想让它走#LinkedHashSet(int),有什么简写方式吗?

    Supplement 1  ·  Sep 26, 2020
    // 其实就是问这一坨的简写,不要纠结为何要这么写,我就是举个例子来研究研究
    .collect(Collectors.toCollection(new Supplier<LinkedHashSet<Object>>() {
        @Override
        public LinkedHashSet<Object> get() {
            return new LinkedHashSet<>(3);
        }
    }));
    
    kawowa
    kawowa
    Sep 26, 2020
    1
    查了下,collectors 没有 toLinkedList 之类的,内容里面的::new 就是简写了吧
    lxk11153
    lxk11153
    OP
    Sep 26, 2020
    2
    @kawowa #1 你理解不对,我是说`(LinkedHashSet::new))`调用的是`#LinkedHashSet()`方法,
    我想问 ?如何简写? 让它调用的是`#LinkedHashSet(int)`方法 [doge]
    wowo243
    wowo243
    Sep 26, 2020 via Android
    3
    先 maptoint ?
    lxk11153
    lxk11153
    OP
    Sep 26, 2020
    4
    @wowo243 #3 See 第 1 条附言
    hodur
    hodur
    Sep 26, 2020
    5
    ::new 应该不支持带参数的
    MingYueQingFeng
    MingYueQingFeng
    Sep 26, 2020❤️1
    6
    LinkedHashSet::new 只是简化 HashSet hs = LinkedHashSet();用途,指定构造函数只能 .collect(Collectors.toCollection(() -> new LinkedHashSet(1)))
    lxk11153
    lxk11153
    OP
    Sep 26, 2020
    7
    @GuoGuang #6 好像,一时短路没想到`->` [doge]
    aguesuka
    aguesuka
    Sep 26, 2020 via Android
    8
    你这段代码写出来会有警告,alt 回车会变成 6 楼的形状
    lxk11153
    lxk11153
    OP
    Sep 26, 2020
    9
    @aguesuka #8 嗯,我没用现代化开发工具 IntelliJ IDEA 编辑代码 [doge]
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5093 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 07:39 · PVG 15:39 · LAX 23:39 · JFK 02:39
    ♥ Do have faith in what you're doing.