• 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

  • 相关阅读:
    游戏 猜拳游戏
    python的变量 以及操作系统
    python的异常处理
    python 三元运算
    python random 的用法
    python基础
    Round #417 A. Sagheer and Crossroads(Div.2)
    Round #416 B. Vladik and Complicated Book(Div.2)
    Round #416 A. Vladik and Courtesy(Div.2)
    Educational Round 26 D. Round Subset
  • 原文地址:https://www.cnblogs.com/SsoZhNO-1/p/15141528.html
Copyright © 2020-2023  润新知