数组长度不能变,定死了
这样吧
public Byte[] getBytes(int[] args)
{
Byte[] b=new Byte[20];
for(int i=0;i<args.length;i++)
{
b[i]=(Byte)args[i];
}
return b;
}

解决方案 »

  1.   

    class test 
    {
    public byte[] getBytes(int[] args)
    {
    byte[] b=new byte[20];
    for(int i=0;i<args.length;i++)
    {
    b[i]=(byte)args[i];
    }
    return b;
    }
    public static void main(String[] args) 
    {
    int[] a=new int[5];
    a[1]=12;
    test t=new test();
    System.out.println(t.getBytes(a));
    }
    }
      

  2.   

    楼上的两位不负责任。
    首先,如果int数值不在-128 -- 127之间呢?
    其次,byte数组的长度完全可以用int数组的长度*4来确定,没必要定死
      

  3.   

    //把一个int型转化为4个byte型
    b[0]=(byte)(n>>24);
    b[1]=(byte)(n>>16);
    b[2]=(byte)(n>>8);
    b[3]=(byte)n;
      

  4.   

    public byte[] getBytes(int[] args){
            int len = args.length;
            byte[] bs = new byte[len*4];
            for(int i=0;i<len;i++){
               System.arraycopy(int2byte(args[i]),0,bs,i*4,4);
            }
            return bs;
        }    public byte[] int2byte(int n){
            byte[] b = new byte[4];
            b[0]=(byte)(n>>24);
            b[1]=(byte)(n>>16);
            b[2]=(byte)(n>>8);
            b[3]=(byte)n;
            return b;
        }