Java返回类型泛型

无尾礼服世界

我是在 java 中使用泛型的新手,我有一个简单的方法,我想从中返回任何类型,这个方法返回其他类getters方法,例如我有channels类并且有getChannelId()方法,我想从这个方法返回:

@SuppressWarnings("unchecked")
public <T extends Channels> T getChannelColumn(ChannelContentModel.channelColumns column) {
    switch (column) {
        case id:
            return (T) channel.getId();
        break;
        case title:
            return (T) channel.getChannelTitle();
            break;
    }
    return null;
}

getId是 int 和getChannelTitlestring,我如何修复此方法以返回任何类型?

在我的代码中channelChannels类的实例,提前致谢

优素福K。

正如@Geckstar 所评论的;

Java 是静态类型的

但是可以从编译错误中清除代码示例。

  1. 删除中断,因为在 return 语句之后不需要中断。
  2. 从对象扩展返回类型。T 扩展对象而不是 T 扩展通道
  3. id 必须是整数,而不是整数或更改为 (T)(Integer) channel.getId()

这不是一个好的解决方案,它只是修复编译错误。但是这种方法的使用可能会导致运行时失败。

@SuppressWarnings("unchecked")
public <T extends Object> T getChannelColumn(ChannelContentModel.channelColumns column) {
    switch (column) {
        case id:
            return (T) channel.getId(); //int must be Integer
        case title:
            return (T) channel.getChannelTitle();
    }
    return null;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章