Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
ANTLR готов принять 16-битные символы, но по умолчанию многие локали будут считываться в символах в виде байтов (8 бит). Вам нужно указать соответствующую кодировку при чтении из файла с использованием библиотек Java. Если вы используете TestRig
, возможно, через псевдоним / скрипт grun
, используйте аргумент -encoding utf-8
или что угодно. Если вы посмотрите на исходный код этого класса, вы увидите следующий механизм:
InputStream is = new FileInputStream(inputFile);
Reader r = new InputStreamReader(is, encoding); // e.g., euc-jp or utf-8
ANTLRInputStream input = new ANTLRInputStream(r);
XLexer lexer = new XLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
...
java -Dfile.encoding=UTF-8 org.antlr.v4.runtime.misc.TestRig ID ...
– Gunther 26 January 2015 в 15:38