gpt4 book ai didi

Java 通用问题 : "incompatible types; inferred type argument(s) java. lang.Object 不符合类型变量 T 的边界

转载 作者:行者123 更新时间:2023-11-30 04:01:33 25 4
gpt4 key购买 nike

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

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的错误信息:

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

最佳答案

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

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

public static Function LESS_THAN = Test.<Integer>_cmp(true); // error line

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

关于Java 通用问题 : "incompatible types; inferred type argument(s) java. lang.Object 不符合类型变量 T 的边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21893223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com