编译器无法识别覆盖方法的 Lombok Getter
Compiler doesn't recognize Lombok Getter for overriden method
假设我们在外部工件中有一个接口 TestInterface
,我们无法更改:
public interface TestInterface {
Boolean isTest();
//more getter and setter methods
}
以及这个接口的一个实现,更多的成员对应于父接口。 Lombok 生成的 getters/ setter 无法被编译器识别,所以我必须添加实际的 getter 方法来使下面的 class 可编译。
@Getter
@Setter
public class TestImplementation implements TestInterface {
Boolean test;
//more members
}
编译错误是接口方法未实现时的标准错误:
my.package.TestImplementation 不是抽象的,不会覆盖 my.package.TestInterface
中的抽象方法 isTest()
假设Lombok的getters和setter是在编译后生成的,我不明白为什么getters(由Lombok生成)的正常调用是可编译的。
问题好像是对于一个字段Boolean test
,Lombok会生成一个方法Boolean getTest()
,而不是接口要求的Boolean isTest()
。仅当 属性 为 boolean test
时,您才会获得 boolean isTest()
方法,但 return 类型与接口不匹配。
所以似乎没有办法自己实现 isTest
方法。
假设我们在外部工件中有一个接口 TestInterface
,我们无法更改:
public interface TestInterface {
Boolean isTest();
//more getter and setter methods
}
以及这个接口的一个实现,更多的成员对应于父接口。 Lombok 生成的 getters/ setter 无法被编译器识别,所以我必须添加实际的 getter 方法来使下面的 class 可编译。
@Getter
@Setter
public class TestImplementation implements TestInterface {
Boolean test;
//more members
}
编译错误是接口方法未实现时的标准错误:
my.package.TestImplementation 不是抽象的,不会覆盖 my.package.TestInterface
中的抽象方法 isTest()假设Lombok的getters和setter是在编译后生成的,我不明白为什么getters(由Lombok生成)的正常调用是可编译的。
问题好像是对于一个字段Boolean test
,Lombok会生成一个方法Boolean getTest()
,而不是接口要求的Boolean isTest()
。仅当 属性 为 boolean test
时,您才会获得 boolean isTest()
方法,但 return 类型与接口不匹配。
所以似乎没有办法自己实现 isTest
方法。