【21】kotlin 扩展成员 扩展方法

阅读: 评论:0

【21】kotlin 扩展成员 扩展方法

【21】kotlin 扩展成员 扩展方法

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小时内删除。

标签:成员   方法   kotlin
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23