lombok 实验性注解之 @ExtensionMethod

最全的 lombok 注解详情(随着版本不定时更新)

一、注解介绍

作用于类,向类中添加方法,无需创建新的子类,变量与方法参数、返回值类型必须一样(即使是基础类型与包装类也不行)

二、属性介绍(非必选)

  • value:指定添加哪个类的方法,类名.class
  • suppressBaseMethods:如果为 false,基础类型不能调用方法,默认为 true
    如果 suppressBaseMethods = false
    1、变量与方法参数、返回值的类型不能为基础类型
    2、自定义方法不可与引用对象的方法重名(无法使用 变量.方法名)

三、实战演练

@ExtensionMethod(value = 龙一一.class, suppressBaseMethods = true)
public class 乔欣 {
	public static void main(String[] args) {
		int num = 0;
		num = num.aaa();
		System.out.println(num);	// 输出结果为 1;
		"乔欣".print();
		List<String> list = new ArrayList<String>();
		list.add();
	}
}
class 龙一一 {
	public static int aaa(int num) {
		return ++num;
	}
	
	public static void print(String name) {
		System.out.println(name);
	}
	
	public static void add(List<String> list) {
		list.add("龙一一");
	}
}
编译后
public class 乔欣 {
  	public static void main(String[] args) {
    	int num = 0;
    	num = 龙一一.aaa(num);
    	System.out.println(num);
    	龙一一.print("乔欣");
    	List list = new ArrayList();
    	龙一一.add(list);
  	}
}

四、温馨提示

目标方法的修饰符必须是 public,必须是静态方法,方法必须要有对应的参数,变量必须初始化

上一篇:FFmpeg编译


下一篇:IDEA2018中@Data注解不生效的解决方法