在 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", "two")
。
是否可以将类型推断构建到构造函数中以避免黑客攻击?
我在想这样的事情:
public <S,T> Pair(S one, T two) {
this.one = one;
this.two = two;
}
但是随后您会遇到泛型类型冲突。有没有人有什么想法?
最佳答案
有一个辅助方法很常见,它会为您暗示类型。
Pair<String, String> pair = Pair.of("one", "two");
那么它看起来不像是这样的 hack。
如果 Java 有一个内置的 Pair 类,那就太好了。 ;)
关于java - 是否可以从 Java 中的对象构造函数中删除泛型类型参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6333244/