В 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;
}
Но затем вы сталкиваетесь с конфликтами общих типов. Есть ли у кого-нибудь мысли?