我正在探索一个Java语法分析器,我遇到了这段奇怪的代码,我通常不会在普通代码中使用它.摘自 https://code.google.com/p/javaparser/source/browse/branches/mavenized/JavaParser/src/main/java/japa/parser/ASTParser.java#1998
它有许多包含代码的函数
final public NameExpr Name() throws ParseException {
NameExpr ret;
jj_consume_token(IDENTIFIER);
ret = new NameExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image);
label_23: while (true) {
if (jj_2_17(2)) {
;
} else {
break label_23;
}
jj_consume_token(DOT);
jj_consume_token(IDENTIFIER);
ret = new QualifiedNameExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, token.image);
}
{
if (true) {
return ret;
}
}
throw new Error("Missing return statement in function");
}
Run Code Online (Sandbox Code Playgroud)
一眼看上去很奇怪,但毫无疑问它是有效的,因为我可以编译它.但有人可以解释它是如何工作的吗?我试图输入无效的Java语法,它确实是它的工作!我很困惑.返回后,几行如何抛出异常?
是否可以创建一个将在 Android 模拟器中运行的纯控制台 Android 应用程序?
我的意思是我们可以运行用于控制台输出的经典桌面 Java 应用程序System.out.println,所以我不明白为什么我们不能通过类对 Android 执行相同的操作android.util.Log。
在模拟器上执行此操作的优点是可以访问 Android Java 类实现的所需功能。
也许是一个没有Application、Activityclass 和AndroidManifest.xml
如何最好地做到这一点?
android ×2
java ×2
algorithm ×1
decompiler ×1
logging ×1
native ×1
syntax ×1
syntax-error ×1
xamarin ×1