【问题标题】:Kotlin - What is the use of class without body?Kotlin - 没有身体的类有什么用?
【发布时间】:2017-12-01 18:21:42
【问题描述】:

在 Kotlin 中,标题和正文都是可选的;如果类没有主体,可以省略花括号。

所以我们可以定义类,

class Empty

这种类有什么用?

【问题讨论】:

  • 和Java中的public class Empty { }一样吗?

标签: kotlin kotlin-android-extensions


【解决方案1】:

您可以将它用于一些自定义异常:

class Empty : Exception()

或作为marker interface

interface Empty

data class:

data class Empty(val s: String)

marker annotation:

annotation class Empty

~ 这是一个很好的post 阅读。

【讨论】:

  • 还有,data class MyDataClass(...)
【解决方案2】:

Kotlin 允许声明任何没有正文的类型,例如:

interface Interface;

class Class;

annotation class Annotation;

sealed class SealedClass;

data class DataClass(var value: String);

object ObjectClass;

enum class EnumClass;

class CompanionClass {
    companion object
}

每个定义的用法可以描述如下:

  • 接口 - 作为marker interface
  • annotation - 描述被注解的类型有一定的能力。例如:junit4 @Before@After 注释。
  • 对象 - 它通常以令牌或锁或占位符和 .etc 的形式出现。例如:synchronized(lock){ /*thread safe working*/ }
  • 数据类——用getterssetters快速定义一个javaPOJO类? 、equalshashCodetoStringcomponentN 用于在 kotlin 中解构的运算符。
  • 其他 - 它们没有意义,只是语言语法。

【讨论】:

    猜你喜欢
    • 2021-10-16
    • 2018-09-13
    • 1970-01-01
    • 2019-12-10
    • 2018-08-06
    • 2022-11-16
    • 1970-01-01
    • 2016-06-10
    相关资源
    最近更新 更多