【发布时间】:2012-06-07 09:30:39
【问题描述】:
我正在学习 java,所以如果它看起来很基础,请耐心等待。我有一个方法,我试图编辑它以返回一个“读入”的值 - 我试图返回“移动”。但是,由于代码的设置,返回超出了代码块并迫使我返回 null。有人可以编辑代码以使其返回“移动”值吗?我已经为此工作了 2 天,但我无法解决 - 尝试和捕获似乎导致了问题
public Move listenToEngineMove()
{
synchronized(engineReadBuffer)
{
int numRows=engineReadBuffer.size();
if(numRows==0);
for(int kk=0; kk<numRows; kk++)
{
String row=engineReadBuffer.get(kk);
row=row.toLowerCase();
if((row.contains("move "))||(row.contains(" ... ")))
if((!row.contains("illegal"))&&(!row.contains("error")))
try {
String[] tokens=row.replaceAll("\\<.*\\>"," ").split("\\s+");
Move move = new Move(tokens[tokens.length-1]);
jcb.makeAIsMove(move);
System.out.println("thread.... " + row);
}
catch (Exception x) {
System.out.println("Exception! : "+x.getMessage());
}
}
engineReadBuffer.clear();
}
return null;
}
【问题讨论】:
-
“我正在学习 java ...” - 你需要学习的一件事是一致地缩进你的代码。
-
没有证据表明您试图返回
move- 您尝试了什么,明显的return move;不起作用? -
正如@StephenC 所说。一旦你正确格式化它 - 你会看到返回的去向。看看这个:java.dzone.com/articles/10-best-practices-code