我在eclipse上遇到以下Java代码的问题(无法访问的代码)

时间:2016-01-23 07:02:59

标签: java eclipse

首先,我想澄清一下。以下是大学的家庭作业,因此我不能根据大学关于抄袭的规则发布实际代码。但这里有一个修改过的代码,可以解释我的问题

代码:

import java.util.*;

public class Foo 
{
  //creating an object array
  private static Object[] objectArray;

  //main method
  public static void main(String []args)
  {
     Scanner kb = new Scanner(System.in);
     System.out.println("Would you like to initialize array (y/n)?");
     if(kb.nextChar() == 'y')
       {
          initializeArray();
       }
     someMethod();
  }
public static void someMethod()
  {
    //checking if the array is empty, if the case, quit the method
    if(isEmpty());
    {
        System.out.println("Empty array");
        return;
    }
    //if the above check returns false (array is not empty) continues on 
    //with the code which is tagged by eclipse as unreachable
  }
public static boolean isEmpty()
  {
     for(Object a : objectArray)
      {
        if(a != null)
        {
          return false;
        }
      }
      return true;
   }
public static void initializeArray()
  {
     objectArray[0] = new Object();
  }
}

现在我的问题: 由于unreachable code,上面的代码给出了错误。我一遍又一遍地检查,我知道获得unreachable code的唯一方法是isEmpty总是返回false。不是这种情况。这是日食中可能存在的错误吗?如果这是我的错误,你能否详细解释我出错的地方。

1 个答案:

答案 0 :(得分:0)

您的代码存在一些问题。问题是

  1. 更改

     if(isEmpty());
    

     if(new Foo().isEmpty())
    

    由于isEmpty()是非静态方法,因此无法从静态方法引用并删除该额外分号。

  2. 课程未关闭(表示课程结束时缺少}。)

  3. 您在哪里找到这种nextChar()方法?

    检查Scanner课程。

    如果您想从Scanner.next获取第一个字符,那么

    而不是

    kb.nextChar() == 'y'
    

    使用

    kb.next().charAt(0) == 'y'