如何确定集合中的Object类型?
class Human{...}
class Man extends Human{...}
class Women extends Human{...}
def humans = Human.findAll()
humans.each(){ human ->
// ??? , it is not work
if ( human instanceof Man ) { println "Man" }
if ( human instanceof Woman ) { println "Woman" }
}
Run Code Online (Sandbox Code Playgroud)
非常感谢,
汤姆
Ben*_*err 16
根据你的描述,我会说你正在遇到Hibernate代理对象(即类名是:Human _ $$ javaassist*).解决方案是使用GORM提供的insatnceOf版本.无需急于获取或使用其他方法.
def planet = Planet.get(1)
planet.humans.each(){ human ->
if (human.instanceOf(Man)) { println "is Man"}
if (human.instanceOf(Woman)) { println "is Woman"}
}
Run Code Online (Sandbox Code Playgroud)
注意区别human.instanceOf(Man)而不是man instanceof Man.使用gorm方法而不是java关键字.
您可以在[参考] [1]中看到参考文档的这一部分.请参阅"懒惰的单端关联和代理"小节
[1]:http://grails.org/doc/latest/guide/single.html#5.5.2.8渴望和懒惰的提取
| 归档时间: |
|
| 查看次数: |
5351 次 |
| 最近记录: |