关于java数组中某个元素用等号赋值给中间变量需要注意的问题。
相关代码和说明如下:
package test;
/**
* @author : suyuyuan
* @date :2016年5月11日 上午10:01:56
* @version 1.0
*/
public class test {
public static void main(String[] args) {
Bean1 bean1 = new Bean1();
Bean1 bean3 = new Bean1();
Bean1[] bean1Array = new Bean1[2];
bean1.setA("12");
bean1.setB("34");
bean3.setA("90");
bean3.setB("111");
bean1Array[0]=bean1;
bean1Array[1]=bean3;
Bean1[] bean1ArrayList= new Bean1[3];
for(int i=0;i<bean1Array.length;i++){
Bean1 temp = new Bean1();
temp=bean1Array[i]; //此处是将bean1Array数组的首地址赋值给temp
temp.setA("what"); //此处的setter方法会将bean1Array数组中的所有元素的a属性设置成what!
bean1ArrayList[i]=temp;
}
System.out.println(bean1Array);
}
}
package test;
/**
* @author : suyuyuan
* @date :2016年5月28日 上午10:45:06
* @version 1.0
*/
public class Bean1 {
private String a;
private String b;
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
}