10

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

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

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

4

3 回答 3

22

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

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

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

这是你如何称呼它的方法:

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


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

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


顺便说一句,当您使用这种语法时,许多人会惊叹于您的“精英”——这是一种不常见的语法。

于 2012-06-04T05:26:02.550 回答
7

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

obj.<MyType>createTableCell()

whereobj是包含该方法的类/类型的对象。

于 2012-06-04T05:22:29.807 回答
-2

您可以像调用其中的构造函数一样调用此方法:createTableCell<TypeName>().

于 2012-06-04T05:18:12.157 回答