当前位置: 首页 > 知识库问答 >
问题:

如何从Java隐藏Kotlin的lateinit var支持字段?

薄伟彦
2023-03-14
class MyKotlinClass {
    lateinit var field: String
}

我可以在java代码中使用mykotlinclass.fieldmykotlinclass.getfield()。我想禁用字段访问,只通过getter和setter访问。

如何实现这一点并保持lateinit修饰符?

共有1个答案

蒋茂材
2023-03-14

您可以使用@jvmsynthet来隐藏Java(而不是Kotlin)的声明。只需注释属性的支持字段:

@field:JvmSynthetic
lateinit var field: String

尽管字段将在字节码中保持public,但它还将具有synthetic修饰符,这将阻止它在Java源代码中使用。但是,该字段似乎仍然可以在运行时通过反射访问。

另请参见:关于@jvmsynthety的另一个问题(尽管没有明确的答案)。

 类似资料:
  • 问题内容: 在以下情况下: 学生“隐藏人的ID字段。 如果我们想在内存中表示以下内容: 约翰对象会为storint Person.ID及其自己拥有两个单独的存储位置吗? 问题答案: 正确。示例中的每个类都有其自己的int IDid字段。 您可以通过以下方式从子类中读取或分配值: 或在外部(当它们是公开的时):

  • 本文向大家介绍在不支持js的浏览器中如何隐藏JavaScript代码?相关面试题,主要包含被问及在不支持js的浏览器中如何隐藏JavaScript代码?时的应答技巧和注意事项,需要的朋友参考一下 在<script>标签之后的代码中添加“<!-– ”,不带引号。 在</script>标签之前添加“// –->”,代码中没有引号。 旧浏览器现在将JavaScript代码视为一个长的HTML注释。而支持

  • Kotlin是一种针对JVM(和其他平台)的静态类型语言,它允许编写简洁而优雅的代码,同时提供与Java编写的现有库的互操作性。 Spring Boot通过利用其他Spring项目(如Spring Framework,Spring Data和Reactor)的支持来提供Kotlin支持。 有关更多信息,请参阅Spring Framework Kotlin支持文档。 从Spring Boot和Kot

  • 静态编程语言是否支持像这样的java注释,因为我无法让它工作。我可以用注释颜色,但实际上没有得到该注释的lint检查。 例子 传递,不显示线头。应使用R颜色显示皮棉。colorPrimary,不与

  • 我有一个简单的表单,它使用foreach($\u POST as$key)将数据插入数据库= 我使用if(isset($\u POST['isset'])){ 我正在尝试解决如何从循环中排除隐藏字段。。。? 我看了这篇文章,但不明白我会在哪里使用(strpos($key,'hdn_') == false)//继续 如何排除 任何指导将不胜感激......

  • 问题内容: Java的char是16位,但是Unicode具有更多的字符-Java如何处理呢? 问题答案: Java字符串是UTF-16(大端),因此Unicode代码点可以是一个或两个字符。在这种编码下,Java可以使用chars (字符串文字)来表示代码点U + 1D50A( 数学上的FRAKTUR CAPITAL G )。的字符类提供了用于从码点转换为/方法。