#提问 想请教一下这种代码是怎么运行的,...的全部评论

#提问 想请教一下这种代码是怎么运行的,...的全部评论
2个评论

1,你调了对象的tostring,里面调了size() 2,应该是debug造成的,会私自调对象的方法。 你把debug关掉,并且不要调对象的tostring,然后在init()里面加打印语句,就能看出不会执行init()。 到底是哪里调的还不知道

2023-12-26
尾号三7一3
你好,我按照你说的试了之后确实没有输出,然后在代码中调用tostring之后就有输出了,所以想问下两个之间有啥关系
2023-12-26
尾号三7一3
然后在debug中按下这个蓝色的键直接就跳转到size方法
2023-12-26
尾号三7一3
然后如果是红色的step into就直接跳到父类的方法中
2023-12-26
鱼友0412
AbstractList的父类有重写toString方法,里面的迭代器调用了size
2023-12-27
尾号三7一3
懂了,谢谢大佬了
2023-12-27

代码中的匿名类是通过继承抽象类AbstractList来实现的。匿名类的初始化过程包含了一个初始化方法init(),该方法在get()和size()方法被调用时执行。

在匿名类的内部,我们可以定义和使用成员变量。实例化匿名类时,会先创建该类的实例,然后在初始化块中初始化成员变量。

在这个例子中,list是一个final的List<String>类型的成员变量,在init()方法中被初始化。在get()和size()方法中,首先调用init()方法来确保该成员变量被初始化。...

2023-12-26
尾号三7一3
你好,我想问下这种情况该怎么解释,就是调用tostring()之后会调用size(),然后觉得这个输出无法理解?
2023-12-26
下载 APP