Skip to content

Static interface methods not recognized on type generics #4058

@msohaill

Description

@msohaill

Following is some sample code to replicate the issue:

public class Tester<T extends Thing> {
    public void test() {
        System.out.println("Testing: " + T.getStuff());  // Error is here
    }

    public static void main(String[] args) {
        Tester<OtherThing> tester = new Tester<>();
        tester.test();
    }

}

interface Thing {
    static String getStuff() {
        return "Stuff";
    }
}

class OtherThing implements Thing {
}

With this, I get a build error: The method getStuff() is undefined for the type T Java(67108964). However, enabling the "java.jdt.ls.javac.enabled" works, but is not an ideal solution.

This occurs with the latest Language Support for Java(TM) by Red Hat - v1.42.0.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions