我正在编写一个通用方法,该方法可以将Any
类型的参数转换为传递的ClassTag[T]
类型的对象(如果可能)。
def getTypedArg[T: ClassTag](any: Any): Option[T] = {
any match {
case t: T => Some(t)
case invalid =>
logger.warn(s"Invalid argument: $invalid")
None
}
}
我希望日志信息可以更加精确,像这样:
case invalid => logger.warn(s"Invalid argument: $invalid of type $className")
我怎样从 ClassTag[T]
中检索出 className
?
或者,有没有一种根本不同的方法可以更好地满足我的用例?