如何在不使用cfinvoke的情况下在CFC上运行静态方法?
如何在不使用cfinvoke的情况下在CFC上调用静态方法?我知道我能做到这一点:如何在不使用cfinvoke的情况下在CFC上运行静态方法?
<cfinvoke component="MyComponent" method="myStaticMethod' arg1="blah" returnvariable=myReturnVar>
我希望能够调用该方法以同样的方式我会一个UDF:
<cfset myReturnVar = MyComponent.myStaticMethod(blah)>
然而,这是行不通的。有没有我搞乱的语法,或者这是不可能的?
不可能,因为ColdFusion中没有“静态方法”。
的<cfinvoke>
线在你的问题是一样的:
myReturnVar = CreateObject("component", "MyComponent").myStaticMethod(arg1="blah");
谢谢,我认为可能是这种情况,但不确定。 – derivation 2010-01-15 19:56:19
要记住的一件事是,如果你使用CreateObject来创建一个JAVA对象,那么你会做同样的事情,在这里....你必须做一个类的静态引用(通过不调用init)..在调用静态方法之前。 – ryber 2010-01-16 03:30:16
另外,你应该比
您需要先创建对象。
<cfset MyComponent = createObject("component","MyComponent") />
<cfset myReturnVar = MyComponent.myMethod(blah) />
这和亨利写的一样,不知道为什么这是downvoted – ryber 2010-01-16 03:28:09
这不是直接回答你的问题,但你可以做一些亲近混入,只要把你要像在自己的文件中的静态方法的方法,所以你可以把它独立则CFINCLUDE那在您的CFC文件。 CFINCLUDE有一些缓存含义,但值得考虑。 – kevink 2010-01-16 13:45:35