`

JDK7新增的工具方法列表

阅读更多

 

在开源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 开发工具包 17.0.7

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

    JDK1.8下载 : jdk_8.0.1310.11_64.zip

    JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具. JDK是学好Java的第一步。不管是你要学习java...

    javaEE-jdk1.9运行工具下载

    JDK1.9是JDK是整个Java的核心,包括了Java运行环境,一堆Java工具和Java基础的类库。jdk1.9已发布,相对jdk1.8的版本 jdk1.9新增三个全新的API和一些小的特性和性能提升,有开发需要的用户可以下载试试!

    Windows JDK1.8下载 :jdk-8u281-windows-x64.zip

    JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具. JDK是学好Java的第一步。不管是你要学习java...

    jdk_api_1.8-JAVA中文版API手册

    JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。 jdk1.8新特性 1)Java 8允许我们给接口添加...

    jdk1.8.0_161

    JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。 jdk1.8新特性 Java 8允许我们给接口添加一个...

    java各种功能集合和工具.rar

    JDK本身提供的工具类 Guava提供的工具类 Apache common-Collection提供的工具类 JDK提供的工具类 Arrays Collections Objects Arrays是操作数组对象的工具类 Collections是操作集合对象的工具类 Objects是操作...

    JDK1.8_161_jre

    JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。 jdk1.8新特性 Java 8允许我们给接口添加一个...

    mac os jdk8

    Java8 新增了非常多的特性,我们主要讨论以下几个: Lambda 表达式 − Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中。 方法引用 − 方法引用提供了非常有用的语法,可以直接引用已有Java类或对象...

    JDK-17-LTS.zip

    2021 年 9 月 JDK17 发布了,JDK17 是最新的一个 LTS 版本。所谓 LTS 版本就是可以得到至少八年产品支持的版本。从 2014 年的 JDK8,到 2018 年的 JDK11,再到 2021 年的 JDK17。 同时 Oracle 也调整了 LTS 版本的...

    jdk1.8版本的安装包

    JDK(Java Development Kit) 是 Java 语言的软件开发工具包 没有JDK的话,无法编译Java程序(指java源码.java文件),如果想只运行Java程序(指class或jar或其它归档文件),要确保已安装相应的JRE。 版本:jdk1.8 ...

    jdk1.7 64位 安装包

    jdk1.7是Java 语言软件重要开发工具包,是整个Java的核心所在。jdk作为Java开发的环境,...4、新增一些取环境信息的工具方法 5、Boolean类型反转,空指针安全,参与位运算 6、两个char间的equals 7、安全的加减乘除

    Jdk新特性教程吐血整理干货.md

    接口新增default方法 Stream API Optional API 新的时间API(java.time强烈推荐使用) 内置Base64工具 Jdk9新特性 PS: jdk9应该是继jdk8之后,又一个重要的版本,后续jdk的迭代,都是基于jdk9来完成的。 模块化: 模块...

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

    Java SE Development Kit 8.0官方下载...由于JDK新增的功能以及程序修正之处相当多,如果需要详尽资料的话不妨可以参考Sun的官方网页。想要撰写出高效能的Java应用程序吗?先将您电脑中的JDK版本更新成为JAVA 2 SDK吧。

    JDK7.0 新增功能特性(new features)

    NULL 博文链接:https://futrueboy.iteye.com/blog/968092

    jdk8u361 x86 rpm包

    JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。没有JDK的话,无法编译Java程序(指java源码....

    jdk8u361 arm64 rpm包

    JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。没有JDK的话,无法编译Java程序(指java源码....

    yapi快速迁移和新增工具

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

    JDK_API_8.0帮助文档(中文)

    jdk8文档是最新的api(中文版),对lambda表达式进行详细的介绍,以及新增一些工具。

Global site tag (gtag.js) - Google Analytics