在Groovy映射中更新具有相同值的所有对象字段

时间:2016-08-10 02:58:17

标签: groovy

我在Groovy中有一个Object,如:

class Person {
  def name
  def age
}

存储在地图中的人员集合:

Person a = new Person(name: 'A', age:29)
Person b = new Person(name: 'B', age:15)

Map persons = ['1':a, '2':b]

我正在尝试为所有人更新年龄字段,我知道我可以做类似的事情:

persons.each{ k,v -> v.age=0 }

但是,我想知道是否有其他方法可以在不迭代整个地图的情况下进行。如您所见,所有人都应具有相同的价值

1 个答案:

答案 0 :(得分:5)

您可以使用点差运算符:

pid=$(ps -auxwww | grep java | grep 'tomcat' | awk -F' ' '{print $2}');
echo "NODE PID = $pid"
echo $JAVA_HOME >> $logFile
if [ ! "$pid" ] ; then
    echo "NODE NOT FOUND"
    #date "+-------------- %d.%m.%Y %H:%M ---------------" >>$logFile;
    echo "\n Tomcat is not running.\n"  >>$logFile;
    /usr/home/xxxxx/apache-tomcat-7.0.50/bin/catalina.sh start >     somefile.txt
    sleep 8;
    pid2=$( ps -auxwww | grep java | grep 'tomcat' | awk -F' ' '{print $2}');

/usr/home/xxxxx/apache-tomcat-7.0.50/bin/catalina.sh start > somefile.txt this line does'nt seem to work