java数组object数组
‘壹’ java object 对像是数组怎么转换
public static void main(String[] args){
//input 的定义是OBJECT,实际对象是int数组
Object input=new int[]{1,2};
System.out.println(input);
//可以把input[OBJECT类型]转化成int数组
int[] tranfer=(int[])input;
System.out.println(tranfer.length);
}
我猜测楼主可能是在基于某些框架或设计模式编程时碰到这些问题。因为那些模式为了使参数抽象化,往往会把参数定义成Object. 对于程序编写者来说,你自己实现的方法就应该知道自己只能接受实际类型【注意是实际类型】是int数组的。如果别人没有把int数组当做Object传进来,那么那是别人的错误。当然为了使代码质量高一点,楼主在编写方法时候可以先判断下传进来的参数是不是int数组。比如input.getClass().isArray()能判断这个input对象是不是数组
‘贰’ java中Object... 的用法是什么意思
居然 整个楼里面都答非所问了 看我的看我的哦 提问者都说的这么清楚了
这个问题很好
日常使用不定参数时候基本是Object...可以等同于Object[] obj一维数组理解的
数组本质是连续的指针地址 其中数组的头指针是必须的 但是二者的不同在于何处呢?
很明显
Obj...是针对方法传入参数的 即只能在method()内使用
即 不定参数只能作为方法的形参,不能用作变量
然后你看我建立2个test犯法
java的 数组结构在jvm的堆和栈上是不同的 但是我个人没有理解这问题如果提问者了解欢迎回复我
有关不定参数的使用
public viod method(Object[] obj,Object...) {
Obj操了自己;
}
不过,不定参数有两个规定:第一,方法的参数列表中最多只有一个不定长度的参数;第二,就是不定长度的数组的位置必须是最后一个参数。不然不能通过编译。