问题标签 [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 投票
1 回答
43 浏览

android - How can a Delagetes.observable in a BroadcastReceiver be unit tested?

How can i test a Delegates.Observable that is inside a BroadcastReceiver. I need to get battery level of device and check if it's just went below or above pre-defined critical level, and upload to server using UseCase of clean architecture. I used observable to observe only changing states.

#xA;

And observable

#xA;

Do i have to use parameters or assume old value to test current value? How is state is tested? Should i use parameterized test or assume previous value?

0 投票
1 回答
447 浏览

kotlin - 如何在 Kotlin 中嵌套多个属性委托

我遇到过一种情况,我想“链接”多个代表(将一个代表的输出连接到另一个代表)。

这似乎是可能的:

但是,这看起来不太好:)。我想像这样在一行中做到这一点:

我的问题:在 Kotlin 中是否可以通过委托创建这种类型的属性?


这是我的代表的两个实现:

添加到设置:

列表所以:

0 投票
0 回答
254 浏览

android - 没有主构造函数的不受支持的委派

我遇到了 kotlin 委托的问题,我想将接口实现委托给一个变量。问题是超类还有一些我不想失去的其他构造函数

现在你可以看到我在 android studio 预览中会遇到问题,因为没有构造函数(上下文:上下文)以及从 xml 初始化的其他问题,因为我必须创建

我只是想知道是否有一种方法可以在不破坏超级调用链的情况下提供委托,而不是专门针对 android 而是针对任何其他可能具有相同委托约束的情况......

0 投票
1 回答
507 浏览

android - 将 Kotlin 属性委托与 by 一起使用时出现 NullPointerException (NPE)

我有一个类,它在文本字段中接受用户输入并使用提供的函数将它们转换为任何类

我已经这样做了,所以当我有 TextViews 时,我可以这样做

我有一个具有上述自定义视图的片段,当我有

一切正常,我真正想做的是

将这些行添加到IntegerInputView

当我构建、运行和加载片段时,我得到下面的堆栈跟踪。我哪里错了?

0 投票
2 回答
917 浏览

android - Kotlin 委托属性导致 Android Studio 中出现预览渲染错误

我创建了一个自定义属性,专门用于保存我的一个项目需要 invalidate() 调用的视图属性:

在另一个项目中,我想重用我以前的一些工作,所以我将视图及其依赖项(包括 InvalidatingProperty)复制到一个新项目中。但是在新项目中,使用 InvalidatingProperty 会导致预览渲染失败,并出现以下异常:

源项目(预览工作的地方)和目标项目,都有相同的 android 版本 - 4.0.1,使用相同版本的 kotlin 和 kotlin gradle 插件 - 1.4.0

此外,重要的事实是,在模拟器或真实设备上,视图完全可以正常工作

我已经尝试过 Invalidate Chaches/Restart,并尝试降级 kotlin,因为我发现了一些导致类似异常的 1.4.0 版本的问题。

编辑:经过进一步检查,有时似乎会发生不同的异常:

压缩摘要查看代码:

0 投票
1 回答
247 浏览

android - Android 获取 ViewModelScope 以便在接口委托中使用

viewModel通过这样的委托实现了一个接口:

class ProductViewModel(item: Product) : ViewModel(), ItemInterface by ItemDelegator(item)

现在,在里面ItemDelegator我需要一个CoroutineScope绑定到ViewModel

我根本做不到ItemInterface by ItemDelegator(viewModelScope, item)。创建 ViewModel 时,我无法引用viewModelScope

1 - 我可以以某种方式“传递”viewModelScopeItemDelegator 2 - 我的大部分 viewModel 生命周期都绑定到活动生命周期。lifecycleOwner是否可以将活动(可以从中获取)传递给 ViewModel lifecycleScope,现在,由于它是构造函数中的一个参数,我可以将它传递给ItemDelegator?

0 投票
1 回答
183 浏览

kotlin - 在 Kotlin 中,为什么不能像接口一样使用“by”关键字委托抽象类

我找不到任何令人满意的理由说明为什么不能使用“by”关键字委托抽象类。

注意:也就是说we need to call constructor of Abstract class while extending it,这不是问题的令人满意的技术答案。

0 投票
1 回答
289 浏览

json - 将对象反序列化为包含委托属性的数据类(带委托的继承)

您的问题 我已经检查了问题和文档,但找不到解决方案。

以下代码正确地将对象 ( Component) 序列化为字符串,但从字符串反序列化回实例的实例Component不起作用。

有什么建议如何在不取消代表团的情况下做到这一点?

谢谢 :)

错误

0 投票
1 回答
95 浏览

kotlin - Kotlin 是否可以委托函数或函数参数?

我想要例如:

无论是反射还是其他方式。

我目前拥有的是:

这样我就可以打电话

但是我需要发送不知道的参数。我希望我的编译器知道可以发送哪些参数。否则,我可以编写以下内容,直到运行时才会失败:

请注意,我希望它具有不同的名称,而不是使用接口。

0 投票
2 回答
93 浏览

kotlin - Kotlin 委托的具有泛型类型值的 ReadOnlyProperty 在 getValue 中未正确转换

我期待看到输出

用下面的代码

但是,我只得到黑色输出,然后Exception in thread "main" java.lang.ClassCastException: delegate.Black cannot be cast to delegate.White. 我发现通过这一行thisRef.colorCollection.list.mapNotNull { it as? T },我期望它只返回列表中可以安全地转换为泛型类型的值,否则返回 null。例如,当访问 Palette 中的黑色委托属性时,我应该只看到 1 返回的黑色元素thisRef.colorCollection.list.mapNotNull { it as? T },它实际上返回了两个(黑色和白色)。it as? T不管 T 是什么,总能以某种方式工作。我还尝试在该行放置一个断点,尝试将“abcdef”设置为 T?,它也可以工作,我希望看到 String 无法转换为 Black 的转换异常...... 在此处输入图像描述在此处输入图像描述

这是一个错误...?