最近写了个java语法相关的库,为java支持了拓展函数和模板字符串。
Zircon (github路径为122006/Zircon)
引入该库可以为原有java的项目基础上自由使用拓展函数和模板字符串的语法。
3分钟上手,尽力减少学习成本,使用无感知。
1. 拓展方法
什么是拓展方法
能够向现有类型直接“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改现有类型。调用扩展方法的时候,与调用在类型中实际定义的方法相比没有明显的差异。
拓展方法的必要性
拓展方法没有必要性。拓展方法只是为了能让你更简单地完成你的代码,专注于业务逻辑而不是各种工具类的记忆中。
在任何场景,你都可以用工具类的静态方法以替换拓展方法的实现,但是拓展方法可以让你写得更嗨以及代码更加简洁。
比如java的集合类不好用,你可以设计个第三方库叫JAVA-Collection-plus,让引用其的项目都能使用自定义且强壮的方法。羡慕kotlin的集合类操作符么,你也可以实现一套然后分享给更多人使用
欢迎使用
Zircon,希望能给你带来更好的java代码体验。
使用方法及注意事项
在项目任意位置中,声明一个包含注解
@ExMethod的方法。后续你可以在该项目、及引入该项目的项目的任何地方中使用这个方法。
2. 内插字符串
什么叫内插字符串?
字符串插值功能构建在复合格式设置功能的基础之上,提供更具有可读性、更方便的语法,用于将表达式结果包括到结果字符串。
对某个表达式执行计算后,其结果立即转换为一个字符串并包含到结果字符串中
如何使用内插字符串
若要将字符串标识为内插字符串,可在该字符串前面加上
$或f符号。 可嵌入任何会在内插字符串中返回值的有效 JAVA 表达式。
常见问题回答:
- 为什么不用kotlin:
一个项目切kotlin麻烦,但是这个库引用之后就可以直接使用,几乎0改造成本
- 你在生产环境上用么?
该库都是编译时织入,对运行没有任何影响。(个人项目用得爽得了)
- 为什么不用lombok、manifold?
lombok的拓展方法用起来很麻烦,实用性很低。manifold的拓展方法和模板字符串方面有部分缺陷,功能上也更局限,而且太重了。
- 公司都不用lombok,为啥要用你这个
说得对,但是个人项目真的写得很爽~ :)
- java21已经支持了模板字符串
众所众知中国互联网的java版本只有8。本库可以给各个java版本增加模板字符串功能
github传送门:github.com/122006/Zirc… 欢迎各位大佬指教(走过路过给个star呗~