美文网首页Android开发经验谈安卓开发安卓开发
为什么Kotlin属性访问方式比Java的Get/Set方式好

为什么Kotlin属性访问方式比Java的Get/Set方式好

作者: 蓝不蓝编程 | 来源:发表于2019-04-08 15:00 被阅读6次

简要介绍

一开始接触Kotlin,就发现Kotlin是采用属性访问的,和之前Java的Get/Set方法不一样.不过感觉这也没有什么牛B的,因为Java只要把字段设置为public,那也是可以通过属性访问的.

类样例

  1. Java代码
public class User {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
  1. Kotlin代码(相比于Java,简介很多啊)
class User {
    var name :String?=null
}

访问方式对比

  1. Java方式(通过Get/Set):
user.setName("jerry");
String name = user.getName();
  1. Kotlin方式
user.name = "jerry"
val name = user.name
  1. Java属性方式(属性设置为public)
user.name = "jerry";
String name = user.name;

差异分析

  1. Java里属性之所以提倡采用Get/Set访问,是因为希望提供一种隔离以适应变化.
    如上面User中的name属性,虽然我们设置为jerry,但是如果希望获取name时变成大写的,那就可以在Get或Set方法中做文章,而Java方式如果改成属性方式后,则无法再采用上面方式适应变化了.
public String getName() {
    return name.toUpperCase();
}

public void setName(String name) {
    this.name = name.toUpperCase();
}
  1. 那Kotlin是适应上述变化,该如何做呢?
var name :String?=null
    get() = field?.toUpperCase()

var name :String?=null
    set(value) {
        field = value?.toUpperCase()
    }

如果要将属性设置为只读的,可以在get前面增加private即可.

var name :String?=null
    private set

总结

Kotlin相比于Java的写法更为简洁,同时又保持了扩展性,故值得一试哦.

安卓开发技术分享: https://www.jianshu.com/p/442339952f26
点击关注专辑,查看最新技术分享
更多技术总结好文,请关注:「程序园中猿」

相关文章

  • 为什么Kotlin属性访问方式比Java的Get/Set方式好

    简要介绍 一开始接触Kotlin,就发现Kotlin是采用属性访问的,和之前Java的Get/Set方法不一样.不...

  • Ember.js学习笔记一

    类属性的访问 Ember建议访问类的属性使用get和set方法,如果使用object.prop这种方式访问也是可以...

  • 内存管理

    内存管理:一、属性的内存管理方式:其实就是手动生成set和get方法:必须了解set和get方法中的实现原理 二、...

  • Kotlin学习之List集合

    Kotlin学习之List集合 List是有顺序的数据结构,在Kotlin中提供了类似数组的访问方式: get()...

  • kotlin_实体类

    java写法 kotlin写法(使用data,自动生成 get set tostring copy hashcod...

  • JDBC的DAO设计模式

    在javaEE中,java类的属性通过getter和setter来定义,get(或set)方法去除get(set)...

  • kotlin(一):基本语法之属性

    属性修饰符 属性命中规范: java中通过 属性类型 属性名 = 属性值; 的方式来声明属性 kotlin中则...

  • Koltin协程防抖点击

    传统方式(Java和Kotlin) 缺点:每次都要写重复代码 RxBinding方式(Java和Kotlin) 依...

  • KVC KVO

    KVC kvc提供了一种在运行时而非编译时动态访问对象属性与成员变量的方式,该方法不需要调用get/set方法 O...

  • C#:什么是属性访问器

    属性访问器(Property Accessor),包括 get 访问器和 set 访问器分别用于字段的读写操作 其...

网友评论

    本文标题:为什么Kotlin属性访问方式比Java的Get/Set方式好

    本文链接:https://www.haomeiwen.com/subject/ovvuiqtx.html