22 March 2016

lang包是nutz的工具包,俗话说:磨刀不误砍柴工 ,好到工具可以起到事半功倍的效果,同样,开发过程中,使用一个好的工具库,也能给开发带来不可忽视的便捷效果。今天先来大致认识下nutz的好工具:斧头,哦不,lang包。

  • org.nutz.lang.Code:统计代码的工具。
    • 可以指定一个文件或者一个目录,进行代码统计,可以统计代码的空白行数,代码行数,注释行数,导包行数。
    • 默认是将代码作为java代码规范进行统计的,如果需要统计其他类型代码,构造一个Code.CodeAnalysisConf配置即可。
    • 这个工具包实现起来很简单,将代码文件一个一个读进来,一行一行读取,识别,统计即可。
  • org.nutz.lang.Files: 文件工具类。
    • 文件操作的帮助函数
    • 几乎是个框架都会封装一下的文件操作功能,这里也不例外。
  • org.nutz.lang.hardware:主要用来获取网络配置信息。
    • 工具类Networks,用于获取网络信息,ip,mac地址等。
    • 底层调用java.net.NetworkInterface来获取网络接口信息。
    • 估计作者觉得这玩意儿八百年难用到一次,所以单元测试没写,:-)。不过这种工具类要出错的难度也有点大哈。
  • org.nutz.lang.Mirror:提供了很多反射方法,主要针对Class,Method,Filed登类进行封装操作,使的更方便的使用反射。主要封装以下两方面的内容
    • 第一,针对指定类型的操作,比如获取一个类中所有的方法,私有的,共有的,父类的,接口的,也可以根据方法(返回类型)返回一个方法;列出所有get,set方法等等。获取注解信息登。判断对象类型
    • 第二,对指定对象进行操作,比如根据方法名,执行该方法,根据对象名,获取该对象的值,也可以为对象设置指定属性的值。
  • org.nutz.lang.Strings:字符串工具类,无论那个项目里面都少不了字符串工具类,不管是自己写的,还是用第三方的, 如apache commons包中,google的guava包,还是spring的工具包中等等,java世界中,只要稍微复杂一些的开源框架,或者稍微正式点的项目中,或多或少有自己封装的字符串工具类, nutz也不利外。

等等还有还多, 比如:

  • Times,处理时间的类
  • Streams,流处理类
  • Nums,数字处理类
  • Maths,一些基本的数学公式计算
  • Lang:一个不属于任何帮派的工具类

这里不一一列觉,后面会有选择的挑选一些进行阅读。





Fork me on GitHub