java接口一般定义为public interface name{}
在不写public的时候默认为public类型,也可以写为friendly.在name后面也可以extends父级接口。
接口里面的方法默认是public abstract且一般写法为方法前面不加修饰符,且不能在方法后面用{}实现具体的方法。
接口里面的成员变量的默认修饰符是:public static final,并且必须赋初值,否则不通过编译。一般写法为:
String IFACTORY = "iFactory";
所以我们在interface中定义成员变量的时候,可以
1:public static final String name = "张三";
2:String name = "张三";
以上两种都可以,老司机一般都是第二种。
所以我们在interface中定义方法的默认修饰符是:public abstract
即:公共抽象的,就是用来被实现该接口的类去实现该方法。所以在接口中定义方法时候,也有两种方式
1:public abstract List<String> getUserNames(Long companyId);
2:List<String> getUserNames(Long companyId);
同样老司机都是第二种。
接口除了用来类用来implement外,还可以作为全局变量使用:
public interface PropertiesNameConstants {
String APP = "app.properties";
String DB_CONNECTION = "iFactory.properties";
String ROUTINGKEY_TABLE_MAPPER = "routingkey-table.mapper.properties";
String PRODUCE_TABLE_MAPPER = "produce-table.mapper.properties";
String PRODUCE_SEQUENCE = "produce.sequence.properties";
String PRODUCE_PRODUCE_NO= "produce.produceNO.properties";
String PUBLISH_MSG_CONFIG = "publishMsgConfig.properties";
}
使用时:
protected static final int EXPIRE = PropKit.use(PropertiesNameConstants.APP).getInt("redis.data.expire", 90);
PropertiesNameConstants.APP就是使用了PropertiesNameConstants里面的成员变量的值。