как читать параметры из консоли к методу в Groovy? - PullRequest
1 голос
/ 26 мая 2011

Я новичок в groovy. Я читаю значения для 2 переменных из консоли с приведенными ниже строками кода.

System.in.withReader {   
  println "Version: "  
  version = it.readLine()  
  println "Doc Type:"  
  Doc=it.readLine()  
  call getBillID(version,Doc)
}

getBillid метод, как показано ниже,

def getBillID(int version,int doc)
{  
  allNodes.BillID.each {
    theregularExpression=/\d+_\d+_\d+_\d_\d+_\d+_\d_${version}_${Doc}_\d+_\d+/
    if(it != "" && it =~ theregularExpression) {
      println "******" + it
    }
  }
}

Теперь я хочу использовать эти значения переменных в моем методе getBILLID, но я получаю ошибку как

No signature of method: ReadXML.getBillID() is applicable for argument types: (java.lang.String, java.lang.String) values: [9, ]

где я ошибся. Кто-нибудь может сказать мне, плз ..

Ответы [ 2 ]

3 голосов
/ 26 мая 2011

В дополнение к ответу @ Kalarani, вы также можете сделать это:

System.in.withReader {
  print "Version: "
  int version = it.readLine() as int
  print "Doc Type: "
  int doc = it.readLine() as int
  getBillID( version, doc )
}

В качестве отступления; Я был бы осторожен с вашей прописной буквой и именами переменных, то есть: у вас есть переменная с именем Doc с заглавной буквой. Это не стандартная схема именования, и лучше всего использовать строчные буквы для имен переменных. Вы можете увидеть, где это запуталось в методе getBillID. Параметр называется doc (все строчные буквы), но в регулярном выражении вы ссылаетесь на ${Doc} (снова заглавные буквы).

Подобные вещи в конечном итоге приведут вас к миру боли и ошибок, которые могут занять у вас больше времени, чтобы найти

0 голосов
/ 26 мая 2011

Где определен метод getBillId ()?а какая подпись метода?Было бы полезно понять вашу проблему, если бы вы могли опубликовать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...