demo()中的List a可以转换成任何类型, demo2中的则不能随便转换 ,其实?一般不这样用,都是用在方法参数里
?表示不知道是什么类型
感觉这两种像等价的一样
其实还是有区别的, ?的用法还挺复杂的
这是?的一种用法,可以接收子类的泛型
如果指定了具体的类型,就不能传子类了
List<?> 不能使用add,但是却可以List<String> str = null; List<?> =str;
demo()中的List a可以转换成任何类型, demo2中的则不能随便转换 ,其实?一般不这样用,都是用在方法参数里
?表示不知道是什么类型
感觉这两种像等价的一样
其实还是有区别的, ?的用法还挺复杂的
这是?的一种用法,可以接收子类的泛型
如果指定了具体的类型,就不能传子类了
List<?> 不能使用add,但是却可以List<String> str = null; List<?> =str;