热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

什么是Kotlin中Java静态最终字段的等价物?-WhatistheequivalentofJavastaticfinalfieldsinKotlin?

InJava,todeclareaconstant,youdosomethinglike:在Java中,要声明常量,您可以执行以下操作:classHello{publ

In Java, to declare a constant, you do something like:

在Java中,要声明常量,您可以执行以下操作:

class Hello  {
 public static final int MAX_LEN = 20;
}

What is the equivalent in Kotlin?

Kotlin的等价物是什么?

3 个解决方案

#1


95  

According Kotlin documentation this is equivalent:

根据Kotlin的文档,这是等效的:

class Hello {
    companion object {
        const val MAX_LEN = 20
    }
}

Usage:

用法:

fun main(srgs: Array) {
    println(Hello.MAX_LEN)
}

Also this is static final property (field with getter):

这也是静态最终属性(带有getter的字段):

class Hello {
    companion object {
        @JvmStatic val MAX_LEN = 20
    }
}

And finally this is static final field:

最后这是静态的最终字段:

class Hello {
    companion object {
        @JvmField val MAX_LEN = 20
    }
}

#2


11  

if you have an implementation in Hello, use companion object inside a class

如果你在Hello中有一个实现,请在类中使用companion对象

class Hello {
  companion object {
    val MAX_LEN = 1 + 1
  }

}

if Hello is a pure singleton object

如果Hello是纯单例对象

object Hello {
  val MAX_LEN = 1 + 1
}

if the properties are compile-time constants, add a const keyword

如果属性是编译时常量,请添加const关键字

object Hello {
  const val MAX_LEN = 20
}

if you want to use it in Java, add @JvmStatic annotation

如果要在Java中使用它,请添加@JvmStatic注释

object Hello {
  @JvmStatic val MAX_LEN = 20
}

#3


4  

For me

为了我

object Hello {
   const val MAX_LEN = 20
}

was to much boilerplate. I simple put the static final fields above my class like this

很多样板。我简单地将静态final字段放在我的类之上

val MIN_LENGTH = 10

class MyService{
}

推荐阅读
author-avatar
旧眸M_557
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有