Java 单例类可以是泛型的吗?
我想为我的应用程序提供一个rest客户端。由于单例用于内部或外部资源的集中管理,因此它们为自己提供了一个全局访问点。我认为rest客户机应该作为一个单例类实现 我可以用一种通用的方式实现这个类,这样我就可以控制我希望类的方法返回的对象的类型 我正在寻找类似于:Java 单例类可以是泛型的吗?,java,design-patterns,singleton,Java,Design Patterns,Singleton,我想为我的应用程序提供一个rest客户端。由于单例用于内部或外部资源的集中管理,因此它们为自己提供了一个全局访问点。我认为rest客户机应该作为一个单例类实现 我可以用一种通用的方式实现这个类,这样我就可以控制我希望类的方法返回的对象的类型 我正在寻找类似于: public class JersyRestClient <T> implements RestClient { private static JersyRestClient instance = null;
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
}
}
public类JersyRestClient实现RestClient
{
私有静态JersySrestClient实例=null;
私人JersylestClient()
{
}
公共静态JersySrestClient getInstance()
{
if(实例==null)
{
已同步(JersyRestClient.class)
{
if(实例==null)
{
instance=new-JersyRestClient();
}
}
}
返回实例;
}
public T getContent(最终字符串resourceUrl)
{
//得到满足
//返回T
}
}
JersyRestClient
没有多大意义。
您将在getInstance()
中返回特定的内容。会是什么
- 原始类型(
)。在这种情况下,您可以备用JersyRestClient
- 某些特定类型
。可能,但没有多大意义JersyRestClient
- 您可以执行
,这将导致转换为JersyRestClient getInstance()
JersyRestClient
T
允许参数化JersyRestClient
的实例。如果您只有一个实例,那么没有什么可以参数化的。JersyRestClient
没有多大意义。
您将在getInstance()
中返回特定的内容。会是什么
- 原始类型(
)。在这种情况下,您可以备用JersyRestClient
- 某些特定类型
。可能,但没有多大意义JersyRestClient
- 您可以执行
,这将导致转换为JersyRestClient getInstance()
JersyRestClient
类型参数
T
允许参数化JersyRestClient
的实例。如果您只有一个实例,那么就没有什么可以参数化的。我只会说它是反变的或抽象的。我只会说它是反变的或抽象的。为什么不可能呢?我认为rest客户端应该作为一个单例类来实现。-Singleton是。我完全同意lexicore的观点,选择Singleton是一个你不应该这样做的决定,因为在以后的开发阶段,其影响可能不仅仅是烦人。但是,如果您决定使用单例,请使用enum
。这是在Java中创建Singleton最有效的方法,比使用任何其他方法来实现该模式更简单,也更不容易出错。在这里查看关于该主题的更多信息:为什么不可能?我认为rest客户端应该作为Singleton类来实现。-Singleton是。我完全同意lexicore的观点,选择Singleton是一个你不应该这样做的决定,因为在以后的开发阶段,其影响可能不仅仅是烦人。但是,如果您决定使用单例,请使用enum
。这是在Java中创建Singleton最有效的方法,比使用任何其他方法实现该模式更简单,更不容易出错。有关该主题的更多信息,请查看此处: