方法引用 - 无效的方法引用 - 不能从静态上下文中引用
我有以下代码
StringJoiner joiner = new StringJoiner(", ");
joiner.add("Something");
Function<StringJoiner,Integer> lengthFunc = StringJoiner::length;
Function<CharSequence,StringJoiner> addFunc = StringJoiner::add;
最后一行导致错误
Error:(54, 53) java: invalid method reference
non-static method add(java.lang.CharSequence) cannot be referenced from a static context
我知道这种方法不能以静态方式使用,我应该有这样的东西:
Function<CharSequence,StringJoiner> addFunc = joiner::add;
相反。然而,我不明白为什么第三行,与是java编译器完全正确。有人可以解释一下为什么吗?StringJoiner::length;