小编And*_*dEx的帖子

Enum.valueOf在Kotlin

有没有办法在没有反思的情况下在Kotlin做这样的工作?

inline fun <reified T : kotlin.Enum<T>> safeValueOf(type: String?): T? {
    return java.lang.Enum.valueOf(T::class.java, type)
}
Run Code Online (Sandbox Code Playgroud)

由于以下原因,下面的示例无法编译:

inline fun <reified T : kotlin.Enum<T>> safeValueOf(type: kotlin.String?): T? 不满足T in的绑定参数:推断类型TestEnum?不是子类型kotlin.Enum<TestEnum?>

enum class TestEnum

fun main() {
    val value: TestEnum? = safeValueOf("test")
}
Run Code Online (Sandbox Code Playgroud)

java enums kotlin

15
推荐指数
4
解决办法
8302
查看次数

无法在null对象上调用方法containsKey()

当我通过gradle构建我的Android项目时出现此错误.它大概每周发生一次.

FAILURE: Build failed with an exception.

* What went wrong:
Failed to capture snapshot of input files for task ':xxxxxxxx:compileDebugAidl' property 'importDirs' during up-to-date check.
> Cannot invoke method containsKey() on null object

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org
Run Code Online (Sandbox Code Playgroud)

知道什么可能导致这个错误吗?谢谢

android google-play-services android-gradle-plugin

10
推荐指数
1
解决办法
970
查看次数

RxJava:缓冲项目,直到当前项目满足某些条件为止

这是我要弄清楚的一个片段:

class RaceCondition {

    Subject<Integer, Integer> subject = PublishSubject.create();

    public void entryPoint(Integer data) {
        subject.onNext(data);
    }

    public void client() {
        subject /*some operations*/
                .buffer(getClosingSelector())
                .subscribe(/*handle results*/);
    }

    private Observable<Integer> getClosingSelector() {
        return subject /* some filtering */;
    }
}
Run Code Online (Sandbox Code Playgroud)

有一个Subject接受来自外部的事件。有一个客户订阅了该主题,该主题可以处理事件并buffer对其进行处理。这里的主要思想是,应根据使用流中的项目计算出的某些条件每次都发出缓冲的项目。

为此,缓冲区边界本身会监听主体。

一个重要的期望行为:每当边界发射该项目时,也应将其包括在以下的发射中buffer。当前配置不是这种情况,因为该项目(至少是我认为的)到达之前从关闭选择器中发出buffer,因此它不包括在当前发出中,而是留在等待下一个发出。

有没有一种方法可以使关闭选择器本质上等待项目被首先缓冲?如果不是,是否还有另一种方法可以基于下一个传入项目来缓冲和释放项目?

java rx-java

3
推荐指数
1
解决办法
2126
查看次数