我在我的多模块maven项目中面临Lombok的问题。我有两个类:
@Slf4j
public class Parent {}
@Slf4j
public class Child extends Parent {
public void m() {
log.debug("hello");
}
}
还有一个父maven项目,其中定义了lombok依赖项。还有一个子maven项目,其中我将父项目定义为maven父项目。
当我在 Child
类中使用生成的日志
实例时,会发生编译错误:
[ERROR] log has private access in <Child class>
我可以通过两种方式解决问题:
为什么这样定义lombok依赖的任何解决方法/最佳方式?
谢谢你的帮助。
使用:
我找到了原因,子项目的依赖关系树中的Lombok依赖关系在提供的范围内。我在dependency中添加了Lombok,然后字段就正确地生成了。
继承不应该以任何方式影响你的问题。当您使用< code>@Slf4j注释时,Lombok会创建< code>private static final字段,并且不会继承< code>static字段。在您的情况下,生成的代码如下所示:
public class Parent {
private static final Logger log = LoggerFactory.getLogger(Parent.class);
public Parent() {}
}
public class Child extends Parent {
private static final Logger log = LoggerFactory.getLogger(Child.class);
public Child() {}
public void m() {
log.debug("hello");
}
}
对于多模块 maven 项目,您需要确保正确指定模块间的依赖关系。如果龙目岛在类路径上,那么一切应该开箱即用。
并尝试通过Hibernate使用策略连接实现继承,但当我使用此策略时,我收到异常: 奇怪的是,如果我选择另一个策略(单表或TABLE_PER_CLASS),错误不会出现
问题内容: 我有三节课: 现在在我的主要职能中,我做这样的事情: 但这会产生2个编译时错误: 无法将A转换为fileHandler 无法将B转换为fileHandler 如果基类不是泛型的,那么我如何摆脱这些错误呢? 更新: 我的班级层次结构是: 调用函数的C类或 调用函数的D类。 C和D都从抽象类E派生。 现在,我应该如何在C和D以及E中定义这些功能: 我给出了以下内容: E: C: D: C,
FAQs in section [24]: [24.1] 如何表示“私有继承”? [24.2] 私有继承和组合(composition)有什么类似? [24.3] 我应该选谁:组合还是私有继承? [24.4] 从私有继承类到父类需要指针类型转换吗? [24.5] 保护继承和私有继承的关系是什么? [24.6] 私有继承和保护继承的访问规则是什么? 24.1 如何表示“私有继承”? 用 : priv
问题内容: 假设Java具有以下层次结构类: 这是C#中相同代码的(盲)重复: 当我执行Java代码时,我得到了C#返回的信息。 对我来说,C#的结果更有意义,因为引用B调用了它自己的方法。 Java设计者决定打印而不是打印的逻辑是什么?我的意思是,为什么引用B在C中使用覆盖方法?这种方法的优势是什么? 如何更改Java代码以像C#一样打印出来?我的意思是,我怎么教Java调用它使用的完全引用的方
我在尝试解组对象时遇到了继承问题。这是我的班级 A. B C 容器 然后输入XML文件 我使用了EclipseLink JAXB与Spring OXM集成。当我将xml文件解组到容器实例时,所有内容都是重复的。在列表B中,我有两个重复的B实例(与列表C相同)。 请让我知道我做错了什么?谢谢你!
问题内容: 鉴于Main.java: 结果为: 0 4. 但是,如果a.print输出引用A类,为什么为什么不输出“ A”呢?我怎么知道在这种情况下何时调用一种方法?为什么要调用A的构造函数而仍然使用B的方法? 问题答案: 由于多态性而调用打印。调用的方法取决于的运行时类型,即。何时调用无关紧要;多态总是适用。 两次都调用的方法。一次来自的构造函数,由中的默认构造函数调用。另外一次是您显式致电。