Coldfusion 可选参数-传递的参数不是整数

Coldfusion 可选参数-传递的参数不是整数,coldfusion,Coldfusion,我相信这一定是一个简单的,但似乎没有多少调整有效(我希望我没有误解这里的基本面!) 我在CFC中定义了一个函数,如下所示: public void function createWidget( required any event , required String widgetType , String elementId="" , integer refreshRate="0" , required integer rowN

我相信这一定是一个简单的,但似乎没有多少调整有效(我希望我没有误解这里的基本面!)

我在CFC中定义了一个函数,如下所示:

public void function createWidget(  
        required any event
      , required String widgetType
      , String elementId=""
      , integer refreshRate="0"
      , required integer rowNumber
      , required integer colNumber
      , required integer width
      , required integer height
      , String title=""
      , String bgColour="orange" ){
如您所见,有些参数是必需的,有些参数不是必需的,我已经为它们提供了默认值(例如
integer refreshRate=“0”

现在我使用命名参数调用此函数,试图利用可选参数,例如:

createWidget( event:event
               , widgetType:'blank'
               , rowNumber:1
               , colNumber:1
               , width:2
               , height:1  
               , title:'Empty Widget' )
因此,在本例中,我没有为
refreshRate
提供任何值,但我得到了错误:

The REFRESHRATE argument passed to the createWidget function is not of type integer.
我还尝试更新
refreshRate
的默认值以删除引号(
integer refreshRate=0
),但仍然存在完全相同的问题

谁能看出我做错了什么


更新

我还尝试实际传入变量refreshRate(向函数调用添加
refreshRate:0
),但仍然得到相同的错误

好的,显然将参数切换为“
numeric
”类型可以解决这个问题-不确定整数为什么不被接受?这是一种合法的CF类型,对吗?

不,只支持数字。更详细地说,大约有十四种。所有其他值都被视为组件的“名称”。错误的真正含义是CF认为
Integer
是组件的名称,并拒绝该参数,因为它不是
Integer.cfc
的实例。