为什么此代码会出现“无法访问的代码”错误?

我似乎找不到解决这个问题的方法。 我正在做的就是声明一个整数,它告诉我代码是无法访问的。

private class myStack{ Object [] myStack = new Object[50]; private void push(Object a){ int count = 50; while(count>0){ myStack[count]=myStack[count-1]; count--; } myStack[0]=a; } private Object pop(){ return myStack[0]; int count2 = 0; //Unreachable Code } } 

从方法return后,您将返回到首先调用该方法的方法。 在返回之后放置的任何语句都是没有意义的,因为这是在没有严重违反程序计数器的情况下无法访问的代码(在Java中可能无法实现)。

引用Jim H.对问题的评论:

您从pop()方法返回。 之后的任何事情都无法到达。

无法访问的代码导致Java中的编译器错误。

在你的程序中

 int count2 = 0; 

永远不会到达,因为它是在返回声明之后。

将此行放在return语句上方即可工作。

用简单的英语简单解释如下:

  private Object pop(){ return myStack[0]; int count2 = 0; //Unreachable Code } 

方法private Object pop(){}正在寻找一个返回类型的Object ,你只需通过编写return myStack[0];给出该返回类型return myStack[0]; 那么你的方法不一定达到int count2 = 0; 因为它假设该方法已经达到了目标。

在返回myStack [0]之前声明修复