4
對In scala, is there any way to check if an instance is a singleton object or not?的回答解釋瞭如何檢查一個實例是否爲靜態已知的爲object
。換句話說,它不會對這種情況下的工作:如何檢查一個值是不是靜態類型的Scala單例對象?
object Obj
val x: Any = Obj
isSingleton(x)
甚至在這裏:
trait Trait // not sealed
case Obj extends Trait
class Class extends Trait
val xs: Seq[Trait] = ...
xs.filter(isSingleton)
不幸的是,我想處理這個問題。有沒有一個好的方法來做到這一點?或者至少比x.getClass.getName.endsWith("$")
更好?
使用'Any'是一個壞主意 – cchantep
當然,但它是你最終用,一旦你開始使用反射,這就是我需要的背景下,無論如何擦除類型的信息,我已經增加了一個更好的例子。 –
我不知道該怎麼做,但我想知道這是什麼用例?爲什麼你的情況下,如果一個實例是第一個單身人士?畢竟,它可能是一個單身人士,而不是'object' ...對象Foo {val bar = new Trait {}}'。 'bar'也是一個單身人士... – Dima