编程语言
首页 > 编程语言> > 在Java中使用泛型消除强制类型转换

在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;
    }
}

标签:类型转换,...,Java,Object,getObject,泛型,return,public
来源: https://blog.csdn.net/baiyuxuan123123/article/details/113752584