java中我们常常需要定义很多工具类
dzy.d;public class Utils {public static boolean isEmpty(String[] args) {return args == null || args.length == 0;}public static boolean isNotEmpty(String[] args) {return args != null && args.length >= 0;}
}
dzy.d;public class ExtemdsJava {public static void main(String[] args) {if(args.length==0){}if(args.length!= 0) {}Utils.isEmpty(args);Utils.isNotEmpty(args);}
}
而kt 提供了扩展方法 当然我饿米也可以自己定义扩展方法
下面案例打印16次adc
dzy.dimport java.lang.StringBuilderfun main(args: Array<String>) {args.isNotEmpty()args.isEmpty()println("abc".multiply(16))
}fun String.multiply(int: Int): String {val stringBuilder = StringBuilder()if (int > 0) {for (i in 0 until int) {stringBuilder.append(this)}String()}return stringBuilder.append(this).toString();
}
格式如下
扩展的类名.自定义的方法
String.multiply
使用起来就跟系统方法一个样
"abc".multiply(16)
还可以定义类似python的语法
dzy.dimport java.lang.StringBuilderfun main(args: Array<String>) {args.isNotEmpty()args.isEmpty()println("abc" *16)
}operator fun String.times(int: Int): String {val stringBuilder = StringBuilder()if (int > 0) {for (i in 0 until int) {stringBuilder.append(this)}String()}return stringBuilder.append(this).toString();
}
"abc" * 16
java如何调用这些扩展方法呢
dzy.d;public class ExtemdsJava {public static void main(String[] args) {String res=ExtendsKt.times("adc",16);System.out.println(res);}
}
简言之
ExtendsKt.times("adc",16);
扩展成员
dzy.dimport java.lang.StringBuilderfun main(args: Array<String>) {"".a"".b=5println("".b)
}val String.a: Stringget() = "abc"
var String.b: Intget() = 5set(value) {}
本文发布于:2024-01-31 04:56:28,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170664818725687.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |