[英]Generics and inheritance
鉴于这种情况:
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();
}
明显的区别在于一个是通用的而另一个不是。
另一个知道的是,通用的可以捕获参数的实际类型。 当然,在这种情况下它没有任何区别。 但是想象一下,如果你想让返回类型成为参数的确切类型,那么它就会出现。
在这种情况下,没有区别,因为type参数仅在一个地方用作参数的类型。 只有在更复杂的情况下才需要类型参数。
有区别, Generics
用于提供类型安全。 泛型将让你看到编译时错误,例如,可以在早期检测到; 您可以使用编译器的错误消息来确定问题所在并立即修复它。
这里你使用有界类型参数的方法。
http://docs.oracle.com/javase/tutorial/java/generics/bounded.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.