redhat-developer / redhat-developer/vscode-java

The method is ambiguous for the type

未关闭
#3,955 1 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

@snjeza 已经在做这个了。

开始于 2025年3月4日。

主要语言
TypeScript
星标
2.3k
派生
546
平均合并
20 小时 1 分钟
30 天内合并 PR
11

描述

Type: Bug

VS Code is showing error for this code snippet that standard javac has no problem with. It's a combination of having overload methods accepting two different interfaces and a lambda expression that's using while loop.

public class Test {
  public static void main(String[] args) throws Exception {
    System.out.println("Hello, World!");

    test(x -> {
        while (x.length() > 0) {
            System.out.println(x);
            x = x.substring(1);
        }
    });
  }

  public static void test(Consumer<String> consumer) {
      consumer.accept("Hello, World!");
  }

  public static void test(Function<String, Integer> function) {
      System.out.println(function.apply("Hello, World!"));
  }

  public interface Consumer<T> {
      void accept(T t);
  }

  public interface Function<T, R> {
      R apply(T t);
  }
}

Error: The method test(Test.Consumer) is ambiguous for the type Test

Extension version: 1.39.0
VS Code version: Code 1.96.4 (cd4ee3b1c348a13bafd8f9ad8060705f6d4b9cba, 2025-01-16T00:16:19.038Z)
OS version: Linux x64 5.4.0-205-generic
Modes:

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。