
1、自动装箱会把基本类型转换成对应的包装类,比如int会装箱为Integer类,但不会装箱成String类。
2、你可以这么写:
c.add(String.valueOf(6));
3、定义集合的时候,最好指出集合中元素的类型:
Collection<String> c = new ArrayList<String>();
我的都不会报错!我的也是1.8 
看看你的工程的编译版本吧,估计jdk1.8,但编译环境是1.5以下的
试试这样定义可不可以
Collection<Object> c = new ArrayList<Object>()