我正在尝试将这两个类连接起来。 PatientMonitorExceptions.scala
abstract class PatientMonitorExceptions extends Exception
case class InvalidHeartRate (str:String) extends PatientMonitorExceptions
这是我正在尝试使用以下行编译的main.scala:
main.scala
import gasguru.patient.PatientMonitor
import gasguru.patient.Patient
import gasguru.patient.exceptions.InvalidHeartRate
object Main extends App {
val p = new Patient("snyder","brad");
val v = p.vitalSigns
val pm = new PatientMonitor(p);
p.vitalSigns.heartRate = 160;
println("The patient's heart rate is: " + p.vitalSigns.heartRate + " bpm");
try { pm checkHeartRate v.heartRate
}
catch {
case InvalidHeartRate(x) => println(x);
case _ => println("Something else");
}
}
我正在运行:scala main.scala
来编译它
错误:加载InvalidHeartRate时出错,缺少依赖项'class InvalidHeartRate',需要./gasguru/patient/exceptions/InvalidHeartRate.class
此错误消息是什么意思?
答案 0 :(得分:1)
当main.scala
引用InvalidHeartRate
时,它指的是为您的案例类InvalidHeartRate
创建的伴随对象,并在其上调用unapply
方法来进行匹配。 InvalidHeartRate
对象依赖于类路径中的InvalidHeartRate
案例类。发生错误消息是因为即使找到了伴随对象的.class
文件(InvalidHeartRate$.class
),也会丢失案例类本身的.class
文件(InvalidHeartRate.class
)。我建议删除所有.class
文件并重新编译。