日期:2014-05-20  浏览次数:20811 次

class反编译出现goto如何解决?
代码如下:
		public String perform()
{
result.append("\n    ");
  goto _L1
_L7:
token = tokens.nextToken();
lcToken = token.toLowerCase();
if (!"'".equals(token)) goto _L3; else goto _L2
_L2:
String t = tokens.nextToken();
this.token += t;
if (!"'".equals(t) && tokens.hasMoreTokens()) goto _L2; else goto _L4
_L3:
if (!"\"".equals(token)) goto _L4; else goto _L5
_L5:
t = tokens.nextToken();
this.token += t;
if (!"\"".equals(t)) goto _L5; else goto _L4
_L4:
if (afterByOrSetOrFromOrSelect && ",".equals(token))
commaAfterByOrFromOrSelect();
else
if (afterOn && ",".equals(token))
commaAfterOn();
else
if ("(".equals(token))
openParen();
else
if (")".equals(token))
closeParen();
else
if (BasicFormatterImpl.BEGIN_CLAUSES.contains(lcToken))
beginNewClause();
else
if (BasicFormatterImpl.END_CLAUSES.contains(lcToken))
endNewClause();
else
if ("select".equals(lcToken))
select();
else
if (BasicFormatterImpl.DML.contains(lcToken))
updateOrInsertOrDelete();
else
if ("values".equals(lcToken))
values();
else
if ("on".equals(lcToken))
on();
else
if (afterBetween && lcToken.equals("and"))
{
misc();
afterBetween = false;
} else
if (BasicFormatterImpl.LOGICAL.contains(lcToken))
logical();
else
if (isWhitespace(token))
white();
else
misc();
if (!isWhitespace(token))
lastToken = lcToken;
_L1:
if (tokens.hasMoreTokens()) goto _L7; else goto _L6
_L6:
return result.toString();
}

------解决方案--------------------
印象中java是支持goto的,只是不建议使用。
不要的话改成条件或循环语句就可以了