阿超
>
lombok的ExtensionMethod
短暂的分离可振奋情意,但长久的离别可毁灭情爱。——米拉波
@ExtensionMethod
今天玩了玩,还挺不错:
例如
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| import lombok.experimental.ExtensionMethod;
@ExtensionMethod({java.util.Arrays.class, Extensions.class}) public class ExtensionMethodExample { public String test() { int[] intArray = {5, 3, 8, 2}; intArray.sort(); String iAmNull = null; return iAmNull.or("hELlO, WORlD!".toTitleCase()); } }
class Extensions { public static <T> T or(T obj, T ifNull) { return obj != null ? obj : ifNull; } public static String toTitleCase(String in) { if (in.isEmpty()) return in; return "" + Character.toTitleCase(in.charAt(0)) + in.substring(1).toLowerCase(); } }
|
就等实现下面的效果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| public class ExtensionMethodExample { public String test() { int[] intArray = {5, 3, 8, 2}; java.util.Arrays.sort(intArray); String iAmNull = null; return Extensions.or(iAmNull, Extensions.toTitleCase("hELlO, WORlD!")); } }
class Extensions { public static <T> T or(T obj, T ifNull) { return obj != null ? obj : ifNull; } public static String toTitleCase(String in) { if (in.isEmpty()) return in; return "" + Character.toTitleCase(in.charAt(0)) + in.substring(1).toLowerCase(); } }
|
主要是iAmNull.or("hELlO, WORlD!".toTitleCase())
直接调用了静态函数