Kotlin扩展成员(工具类的撰写和定义)

一、扩展成员
为现有的类添加方法、属性
扩展方法:fun X.y(): Z{}
扩展属性:val X.m 注意拓展属性不能初始化,类似于接口属性

二、下面来看一下例子
1.Java工具类的撰写

package net.println.kotlin.chapter4.extend;

/**
 * @author:wangdong
 * @description:g工具类
 */
public class Utils {
    //写一个判断参数是否为0的方法
    public static Boolean isEmpty(String[] args){
        return args.length == 0;
    }

    //写一个判断参数不为空的方法
    public static Boolean isNotEmpty(String[] args){
        return args.length > 0;
    }
}

2.Java调用工具类

package net.println.kotlin.chapter4.extend;

import javax.rmi.CORBA.Util;

/**
 * @author:wangdong
 * @description:Java拓展功能
 */
public class ExtendsJava {

    public static void main(String[] args) {

        //如果要判断参数数组是否为0
        if (Utils.isEmpty(args)){

        }
        //判断参数是否大于0
        if (Utils.isNotEmpty(args)){

        }

        //在java中调用kotlin中的方法
        System.out.println(ExtendsKt.times("intel",20));
    }
}

3.Kotlin工具类的撰写

package net.println.kotlin.chapter4.extend

/**
 * @author:wangdong
 * @description:
 */

fun main(args: Array<String>) {

    //对这个字符串循环16次
    println("abcdef".multiply(16))
    //对这个字符串循环16次,调用的是String.times
    println("abc" * 16)

    /**调用成员方法*/
    "abc".b = 5
    println("abc".b)
}

/**扩展成员方法*/
/**定义一个循环方法,传入一个int,返回一个String*/
fun String.multiply(int: Int):String{
    val stringBuilder = StringBuilder()

    for (i in 0 until int){
        stringBuilder.append(this)
    }
    return stringBuilder.toString()
}

/**定义一个循环方法,传入一个int,返回一个String*/
operator fun String.times(int: Int):String{
    val stringBuilder = StringBuilder()

    for (i in 0 until int){
        stringBuilder.append(this)
    }
    return stringBuilder.toString()
}

/**扩展成员属性*/
val String.a: String
    get() = "abc"

var String.b: Int
    set(value) {

    }
    get() = 6

哈,结束了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值