首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java泛型问题:“不兼容类型;推断类型参数java.lang.Object不符合类型变量T的界限

Java泛型问题:“不兼容类型;推断类型参数java.lang.Object不符合类型变量T的界限
EN

Stack Overflow用户
提问于 2014-02-19 21:48:37
回答 1查看 2.9K关注 0票数 1

以下简单程序使用Eclipse编译器进行编译,但不使用Javac:

代码语言:javascript
复制
public class Test {

    public static interface Function<T1, T2, Boolean> {
        Boolean apply(T1 t1, T2 t2);
    }

    private static <T extends Comparable<T>> Function<T, T, Boolean> _cmp(final boolean lt) {
        return new Function<T, T, Boolean>() {
            @Override
            public Boolean apply(T t1, T t2) {
                if (lt) {
                    return (t1.compareTo(t2) < 0);
                } else {
                    return (t1.compareTo(t2) > 0);
                }
            }
        };
    }

    public static Function LESS_THAN = _cmp(true); // error line
    public static Function GREATER_THAN = _cmp(false); // error line

}

Javac的错误消息:

代码语言:javascript
复制
java: P:\java-tool\src\main\java\T3.java:20: incompatible types; inferred type argument(s) java.lang.Object do not conform to bounds of type variable(s) T
found   : <T>T3.Function<T,T,java.lang.Boolean>
required: T3.Function
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-19 22:04:09

类型推断不适用于版本1.6 -

尝试手动指定类型参数。例如-

代码语言:javascript
复制
public static Function LESS_THAN = Test.<Integer>_cmp(true); // error line

请注意,您使用的是您自己泛型类的原始版本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21893223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档