【问题标题】:Java Method with generic class as argument以泛型类为参数的 Java 方法
【发布时间】:2016-04-02 03:58:48
【问题描述】:

可以用带有argumet的泛型类在java中编写一个方法吗??

示例:

public void Transfer (class c){
    class.Search();
}

【问题讨论】:

  • 是的,你可以......不过你的语法错误:)
  • 您的问题是正确的,答案是“是”。但是您的示例在语法上不正确且完全令人困惑。
  • 好的,谢谢您的回答。怎样才能写出正确的方法???

标签: java class generics methods arguments


【解决方案1】:

是的,您需要这样做:

public class Foo<T> {
    public void Transfer(T c) {
        c.Search();
    }
}

由于您似乎想要调用一个特定的方法,您可能想要定义一个接口来提供您所追求的方法,并与它绑定通用约束:

public interface MyInt {
    void Search();
}

....
public class Foo<T extends MyInt> {
    public void Transfer(T c) {
        c.Search();
    }
}

或者:

public class Foo {
    public void Transfer(MyInt c) {
        c.Search();
    }
}

最后一个示例取消了泛型并使用了接口,这有时可以生成更易于遵循的代码,具体取决于您要实现的目标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多