使用JavaDoc表示法指定参数属性(CFscript)

时间:2016-10-25 19:57:43

标签: coldfusion cfml cfc coldfusion-11

我最近尝试使用cfscript版本的cfcomponent以及JavaDoc表示法并收到错误:

  

系统尝试使用未定义的值,通常是这样   表示您的代码或某些系统代码中的编程错误。

     

Null Pointers是未定义值的另一个名称。

来自CF docs

/** 
 * custom metadata for a cfc defined using annotation as well as key-value pairs 
 * @cfcMetadata1 "cfc metadata1"
 */ 
component cfcMetadata2 = "cfc metadata2"
{ 
    /** 
     * custom metadata for a property defined using annotation as well as key-value pairs 
     * @propMetadata1 "property metadata1"
     */ 
    property type="numeric" name="age" default="10" propMetadata2="property metadata2"; 

    /** 
     * custom metadata for a function/argument using both annotation and key-value pairs 
     * @arg1.argmdata1 "arg metadata1"
     * output true 
     * @fnMetadata1 "function metadata1"
     */ 
    public string function foo(required numeric arg1=20 argmdata2="arg metadata2") fnMetadata2="function metadata2"
    { 
        writedump(getmetadata(this)); 
        return arg1; 
    } 
}

我的代码:

/**
 * @displayName Test
 * @output false
 *
 * @since 2016-10-25
 * @version 1.0
 */
component {

    /**
     * I am a test function.
     * 
     * @limitFrom.required false
     * @limitFrom.default 0
     *
     * @limitBy.required false
     * @limitBy.default 0
     *
     * @returnFormat "json"
     *
     * @since 2016-10-25
     * @version 1.0
     */
    remote query function test(
        numeric limitFrom,
        numeric limitBy
    ) {
        return queryNew("");
    }
}

只有当我尝试使用JavaDoc表示法为参数赋值时才会发生这种情况,即

  

@ limitFrom.default 0

     

@ limitBy.default 0

删除这些,一切都很好。不确定为什么会这样?

1 个答案:

答案 0 :(得分:1)

我知道您特别询问了JavaDoc符号,但我不是粉丝,您可能没有看到任何替代方案。我更喜欢这种语法。

@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://www.nativescript.org/setup/win'))"