java 泛型的问题,求解答
我在看《thingking in java》中泛型的无界统配符时的例子时,对于使用无界通配符参数作为? super 和? extends的参数时的编译结果很不理解.
哪位大神解答一下
哪位大神解答一下
class Holder<T>
{
void set(T t){}
T get(){return null;}
}
class Main
{
static <T> T exact3(Holder<? extends T> holder , T t)
{
return holder.get() ;
}
static <T> T exact4(Holder<? super T> holder , T t)
{
holder.set(t) ;
return null ;
}
public static void main(String args[])
{
Holder<?> holder = new Holder<Long>() ;
Long lng = 22L ;
exact3(holder , lng) ; //可以编译执行且不产生警告
exact4(holder , lng) ; //编译失败
}
}
...全文
相关推荐
Java泛型三篇文章,让你彻底理解泛型(super ,extend等区别)
Java 泛型详解Java 泛型是 Java SE 5.0 中引入的一项特征,它允许程序员在编译时检查类型安全,从而减少了 runtime 错误的可能性。
java泛型总结
### Java泛型总结#### 一、Java泛型概述Java泛型是在JDK5之后引入的一个特性,它提供了一种类型安全的机制,用于指定集合或其他数据结构中的元素类型。
Java让泛型实例化的方法
Java让泛型实例化的方法Java是一种静态类型语言,它可以在编译时检查类型的正确性,以避免运行时的类型错误。然而,在 Java 中使用泛型时,会出现一个问题:如何实例化泛型对象?
Java如何获取泛型类型
"Java如何获取泛型类型"在Java编程中,泛型是一种强大的工具,它允许我们在编译时检查类型安全,并且可以避免在对象转换时的异常。然而,由于Java的类型擦除,泛型信息在运行时通常不再可用。但
Java泛型使用
- 在类中使用泛型时,尽量避免在成员变量中直接使用类型参数,因为这可能会导致序列化问题。总之,Java泛型提供了一种强大的方式来编写可复用、类型安全的代码。


Java SE
