Я получаю синтаксическую ошибку "insert} для завершения ClassBody.
Этот код работает нормально / без ошибок:
import java.awt.Rectangle;
class Trigger
{
Type type;
long time;
ObjectID controlType;
int controlNum;
int resType, resNum;
Rectangle location;
enum Type {TIMED, CONTROLED, LOCATION, RESOURCE};
Trigger()
{
}
}
Однако, когда я добавляю конструкторы, подобные этому, я получаюошибка:
class Trigger
{
Type type;
long time;
ObjectID controlType;
int controlNum;
int resType, resNum;
Rectangle location;
enum Type {TIMED, CONTROLED, LOCATION, RESOURCE}; //I get the error on this line
Trigger(Type.TIMED, long t)
{
time = t;
}
Trigger(Type.CONTROLLED, int c)
{
controlNum= c;
}
Trigger(Type.LOCATION, int locx, int locy, int w, int h)
{
location = new Rectangle(locx, locy, w, h);
}
Trigger(Type.RESOURCE, int resT, int resN)
{
resType = resT;
resNum = resN;
}
}
** Обратите внимание, что я пишу этот код в процессе обработки!
также, если я переместу строку перечисления вверх (выше «Тип типа»), то ошибкасообщение переходит на строку "Rectangle location;"
так что же здесь происходит? Я не понимаю, почему я не получаю ошибку для первого кода, но я делаю для второго!
Обновление
ok Я изменил код, чтобы enum инициализировал переменную типа в каждом конструкторе. Это будет для rts, который я помогаю спроектировать дляпроект класса. Есть еще один класс под названием GameEvent, в котором есть экземпляр триггера и список действий массива. Триггеры будут выгружены из файла, а затем действия будут жестко закодированы (я знаю плохой стиль, но есть только 3миссии и ТА сказали, чтот мы не будем терять оценки за это).Поэтому детские классы звучат как хорошая идея.Но почему это не работает как есть?
вот обновленный код:
import java.awt.Rectangle;
class Trigger
{
Type type;
long time;
FCObjectID controlType;
int controlNum;
int resType, resNum;
Rectangle location;
enum Type {TIMED, CONTROLED, LOCATION, RESOURCE};
Trigger(Type.TIMED, long t)
{
type = TIMED;
time = t;
}
Trigger(Type.CONTROLLED, int c)
{
type = CONTROLED;
controlNum= c;
}
Trigger(Type.LOCATION, int locx, int locy, int w, int h)
{
type = LOCATION;
location = new Rectangle(locx, locy, w, h);
}
Trigger(Type.RESOURCE, int resT, int resN)
{
type = RESOURCE;
resType = resT;
resNum = resN;
}
}