redhat-developer / redhat-developer/vscode-java

The method is ambiguous for the type

Đang mở
#3,955 1 bình luận 0 reaction 1 người được giao Xem trên GitHub

@snjeza đang làm issue này rồi.

Từ ngày 4/3/2025.

Ngôn ngữ chính
TypeScript
Star
2.3k
Fork
546
Merge trung bình
20 giờ 1 phút
Pull request đã merge (30 ngày)
11

Mô tả

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:

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.