Java中的怪异铸造问题

时间:2011-12-09 17:03:58

标签: java generics casting

虽然这可能看起来很愚蠢但是,我怎么能这样做:

Expression<?> myExpression = ...

以便它适合给定的参数:

<Y extends java.lang.Comparable<? super Y>> gt(Expression<? extends Y> parameter)

我不知道如何解决这个问题。

2 个答案:

答案 0 :(得分:0)

最简单的是使用擦除(这会给你一个可以关闭的警告)

gt((Expression) myExpression);

答案 1 :(得分:0)

根据方法“gt”的要求,您必须将myExpression声明为表达式,其中X为Y类或子类型为Y.

或者,在调用方法之前将其强制转换为所需的类型,但是之后会收到编译器警告。