- java的new的语法好理解,符合你的代码美学吗?
- 如果让你设计一个new的语法,你会怎么设计?
1、new的实际语法模型
不知有多少人和我一样不习惯且讨厌new后面跟着一个空格,反正至今仍然不能接受它。最初学习java语法时看的不是《java编程思想》,而是一本国人写的书,看到new时根本就没搞懂背后的机制。这里不得不建议大家尽量选外国人写的书,国人的书都是坑。于是,挖掘java过程中发现:new这个语法其实是可以做得更美的。不信?你看!ClassName obj = new ClassName ([实参]);
2、new的理想理论模型
ClassName obj = ClassName.ClassName ([实参])
综上所述,new的背后应该是类名.方法的形式。
- 类加载器在类被第一次静态引用时加载.class文件到虚拟机,生成Class对象。
- 构造方法是静态方法。
- 非构造方法的其它静态方法的引用,以及静态字段的引用的语法都是“ClassName.xxx”。
3、new的理想简化模型
ClassName obj = ClassName.new ([实参]);
- 为了减少冗余代码,可以用new代替构造方法名,而且也便于识别是否已经创建实例。
- 从此就再也不用“(new Outer()).new Inner()”这种难以理解又不美观的代码了,用Outer.new().Inner.new()不是快哉?
- 当然,上面总总只是作者的一时思考,感兴趣的同学可以每次见到new后脑补成理想简化模型。