如果未指定,泛型的类型是什么?

时间:2019-04-09 17:10:39

标签: java generics

如果有一个类,例如:

public class Foo<T> {
    T t;
}

,您只需将其实例化为Foo foo = new Foo();就可以得到警告。如果没有关于类型是什么的说明,那么什么是类型?宾语?我似乎找不到答案。

作为这个问题的扩展,如果我有像这样的课程:

public final class SomeClass{

    private SomeClass(){

        throw new UnsupportedOperationException();
    }

    public static void bar(Foo foo){

    }
}

它在第public static void bar(Foo foo)行发出警告,因为未指定泛型。我不能在没有泛型的情况下指定泛型...所以如何通过获取foo的泛型来做public static void bar(Foo<t> foo)的等价物。不,我不能将泛型放入SomeClass中并使用它,因为它是静态的。此类必须是静态的。

-请注意,这不是我想知道为什么。我知道应该使用它,并且由于向后兼容而不允许这样做。这是一个关于如何在这种特定情况下使用的问题。

0 个答案:

没有答案