Подтвердить что ты не робот

Как использовать дженерики в шаблоне строителя

Я пытаюсь использовать шаблон построителя с generics, но я не знаю, как его собрать. Мне нужна помощь и объяснение правильного синтаксиса. Мой код и то, что я пробовал.

public class LanguageMatcher<T, S> {

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

        // Code
    }
}

Usage (Error):

new LanguageMatcher<MyClass, YourClass>().Builder<MyClass, YourClass>()....
4b9b3361

Ответ 1

Параметры типа не наследуются от внешнего класса до статического вложенного класса. Итак, Builder<T, S> имеет разные T и S, чем LanguageMatcher.

Поэтому вам не нужны параметры типа при попытке квалифицировать Builder с помощью LanguageMatcher. И поскольку класс Builder static, вам не нужен экземпляр LanguageMatcher для создания экземпляра Builder:

LanguageMatcher.Builder<MyClass, YourClass> lm =
    new LanguageMatcher.Builder<MyClass, YourClass>();