Validation Kotlin:在接口中指定输入约束
假设我有以下界面:Validation Kotlin:在接口中指定输入约束,validation,kotlin,exception,interface,defensive-programming,Validation,Kotlin,Exception,Interface,Defensive Programming,假设我有以下界面: interface MathThing { fun mathFunction(x : Int) } 假设我想对这个函数施加的约束是x不能为负 如何确保每次在MathThing类型的对象上不满足此(或任何其他任意)条件时,都会引发(自定义)异常?一种方法是对函数参数使用包装类。您可以创建一个扩展函数,以便更容易地将值传递给函数 data class NonNegative(val value: Int) { init{ if (value < 0) t
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)
}
数据类非负(val值:Int){
init{if(值<0)抛出IllegalArgumentException(“输入不能为负。”)}
}
fun Int.nonNegative()=非负(此)
接口数学{
函数(x:非负)
}
可以使用无符号整数。这只是一个简单的例子,我实际上并不需要。我想知道如何实施任何约束。但不管怎样,我都会查找这个类。一般来说,接口不能在其实现中强制执行任何内容。您添加了一条注释,说明实现应该检查某些内容是否正确。