刚刚进入 Java 泛型,我遇到了一些问题:我似乎无法调用参数化类型的方法:
class test
{
public static void main( String args[ ] )
{
invoke_baz( new foo( ) );
}
public static < Type > void invoke_baz( Type object )
{
object.baz( );
}
public static class foo
{
public void baz( )
{ }
}
}
我在这里缺少什么?
最佳答案
您已经声明了泛型类型参数 Type
,但它可以是任何东西,而不仅仅是 foo
,例如 String
。
使用上限限制 type
,以便您知道它是某种 foo
:
public static <Type extends foo> void invoke_baz( Type object )
或者,只需在参数中请求 foo
即可,从而消除对泛型的任何需求:
public static void invoke_baz(Foo object)
关于java - 如何调用参数化类型的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17332507/