问题标签 [kotlin-delegate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
352 浏览

android - 21 岁以下的 Android 上使用 MultiDex 的 Kotlin 代表

我有以下代表...

该代表旨在处理股份偏好。当我的应用程序变为 MultiDex 时,就会出现问题。当我在活动中使用下面的代码时,应用程序崩溃。

但是,如果我将代码更改为这个。应用程序崩溃

我已经阅读了这个文件,它有一些通知..

https://developer.android.com/studio/build/multidex.html

注意:在 MultiDex.install() 完成之前,不要通过反射或 JNI 执行 MultiDex.install() 或任何其他代码。Multidex 跟踪不会跟随这些调用,导致 ClassNotFoundException 或由于 DEX 文件之间的错误类分区而导致验证错误。

总之,我想知道在这种情况下会发生什么。

  • 应用程序崩溃发生在低于 21 的 Android 上
  • kotlin 委托使用反射
  • 为什么从字段变量更改为局部变量可以解决问题?
  • Logcat 没有帮助

日志猫

0 投票
1 回答
643 浏览

kotlin - 如何在 Kotlin 中实现需要另一个属性的惰性属性?

我需要一个需要在调用时初始化的矩形。

这是我的代码;

我得到的那行错误private val rectangle :Rectangle by lazy { Rectangle(x, y, textWidth, textHeight) }

必须初始化变量“textWidth” 必须初始化变量“textHeight”

但我已经在init{}代码块上初始化它们。

我究竟做错了什么?

0 投票
5 回答
2568 浏览

kotlin - 从覆盖中使用类委托时调用(基)委托函数

重写由类委托实现的接口方法时,是否可以从重写函数中调用通常委托给的类?类似于super使用继承时的调用方式。

文档中:

请注意,覆盖按您预期的那样工作:编译器将使用您的覆盖实现而不是委托对象中的实现。

如何BaseImpl print()从这个被覆盖的函数中调用函数?

用例是我想向这个函数添加额外的逻辑,同时重用现有的实现。

0 投票
0 回答
648 浏览

kotlin - Android 数据绑定不适用于 Kotlin 的类委托

我的视图模型:

我的布局:

currencyCode数据模型中更新时,TextView不会自动更改文本。

我试图摆脱继承AndroidViewModel并定义MyVM如下:

它奏效了。问题是我不能丢弃AndroidViewModel生产代码中的继承。

不过有一个解决方法:

但我不习惯在我的 ViewModel 中使用 ObservableFields。你有什么建议吗?

0 投票
1 回答
180 浏览

android - 是否可以为单个类提供多个委托类型?

我想从一个类中提供多个不同类型的不同代表。例如:

此示例给出以下编译器错误: 'operator' modifier is inapplicable on this function: second parameter must be of type KProperty<*> or its supertype

有没有办法指定泛型类型参数以便我可以实现这一点?

0 投票
1 回答
1279 浏览

kotlin - 如何结合 kotlin 委托属性:可观察、可否决和“按地图”?

我正在尝试将delegates/observablevetoable结合起来(在查看源代码 kotlin.properties.Delegates.kt 后这不是问题),但是在尝试将属性也存储在 map时事情变得很棘手。

或者换句话说,如何将这三者结合起来:

0 投票
1 回答
351 浏览

kotlin - Kotlin 中的嵌套属性委托

正如官方教程中提到的,我们可以将属性存储在一个 Map 中,并将一个类委托给它:

然而,有时我们在映射中存储非平凡的结构,比如另一个类(这在处理复杂的 json 时很常见)。为了更好地阐述我的想法,我想出了这样的伪代码:

是否可以委托这种嵌套结构?

0 投票
3 回答
345 浏览

android - Android Studio 无法解析导入

我正在尝试一个示例项目来学习MvRx。然而,似乎有些不对劲。Android Studio 无法activityViewModel自动查找和导入。

1)我试图通过写它的包名来手动导入它,但它仍然是灰色的。

2) 从 Gradle 选项卡中,我选择了我的根项目并单击Refresh Gradle Project以刷新所有依赖项。它也没有帮助。

问题是什么?

在此处输入图像描述

0 投票
1 回答
361 浏览

kotlin - 带有 Kotlin 类委托的 Dagger 构造注入

我有以下 Kotlin 类:

在 Dagger 中,我在构建项目时收到以下错误:

在此处输入图像描述

但是当我删除类委托时它会起作用: SharedPreferences by prefs

现在我的问题是如何同时使用 Dagger 和 Kotlin 类委托。

0 投票
1 回答
1407 浏览

json - (de) 使用 jackson 序列化 kotlin 委托属性

如何使用杰克逊(反)序列化 kotlin 委托属性。我有这样的课

我想通过使用来简化它

但是杰克逊会忽略该属性。
我怎么能告诉杰克逊序列化和反序列化该属性呢?然后我如何应用 @JsonIgnore 注释(或类似的东西)?