某类中有变量定义如下:String[] a;
 public String[]getA() {
        return a;
    }
 public void setA(String[] a) {
        this.a= a;    
}现给数组a附值,将数组B中的前N个元素附给a;
即:
**.setA(B);
请问如何实现?

解决方案 »

  1.   

    System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 
              从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。 
      

  2.   


    public class Test {
        public static void main(String[] args){
         String[] s={"ddd","ddd","fff","ll"};
         T t1=new T();
         t1.setA(s);
         System.out.println(t1);
      }
    }class T{
    private String[]a;
    public Boolean setA(String[]arg){
    a=new String[arg.length];
    for(int i=0;i<arg.length;i++){
    a[i]=new String(arg[i]);
    }
    return true;
    }
    public String toString(){
    StringBuffer   s=new StringBuffer();
    for(int i=0;i<a.length;i++){
    s.append(a[i]);
    }
    return s.toString();
    }
    }lz试试
      

  3.   


    public Boolean setA(String[]arg,int n){
    a=new String[n];
    for(int i=0;i<n;i++){
    a[i]=new String(arg[i]);
    }
    return true;
    }
      

  4.   

    刚才没有说明白,数组型变量A是定义在数据bean中的
    先要给其附值。既不能为其指定空间,也不能在加多余的参数
      

  5.   

    class ArrayCopy{String[] a; 
    public String[]getA() { 
            return a; 
        } 
    public void setA(String[] a) { 
            this.a= a;    
        } 
    public void print(){
        for(int i=0;i<this.getA().length;i++)
         System.out.print(a[i]+" ");
        }
         System.out.println();
    }
    public class Test{
      public static void main(String [] args){
          ArrayCopy arrayCopy = new ArrayCopy();
          String [] arr = new String[N];
          for(int i=0;i<arr.length;i++)
             arr[i]=B[i];      //取的B数组的前N个元素 存放在arr数组中
          arrayCopy.setA(arr);  //将arr当参数,给a数组
     //输出a数组
          arrayCopy.print();
        
     }
    }
      

  6.   

    现给数组a附值,将数组B中的前N个元素附给a; 
    没其他参数你这怎么保证将数组B中的前N个给a,这N值怎么定?要么就把数组B全给A就得了,方法如下: public void setA(String[] b) {
    String[] a = new String[b.length];
    System.arraycopy(b, 0, a, 0, b.length);
    this.a = a;
    }