Abh*_*Oza 7 java arrays syntax inheritance
作为一个实验,我试图int像这样扩展一个-array:
public class IntArrayExtension extends int[]{
// additional fields and methods.
}
Run Code Online (Sandbox Code Playgroud)
在类本身中添加一些与排序,交换,子数组构建等相关的方法.但是我在编译时遇到了这个错误:
IntArrayExtension.java:1: unexpected type
found : int[]
required: class
public class IntArrayExtension extends int[]{
^
1 error
Run Code Online (Sandbox Code Playgroud)
我很想知道:为什么Java不允许扩展数组?
das*_*ght 11
扩展基本类型(如a String或数组)会打开安全漏洞.如果Java允许您扩展数组,那么采用数组的方法就会变得不安全.这就是字符串的原因final,而数组根本无法扩展.
例如,您可以覆盖该clone()方法,并返回不正确大小的数组.这有可能打破以数组为参数的系统代码逻辑.
最重要的是,数组是Java中的特殊对象,因为它们没有类定义.
您尝试解决的问题有两种解决方案:
Collections或等IntArrayExtension类中封装数组,并提供用于访问数组及其附加功能的包装器方法.| 归档时间: |
|
| 查看次数: |
4358 次 |
| 最近记录: |