IsInstanceOf

Description

Determines whether an object is an instance of a ColdFusion interface or component, or of a Java class.

Returns

Returns true if any of the following is true:

  • The object specified by the first parameter is an instance of the interface or component specified by the second parameter.

  • The Java object specified by the first parameter was created by using the cfobject tag or CreateObject method and is an instance of the Java class specified by the second parameter.

  • The object specified by the first parameter is an instance of a component that extends the component specified in the second parameter.

  • The object specified by the first parameter is an instance of a component that extends a component that implements the interface specified in the second parameter.

  • The Java object specified by the first parameter was created by using the cfobject tag or CreateObject method and is an instance of a Java class that extends the class specified by the second parameter.

    Returns false otherwise.

    Note: The isInstanceOf function returns false if the CFC specified by the object parameter does not define any functions.

Function syntax

IsInstanceOf(object, typeName)

History

ColdFusion 8: Added this function.

Parameters

Parameter

Description

object

The CFC instance or Java object that you are testing

typeName

The name of the interface, component, or Java class of which the object might be an instance

Usage

For Java objects, the comparison is valid only if you created the object specified in the first parameter by using a cfobject tag or CreateObject method.

Example

<!--- to use this example, create an I1.cfc interface, as follows: ---> 
 
<cfinterface> 
    <cffunction name = "method1"> 
    </cffunction> 
</cfinterface> 
 
<!--- Create a C1.cfc component that implements the I1.cfc interface, as 
    follows: ---> 
<cfcomponent implements=I1> 
    <cffunction name = "method1"> 
        <cfoutput>C1.method1 called</cfoutput> 
    </cffunction> 
</cfcomponent> 
 
<!--- Create a test.cfm file as follows and display the page. ---> 
<!--- Create an instance of the C1 CFC, which implements the I1 interface. 
    ---> 
<cfset c1obj = CreateObject("Component", "C1")> 
<!--- Create a Java object ---> 
<cfset javaObj = createobject("java", "java.lang.System")> 
 
<cfoutput> 
    IsInstanceOf(c1obj,"C1") = #IsInstanceOf(c1obj,"C1")#  
        (Expected = YES)<br><br> 
    IsInstanceOf(c1obj,"I1") = #IsInstanceOf(c1obj,"I1")#  
        (Expected = YES)<br><br> 
    IsInstanceOf(c1obj,"C2") = #IsInstanceOf(c1obj,"C2")#  
        (Expected = NO)<br><br> 
    IsInstanceOf(javaObj,"java.lang.System") = 
            #IsInstanceOf(javaObj,"java.lang.System")# (Expected = YES)<br><br> 
    IsInstanceOf(javaObj,"java.lang.String") = 
            #IsInstanceOf(javaObj,"java.lang.String")# (Expected = NO)<br><br> 
</cfoutput>