У меня есть класс Player, который имеет сектор как атрибут из класса Sector (это пара координат), я пытаюсь запустить метод, который решает, может ли игрок изменить сектор или нет, и я получаю сообщение о том, что методы void не могут вернуть значение, какой метод я могу использовать? потому что логическое не может вернуть его либо (кстати, нет никаких других ошибок или предупреждений компиляции)Java Как вернуть значение в методе
public class Movement extends Turn {
public Movement (Player player, Sector finalSector, Map map){
this.esegui(player,finalSector,map);
}
public void run(Player player, Sector finalSector, Map map){
if(map.getMatrice()[finalSector.getX()][finalSector.getY()]!=0){
if(finalSector.getX()==player.getSector().getX()){
if(finalSector.getY()==player.getSector().getY()+1||
finalSector.getY()==player.getSector().getY()-1){
//void methods cannot return a value
return player.setSector(finalSector);
}
}
}
}
}
Ваш метод 'run' должен возвращать любой тип' player.setSector (finalSector) '. – Eran
Что возвращает player.setSector? Как сказал Эран, поскольку это то, что вы пытаетесь вернуть, вам нужно вернуть этот тип. –
Если ваш метод 'run' должен возвращать успех перемещения, он должен возвращать' boolean'. Поэтому, если ваш метод 'player.setSector (...)' также возвращает 'boolean', чтобы сигнализировать об успешности перемещения, вы можете вернуть результат этого вызова метода. Можете ли вы предоставить нам дополнительную информацию о том, что возвращает ваш метод 'player.setSector (...)', и если вы используете результат возврата из цикла? – DrunkenPope