在平时写代码时,经常需要将一个Object强制转换成自己想要的类型,比如某个对象、某个List或某个Map。
通常,一般的写法是:
// 将一个Object对象转换成一个Map
Object obj = new Object();
Map<String, String> castMap = (Map<String, String>) obj;
(上面代码示例只是为了这里演示方便使用。)
此时,在(Map<String, String>) obj
这块会出现一个提醒,对于想让代码看起来比较整洁的人来说,很难受。
这里有一种方法可以比较优雅的消除强制转换产生的提醒。
具体用法是,提供一个工具类,内部写个专门用来做消除强制转换提醒的方法,给这个方法加上上面的注解。具体方法如下:
@SuppressWarnings("unchecked")
public static <T> T cast(Object obj) {
return (T) obj;
}
上面出现的注解:@SuppressWarnings("unchecked")
,就是专门用于消除Unchecked提醒的。
使用这个方法,可以将通常的写法改写成如下:
// 将一个Object对象转换成一个Map
Object obj = new Object();
Map<String, String> castMap = cast(obj);
这样就不会产生强制转换提醒了。
nice,代码又变得整洁了一点!