java - 如何调用参数化类型的方法?

标签 java generics

刚刚进入 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/

相关文章:

Java - @Before 和@test 注解

Java类继承自引用类

java - Hibernate 中如何获取共享锁和独占锁

java - 从字符串中删除项目

c# - 对 C# 泛型使用约束有什么好处

Java 泛型 : Unbounded wildcard is not working with Object type argument

java - 添加通用参数时未经检查的强制转换警告

ios - Swift 2.0 beta 词典扩展

java - 每次我的 JSlider 移动时都会出现 JDialog

java - 如何在 DialogFragment 的 textView 中 setText()