Sco*_*bie 19 reflection scala class object jvm-languages
在Scala中,我可以像这样声明一个对象:
class Thing
object Thingy extends Thing
Run Code Online (Sandbox Code Playgroud)
我如何"Thingy"
在Scala中获取(对象的名称)?
我听说Lift(Scala的Web框架)能够做到这一点.
Dao*_*Wen 22
如果你将它声明为a case object
而不仅仅是a object
然后它会自动扩展Product
特征,你可以调用该productPrefix
方法来获取对象的名称:
scala> case object Thingy
defined module Thingy
scala> Thingy.productPrefix
res4: java.lang.String = Thingy
Run Code Online (Sandbox Code Playgroud)
Kim*_*bel 21
只需获取类对象,然后获取其名称.
scala> Thingy.getClass.getName
res1: java.lang.String = Thingy$
Run Code Online (Sandbox Code Playgroud)
剩下的就是删除$
.
编辑:
要删除封闭对象的名称和拖尾$
,就足够了
res1.split("\\$").last
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12871 次 |
最近记录: |