Kotlin - 如何验证数据类

时间:2017-10-30 21:03:52

标签: validation kotlin

我有一个班级:

class Foo{
  var x:Long = 10
    set(value) {if( value < 0 ) throw IllegalArgumentException("error"); field=value}
}

是否有可能以更优雅的方式验证这些值?例如 - 我想要这样的东西:

class Foo( @Positive var x: Long) {
}

有可能吗?我希望它是轻量级的 - 没有反射,只需检查定居者。有什么建议?

1 个答案:

答案 0 :(得分:0)

也许我有点晚了。您可以使用 Result 库的 Konad 类。验证成功时返回 Result.Ok,失败时返回 Result.Errors。 当您需要组合多个验证结果时,它还带来了一个简单的 API。请参阅 usage example 部分。对于您的情况,您可以这样做:

    number  flag_new    flag_math   new_col
0   1   True    True    1
1   2   False   True    0
2   3   True    False   -1