我最近尝试使用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
删除这些,一切都很好。不确定为什么会这样?
答案 0 :(得分:1)
我知道您特别询问了JavaDoc符号,但我不是粉丝,您可能没有看到任何替代方案。我更喜欢这种语法。
@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://www.nativescript.org/setup/win'))"