我正在尝试“修改”我一直在升级的其他一些代码。
我将其归结为一个简单的示例泛型类,然后使用该类。
首先,我像这样声明了一个通用参数化类
//generic class
class WillsAgent<T> {
public WillsAgent(T data) {//do nothing with this }
}
然后一个消费类尝试像这样使用它
@CompileStatic
public abstract class Test<T> {
public WillsAgent<T> agent( T state) {
final WillsAgent<T> safe = new WillsAgent<T> (state)
return safe
}
}
在使用@CompileStatic 声明的情况下,IDE 在 (state) 下显示一个红色波浪线,将参数传递给构造函数,如下所示
如果我注释掉 @CompileStatic 声明 - 错误就会消失
如果我将鼠标悬停在曲线上(启用@CompileStatic),它会显示:Constructor 'WillsAgent' in 'groovyx.gpars.agent.WillsAgent<T>' cannot be applied to '(T)'
除了删除 @CompileStatic 之外,我不知道如何解决这个问题
有没有人知道为什么它会抱怨这个以及如何解决它?