前言
最近做項目,一不小心犯了一個低級錯誤,當時覺得應該有問題,但是並未自測,聯調的時候發現了,很是尷尬,今天記錄一下,避免日後再犯。這個也是初學者比較容易犯的問題,但是也不免有開發幾年了掉坑裏的。
代碼
public class BugTest {
private static int a = 10;
private static int b = 20;
public static void main(String[] args) {
/*int a;
int b;*/
build(a, b);
System.out.println("a=" + a + ",b=" + b);
Student student = new Student();
build(student);
System.out.println(student.toString());
}
private static void build(int a, int b) {
int c = a + b;
System.out.println(c);
a = 100;
b = 200;
System.out.println("a=" + a + ",b=" + b);
System.out.println("----------------------------");
}
private static void build(Student student) {
student.setAge(1);
student.setName("張三");
student.setBd(new BigDecimal("100"));
student.setScore(100);
}
}
運行結果
c=30
a=100,b=200
----------------------------
a=10,b=20
Student{name='張三', score=100, id=null}
總結
當時我用的是包裝類,八種基本類型的包裝類也會出現這種情況,具體原因就不細說了,相信java基礎比較好的應該能想到原因了,後面有時間再做詳細分析以及給出對應的解決方案。