Я играю с сериализацией и сталкиваюсь с проблемой при наборе текста при чтении из файла.Использовать значение переменной как Тип в Scala
Мой текущий план действий - использовать префикс имени файла, чтобы предложить правильный тип, а затем основывать десериализацию на этом типе. (Это может быть «очень плохой идеей», поэтому любые предложения в противном случае были бы очень благодарны!)
По сути, я хочу записать объект в файл, а затем, в какой-то момент позже, прочитать файл обратно к объекту правильного типа.
Следующая что-то вроде того, что я хочу использовать:
def readPatch(name:String): Patch = {
// split name at tilde, prefix gives type
val List(typeCode, filename) = List.fromString(name,'~')
val patchClass = typeCode match {
case "cfp" => CreateFilePatch.getClass
case "dfp" => DeleteFilePatch.getClass
case "cp" => ChangePatch.getClass
}
val inStream = new ObjectInputStream(new FileInputStream(filename))
inStream.readObject().asInstanceOf[patchClass]
}
, но я думаю, что я не в состоянии из-за типы не являющихся объектами. При попытке этого кода я получаю сообщение об ошибке «not found: type patchClass».
Может ли кто-нибудь предложить идеи?
Ницца, это работает! Я не уверен, что я приближаюсь к проблеме наилучшим образом, но пока это будет; благодаря! – owst