1、问题描述
在Idea 中debug,发现属性莫名其妙赋值了,在所有的赋值语句打上断点也没有用,偶然发现debug时出现 Skipped breakpoint at ... because it happened inside debugger evaluation
提示,如下图
这是因为 Idea debug时默认会在内部将 toString 方法执行一次,然后回显提示数据,我的程序问题就是这个原因造成的,在 toString 方法中调用了给属性赋值的方法,且打上断点不起作用。
2、解决方法
如下图
3、验证
public class SkippedBreakpoint{
static class User{
private String name;
private int age;
public User() {
this.name = "csdm";
this.age = 11;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
public static void main(String[] args) {
User user = new User();
System.out.println(user);
}
}
在 System.out.println(user)
语句前打上断点,显示如下:
(1)、去掉“勾选”
(2)、选中“勾选”