前言
最近做项目,一不小心犯了一个低级错误,当时觉得应该有问题,但是并未自测,联调的时候发现了,很是尴尬,今天记录一下,避免日后再犯。这个也是初学者比较容易犯的问题,但是也不免有开发几年了掉坑里的。
代码
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基础比较好的应该能想到原因了,后面有时间再做详细分析以及给出对应的解决方案。