我正在尝试编译一个 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/