相关疑难解决方法(0)

在Scala中,如何使用多个构造函数对Java类进行子类化?

假设我有一个带有多个构造函数的Java类:

class Base {
    Base(int arg1) {...};
    Base(String arg2) {...};
    Base(double arg3) {...};
}
Run Code Online (Sandbox Code Playgroud)

如何在Scala中扩展它并仍然提供对Base的所有三个构造函数的访问?在Scala中,子类只能调用其中一个超类的构造函数.我该如何解决这条规则?

假设Java类是我无法更改的遗留代码.

java constructor scala multiple-constructors

57
推荐指数
2
解决办法
9562
查看次数

如何在Scala中继承Exception

可能重复:
使用scala中的重载构造函数定义自己的异常

我想编写一个Scala异常类,它对Java Exception类进行子类化,并提供类似的构造函数(每个构造函数都会调用相应的Exception ctor.即,我将如何编写此Java类的Scala等价物:

public class MyException extends java.lang.Exception {
    public MyException () {
    }

    public MyException (String msg) {
        super(msg);
    }

    public MyException (Throwable e) {
        super(e);
    }

    public MyException (String msg, Throwable cause) {
        super(msg, cause);
    }
}
Run Code Online (Sandbox Code Playgroud)

这似乎与这个问题有关,但其中的答案并不令人满意(因为实际上没有定义子类).

java scala

2
推荐指数
1
解决办法
2580
查看次数

Scala:子类化具有多个构造函数的 Java 类?

我正在尝试扩展 Java Exception 类,但结果非常丑陋和笨拙。所以,我不确定我是否在正确的轨道上。有没有更好的方法来做到这一点?

class ParentError(_d: Double, msg: String, cause: Throwable)
      extends Exception(msg: String, cause: Throwable) {
  def this() = this(0, null, null)
  def this(d: Double) = this(d, null, null)
  def this(msg: String) = this(0, msg, null)
  def this(msg: String, cause: Throwable) = this(0, msg, cause)
  def this(cause: Throwable) = this(0, null, cause)
  def i = _d
}

case class ChildError(_b: Boolean, _i: Double, msg: String, cause: Throwable)
      extends ParentError(_i: Double, msg: String, cause: Throwable) {
  def this(b: Boolean) = …
Run Code Online (Sandbox Code Playgroud)

scala

1
推荐指数
1
解决办法
662
查看次数

标签 统计

scala ×3

java ×2

constructor ×1

multiple-constructors ×1