在EJB中使用“私有静态”辅助方法

时间:2017-05-22 14:49:41

标签: java java-ee intellij-idea jboss ejb

我有一个简单的EJB:

@Stateless
public class EJB {

    public void aMethod() {
        // ...
        Event event = createEvent();
        // ...
    }

    private static Event createEvent() {
        Event event = new Event();
        // ...
        return event;
    }
}

IntelliJ Ultimate显示错误,因为EJB中存在静态方法。

使用JBoss EAP,EJB工作正常。 EJB规范是否禁止使用(私有)静态“帮助”方法?为什么?为什么它适用于JBoss EAP(很可能是其他应用服务器)?

1 个答案:

答案 0 :(得分:4)

  

EJB规范是否禁止使用(私有)静态"帮助程序"方法

不,它没有。它确实禁止构成EJB的方法。与容器的接口为static,无论这些方法是通过方法命名模式还是通过注释来标识。它还禁止EJB读取或写入static但不是final的字段。但它没有全面禁止拥有或调用static方法的EJB。

  

为什么它适用于JBoss EAP(很可能是其他应用服务器)?

因为它应该。据我所知,IntelliJ在这里是错误的。我推测IntelliJ可能会被标记的特定方法的名称混淆,因为"创建"在里面。这有点接近但实际上并不匹配一些对EJB很重要的老派方法名称模式。