Karate 在空手道框架中执行排序时def变量中出现问题

Karate 在空手道框架中执行排序时def变量中出现问题,karate,Karate,我注意到,在将def作为列表传递以进行简单排序时,我发现除了返回值之外,原始变量也被排序 * def original = ['a','b','c'] * def javaInstance = new (Java.type('package.subpackage.StringSort')) * def sortedContent = javaInstance.m1(original,'desc'); * print sortedContent * print original 对“sor

我注意到,在将def作为列表传递以进行简单排序时,我发现除了返回值之外,原始变量也被排序

* def original = ['a','b','c']

* def javaInstance = new (Java.type('package.subpackage.StringSort'))
* def sortedContent = javaInstance.m1(original,'desc');

* print sortedContent 
* print original
对“sortedContent”和“original”def变量进行排序

以下是java fn:

public class StringSort {
  public List<String> m1(List<String> s, String order) {

    Collections.sort(s);

    if(order.equals("asc"))
        return s;
    else {
        Collections.reverse(s);
        return s;
    }       
}
}
公共类StringSort{
公共列表m1(列表s,字符串顺序){
收集、分类;
if(订单等于(“asc”))
返回s;
否则{
收款。反向收款;
返回s;
}       
}
}
输出: sortedContent=['c'、'b'、'a'] 原件=['c','b','a']

我不明白为什么原始def变量会被排序。

就是这样。创建一个:

就是这样。创建一个:

* def original = ['a','b','c']
* copy temp = original