首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

kotlin数据类重写setter getter的正确方法

概述 在开发过程,经常会创建一些数据里,其没有任何逻辑功能,仅仅来用来保存数据。在Kolin,将这些类统一称为数据类,用关键字data标记。...前言 kotlin的数据类,由于其内部封装了gettersetter方法,极大地简化了我们的编程代码,但同时其不能像java那样方便的重写getter或者setter方法,也给大家造成了一定的麻烦。...这种格式,或者yyyy年MM月dd日这种,再或者更加友好一点,根据时间段,转成1小时前、2天前、一周前这种,在实际开发中都是常有的情况,在Java我们可以很方便的在getter方法做这些处理,但是kotlin...的getter方法都是内部封装的,并不直接支持重写,我看到网上有些答案是像这样处理的: data class OrderBean(val _createTime: Long){ val createTime...正确的姿势 有以下三种,你可以根据自己的业务逻辑团队的话语权进行选择: 让后端改:如果有可能的话,这是最合理,最恰当的方式,后端直接返回我们需要的字段形式,节省了移动端,web端,小程序端等每端各写一套逻辑的时间

3.8K10

盘点JavaScriptgetter()setter()函数的使用

它们本质上是用于获取设置值的函数,但从外部代码来看就像常规属性。 二、Getter setter 访问器属性由 “gettersetter” 方法表示。...在对象字面量,它们用 get set表示: let obj = { get propName() { // 当读取 obj.propName 时,getter 起作用 }, set...四、更聪明的 getter/setter Getter/setter 可以用作“真实”属性值的包装器,以便对它们进行更多的控制。...五、兼容性 访问器的一大用途是,它们允许随时通过使用 getter setter 替换“正常的”数据属性,来控制调整这些属性的行为。...六、总结 本文基于JavaScript基础,介绍了getter setter函数的使用。对于其中的属性,通过案例的样式,运行效果图的展示,进行详细的讲解。

1.5K11
您找到你想要的搜索结果了吗?
是的
没有找到

Kotlin】类的初始化 ① ( 成员属性 | Kotlin 自动为成员字段生成 getter setter 方法 | 手动设置成员的 getter setter 方法 | 计算属性 )

文章目录 一、Kotlin 自动为成员字段生成 getter setter 方法 二、手动设置成员的 getter setter 方法 三、计算属性 一、Kotlin 自动为成员字段生成 getter... setter 方法 ---- 定义 Kotlin 类 , 在 类 定义成员属性 , 会自动生成 getter setter 方法 ; 在 Kotlin 定义如下类 , 在其中定义两个字段... setter 方法 ---- Kotlin 会为 类的每个 成员属性 生成一个 field , getter , setter ; field 用于存储 属性数据 , 是由 Kotlin 自动进行定义封装的..., 只有在 getter setter 函数才能调用 field ; 手动定义 getter setter 方法示例 : class Hello { var name = "Tom"...类的 某个属性 是 通过计算得到的 , 可以 在该属性的 getter setter 方法中进行计算设置或获取结果 , 不使用 field 属性 ; 下面的 age 属性就是通过计算得到的属性值

1.6K20

Saleforce 基于 Kotlin 构建数据管道的探索实践

例如,bean 类这么简单的东西也需要编写多个常规的 getter setter 以及多个构造器 / 或构建器。一般来说,哈希相等方法必须用一种很平常但啰嗦的方式覆盖掉。...我们选择 Kotlin 主要基于如下考虑: Kotlin 对数据 bean 类的丰富支持让我们无需再编写显式的 getter setter。...对属性的一流支持:我们不需要编写 get/set 方法,因为 Kotlin 为属性提供了一流的支持,第 5 行第 6 行所示。...我们用 Kotlin 编写所有业务逻辑库。 Kafka Streams 作业是用 Kotlin 编写的。我们使用 Kafka Streams 作业进行简单的映射、过滤写入操作。...这篇博文中还没具体介绍 Kotlin 我们喜欢的很多内容,例如扩展函数、类型别名、字符串模板、使用协程 async-await 的并发代码执行等。

74110

Kotlin Vocabulary | Kotlin 委托代理

您可以复制粘贴这段逻辑并实现一个自定义 setter,但这样一来,您会发现自己为所有属性编写了完全相同的 setter。...通过使用属性代理,我们可以将 getter setter 委托给属性,从而可以复用代码。 与类代理相同,您可以使用 by 来代理一个属性,Kotlin 会在您使用属性语法时生成代码来使用代理。... setter 函数中有两个额外参数。...Kotlin 编译器会为 name lastname 属性生成持有 FormatDelegate 对象私有引用的代码,以及包含您所添加逻辑的 getter setter。...如果您查看了为 name 属性所生成的 getter setter,就会发现它的实例存储在了索引为 0 的位置, 同时 lastname 被存储在索引为 1 的位置。

1.9K20

我要狠狠的反驳“公司禁止使用Lombok”的观点

于是我不得不将所有的 Lombok 注解从项目源代码清除,并使用 IDE 自带的功能生成 getter/setter,equals,hashCode,toString 以及构造器等方法,你也可以使用...你要看JavaBean的方法?它有啥好看的,GetterSetter方法有啥好看的,你不知道GetterSetter方法长什么样吗?实在不明白有什么好看的?...代码耦合度增加 当你使用 Lombok 来编写某一个模块的代码后,其余依赖此模块的其他代码都需要引入 Lombok 依赖,同时还需要在 IDE 安装 Lombok 的插件。...如果你确实想让自己的代码更加精炼,同时又兼顾可读性编码效率,不妨使用主流的 Scala 或 Kotlin 这一基于 JVM 的语言。 我的反驳:破坏了完整性?...加上臃肿的Getter&Setter你却嫌弃臃肿,不加你又说破坏代码的完整性,你想怎么做。增加团队的技术债务?学个Lombok十分钟的事情,有什么好增加的。要使用Kotlin?

77030

我要狠狠反驳“公司禁止使用Lombok”的观点!

于是我不得不将所有的 Lombok 注解从项目源代码清除,并使用 IDE 自带的功能生成 getter/setter,equals,hashCode,toString 以及构造器等方法,你也可以使用...你要看JavaBean的方法?它有啥好看的,GetterSetter方法有啥好看的,你不知道GetterSetter方法长什么样吗?实在不明白有什么好看的?...代码耦合度增加 当你使用 Lombok 来编写某一个模块的代码后,其余依赖此模块的其他代码都需要引入 Lombok 依赖,同时还需要在 IDE 安装 Lombok 的插件。...如果你确实想让自己的代码更加精炼,同时又兼顾可读性编码效率,不妨使用主流的 Scala 或 Kotlin 这一基于 JVM 的语言。 我的反驳:破坏了完整性?...加上臃肿的Getter&Setter你却嫌弃臃肿,不加你又说破坏代码的完整性,你想怎么做。增加团队的技术债务?学个Lombok十分钟的事情,有什么好增加的。要使用Kotlin?

57130

我要狠狠的反驳“公司禁止使用Lombok”的观点

于是我不得不将所有的 Lombok 注解从项目源代码清除,并使用 IDE 自带的功能生成 getter/setter,equals,hashCode,toString 以及构造器等方法,你也可以使用...你要看JavaBean的方法?它有啥好看的,GetterSetter方法有啥好看的,你不知道GetterSetter方法长什么样吗?实在不明白有什么好看的?...代码耦合度增加 当你使用 Lombok 来编写某一个模块的代码后,其余依赖此模块的其他代码都需要引入 Lombok 依赖,同时还需要在 IDE 安装 Lombok 的插件。...如果你确实想让自己的代码更加精炼,同时又兼顾可读性编码效率,不妨使用主流的 Scala 或 Kotlin 这一基于 JVM 的语言。 我的反驳:破坏了完整性?...加上臃肿的Getter&Setter你却嫌弃臃肿,不加你又说破坏代码的完整性,你想怎么做。增加团队的技术债务?学个Lombok十分钟的事情,有什么好增加的。要使用Kotlin?

46770

使用Project Lombok编写Fat-free java代码

这个想法是用户可以将注解处理器(由自己编写,或通过第三方依赖,Lombok)放入构建类路径( build classpath)。...您所知,NetBeans检查器(不论是什么IDE这都会发生)都会检测到编译的类字节码,包括Lombok添加到进程的添加。...这里发生的事情很简单: 使用@Getter@Setter我指示Lombok为所有属性生成gettersetter。这是因为我在类级别(class)使用了注解。...注解类属性@NonNull就足够了, Lombok将通过NullPointerException在构造函数setter方法适当地生成null检查。...当然,Groovy,ScalaKotlin是很好的例子。但是,如果您正在开发一个仅限Java的项目,那么Lombok是一个很好的工具来帮助您的程序更简洁,更具表现力可维护性。

1.4K10

Kotlin 的 Property Delegate 与 Swift 的 Property Wrapper

getValue,所以代理 getter setter 也是顺理成章。...既然我们把属性拆解开看做是 getter setter,那么所有符合此类特征的函数也是可以被代理的,因此对于 Wrapped 的 getY 也可以代理成一个只读属性,setY 也可以单独代理成一个可变属性...其实对于 setter 的代理的场景还真有,例如对于 Android 某些 View 的属性只有 setter 的方法,没有对应的 getter,如果我想要做一个属性动画,那么这样的属性代理就会比较有帮助...wrapped::x.delegator(),它的作用就是提供了属性的 getter setter,这样我们将 Binding 对象传给 Toggle 的时候,它就可以在其中方便的修改...对于 Binding 的使用场景,Kotlin 当中大可不必这么大费周章,因为 Kotlin 的属性引用可以很方便的允许我们传递一个属性的 setter getter,例如: [Kotlin] class

5.2K20

Java 反射 VS Kotlin 反射

可以使用 Kotlin 反射来访各种基于 JVM 语言编写的代码。 下面以 Java 的反射 Kotlin 的反射进行对比。 一....Kotlin 的引用类有两种方式:类名::class对象::class,它们获取的都是相同的 KClass 实例。 即处于同一个类加载器,给定的类型只能返回一个 KClass 实例。...Kotlin Java 的方法引用使用::操作符,Kotlin 除了可以引用类成员函数、扩展函数还可以引用顶层(top-level)函数。...Java 反射与 Kotlin 反射的互操作性 为一个 Kotlin 属性获取一个 Java 的 getter/setter 方法或者幕后字段,需要使用 kotlin.reflect.jvm 包。...幕后字段 (backing field) 是 Kotlin 属性自动生成的字段,它只能在当前属性的访问器(gettersetter)内部使用。

2.5K30

Lombok 有哪些坑 ?

比如说 getter/setter/toString 等方法的编写。 1. 一些杂七杂八的问题 1.1 额外的环境配置 作为 IDE 插件 + jar 包,需要对 IDE 进行一系列的配置。...1.3 降低代码可读性 定位方法调用时,对于自动生成的代码,getter/setter 还好说,找到成员变量后 find usages,再根据上下文区分是哪种;equals() 这种,想找就只能写段测试代码再去...目前主流 ide 基本都支持自动生成 getter/setter 代码, lombok 注解相比不过一次键入还是一次快捷键的区别,实际减轻的工作量十分微小。 2....3.3 关于@datadata 在了解了 @data 的行为后,会发现它 kotlin 语言中的 data 修饰符有点像:都会自动生成一些方法,并且在继承上也有问题——前者一旦有继承关系就会踩坑,而后者修饰的类是...在一篇流传较广的文章 抛弃 Java 改用 Kotlin 的六个月后,我后悔了(译文) https://blog.csdn.net/csdnnews/article/details/80746096

4.2K20

KotlinKotlin 与 Java 互操作 ② ( @JvmField 注解字段给 Java | @JvmOverloads 注解修饰函数 | @JvmStatic 注解声明静态成员 )

文章目录 一、使用 @JvmField 注解暴露 Kotlin 字段给 Java 1、Java 类通过 Getter Setter 方法访问 Kotlin 字段 2、Java 类中直接访问被...Kotlin 字段给 Java ---- 1、Java 类通过 Getter Setter 方法访问 Kotlin 字段 在 Java 是 不能直接访问 Kotlin 的字段 的 , 必须...调用相应的 Getter Setter 方法 , 才能进行访问 ; 代码示例 : Kotlin 类 : 在 Kotlin 声明的成员属性 , 默认就是 private 私有属性 , 默认为其生成了...字段 如果在 Kotlin , 使用 @JvmField 注解 修饰 成员属性 , 其作用是将 Kotlin 字段暴露给 Java , 在 Java 可以不使用 Getter Setter...的字段声明为 Java 字段 , 此时 Kotlin 不会为该字段自动生成 Getter Setter 方法 ; 二、使用 @JvmOverloads 注解修饰 Kotlin 函数 ----

95130

Kotlin 程序设计》第七章 Kotlin 编译过程分析第七章 Kotlin 编译过程分析

一通Google之后,毫无收获,Kotlin作为一门新语言,绝大多数的资料都局限于它的用法特性相关。幸好Kotlin所有源码都已开源,遂决定生啃之。...@Nullable KtPropertyAccessor getter, // 决定是否生成getter @Nullable KtPropertyAccessor setter..., descriptor, getter); } //根据注解权限修饰符等信息判断是否自动生成Setter代码 if (isAccessorNeeded(declaration...,Kotlin在目标代码生成环节做了更多的处理,在该环节实现了自动生成GetterSetter的代码。...Kotlin编译器在目标代码生成环节做了很多类似于Java封装的事情,比如自动生成Getter/Setter代码的生成、Companion转变成静态类、修改类属性为final不可继承等等工作。

1.7K20
领券