Java接口interface field及method
Java编程规范中对interface中的域有几点说明
一、接口中的field
一个是interface域必须有初始化器,也就是说其必须被显式初始化。
二是不能使用文本定义顺序靠后的字段来给前边字段赋值来初始化。
三是不能使用自身对自身赋值来初始化。
四是接口域的初始化器中不能出现super、this关键字,除非是出现在匿名类的body中。
1、在任何一个接口的body中声明的field,隐式的都表示为public、static、final的。
2、当一个接口继承的多个接口中包含同样的字段声明时,只要在接口中不直接简单地使用名称来引用该字段便不会出错。否则便会报compile-time error。因为这样的引用是有歧义的,引用的是哪一个?
3、当一个接口从不同的路径继承了同一个成员字段时,不会发生歧义,因为本质上就是一个接口字段。
二、接口中的method
1、接口中的方法其修饰符不需显式指明,都是public。
2、如果需要继承接口的类无需实现接口中的方法,则接口中的该方法可声明成default。
3、接口中声明的不带body的方法隐式的都是abstract方法,无需显式声明。
4、接口不继承static方法。所以接口中static修饰的方法也必须要有方法体。
5、非抽象类继承接口时必须要实现其不含方法体的方法。
6、另外,接口中定义default方法是为其继承类提供方便,子类不用定义,但是却需要使用这一功能。所以加了default修饰的接口方法都必须有方法体。
7、在接口中定义一个成员类型,会隐藏其所有继承的接口中的相同名称的成员
三、在mapstrcut中的使用
/**
* @author ssozh
* @data 2021/8/13
*/
@Mapper(componentModel = "spring")
public interface PersonBeanMapper {
PersonBeanMapper INSTANCE = Mappers.getMapper(PersonBeanMapper.class);
PersonVO toVO(Person person);
}
实际上,我们知道mapstruct是APT的插件,我们也可以通过依赖注入的方式把这个Mapper注入进我们要使用的方法中:
@Resource
private PersonBeanMapper personBeanMapper;
引用自:https://blog.csdn.net/weixin_43878293/article/details/103332570
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix