使用 NULL 输入调用函数

问题描述 投票:0回答:1

我定义了一个 DataWeave 函数,它接受字符串作为输入,并且也可以处理空输入。但是,当我使用空输入调用它时,遇到语法错误。谁能告诉我为什么?预先感谢

代码

%dw 2.0
output application/json

fun convertToISO(dateString: String): String =
    if (dateString == null or !(dateString contains "Date")) 
        "" 
    else 
        do {
            var milliseconds = (dateString[6 to -3] as Number)
            ---
            milliseconds as DateTime {unit: "milliseconds"} as String
        }

---

{
    
        testCorrect: convertToISO("/Date(1716249600000)/"),
        testWrongEmpty : convertToISO(""),

       testWrongNull : convertToISO(null)
    
   
}

错误 enter image description here

mule dataweave mule4
1个回答
0
投票

错误消息告诉您,类型为

Null
null 不是
String
的兼容值。您可以删除该函数中的
null
检查,因为尝试向其传递
null
参数将会失败。

作为替代方案,您可以执行以下操作之一:

  • 向参数添加联合类型。示例:

    fun convertToISO(dateString: String | Null): String

  • 对于null情况使用

    重载函数
    。示例:
    fun convertToISO(dateString: Null): String = ""

  • 从呼叫者身上删除

    null
    。这意味着确保永远不会使用
    null
    值作为参数来调用该函数。

© www.soinside.com 2019 - 2024. All rights reserved.