0

Im using https://code.google.com/p/javaparser Java parser to get data from file. Problem is parser can't recognize arraylist, hashmap, map etc.

When I use arraylist in file like this;

public static ArrayList<ClassType> classList;

There is no any error. It works.

When I use it like this;

public static ArrayList<ClassType> classList = new ArrayList<>();

It gives following error

is 15, 2015 7:22:23 AM diagramcreator.DiagramCreator main SEVERE: null japa.parser.ParseException: Encountered " "<" "< "" at line 2, column 69. Was expecting: "(" ...

at japa.parser.ASTParser.generateParseException(ASTParser.java:10074)
at japa.parser.ASTParser.jj_consume_token(ASTParser.java:9920)
at japa.parser.ASTParser.Arguments(ASTParser.java:3097)
at japa.parser.ASTParser.AllocationExpression(ASTParser.java:3226)
at japa.parser.ASTParser.PrimaryPrefix(ASTParser.java:2885)
at japa.parser.ASTParser.PrimaryExpression(ASTParser.java:2789)
at japa.parser.ASTParser.PostfixExpression(ASTParser.java:2715)
at japa.parser.ASTParser.UnaryExpressionNotPlusMinus(ASTParser.java:2695)
at japa.parser.ASTParser.UnaryExpression(ASTParser.java:2589)
at japa.parser.ASTParser.MultiplicativeExpression(ASTParser.java:2479)
at japa.parser.ASTParser.AdditiveExpression(ASTParser.java:2439)
at japa.parser.ASTParser.ShiftExpression(ASTParser.java:2399)
at japa.parser.ASTParser.RelationalExpression(ASTParser.java:2349)
at japa.parser.ASTParser.InstanceOfExpression(ASTParser.java:2326)
at japa.parser.ASTParser.EqualityExpression(ASTParser.java:2287)
at japa.parser.ASTParser.AndExpression(ASTParser.java:2261)
at japa.parser.ASTParser.ExclusiveOrExpression(ASTParser.java:2236)
at japa.parser.ASTParser.InclusiveOrExpression(ASTParser.java:2211)
at japa.parser.ASTParser.ConditionalAndExpression(ASTParser.java:2186)
at japa.parser.ASTParser.ConditionalOrExpression(ASTParser.java:2161)
at japa.parser.ASTParser.ConditionalExpression(ASTParser.java:2137)
at japa.parser.ASTParser.Expression(ASTParser.java:2053)
at japa.parser.ASTParser.VariableInitializer(ASTParser.java:1191)
at japa.parser.ASTParser.VariableDeclarator(ASTParser.java:1113)
at japa.parser.ASTParser.FieldDeclaration(ASTParser.java:1076)
at japa.parser.ASTParser.ClassOrInterfaceBodyDeclaration(ASTParser.java:1028)
at japa.parser.ASTParser.ClassOrInterfaceBody(ASTParser.java:961)
at japa.parser.ASTParser.ClassOrInterfaceDeclaration(ASTParser.java:604)
at japa.parser.ASTParser.TypeDeclaration(ASTParser.java:524)
at japa.parser.ASTParser.CompilationUnit(ASTParser.java:269)
at japa.parser.JavaParser.parse(JavaParser.java:81)
at japa.parser.JavaParser.parse(JavaParser.java:109)
at japa.parser.JavaParser.parse(JavaParser.java:124)
at diagramcreator.DiagramCreator.main(DiagramCreator.java:65)

How can I solve this? Any suggestions? I think problem might be the diamond brackets, but I don't know how to solve this.

Nerzid
  • 457
  • 5
  • 15

1 Answers1

1

You're linking to a very old version of the project which is no longer active, and only supports Java versions up to Java 5. The diamond operator (<>) you're using in new ArrayList<>() was only introduced in Java 7, hence the parser doesn't recognize it.

To fix the issue, download a recent JavaParser build with support for versions up to Java 8 from here.

Robby Cornelissen
  • 91,784
  • 22
  • 134
  • 156