有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java单例类可以是泛型的吗?

我想为我的应用程序提供一个rest客户端。由于单例用于内部或外部资源的集中管理,因此它们为自己提供了一个全局访问点。我认为rest客户机应该作为一个单例类实现

我可以用一种通用的方式实现这个类,这样我就可以控制我希望类的方法返回的对象的类型

我正在寻找类似于:

public class JersyRestClient <T> implements RestClient
{
    private static JersyRestClient instance = null;

    private JersyRestClient()
    {

    }

    public static JersyRestClient getInstance()
    {
        if (instance == null)
        {
            synchronized (JersyRestClient.class)
            {
                if (instance == null)
                {
                    instance = new JersyRestClient();
                }
            }
        }
        return instance;
    }

    public T getContent(final String resourceUrl)
    {
        //get content
        //return T
    }

}

共 (2) 个答案

  1. # 1 楼答案

    JersyRestClient<T>没有多大意义。 您将在getInstance()中返回特定的内容。会是什么

    • 原始类型(JersyRestClient)。在这种情况下,您可以使用<T>
    • 某些特定类型JersyRestClient<MyContent>。可能,但没有多大意义
    • 您可以执行<T> JersyRestClient<T> getInstance(),这将导致转换为JersyRestClient<T>

    类型参数T允许参数化JersyRestClient的实例。如果您只有一个实例,那么没有什么可以参数化的

  2. # 2 楼答案

    我会说只有当它是反变的或抽象的