【问题标题】:juno doesn't recognise properties of generic subclasses [duplicate]juno 不识别泛型子类的属性 [重复]
【发布时间】:2013-01-26 19:52:10
【问题描述】:

Juno 将我的属性引用突出显示为无效,因为我添加了一个参数化类。

public abstract class AbstractBaseAction<viewDataClass extends AbstractViewData>

    protected viewDataClass viewData;

    public viewDataClass getViewData(){
       return viewData;
    }
    ....
}

public class SomeAction extends AbstractBaseAction<SomeViewData>
{
    public AbstractMaturingOptionsAction()
    {
        super(new SomeViewData());
    }

    @PostConstruct
    public void setupViewData(){
        ....
    }
    ....
}

public class SomeViewData extends AbstractViewData

    String someProperty;

    public String getSomeProperty(){
        return someProperty;
    }
    ....
}

....

property="#{SomeAction.viewData.someProperty}"

Juno 正在突出显示一些属性

“someProperty 无法解析为 viewData 的成员”

这值得研究,还是我应该用另一种方式编码?

【问题讨论】:

  • 问题在于 JSF(和其他类)将 viewData 属性视为 AbstractViewData 实例而不是特定的子类。这就解释了为什么您的 IDE 标记了 someProperty 属性,因为该属性属于子级,而不是父级。

标签: eclipse jsf generics el


【解决方案1】:

Eclipse 内置的 EL 验证/自动完成确实是缺点。

考虑安装JBoss Tools。它正确识别超类中的属性。这是一个屏幕截图,作为它为我完成这项工作的证据。

顺便说一句,您的viewDataClass 命名约定很糟糕。您应该使用单个大写字母,例如 V 左右。

【讨论】:

  • 感谢您的帮助,我将看看 JBoss 工具。我不明白这种单字母方法,但那是另一个故事;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多