validation - Kotlin:在界面中指定输入约束

标签 validation kotlin exception interface defensive-programming

假设我有以下界面:

interface MathThing {

    fun mathFunction(x : Int)
}

假设我想对该函数施加的约束是 x 不能为负数。

我如何确保每次 MathThing 类型的对象不满足此(或任何其他任意)条件时,都会抛出(自定义)异常?

最佳答案

一种方法是为您的函数参数使用包装器类。您可以创建一个扩展函数,以便更轻松地将值传递给该函数。

data class NonNegative(val value: Int) {
    init{ if (value < 0) throw IllegalArgumentException("Input must not be negative.") }
}

fun Int.nonNegative() = NonNegative(this)

interface MathThing {
    fun mathFunction(x : NonNegative)
}

关于validation - Kotlin:在界面中指定输入约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61755258/

相关文章:

jQuery - Validate() 并对相似的表单项进行分组

asp.net-mvc - 如何停止 ValidationMessageFor 在加载时显示错误消息?

android - Android协程相当于Executor服务是什么

Android加载一些数据

javascript - Node 式回调: done(exception) or throw exception?

python - 如何设置 python 异常消息以使用特殊语言?

aspx中两个复选框的javascript

ruby-on-rails - 在 Rails 中验证跨两个表的唯一性时如何避免竞争条件

android - Jetpack Compose 惰性列性能

java - 如何在 Android studio 中压缩 Kotlin 项目