在我的Java EE项目中,我有一些抽象课程。 Intellij Idea强调了它们红色,并告诉我:
管理豆必须是混凝土类,或用 @decorator注释 顶级Java类是托管bean如果将其定义为其他任何Java EE规范的托管bean,或者符合以下所有条件:
它不是非静态内部类别。
它是一个具体的类,或者是注释 @decorator。
- 没有用EJB组件定义注释来注释,也没有在ejb-jar.xml.x中声明为EJB bean类。
它具有适当的构造函数 -- 类有一个没有参数的构造函数,OR
- 类声明一个构造函数注释 @inject.
任何解释?
- 我只想使用抽象类,而没有任何注释。尽管Intellij向我展示了这是我的JBOSS服务器不抱怨的错误。
我的猜测是,这是设置>编辑>检查> CDI(上下文和依赖项注入)中的托管豆不一致错误检查。它的严重性是错误,因此它将用红色的线条强调。 似乎您真的不在乎这项检查,因此只需取消选择并保存您的更改即可。
从想法提出的建议,我发现有关构造函数的建议是最简单,最逻辑的。
@Inject
注释;添加没有参数的构造函数也是一个非常无害的选择。