gpt4 book ai didi

java - SpringBoot Java 中从其他私有(private)方法获取私有(private)方法内变量的信息

转载 作者:行者123 更新时间:2023-12-01 18:34:10 25 4
gpt4 key购买 nike

Holla 开发人员......我正在尝试访问一个已经声明并填充了另一个框架方法的变量,在这个 BattleShip 项目中,我使用 Java 作为后端,Vuejs 作为前端......这里是我的第一种方法;

 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<>()

将是存储所有沉没船只的一个,然后在我正在发展的第二种方法中,我想访问这个变量以设置游戏结束状态的逻辑,但找不到一个不那么复杂的方法这样做的方法!这是我的第二个尚未完成的方法:

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;

}

请问有什么建议吗?....提前致谢!!!

最佳答案

您可以将要存储沉船的变量传递给该方法,或者在我看来更干净的方法是返回该变量。如果您的方法已经必须返回另一种类型,请尝试重构它以分离关注点。如果您确实需要共享变量,则从外部创建它并将其传递到您需要它的区域,但在访问它时要注意考虑线程安全并且不要遇到任何竞争条件。

关于java - SpringBoot Java 中从其他私有(private)方法获取私有(private)方法内变量的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60095544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com