Разработчики Holla ..... я пытаюсь получить доступ к переменной, уже объявленной и заполненной одним рамочным методом из другого, в этом проекте BattleShip я использую Java в качестве BackEnd и Vuejs в качестве Front .. ... здесь мой первый метод;
private List<Set<String>>makeShipsSinkHitsDto(Set<Salvo> salvoSet, GamePlayer gamePlayer){
List<Set<String>>dto=new LinkedList<>();
Set<String> sunkShips=new HashSet<>();--->THIS IS THE VARIABLE I WANT TO ACCESS FROM OTHER METHOD
for(Ship ship:getOppDetails(gamePlayer).getShips()){
Integer shipSize=ship.getShipPositions().size();
for(Salvo salvo:salvoSet.stream().collect(Collectors.toList())){
for( String LocationShots:ship.getShipPositions()){
if(salvo.getShootToPositions().contains(LocationShots)){
shipSize=shipSize-1;
if(shipSize==0){
sunkShips.add(ship.getTypeShip());
}
}
}
}
}
dto.add(sunkShips);
return dto;
}
где переменная:
Set<String> sunkShips=new HashSet<>()
будет той, которая будет хранить все затонувшие корабли, тогда во втором методе, который я буду развивать, я бы хотел бы получить доступ к этой переменной, чтобы установить лог c состояния Game Over, но не может найти не такой сложный способ сделать это !! вот мой второй еще не законченный метод:
private Map<String,Object> makeGetStateOfGamePlayerDto(GamePlayer gamePlayer){
Map<String,Object>dto=new HashMap<>();
if(getOppDetails(gamePlayer)==null){
dto.put("state","Waiting for opponent in game");
}
else if(getOppDetails(gamePlayer)!=null){
dto.put("state","Welcome to game,place Ships please");
if(gamePlayer.getShips().size()==5){
dto.put("state","Ships in Coordenates, Shoot!!!");
}
if(gamePlayer.salvos.size()<getOppDetails(gamePlayer).salvos.size()){
dto.put("state","Enemy hasn't shot, wait for their shots");
}
AND THEN HERE SOME CONDITIONAL ALLOWING ME TO ACCESS
THAT VARIABLE IN THE FIRST METHOD ...!
}
return dto;
}
Любой совет, пожалуйста? .... заранее спасибо !!!!