好用的Spacemacs!

作为Emacs粉,以前最麻烦的莫过于安装各种package和设置各种配置,常常把各种文件拷来拷去的。偶然的机会看到了Spacemacs这个项目,试用之后,感觉真是非常方便。

  • 安装简便,基本就是用git clone得到最新的版本,还可以简单的升级。
  • 默认的配置非常好用,反正比我之前的好,我在配置包丢在网盘上了。😁
  • 安装package非常简单,基本就是几条命令,再不用网上找各种包了。
  • 强大的个人定置,可以分Layer。但其实对我没什么用,基本的已经很好了。

Emacs粉应该果断试试,不会让你失望的!戳这!😋

 

Java坑之Class.isEnum()

发现在这个坑是因为代码里用到了cloning库

在做深度代码拷贝时,发现Enum对象也被Copy了,破坏了Enum对象的唯一性。读了cloning的源代码,其实它考虑了Enum的问题,默认也是跳过的。在其1.9.0版本,它使用了Class.isEnum()来检查,但在1.9.2版本中,检查的代码换成了instanceof Enum, 问题也解决了。对比一下,两种API的区别,

输出是

第二行的输出居然是false, 再看看A2的类签名,不是A,而是一个匿名类A$1。这都是因为A2有Override toString方法,Java产生的了一个匿名类。再看看isEnum的实现,

这下都清楚了,JDK里使用通过基本类是否是Enum的方法,判断当前类是否是Enum, 但当有匿名类的出现,父类就不再是Enum,isEnum的检查也就失效了。

难道Enum的匿名类就不是Enum了吗?😈

这个坑大家要小心啊!