  Line 46) setStatic(isStatic) ==> com.github.javaparser.ast.body.InitializerDeclaration.setStatic(boolean)
  Line 47) setBlock(block) ==> com.github.javaparser.ast.body.InitializerDeclaration.setBlock(com.github.javaparser.ast.stmt.BlockStmt)
  Line 52) setStatic(isStatic) ==> com.github.javaparser.ast.body.InitializerDeclaration.setStatic(boolean)
  Line 53) setBlock(block) ==> com.github.javaparser.ast.body.InitializerDeclaration.setBlock(com.github.javaparser.ast.stmt.BlockStmt)
  Line 58) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.body.InitializerDeclaration, A)
  Line 63) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.body.InitializerDeclaration, A)
  Line 76) setAsParentNodeOf(this.block) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
  Line 87) getComment() ==> com.github.javaparser.ast.Node.getComment()
  Line 88) getComment() ==> com.github.javaparser.ast.Node.getComment()
