如何在构建器模式中使用泛型

Luc*_*uke 11 java generics

我试图使用泛型的构建器模式,但我不知道如何将它放在一起.我需要一些帮助和正确语法的解释.我的代码,以及我尝试过的内容.

public class LanguageMatcher<T, S> {

    // Code
    public final static class Builder<T, S> {

        // Code
    }
}

Usage (Error):

new LanguageMatcher<MyClass, YourClass>().Builder<MyClass, YourClass>()....
Run Code Online (Sandbox Code Playgroud)

rge*_*man 11

类型参数不会从外部类继承到静态嵌套类.所以Builder<T, S>实际上有一个不同TS不是LanguageMatcher.

因此,在尝试Builder使用时,您不需要类型参数LanguageMatcher.因为Builder类是static,你不需要实例LanguageMatcher化实例Builder:

LanguageMatcher.Builder<MyClass, YourClass> lm =
    new LanguageMatcher.Builder<MyClass, YourClass>();
Run Code Online (Sandbox Code Playgroud)