没有参数的通用方法

时间:2012-06-04 05:09:19

标签: java generics

我创建了一个没有参数的泛型方法,例如:

private <T> TableCell<T> createTableCell(){
return new TableCell<T>();
}

那么,在我的程序中,如何为具体类型调用此方法?

3 个答案:

答案 0 :(得分:21)

通常,推断出类型,但您可以使用以下语法指定类型:

注意:方法定义中有错误 - 它没有返回类型:

private <T> TableCell<T> createTableCell(){
    return new TableCell<T>();
}

以下是您可以调用的方式:

TableCell<SomeType> tableCell = myObject.<SomeType>createTableCell();


如果您的方法无法访问任何字段,请考虑将其设置为static方法,您可以将其称为:

TableCell<SomeType> tableCell = MyClass.<SomeType>createTableCell();


顺便说一句,当你使用这种语法时,许多人会对你的“精英”感到惊讶 - 这是一种不常见的语法。

答案 1 :(得分:6)

因为无法从上下文中推断出类型(当您调用方法时),所以在以下列方式调用时必须指定它:

obj.<MyType>createTableCell()

其中obj是包含该方法的类/类型的对象。

答案 2 :(得分:-2)

您调用此方法的方式与调用其中的构造函数的方式相同:createTableCell<TypeName>()