我创建了一个没有参数的泛型方法,例如:
private <T> TableCell<T> createTableCell(){
return new TableCell<T>();
}
那么,在我的程序中,如何为具体类型调用此方法?
答案 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>()
。