• 在Java中使用泛型消除强制类型转换


    假设类X有一个getObject方法,返回一个Object类型的数据:

    public class X
    {
        public Object getObject(...)
        {
            ...
            return obj;
        }
    }
    

    使用X的代码如下:

    X x = ...;
    A a = (A) x.getObject(...);
    B b = (B) x.getObject(...);
    C c = (C) x.getObject(...);
    

    可以看到,在程序中出现了很多强制类型转换,看起来很不美观。那么如何消除这些类型转换呢?

    可以将XgetObject方法改写成下面这样:

    public class X
    {
        public <T> T Object getObject(...)
        {
            ...
            return (T) obj;
        }
    }
    

    这样,在使用X时,就无需强制类型转换了:

    X x = ...;
    A a = x.getObject(...);
    B b = x.getObject(...);
    C c = x.getObject(...);
    

    为了消除getObject的编译器警告,可以加上SuppressWarnings注解:

    public class X
    {
        @SuppressWarnings("unchecked")
        public <T> T Object getObject(...)
        {
            ...
            return (T) obj;
        }
    }
    
  • 相关阅读:
    经典SQL语句大全
    SQL中With AS
    SQL Server 2008 r2 安装过程图解
    TFS2010中如何添加用户
    SQL中标准函数范例
    关闭子窗体时刷新父窗体
    sharepoint网站备份和还原
    LogHelper类
    TFS2010用户解锁
    ADHelper类
  • 原文地址:https://www.cnblogs.com/baiyuxuan/p/14387815.html
Copyright © 2020-2023  润新知