【发布时间】:2014-01-09 08:32:11
【问题描述】:
NetBeans 抱怨“final 方法在具有正常范围的类中声明”,该方法是从构造函数调用的,所以我将其声明为 final 以避免发出“构造函数中的可覆盖方法调用”。
类中的最终公共方法有什么问题?
import java.io.Serializable;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
@Named
@SessionScoped
public class A implements Serializable
{
boolean initialized;
public A()
{
setInitialized(true);
}
public final void setInitialized(boolean b)
{
this.initialized = b;
}
}
编辑:来自编译器的投诉措辞不同,但陈述相同:
Normal scoped bean class A is not proxyable because the type is final or
it contains a final method public final void A.setInitialized(boolean) -
Managed Bean [class test.so.A] with qualifiers [@Default @Any @Named].
【问题讨论】:
-
请向我们展示您的代码
-
请给我们您的代码。
-
我认为this reference 解释了为什么你不应该这样做(你不能创建一个覆盖你最终方法行为的代理)。
-
是的,我想现在已经很清楚了,我主要是做这个问题,以便搜索引擎可以在下次发生时快速找到它。
标签: java jakarta-ee cdi