为什么不为泛型自动封装Java原始类型?

shr*_*000 7 java generics autoboxing

Java不允许在通用数据结构中使用原始类型.例如,不允许使用ArrayList <int>.原因是,原始类型不能直接转换为Object.但是Java 1.5确实支持自动装箱,而包装类在通用数据结构中工作.那么为什么编译器无法将其自动设置为ArrayList <Integer>?为什么这不起作用还有其他原因吗?

new*_*cct 7

据我所知,你的建议ArrayList<int>与之相同ArrayList<Integer>.是对的吗?(换句话说,在内部它仍然存储一个整数;并且每次你输入或取出它,它会自动打包/取消装箱,但自动装箱/自动装箱已经这样做了ArrayList<Integer>.)

如果它是相同的,那么我不明白具有重复语法的效用是什么<int>意思相同<Integer>.(事实上,它会带来其他问题,例如因为int[]是不一样的运行时类型Integer[],所以如果你有T[],并且Tint,这一切意味着什么?)