gpt4 book ai didi

reflection - Kotlin - 是否有一种聪明的方法可以为类的所有方法抛出 NotImplementedError?

转载 作者:行者123 更新时间:2023-12-02 12:54:59 28 4
gpt4 key购买 nike

我需要实现一个具有数百种方法的接口(interface)(ResultSet)。
现在,我将只实现这些方法的一个子集,抛出 NotImplementedError为其他人。

在 Java 中,我找到了两个解决方案:

  • 创建一个抽象类AbstractResultSet实现ResultSet , 声明所有方法抛出 NotImplementedError .没有黑客,但有很多样板代码。
  • 使用Proxy.newProxyInstanceInvocationHandler 中一起实现所有方法.更少的代码,但也不太直接用于其他编码器。

  • Kotlin 有第三种选择吗?

    就我而言,我需要实现一个 ResultSet通过 IBM 数据集(包含压缩小数、二进制字段、分区数字、可变长度行等)通过 SQLServerBulkCopy 将其导入 SQLServer .不知道是哪个 ResultSet方法被这个类调用,所以,现在,我将只实现“最常用”的方法,记录对未实现方法的调用。

    最佳答案

    checkout 标准的 TODO 函数,它标记了一个 todo 并抛出了一个 NotImplementedError

    /**
    * Always throws [NotImplementedError] stating that operation is not implemented.
    *
    * @param reason a string explaining why the implementation is missing.
    */
    @kotlin.internal.InlineOnly
    public inline fun TODO(reason: String): Nothing = throw NotImplementedError("An operation is not implemented: $reason")

    用法:
    fun foo() {
    TODO("It will be soon")
    }

    通过这种方式,您还可以使用 IDE 的“todo”选项卡找到未实现的功能。这是一个加号。

    关于reflection - Kotlin - 是否有一种聪明的方法可以为类的所有方法抛出 NotImplementedError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47000818/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com