Я родом из фона веб-разработки. Недавно я немного поигрался с Java и столкнулся со следующей проблемой, которая, кажется, связана со строгими интерфейсами и типизацией данных, которые являются большей частью Java, чем PHP.
Я использую существующий физический движок ( Phys2D ) для разработки своего рода игры. Этот физический движок имеет Body
объектов, управляемых World
, и к ним применяются различные силы, когда мир наступает. Для ИИ в игре важно, чтобы тела имели цвета (чтобы их можно было воспринимать), но это не поддерживается физическим движком, поэтому я создал подкласс и расширил класс Body
, добавив в него класс это - http://pastebin.com/1nLYWg3w. Теперь, когда я создаю эти Body
экземпляры, я могу вернуть их из World
и получить их цвета.
Однако Netbeans говорит, что это
cannot find symbol
symbol: method getColour()
location: class net.phys2d.raw.Body
, поскольку объекты Body
, возвращаемые интерфейсом физического движка, не содержат этот метод. Я знаю, что во время выполнения все объекты Body
, которые передаются в World
, на самом деле будут объектами типа ColouredBody
, и поэтому этот метод будет определен в их интерфейсах.
Как я могу прикрепить цвета к Body
объектам и не создавать страшных подчеркиваний и предупреждений? Я понимаю, что могу изменить сам Phys2D, но, за исключением потенциальных лицензионных ограничений (лицензия говорит, что вы можете сделать это с Phys2D), мне говорят, что это плохая практика.