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

Kotlin中没有getter的属性

宦树
2023-03-14

如何使用自定义setter声明属性,但在Kotlin中没有getter?例如,在安科,他们这样做:

var myProperty: Type
    @Deprecated(AnkoInternals.NO_GETTER, level = DeprecationLevel.ERROR) 
    get() = AnkoInternals.noGetter()
    set(value) { field = value; /* setter logic */ }

但在我看来,这有点骇人。这样做对吗?如果是,那么当一个项目没有Anko依赖关系时,情况会怎样呢?

附言:让我说清楚——我想没有吸气剂,而不是私人吸气剂

共有2个答案

公西繁
2023-03-14

沃丹的回答很好,但我也可以补充一下我是如何实现它的:

@get:Deprecated(message = "no.", level = DeprecationLevel.ERROR)
lateinit var property: Any

这里,我为getter使用了lateinit修饰符和不推荐的注释。

施永宁
2023-03-14

弃用吸气剂仍然是获得效果的唯一方法。

您不需要Anko依赖项,只需使用带有适当级别的注释即可。

 类似资料:
  • 我对Kotlin很陌生,并试图将一个项目从Java迁移到它。我对Kotlin的属性和它们的getters/setter以及可见性范围有点困惑。 我想要实现的是: 所以基本上我需要创建一个具有私有属性的类。此属性应由公共 getter 访问,但它不应具有 setter。此外,此属性应该是内部可变的,以便可以使用某种方法(如 更改其值。 据我所知,我不能将其声明为,因为在这种情况下,它将是完全不可变的

  • 嗨,我试图使用strut得到一个bean到我的jsp代码,我在我的jsp页面中使用的bean是:但是每当我运行jsp时,我就会收到 bean的“unitForm”的属性“testData.team.type”没有getter方法。 我正在尝试将棒球写入我的JSP页面。 我的行动表单的代码是: 测试数据类具有: 最后在我的体育课上:

  • 如何在Kotlin中创建一个具有私有getter(或只是没有)但具有公共setter的属性? 不能使用错误: 在我的例子中,原因是Java Interop:我希望我的Java代码能够调用,但不能调用。

  • 我无法找出我做错了什么。我一定要在Form Bean中使用Form Bean,因为窗体有许多不同的部分。基本上,在同一个表单上有响应部分和请求部分。 初始化视图时,我得到了一个无getter方法异常。我正在使用 struts-config.xml: JSP页面: FormBean主: 子表单Bean: 行动类:

  • 问题内容: 长话短说:我需要使用PHP风格的getter,但要使用JavaScript。 我的JavaScript仅在Firefox中运行,因此我可以使用Mozilla特定的JS。 我能找到的制作JS吸气剂的唯一方法是指定其名称,但我想为所有可能的名称定义一个吸气剂。我不确定这是否可行,但我非常想知道。 问题答案: 可以做到!我很高兴这个存在!这里给出一个答案:是否有与python的__getat

  • 我在jsp文件中有这个,它可以工作: 但是我想显示一个html:选择像这样: 但不起作用,错误显示: 没有可用于属性认证的getter方法。名为org的bean的estado。阿帕奇。struts。塔格里布。html。豆 谢谢