我有一个简单的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(很可能是其他应用服务器)?
答案 0 :(得分:4)
EJB规范是否禁止使用(私有)静态"帮助程序"方法
不,它没有。它确实禁止构成EJB的方法。与容器的接口为static
,无论这些方法是通过方法命名模式还是通过注释来标识。它还禁止EJB读取或写入static
但不是final
的字段。但它没有全面禁止拥有或调用static
方法的EJB。
为什么它适用于JBoss EAP(很可能是其他应用服务器)?
因为它应该。据我所知,IntelliJ在这里是错误的。我推测IntelliJ可能会被标记的特定方法的名称混淆,因为"创建"在里面。这有点接近但实际上并不匹配一些对EJB很重要的老派方法名称模式。