2017-04-25 14 views
0

ありがとう、ジェネリックスを理解しようとしています。私はジェネリックパラメータでシングルトンを作成しました。一般的なシングルトンでの静的フィールドの使用

public class Singleton<T> { 
public static T getInstance() { 
if (instance == null) 
instance = new Singleton<T>(); 
return instance; 
} 
private static T instance = null; 
} 

しかし、私はこのエラーを得た:

iは回避策として何を使用することができます非静的型Tをstatic参照できませんか?あるいは、エラーの原因は何ですか? newacctsで

+0

それはとにかく、一般的なシングルトンを持ってしても意味がありません。あなたは1つだけを持つことができるので、さまざまな基本タイプに対して異なるものを持つのは何ですか? –

答えて

0

ルックはthisポストに答える:

You can't use a class's generic type parameters in static methods or static fields. The class's type parameters are only in scope for instance methods and instance fields. For static fields and static methods, they are shared among all instances of the class, even instances of different type parameters, so obviously they cannot depend on a particular type parameter.

関連する問題