【问题标题】:Scala restrict class parameter valueScala 限制类参数值
【发布时间】:2016-12-06 00:04:07
【问题描述】:

我是 Scala 新手。我有一个类,其参数如下:

class myClass(val param: Params, val normalizer: Int){..

我有一个使用默认参数值初始化类的 apply 方法:

 def apply(): myClass = new myClass(AnotherClass.getParams, 1000) 

我想限制 normalizer 参数以仅在 normalizer > 0 时才允许构造对象,否则抛出异常。但是,这应该在所有情况下都会发生,而不仅仅是在 apply 方法中的默认情况下。处理这种情况的正确方法是什么?

谢谢,提前。

【问题讨论】:

    标签: scala


    【解决方案1】:

    只需在类主体中添加require(normalizer > 0) 并基于该类等创建类层次结构。

    在线程中查看更多详细信息: what to choose between require and assert in scala.

    小例子:

    class test(n: Int){
      require(n > 10)
    }
    

    还有related Predef documentation

    【讨论】:

    • 你能说得更具体点吗?这会在类定义中的任何地方出现吗?在这种情况下,如果 normalizer
    • 用例子更新答案!
    • 您必须手动选择链接并将其放入浏览器中。它真的有效!只需在网址中添加额外的:“f$.html”。由于某种原因,它没有完全突出显示
    猜你喜欢
    • 1970-01-01
    • 2019-06-01
    • 2014-07-11
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    相关资源
    最近更新 更多