使用泛型将一个对象转换为另一个对象

我有两个班级Foo1和Foo2非常相似的领域。我有一个接受Foo1类的转换方法,如下所示


public static <T> T convert(IFoo1 foo1, Class<T extends IFoo2> clz) {

    T foo2 = clz.newInstance();

    // Setter methods

    return foo2; 

}

但我收到错误:令牌“扩展”的语法错误,预期


类Foo1和Foo2实现接口IFoo1和IFoo2.


湖上湖
浏览 333回答 1
1回答

拉莫斯之舞

您得到的错误是因为您的泛型使用了不正确的边界。将您的方法声明更改为:public static <T extends IFoo2> T convert(IFoo1 foo1, Class<T> clz) {&nbsp; &nbsp; T foo2 = clz.newInstance();&nbsp; &nbsp; ....&nbsp; &nbsp; return foo2;&nbsp;}您可能已经想到了另一种类型的边界。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java