`
378629846
  • 浏览: 213056 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

JAVA7 新增工具api

 
阅读更多

转自:http://www.iteye.com/topic/470396

在开源java工具包里,最有名的当属apache commons。其中,以commons lang包最为开发者熟知。
但是它作为第三方包存在,或多或少给开发者带来一些不便利。
面包牛奶总是会有的,从java7开始,lang包中的一些优秀工具方法,将被正式引入JDK。

下面是各个已确定被引入的工具类或方法说明。

1, 新增类 java.util.Objects (JDK对工具类的命名一向是以s结尾,例如Collections, Arrays)

A, 空指针安全的 equals, hashCode, toString, defaultNull 方法。
即入参传入NULL,工具方法不会抛空指针异常。
调用方法举例:
Boolean result = Objects.equals(obj1, obj2);

B, 比较对象的大小(需要实现Comparable)。
T Objects.max(T comparable1, T comparable2)
T Objects.min(T comparable1, T comparable2)

2, 系统工具类新增一些取环境信息的工具方法。 (java.lang.System)
以往,你需要通过 System.getProperties(”user.dir”) 这样来取。现在只需要调用一下工具方法就可以了。

File System.getJavaIoTempDir() // IO临时文件夹
File System.getJavaHomeDir() // JRE的安装目录
File System.getUserHomeDir() // 当前用户目录
File System.getUserDir() // 启动java进程时所在的目录

3, 包装类型安全转换到原始类型的工具方法。

boolean Boolean.booleanValue(Boolean obj, boolean defaultValue)
char Character.charValue(Character obj, char defaultValue)
byte Byte.byteValue(Byte obj)
byte Byte.byteValue(Byte obj, byte defaultValue)
short Short.shortValue(Short obj)
short Short.shortValue(Short obj, short defaultValue)
int Integer.intValue(Integer obj)
int Integer.intValue(Integer obj, int defaultValue)
long Long.longValue(Long obj)
long Long.longValue(Long obj, long defaultValue)
float Float.floatValue(Float obj)
float Float.floatValue(Float obj, float defaultValue)
double Double.doubleValue(Double obj)
double Double.doubleValue(Double obj, double defaultValue)

4, 针对包装类型的Boolean,提供了更具可读性和空指针安全的工具方法。

boolean Booleans.isTrue(Boolean booleanObj)
boolean Booleans.isFalse(Boolean booleanObj)
boolean Booleans.isNotTrue(Boolean booleanObj)
boolean Booleans.isNotFalse(Boolean booleanObj)

5, Boolean类型反转,空指针安全

Boolean Booleans.negate(Boolean booleanObj)
True => False , False => True, Null => Null

6, Boolean参与位运算

boolean Booleans.and(boolean[] array)
boolean Booleans.or(boolean[] array)
boolean Booleans.xor(boolean[] array)
boolean Booleans.and(Boolean[] array)
boolean Booleans.or(Boolean[] array)
boolean Booleans.xor(Boolean[] array)

7, 两个char间的equals

boolean Character.equalsIgnoreCase(char ch1, char ch2)

8, 声明一批空数组常量,各种类型

Boolean[] Boolean.EMPTY_ARRAY
boolean[] Boolean.EMPTY_PRIMITIVE_ARRAY
Character[] Character.EMPTY_ARRAY
char[] Character.EMPTY_PRIMITIVE_ARRAY
Byte[] Byte.EMPTY_ARRAY
byte[] Byte.EMPTY_PRIMITIVE_ARRAY
Short[] Short.EMPTY_ARRAY
short[] Short.EMPTY_PRIMITIVE_ARRAY
Integer[] Integer.EMPTY_ARRAY
int[] Integer.EMPTY_PRIMITIVE_ARRAY
Long[] Long.EMPTY_ARRAY
long[] Long.EMPTY_PRIMITIVE_ARRAY
Float[] Float.EMPTY_ARRAY
float[] Float.EMPTY_PRIMITIVE_ARRAY
Double[] Double.EMPTY_ARRAY
double[] Double.EMPTY_PRIMITIVE_ARRAY
String[] String.EMPTY_ARRAY
Class[] Class.EMPTY_ARRAY
Object[] Objects.EMPTY_OBJECT_ARRAY

甚至通过Class类型来取空数组。

Boolean.class.emptyArray();

9, 数组长度判定工具类,空指针安全

boolean Arrays.isEmpty(Object[] array)
int Arrays.size(Object[] array)

10, 集合长度判定工具类,空指针安全

boolean Collections.isEmpty(Collection coll)
int Collections.size(Collection coll)
boolean Collections.isEmpty(Map map)
int Collections.size(Map map)

11, 空指针安全的ClassName获取

String Class.getName(Class cls)
String Class.getSimpleName(Class cls)
String Class.getPackageName(Class cls)

12, 可以直接解析locale信息字符串的工具方法

Locale parse(String localeStr)

13, 提供根据语言取国家列表或根据国家取语言列表的工具方法

List Locale.countriesByLanguage(String langaugeStr)
List Locale.languagesByCountry(String countryStr)

14, 安全的加减乘除

int Math.safeToInt(long value)
int Math.safeNegate(int value)
long Math.safeNegate(long value)
int Math.safeAdd(int value1, int value2)
long Math.safeAdd(long value1, int value2)
long Math.safeAdd(long value1, long value2)
int Math.safeSubtract(int value1, int value2)
long Math.safeSubtract(long value1, int value2)
long Math.safeSubtract(long value1, long value2)
int Math.safeMultiply(int value1, int value2)
long Math.safeMultiply(long value1, int value2)
long Math.safeMultiply(long value1, long value2)

分享到:
评论

相关推荐

    jdk_api_1.8-JAVA中文版API手册

    本手册为JDK-API-1.8版本,java中文版api手册。JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具...

    JDK 开发工具包 17.0.7

    新增和增强的 API:JDK 17.0.7 包含了许多新的和增强的 Java API,例如 Java 媒体框架、Java 加密框架、Java 容器平台等,为开发人员提供了更多的工具和功能。 更好的安全性:JDK 17.0.7 包括许多安全改进,例如增强...

    《Java 8 in Action》是一本关于 Java 编程语言的书籍,重点介绍了 Java 8 中引入的新特性和改进

    新的日期和时间 API: 探讨 Java 8 中新增的日期和时间 API,以及如何使用这些 API 来处理日期、时间和时区等相关操作。 并发编程改进: 讨论 Java 8 中对并发编程的改进,包括 CompletableFuture、新的并发工具和...

    java11安装包正式版

    jdk11官方版是一款专为java编程人员推出的软件开发工具。JAVA JDK 11最新版可以帮助用户轻松的获取到JAVA的运行环境,让你在电脑上进行程序开发操作。JAVA JDK 11软件新增Epsilon 垃圾收集器和lambda 参数的局部变量...

    yapi快速迁移和新增工具

    yapi快速迁移新增工具 解压之后 双击exe文件即可使用, 使用环境 需要jdk1.8环境 java_home环境配置正确,使用之前,请先在config.json文件里面配置自己的yapi 地址。该工具可以通过导入数据库创表语句导入备注 公共...

    宏病毒查杀工具(CleanMacro)

    新增MSExcel.Yagnuul.V变种的查杀

    Java发展史_&_Java9、10新特性

    Java 应用可以通过新增的 jlink 工具,创建出只包含所依赖的 JDK 模块的自定义运行时镜像。这样可以极大的减少 Java 运行时环境的大小。使得JDK可以在更小的设备中使用。采用模块化系统的应用程序只需要这些应用程序...

    Java并发编程实战(中文版)

    Java平台提供了一套广泛而功能强大的api,工具和技术。内建支持线程是它的一个强大的功能。这一功能为使用Java编程语言的程序员提供了解并发编程这一诱人但同时也非常具有挑战性的选择。 本书通过帮助读者理解有关...

    java并发编程

    本书全面介绍了如何使用Java 2平台进行并发编程,较上一版新增和扩展的内容包括:, ·存储模型 ·取消 ·可移植的并行编程 ·实现并发控制的工具类, Java平台提供了一套广泛而功能强大的api,工具和技术。...

    JAVA中的1.8新特性-质问老程序员你确定你看得懂java代码吗?

    java8于2014年发布,相比于java7,java8新增了非常多的特性,如lambda表达式、函数式接口、方法引用、默认方法、新工具(编译工具)、Stream API、Date Time API、Optional等 。 当前很多公司的老产品依然使用的java...

    Java图形用户界面

    当Java 1.1版纳入新的事件模型和Java Beans时,平台被设置--现在它可以被拖放到可视化的应用程序构建工具中,创建GUI组件。另外,事件模型的设计和Bean无疑对轻松的编程和可维护的代码都非常有益。对于Swing组件而言...

    Java9新特性

    主要包含:模块化系统,REPL工具:jshell命令,多版本兼容jar包,语法的新变化:接口私有方法、异常处理、钻石操作符、String存储结构变化等,新增API:Stream、List、Set、图像处理等。可以说java 9 的更新是一个...

    尚硅谷Java9新特性视频

    主要包含:模块化系统,REPL工具:jshell命令,多版本兼容jar包,语法的新变化:接口私有方法、异常处理、钻石操作符、String存储结构变化等,新增API:Stream、List、Set、图像处理等。可以说java 9 的更新是一个...

    Java SE Development Kit(JDK) v8.0.1110.14.zip

    本版的JDK中新增的最新的Java API,除此之外还有相当多的新功能如支持拖放、Java interface definition language (IDL)、Java servlets、Javadoc doclets、Java Virtual Machine Debugger Interface (JVMDI)等等。...

    simpledatax-service:将datax改成一个java服务包,支持单jvm同时运行多个实例,整合编程代码,提供api调用接口,可以直接集成到现有服务框架

    simpledatax基于阿里开源数据采集工具datax做了一些减法,适合特定的场景。关于阿里的datax请移步 重点说明 恢复数据时实例之间的冲突。 将插件包和调度包集成到同一个包内,方便修改。 插件间不再使用不同的类加载...

    java 混淆工具,不可逆 jocky 也许是最好的了

    近年来,Ant已经成为Java应用开发中打包工具的事实上的标准。在应用的开发过程中,我们往往都会有一个Ant脚本,通过该脚本,能够对应用进行编译、打包、发布等一系列过程。因此,Jocky的最佳切入点便是对Ant的支持...

    彩虹UDA软件狗工具带硬复制工具

    集成了原有 DogEdt32.exe 、 Reveal.exe 、 Convert.exe 三个工具,并新增错误码查询功能,令硬件狗编辑调试过程更趋简捷、顺畅。 高强度动态库加密方式 在原有加密方式基础上,新增 C 语言高强度动态库加密方式...

    Java微服务架构163课

    077 创建通用工具项目 078 创建数据库管理项目 079 创建领域模型项目 080 创建管理后台接口项目 081 创建管理后台实现项目 082 为什么要使用 Dubbo 083 再谈微服务-背景介绍 084 再谈微服务-面向服务架构与...

Global site tag (gtag.js) - Google Analytics