如何强制java接受相同类型的泛型参数

时间:2015-09-21 05:53:48

标签: java

我在The Java™Tutorials Type Inference

中找到了以下代码片段
static <T> T pick(T a1, T a2) { return a2; } 
Serializable s = pick("d", new ArrayList<String>());

因此a1a2可以是不同的类型,如何强制它们为同一类型?说只能调用pick("d", "e");

1 个答案:

答案 0 :(得分:3)

how can I force them to be the same type?

如果T是非常特定的类型,只有String,那么就可以避免泛型。但你可以限制范围,比如 -

static <T extends Number> T pick(T a1, T a2) { return a2; }

pick(0, 1),因为T仅限于数字和子类。我没有画出<T extends String>的示例,因为String类是final