HashMap之keySet()方法

今天真他娘的冷啊,打算研读研读Properties的源码取取暖,前面都挺顺利,狗日的到keySet()这就不明白了,先贴上调试的代码

keySet()方法一进来做一个非空判断,第一次调用的时候必然为空,但是为空的时候他new了一个内部的KeySet类的对象,直接new了一个对象他就拿到了本map中所有的key,到这里一想肯定是这个内部类的构造方法做了什么优雅的操作,点进Properties.KeySet这个类一看

嘿,这狗日的啥构造器都没有,别慌张,他还有父类呢,父类点进去,空参构造,空代码块,父类的父类点进去,也是啥都没有。那这可咋整啊,光new了一个内部类这就拿到了全部的key了?不可能,一定是哪个细节的哪个调用漏了。于是呼,我把这个内部类的所有方法打上了断点,

如图所示,看看他究竟是有啥特殊的,凭什么就new了它一下它就能拿到本map中所有的key,结果debug运行,下一步,下一步,下一步,他娘的程序跑完了,一个断点都没进,这证明跟它的方法都没关系?其实不然,我后来又把HashMap.KeySet翻了一遍,跟Properties里的这个大致相同,码了个疤子的,不想写了,室友打呼,戴耳机都没用

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值