如何从generics类中调用静态方法?
我有一个包含静态创建方法的类。
public class TestClass { public static TestClass create() { return new TestClass(); } }
当我使用TestClass.create()
,它可以被编译。 但是当我使用TestClass.create()
,它无法编译,如何指定generics?
假设您要求在类型推断失败的情况下明确指定类型,可以使用TestClass.
(注意类型在.
之后的类型,而不是之前)。
是的,那很漂亮……不直观。
Josh Bloch关于这个问题的有效Java第二版的演讲旁注: “每当你指定一个明确的类型参数时,上帝会杀死一只小猫” 。 我想避免像这样的结构,但有时它不能回避。
诀窍是在之后指定generics参数.
character: TestClass.
。
可以在类声明中指定generics类型:
public class TestClass { public static TestClass create() { return new TestClass (); } } // Elsewhere in the code TestClass testClass = TestClass.create();