在Java中,我想有一些东西:
class Clazz<T> {
static void doIt(T object) {
// shake that booty
}
}
Run Code Online (Sandbox Code Playgroud)
但我明白了
Cannot make a static reference to the non-static type T
我不了解基本用途之外的泛型,因此无法理解这一点.我无法在互联网上找到有关该主题的更多信息,这没有任何帮助.
有人可以通过类似的方式澄清这种使用是否可行?另外,为什么我的原始尝试不成功?
我正在尝试创建一个泛型类,它将具有一些基于类型的静态函数.每种类型都有静态成员吗?或者只有在使用通用的地方?我问的原因是我想为每种类型设置一个锁对象,而不是它们之间共享的锁对象.
所以,如果我有
class MyClass<T> where T:class
{
static object LockObj = new object();
static List<T> ObjList = new List<T>();
}
Run Code Online (Sandbox Code Playgroud)
我知道ObjList肯定会为每个使用的泛型类型创建一个不同的对象,但LockObj在每个泛型实例化(MyClass<RefTypeA>和MyClass<RefTypeB>)之间是否会有所不同?
我想问一下泛型类.当我从泛型类创建两个对象实例时会发生什么.他们是否共享每个静态成员,或者两者都拥有自己的静态成员?
例如:
public A<?>(){
public static Integer member = 0;
}
A<Integer> integer = new A<Integer>();
A<String> string = new A<String>();
Run Code Online (Sandbox Code Playgroud)
两者都有Integer并且String背后有相同的参考member?