Как называется синтаксис обобщения в: «X.() метод» - PullRequest
4 голосов
/ 20 ноября 2010

Иногда этот (относительно странный) синтаксис необходим, чтобы избежать несоответствия типов.Но как на самом деле называется этот синтаксис?

Пример использования Google Guava (r07):

ImmutableMap определяет метод

public static <K, V> Builder<K, V> builder()

Его можно использовать так:

ImmutableMap<String, String> map = 
        ImmutableMap.<String, String>builder().put("a", "A").build();

Кстати, встроенная версия:

Builder<String, String> builder = ImmutableMap.builder();       
ImmutableMap<String, String> map = builder.put("a", "A").build();

Ответы [ 2 ]

6 голосов
/ 20 ноября 2010

Я не думаю, что синтаксис имеет конкретное имя.Я рассмотрел JLS, и он просто упоминает его как «вызов универсального метода ».

В вашем случае его можно сузить до «вызова нестатического».универсальный метод ".

Если вы ссылаетесь на тот факт, что параметры типа присутствуют на стороне вызова, вы просто говорите" вызов универсального метода с явными параметрами типа ".

Привести пример, где он (вроде) упоминается в JLS

Принятие решения о том, применим ли метод, в случае универсальных методов§8.4.4), требовать определения фактических аргументов типа.Фактические аргументы типа могут передаваться явно или неявно.Если они передаются неявно, они должны быть выведены (§15.12.2.7) из типов выражений аргумента.

3 голосов
/ 20 ноября 2010

Если синтаксис, о котором вы говорите, это угловые скобки, то они называются ПАРАМЕТРЫ ТИПА.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...