Object对象转换成数组的问题 (Object[])args[i] 如果我传的参数是 String[] array = { "1", "2 "};这是没有问题的,但是如果用int[] array{ 1, 2 }就不行,能不能告诉我如何解决这个问题我怎么才能把一个Object对象转换成int[]呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先把int[]转换成Integer[]吧,因为int是基本数据类型,不是一种类 这是最最传统的办法了,应该有捷径的,直接把int[]转成Integer.Integer[复杂数据类型]是int[基本数据类型]的封装public class TestObjectArray { /** * 入口 * @param args 参数列表 */ public static void main(String[] args) { int[] intArray = new int[10]; Integer[] intPack = new Integer[intArray.length]; for (int i = 0; i < intArray.length; i++) { intArray[i] = (int) Math.random(); intPack[i] = intArray[i]; } Object[] objArray = intPack; for (int i = 0; i < objArray.length; i++) { System.out.print(objArray[i] + ","); if (i % 2 == 0) { System.out.println(); } } }} 首先你要明白,在java中分为基本类型和引用类型。基本类型就是我们常见的int、long、float、double、char、boolean等,而引用类型说简单点就是一个类,比如常见的String,File等。而object就是一个类,所以你定义了object数组,传递的就数组参数就必须是object类及其子类。而在java中,object是个顶层基类,而int有对应的类类型,即Integer,它是object的子类。所以,你要向object数组传递int类型的值,必须先转化为int相应的类类型integer。 public static void Print( Object ...args ) { for( int i = 0; i < args.length; i++ ) { if( args[i].getClass().isArray() ) { xxmethod( (Object[])args[i] ); } else { System.out.println( args[i] ); } } }现在代码是这样的,只能传进去String[] array = { "1", "2 "};Jout.Print( "jfdk", "kfj kwe", array ); 而不能用int[] array = {1,2};Jout.Print( "jfdk", "kfj kwe", array ); 有没有办法解决这个问题? 帮看一段小程序 为什么不能更新access数据库 一个可以独立运行的Java应用程序( ) ??(选择题) Corba程序出现nullpointerexception问题 请部大虾 初学问一个关于消息框上的问题 真是见鬼了,我自己的帖子怎么没法删除? 关于包的声明 JCreator Pro版本怎么注册。贴上有注册码。 哪位给我介绍几款比较好的的java编译工具? TIJ4 Chapter Access, Exercise 8, page 233 不知所措
Integer[复杂数据类型]是int[基本数据类型]的封装
public class TestObjectArray { /**
* 入口
* @param args 参数列表
*/
public static void main(String[] args) {
int[] intArray = new int[10];
Integer[] intPack = new Integer[intArray.length];
for (int i = 0; i < intArray.length; i++) {
intArray[i] = (int) Math.random();
intPack[i] = intArray[i];
}
Object[] objArray = intPack;
for (int i = 0; i < objArray.length; i++) {
System.out.print(objArray[i] + ",");
if (i % 2 == 0) {
System.out.println();
}
}
}
}
public static void Print( Object ...args ) {
for( int i = 0; i < args.length; i++ ) {
if( args[i].getClass().isArray() ) {
xxmethod( (Object[])args[i] );
}
else {
System.out.println( args[i] );
}
}
}
现在代码是这样的,只能传进去
String[] array = { "1", "2 "};
Jout.Print( "jfdk", "kfj kwe", array );
而不能用int[] array = {1,2};
Jout.Print( "jfdk", "kfj kwe", array );
有没有办法解决这个问题?