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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值