Je suis habitué aux tests REPL de style python sur un shell et j'apprends Java. J'ai récemment appris que presque tout le code Java peut être exécuté de manière REPL via groovy. Jusqu'à présent, la console groovy m'a aidé à tester rapidement mes extraits de code Java.Erreur groovy: Littéral de type primitif: l'octet ne peut pas être utilisé comme nom de méthode
Je suis en train d'exécuter le code Java suivant dans la console groovy (que je trouvais obtenir de another Stackoverflow question):
String md5(String s)
{
MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
digest.update(s.getBytes());
byte messageDigest[] = digest.digest();
// Create Hex String
StringBuffer hexString = new StringBuffer();
for (int i=0; i<messageDigest.length; i++)
hexString.append(Integer.toHexString(0xFF & messageDigest[i]));
return hexString.toString();
}
String md5hash = md5("a test message");
Lorsque je tente d'exécuter, je reçois le message d'erreur suivant:
Type primitif littéral: octet ne peut pas être utilisé comme nom de la méthode à la ligne: 5 colonne: 13. fichier: ConsoleScript0 à la ligne: 6, colonne: 13
j'ai cherché le message d'erreur ici sur SO et ailleurs, mais je ne pouvais pas obtenir d'indices. Il semble être un code Java valide, alors pourquoi Groovy pense-t-il que j'essaie d'utiliser "byte" comme nom de méthode?
J'utilise la version Groovy: 1.8.4 JVM: 1.6.0_26
Avez-vous essayé 'byte [] messageDigest'? – rsp