残雪余香

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

在Java中,经常会将一个Object类型转成自己想要的Map、List等等。通常的做法是:

Object obj = ....;
Map<String, String> castMap = (HashMap<String, String>) obj;

在这里会产生unchecked cast warning,有代码洁癖的就会想办法干掉它。解决办法就是在方法上添加一个注解@SuppressWarnings("unchecked") ,比较优雅的方案就是提供一个工具类,然后写个专门cast的方法来做这个工作。

    @SuppressWarnings("unchecked")
    public static <T> T cast(Object obj) {
        return (T) obj;
    }

于是乎上面的就可以这么解决了:

Object obj = ....;
Map<String, String> castMap = cast(obj); //import static method

更健壮一点的需要处理一下这里会抛出的ClassCastException,打个warn日志干个啥的都OK。

posted on 2014-05-13 10:14  残雪余香  阅读(46491)  评论(5编辑  收藏  举报