Hello there I am compiling standard Java code with Groovy (it works for the most part with some exceptions) and want to call out some differences. Is there a way for me to auto fix these discrepancies with say a text pre-processor or some AST parsing modifications?
*Compile errors with new lines. *This snippet of code below will cause a compile error with "Cannot find matching method java.lang.String#positive()" on the line after the return statement. I suppose this is because the parser thinks return blah is a statement by itself @Override public String toString() { return "blah" + "blah blah"; } *Unexpected behaviour with new lines.* This can cause other issues unexpectedly. The following is valid java code, but it returns null in Groovy instead of blah blah @Override public String toString() { return "blah blah"; } *Array constructs. *This is valid java code but will cause a compile error in Groovy because arrays need to be created with [ ] instead of { } enum MyEnum { ME, YOU, US } @MyEnums(value = {ME, YOU}) void function1() { ... } *Static type checking for stream constructs. * class MyData ( String dataType; } List<MyData> allMyData = [] // This is valid Java but wont compile in Groovy. The error is (getDataType is not a valid method on Object) Map<String, List<String>> myList = allMyData.stream().collect(Collectors.groupingBy(data -> data.dataType )); // It needs to be converted to this Map<String, List<String>> myList = allMyData.stream().collect(Collectors.groupingBy { MyData data -> data.dataType } ); regards Saravanan