鉴于这种情况:
class School
{
public void print(){}
}
class Grade extends School{}
class Student extends School{}
这个
有什么区别public <E extends School> void someMethod(E someObj)
{
//now we can pass any object that extends school
//and we have access to any methods that are in school
someObj.print();
}
这个?
public void someMethod(School someObj)
{
someObj.print();
}
答案 0 :(得分:3)
明显的区别在于一个是通用的而另一个不是。
另一个知道的是,通用的可以捕获参数的实际类型。当然,在这种情况下它没有任何区别。但是想象一下,如果你想让返回类型成为参数的确切类型,那么它就会出现。
答案 1 :(得分:1)
在这种情况下,没有区别,因为type参数只是在一个地方用作参数的类型。只有在更复杂的情况下才需要类型参数。
答案 2 :(得分:0)
存在差异,Generics
用于提供类型安全性。泛型将让你看到编译时错误,例如,可以在早期检测到;您可以使用编译器的错误消息来确定问题所在并立即修复它。
您在此处使用有界类型参数。
http://docs.oracle.com/javase/tutorial/java/generics/bounded.html