相关疑难解决方法(0)

泛型类中的静态方法?

在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

我不了解基本用途之外的泛型,因此无法理解这一点.我无法在互联网上找到有关该主题的更多信息,这没有任何帮助.

有人可以通过类似的方式澄清这种使用是否可行?另外,为什么我的原始尝试不成功?

java generics static-methods

190
推荐指数
6
解决办法
15万
查看次数

是否在类型之间共享泛型类的静态成员

我正在尝试创建一个泛型类,它将具有一些基于类型的静态函数.每种类型都有静态成员吗​​?或者只有在使用通用的地方?我问的原因是我想为每种类型设置一个锁对象,而不是它们之间共享的锁对象.

所以,如果我有

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>)之间是否会有所不同?

c# compiler-construction generics static

22
推荐指数
2
解决办法
2193
查看次数

泛型类共享静态成员吗​​?

我想问一下泛型类.当我从泛型类创建两个对象实例时会发生什么.他们是否共享每个静态成员,或者两者都拥有自己的静态成员?

例如:

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

java generics static

6
推荐指数
1
解决办法
194
查看次数