| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1300 人关注过本帖
标题:为什么这里出错了?
只看楼主 加入收藏
msl12
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2015-2-6
结帖率:25%
收藏
 问题点数:0 回复次数:8 
为什么这里出错了?
代码如下:
------------------------------------------------------------------------
import java.lang.reflect.Array;
import java.util.*;

public class Test12 {
    public static void main(String args[]) throws Exception {
        int temp[] = { 1, 2, 3 };
        int newTemp[]=(int [])arrayInc2(temp, 5);
        System.out.print(Arrays.toString(newTemp));
    }
   
    public static Object arrayInc2(Object obj, int len) {
        Object newO=new Object[len];
        int co=Array.getLength(obj);
        System.arraycopy(obj, 0, newO, 0, co);
        
        return newO;
    }
}
搜索更多相关主题的帖子: Object public import 
2015-11-08 12:47
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
这样写啥意思?

一片落叶掉进了回忆的流年。
2015-11-08 16:13
msl12
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2015-2-6
收藏
得分:0 
回复 2楼 诸葛欧阳
想要把数组扩大的效果
2015-11-08 22:49
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
public static Object arrayInc2(Object obj, int len)
方法的返回值类型前后不一致
程序代码:
public class Test12 {
    public static void main(String args[]) throws Exception {
        int temp[] = { 1, 2, 3 };
        int newTemp[]=(int [])arrayInc2(temp, 5);
        System.out.print(Arrays.toString(newTemp));
    }
    
    public static int[] arrayInc2(int[] obj, int len) {
        int[] newO=new int[len];
        int co=Array.getLength(obj);
        System.arraycopy(obj, 0, newO, 0, co);
        
        return newO;
    }
}

剑栈风樯各苦辛,别时冰雪到时春
2015-11-09 11:07
msl12
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2015-2-6
收藏
得分:0 
回复 4楼 林月儿
所以我不是已经强制转换了么?
2015-11-09 13:02
msl12
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2015-2-6
收藏
得分:0 
回复 4楼 林月儿
其实我想利用反射机制来完成的,能不能不改成int?
2015-11-09 13:03
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
倒不如按泛型改。。。

剑栈风樯各苦辛,别时冰雪到时春
2015-11-09 14:07
calix
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:249
专家分:1442
注 册:2015-5-4
收藏
得分:0 
如果只是“扩充”数组容量
ArrayList.ensureCapacity
AbstractStringBuilder.expandCapacity
...
都有类似的实现,可以参考下
2015-11-09 15:14
GrayJerry
Rank: 5Rank: 5
等 级:贵宾
威 望:14
帖 子:75
专家分:310
注 册:2015-10-20
收藏
得分:0 
Object newO=new Object[len];    newO被定义成object数组
int newTemp[]=(int[])arrayInc2(temp, 5);    newO不能转为int[]数组

下面的代码可以:
public class Test12 {
    public static void main(String args[]) throws Exception {
        int temp[] = { 1, 2, 3 };
        int newTemp[]=(int[])arrayInc2(temp, 5);
        System.out.print(Arrays.toString(newTemp));
    }
   
    public static Object arrayInc2(Object obj, int len) {
        Object newO=new int[len];
        int co=Array.getLength(obj);
        //int[] s = (int[])obj;
        System.arraycopy(obj, 0, newO, 0, co);
        
        return newO;
    }
}
2015-11-25 16:09
快速回复:为什么这里出错了?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033983 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved