Java 编译时目标代码中的级联错误

标签 java compiler-errors

我正在尝试编译一个 java 程序,但是我收到一连串错误,指出

"Error expected", "illegal start of type", "class, interface or enum expected" from the file containing methods/constructors for an object called Task.

根据我在网上收集到的信息,当在类或方法等之外进行语句时,就会发生这些错误,但我还没有这样做。

代码之前工作正常,我对 Task.java 所做的只是添加一些基本的 get 和 set 方法并更改一些变量的名称。

更重要的是,我无法在cmd中查看所有错误。由于某种原因,我只能向上滚动到目前为止,所以我什至无法尝试查明来源。

public class Task
{
// private member variables
private int CriticalTime;
private int TaskTime;
private int id;
private int numDependency;
private int day;
private boolean generic;
private boolean isComplete;
private boolean isCritical;
private boolean ignore;
private boolean dummy;
private boolean isScheduled;
private int[] dependency;

public Task()
{
    CriticalTime = 0;
    TaskTime = 0;
    id = 0;
    numDependency = 0;
    day = 0;
    generic = false;
    isComplete = false;
    isCritical = false;
    ignore = false;
    dummy = false;
    isScheduled = false;
    int[] dependency; 
    return;
}

public Task(int x, int y, int ID, int NumDependency, int Day, boolean Generic, boolean IsComplete, boolean IsCritical, boolean Ignore, boolean Dummy, boolean IsScheduled, int[] Dependency)
{
    CriticalTime = x;
    TaskTime = y;
    id = ID;
    numDependency = NumDependency;
    day = Day;
    generic = Generic;
    isComplete = IsComplete;
    isCritical = IsCritical;
    ignore = Ignore;
    dummy = Dummy;
    isScheduled = IsScheduled;
    this.dependency = Dependency;
    return;
}

public void setTask(int x, int y, int ID, int NumDependency, int Day, boolean Generic, boolean IsComplete, boolean IsCritical, boolean Ignore, boolean Dummy boolean IsScheduled, int[] Dependency)
 {
    CriticalTime = x;
    TaskTime = y;
    id = ID;
    numDependency = NumDependency;
    day = Day;
    generic = Generic;
    isComplete = IsComplete;
    isCritical = IsCritical;
    ignore = Ignore;
    dummy = Dummy;
    isScheduled = IsScheduled;
    this.dependency = Dependency;
}
 public void setTask(int[] Dependency)
 {
    CriticalTime = 0;
    day = 0;
    generic = false;
    isComplete = false;
    isCritical = false;
    ignore = false;
    dummy = false;
    isScheduled = false;
    this.dependency = Dependency;
}

public int getCriticalTime()
{
    return CriticalTime;
}

public int getTaskTime()
{
    return TaskTime;
}

public int getTaskID()
{
    return id;
}

 public int getNumDependency()
{
    return numDependency;
}

   public boolean getGenericBoolean()
{
    return generic;
}
   public boolean getIsCompleteBoolean()
{
    return isComplete;
}
   public boolean getIsCriticalBoolean()
{
    return isCritical;
}
   public boolean getIgnoreBoolean()
{
    return ignore;
}
   public boolean getIsScheduled()
{
    return isScheduled;
}
  public boolean getDummy()
{
    return dummy;
}
  public int getDay()
{
    return day;
}
   public int getDependency(int x)
{
    return dependency[x];
}

   public void setGenericBoolean(boolean Generic)
{
    generic = Generic;
}
   public void setIsCompleteBoolean(boolean IsComplete)
{
    isComplete = IsComplete;
}
    public void setIsCriticalBoolean(boolean IsCritical)
{
    isCritical = IsCritical;
}
    public void setIgnoreBoolean(boolean Ignore)
{
    ignore = Ignore;
}

    public void setIsScheduled(boolean IsScheduled)
{
    isScheduled = IsScheduled;
}

    public void setCriticalTime(int A)
{
    CriticalTime = A;
}
    public void setCriticalTime(int A, int B)
{
    CriticalTime = A + B;
}
    public void setDependency(int i, int A)
{
    dependency[i]=A;
}
    public void setTaskTime(int A)
{
    TaskTime = A;
}
    public void setTaskID(int A)
{
    id = A;
}
    public void setNumDep(int A)
{
    numDependency = A;
}
  public void setDummy(boolean Dummy)
{
    dummy = Dummy;
}
  public void setDay(int i)
{
    day = i;
}

}

抱歉,如果格式错误或有不必要的方法等,我是个新手。

最佳答案

不是直接答案,而是如何解决此类问题的指南:只需注释掉 95% 的代码即可。

换句话说:您尝试编译的代码越多,简单的语法错误就越容易变成直接指向正确位置的错误消息。

因此:

  • 您只需从更频繁地运行编译器开始。编写 5 行代码(您认为:这应该可以编译) - 然后运行编译器。修复错误。等等
  • 正如所说:当你有这么大的事情并且你无法将错误消息转化为有意义的信息时:尝试隔离问题的根源。

除此之外:阅读干净的代码。例如,这种做法提倡一个方法最多有 3 个参数。令人惊讶的是:在您的情况下,当 3 个参数只有 2 个逗号时,这种缺失的逗号更容易被发现 - 而不是您的情况下,12 个参数有 11 个逗号)。

说真的:你的“语法”问题只是真正问题的一个症状:这取决于你设计你的类及其方法的方式。

关于Java 编译时目标代码中的级联错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45216592/

相关文章:

用于编程面试的 Java 数据访问

java - 需要帮助编译此迭代和接口(interface)程序

java - 请帮助我让Java命令正常工作

java - 如何将此二维 DP(动态程序)解决方案优化为一维?

java - 在运行时确定应用程序服务器?

ios - 如何解决显示类似文件名被使用两次的错误

c++ - 试图编译 boost 依赖库 - "is private"错误

Scala 在同一行声明多个变量,且第一个字符为大写

java - Facebook4j 分页获取所有好友

java - 使用 SpringSecurity 和 Mock 进行 Spring Boot 单元测试