| 网站首页 | 业界新闻 | 群组 | 人才 | 技术文章 | 下载频道 | 博客 | 代码贴 | 编程论坛
绝地游戏外挂辅助教学千里之行 始于足下
共有 1220 人关注过本帖
标题:为什么这里出错了?
只看楼主 收藏
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
帖 子:2786
专家分: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: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:74
帖 子:1390
专家分:5957
注 册: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;
    }
}

like wind.
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: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:74
帖 子:1390
专家分:5957
注 册:2015-3-19
  得分:0 
倒不如按泛型改。。。

like wind.
2015-11-09 14:07
calix
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:27
帖 子:249
专家分:1442
注 册:2015-5-4
  得分:0 
如果只是“扩充”数组容量
ArrayList.ensureCapacity
AbstractStringBuilder.expandCapacity
...
都有类似的实现,可以参考下
2015-11-09 15:14
GrayJerry
Rank: 4
等 级:贵宾
威 望:10
帖 子:58
专家分:233
注 册: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.265022 second(s), 7 queries.
Copyright©2004-2017, BCCN.NET, All Rights Reserved