يستدعي رمز سكالا الخاص بي (تنفيذ deserializer جاكسون) وظيفة Java التي دائمًا ما يتم رميها ( DeserializationContext.handleUnexpectedToken
). إذا كانت هذه دالة Scala ، فسيكون نوع الإرجاع Nothing
وسيقوم المترجم بإدراك الكود بعد أن يتعذر الوصول إليه. أستخدم حاليا ???
بعد استدعاء الوظيفة لتمييز هذا ، يمكنني أيضًا استخدام أي throw
بدلا من ذلك ، ولكن ربما هناك طريقة أفضل ، بعض التعليقات أو شيء من هذا؟
class XDeserializer extends StdDeserializer[X](classOf[X]) {
def deserialize(p: JsonParser, ctxt: DeserializationContext) = {
if (p.getCurrentToken.equals(JsonToken.VALUE_STRING)) {
/* .... */
} else {
ctxt.handleUnexpectedToken(classOf[X], p)
??? // is there a better way?
}
}
}