B 附录 Idea debug时的问题 Skipped breakpoint at ...

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)、选中“勾选”
在这里插入图片描述