繁体   English   中英

动态转换为Java中的泛型类型

[英]Dynamic cast to generic type in Java

这是我放在一起的一个小例子:

private static <T> T getValue(T defaultValue) {
    if (defaultValue instanceof Boolean) {
        return (T) true;
    }
    return defaultValue;
}

基本上,如果T是布尔类型,我希望返回“true”。 但是,我得到一个编译错误,布尔值不能强制转换为T.

我该怎么做?

还有,有办法检查T是否是boolean类型? 问候。

更改

        return (T) true;

        return (T) Boolean.TRUE;

这将作为Boolean.True工作,类是Boolean的实例。 值“true”是基本类型boolean。

true是基本类型,您希望返回Object。 你应该在一个对象中包装true。

这有效:

private static <T> T getValue(T defaultValue) {
    if (defaultValue instanceof Boolean) {
        return (T)Boolean.valueOf(true);
    }
    return defaultValue;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM