Nik*_*kov 0 reflection scala scala-2.10
基本上我想知道是否有更好的解决方案,然后如下:
t <:< typeOf[Tuple1[_]] ||
t <:< typeOf[Tuple2[_, _]] ||
t <:< typeOf[Tuple3[_, _, _]] ||
t <:< typeOf[Tuple4[_, _, _, _]] ||
t <:< typeOf[Tuple5[_, _, _, _, _]] ||
t <:< typeOf[Tuple6[_, _, _, _, _, _]] ||
t <:< typeOf[Tuple7[_, _, _, _, _, _, _]] ||
t <:< typeOf[Tuple8[_, _, _, _, _, _, _, _]] ||
t <:< typeOf[Tuple9[_, _, _, _, _, _, _, _, _]] ||
t <:< typeOf[Tuple10[_, _, _, _, _, _, _, _, _, _]] ||
t <:< typeOf[Tuple11[_, _, _, _, _, _, _, _, _, _, _]] ||
t <:< typeOf[Tuple12[_, _, _, _, _, _, _, _, _, _, _, _]] ||
t <:< typeOf[Tuple13[_, _, _, _, _, _, _, _, _, _, _, _, _]] ||
t <:< typeOf[Tuple14[_, _, _, _, _, _, _, _, _, _, _, _, _, _]] ||
t <:< typeOf[Tuple15[_, _, _, _, _, _, _, _, _, _, _, _, _, _, _]] ||
t <:< typeOf[Tuple16[_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _]] ||
t <:< typeOf[Tuple17[_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _]] ||
t <:< typeOf[Tuple18[_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _]] ||
t <:< typeOf[Tuple19[_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _]] ||
t <:< typeOf[Tuple20[_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _]] ||
t <:< typeOf[Tuple21[_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _]] ||
t <:< typeOf[Tuple22[_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _]]
Run Code Online (Sandbox Code Playgroud)
runtime.ScalaRunTime.isTuple 必须是规范的:
def isTuple(x: Any) = x != null && x.getClass.getName.startsWith("scala.Tuple")
Run Code Online (Sandbox Code Playgroud)
即
t.typeSymbol.fullName startsWith "scala.Tuple"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
467 次 |
| 最近记录: |