Inheritance ColdFusion继承检查
如何检查一个java对象是否使用ColdFusion扩展了另一个java对象Inheritance ColdFusion继承检查,inheritance,reflection,coldfusion,Inheritance,Reflection,Coldfusion,如何检查一个java对象是否使用ColdFusion扩展了另一个java对象 <cffunction name="render" access="public" returntype="void" output="true"> <cfargument name="page" type="any" required="true" /> <cfset var model = arguments.page.getModel() /> &l
<cffunction name="render" access="public" returntype="void" output="true">
<cfargument name="page" type="any" required="true" />
<cfset var model = arguments.page.getModel() />
<cfif <!--- model extends SpecialBaseModel ---> >
<!--- Do Something --->
</cfif>
</cffunction>
所讨论的java对象不是用
createObject
或cf_object
创建的。我只有扩展类的名称空间和类名,而不是表示该类的实际实例或类对象。您没有搜索cf文档吗
给你:
如果你想疯狂地使用反射,还有一些问题。如果你需要用这种方式编写代码,我怀疑你的域模型可能有一些问题,或者至少在{model}和{{SpecialBaseModel}中存在继承问题。然后你在{{if}}块中做什么?如果模型是特殊类型的,我只是渲染一个链接。
IsInstanceOf
对我不起作用。我认为这是因为所讨论的对象是一个Java对象,它不是用CreateObject
方法或cf\u object
标记创建的。它是如何创建的?IIRC,IsInstanceOf是类加载器敏感的。因此,对于使用不同于主CF引导类加载器的类加载器创建的java对象,它可能会失败。@Leigh,我认为这就是发生的情况。我认为这两个对象是用不同的类加载器创建的。@StevenWexler-可能,但您仍然没有告诉我们您是如何创建对象的;-)你能用一个简单的例子来更新你的问题吗?我们需要一个具体的例子来提供进一步的建议。