Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何测试案例类构造函数的参数?_Scala_Case Class - Fatal编程技术网

Scala 如何测试案例类构造函数的参数?

Scala 如何测试案例类构造函数的参数?,scala,case-class,Scala,Case Class,我想测试我的case类构造函数的参数,如果它们没有通过某些测试,就会抛出一个异常。当我试图编写自己的apply方法(多个“apply”方法)时,编译器抱怨道 我想我可以让它成为一个非case类,自己做apply/unapply构造函数字段的工作,但我不希望这样 谢谢案例类挑剔(i:Int,s:String){ 要求(i%2==0,“我必须是偶数”) 要求(s.长度

我想测试我的case类构造函数的参数,如果它们没有通过某些测试,就会抛出一个异常。当我试图编写自己的apply方法(多个“apply”方法)时,编译器抱怨道

我想我可以让它成为一个非case类,自己做apply/unapply构造函数字段的工作,但我不希望这样

谢谢

案例类挑剔(i:Int,s:String){
要求(i%2==0,“我必须是偶数”)
要求(s.长度<50,“s.长度必须小于50个字符”)
// ...
}

这正是我所期待的,如果您最终不再希望客户端代码必须处理异常(糟糕的FP代码味道)想要一个与FP解决方案更一致的预防性解决方案,如Option、Try或Other,我刚刚在StackOverflow的姐妹网站CodeReview上发布了一些关于它的信息。如果您有时间查看,我将非常感谢您对它的任何反馈;例如,帮助减少样板文件,更好地处理问题空间的方法,等等。:
case class Picky(i: Int, s: String) {
  require(i % 2 == 0, "i must be even")
  require(s.length < 50, "s length must be less than 50 characters")

  // ...
}