我有很多代码使用并期待 java.util.Date,我想将它们迁移到 org.joda.time.LocalDate。问题是大部分代码都是动态类型的。
所以我想知道是否有任何常规方法来拦截 ClassCastException,在运行时进行转换(而不是让异常冒泡)并记录操作(这样我就可以修复代码)。
例子:
import org.joda.time.LocalDate
def someMethod(date) {
println date.year()
}
// this call is ok
someMethod(new LocalDate())
// this call raises an exception
someMethod(new Date())
我不想修改上面的代码,比如用 try-catch 包围第二个调用并用正确的类型调用。我想要一种在全球范围内做到这一点的方法。