【发布时间】:2016-03-09 16:05:34
【问题描述】:
我有一个名为 Video 的类和这个类的一个对象(这里称为“b”)
这是测试用例:
log.debug b
log.debug b.class
log.debug (b.class == Video)
log.debug (b instanceof Video)
log.debug (b.instanceOf(Video))
log.debug (b in Video)
输出是:
DEBUG NavLinkHelperTagLib - product.content.Video : 4352
DEBUG NavLinkHelperTagLib - class product.content.Video
DEBUG NavLinkHelperTagLib - true
DEBUG NavLinkHelperTagLib - false
DEBUG NavLinkHelperTagLib - true
DEBUG NavLinkHelperTagLib - false
谁能告诉我为什么 instanceof 失败了?!
编辑:
我感觉这与 GORM 有关。这是我的捐赠课程:
abstract class Product implements Serializable {
static hasMany = [additionalContents:AdditionalContent]
}
abstract class AdditionalContent implements Serializable{
static belongsTo = [product:Product]
}
class Video extends AdditionalContent {
}
我认为这里的问题是延迟加载?但是当这是代理/延迟问题时,通常我会在调用 .getClass() 时看到类似 Video$$javaassist 的内容,但我没有看到这个...
【问题讨论】:
-
instanceOf方法是如何实现的?
-
这个方法来自groovy/grails
标签: java hibernate grails groovy