Можно ли удалить параметры универсального типа из конструктора объекта в Java?

В Java утомительно писать:

Pair<String, String> pair = new Pair<String, String>("one", "two");

Было бы хорошо, если бы типы были выведены для вас, чтобы вы могли по крайней мере, сделайте это:

Pair<String, String> pair = new Pair("one", "two");

И снова пропустите общие параметры.

Вы можете создать статический метод, который может обманывать его следующим образом:

public static <T, S> Pair<T, S> new_(T one, S two) {
    return new Pair<T, S>(one, two);
}

А затем использовать его так: Pair.new _ ("one "," два ") .

Можно ли встроить определение типа в конструктор, чтобы избежать взлома?

Я думал о чем-то вроде:

public <S,T> Pair(S one, T two) {
    this.one = one;
    this.two = two;
}

Но затем вы сталкиваетесь с конфликтами общих типов. Есть ли у кого-нибудь мысли?

5
задан jjnguy 13 June 2011 в 16:24
поделиться