(资料图片仅供参考)
下面这段代码,IDE里正常显示。不过,在build时,会报错。
interface Doable { Integer getCode();}@lombok.Getterclass DerivedClass implements Doable { int code;}
错误信息:
Error:(11, 5) java: DerivedClass不是抽象的, 并且未覆盖Doable中的抽象方法getCode()Error:(13, 13) java: DerivedClass中的getCode()无法实现Doable中的getCode() 返回类型int与java.lang.Integer不兼容
下面代码,IDE直接在int上标红线,提示错误:"getCode()" in "DerivedClass" clashes with "getCode()" in "Doable"; attempting to use incompatible return type
interface Doable { Integer getCode();}class DerivedClass implements Doable { @Override public int getCode() { return 1; }}
关于OOP中的方法覆写,遵从“一大两小”原则。其中“两小”中的一个“小”是派生类的返回值类型应≤父类。就是说,下面代码是没有问题的。
interface Doable { Number getCode();}class DerivedClass implements Doable { @Override public Integer getCode() { return 1; }}
关于lombok的@Getter注解。首先要知道,我们熟知的lombok,分为lombok工具和lombok插件(IDEA插件:IntelliJ Lombok plugin)。lombok工具在代码编译期为类生成相应的方法代码,lombok插件是为类IDE增强类里的方法,就是说,lombok为类生成相关方法签名(就像我们人肉为类添加的方法那样,只不过插件是自动生成的),并告诉IDE。像上面的案例中,IDEA就检测到DerivedClass类中有getCode方法,所以不会给出错误提示。而在编译期,lombok工具为DerivedClass生成了int getCode方法,这时,IDEA编译器发现因不符合java覆写原则而报错。
之所以分享这个知识点,则源自昨天的一段代码。 我在项目中新增了一个枚举类PlatOrderInTypeEnum,见下面代码,其中的EnumAbility
/*** * T_Plat_order表IN_TYPE枚举--用来标记交易来源 (API/客户提交/运营提交) * @author zhangguozhan * 2023-5-15 17:46:02 */@Getter@AllArgsConstructor@EnumGetByCodepublic enum PlatOrderInTypeEnum implements EnumAbility{ API(1, "结算接口提交"), MERCHANT(0, "结算后台提交"), BOSS(2, "运营后台导入"); private Integer code; private String description;}
Jenkins错误截图
下一篇:最后一页
X 关闭
发布时间:2023-05-16
发布时间:2023-05-16
发布时间:2023-05-16
发布时间:2023-05-16
发布时间:2023-05-16
发布时间:2023-05-16
发布时间:2023-05-16
发布时间:2023-05-16
发布时间:2023-05-16
发布时间:2023-05-16
发布时间:2023-05-16
发布时间:2023-05-16
发布时间:2023-05-16
发布时间:2023-05-16
发布时间:2023-05-16
发布时间:2023-05-16
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-15
发布时间:2023-05-14
发布时间:2023-05-14
发布时间:2023-05-14
发布时间:2023-05-14
发布时间:2023-05-14
发布时间:2023-05-14
发布时间:2023-05-14
发布时间:2023-05-14
发布时间:2023-05-14
发布时间:2023-05-14
发布时间:2023-05-14
发布时间:2023-05-14
发布时间:2023-05-14
发布时间:2023-05-14
发布时间:2023-05-14
发布时间:2023-05-14
发布时间:2023-05-14
发布时间:2023-05-14
发布时间:2023-05-13
发布时间:2023-05-13
发布时间:2023-05-13
发布时间:2023-05-13
发布时间:2023-05-13
发布时间:2023-05-13
发布时间:2023-05-13
发布时间:2023-05-13
发布时间:2023-05-13
发布时间:2023-05-13
发布时间:2023-05-13
发布时间:2023-05-13
发布时间:2023-05-13
发布时间:2023-05-13
发布时间:2023-05-13
发布时间:2023-05-13
发布时间:2023-05-12
发布时间:2023-05-12
发布时间:2023-05-12
发布时间:2023-05-12
发布时间:2023-05-12
发布时间:2023-05-12
发布时间:2023-05-12
发布时间:2023-05-12
发布时间:2023-05-12
发布时间:2023-05-12
发布时间:2023-05-12
发布时间:2023-05-12
发布时间:2023-05-12
发布时间:2023-05-12
发布时间:2023-05-11
发布时间:2023-05-11
发布时间:2023-05-11
发布时间:2023-05-11
发布时间:2023-05-11
发布时间:2023-05-11
发布时间:2023-05-11
发布时间:2023-05-11
发布时间:2023-05-11
Copyright © 2015-2022 起点电视网版权所有 备案号:皖ICP备2022009963号-12 联系邮箱: 39 60 29 14 2@qq.com