netbeans 字符串不能转换为java.util.HashMap

izkcnapc  于 2022-11-10  发布在  Java
关注(0)|答案(1)|浏览(240)

当我运行我的代码时,我会看到一个屏幕,要求一个引用(已经编码并且工作正常)。所以当我输入IW1作为引用时,我的输出应该是IW1的细节,也就是"IW1", new troop(1, "Twisters", 200, 200))。然而,我得到了以下错误:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - incompatible types: java.lang.String cannot be converted to java.util.HashMap<java.lang.String,OODCwk.troop>
OODCwk是软件包的名称

public String getTroopDetails(String ref)
    {
        if ("IW1".equals(ref) ){
            HashMap<String, troop> Troop= getTroopDetails(ref);
            System.out.println(Troop.get("IW1"));

        }else{
            return "!";
        } 
        return "\nNo such troop";
    }

private void setupTroop()
    {
        HashMap<String, troop>Troop= new HashMap<String, troop>();

        Troop.put("IW1", new troop(1, "Twisters", 200, 200)); 

    }

public class troop{
    int FleetRef;
    String FullName;
    int ActivationFee;
    int BattleStrength; 

    public troop(int FRef, String FName, int AFee, int BStrength)
    {
        FleetRef = FRef;
        FullName = FName;
        ActivationFee = AFee;
        BattleStrength = BStrength;
    }

    public int getFleetRef()
    {
        return FleetRef;
    }
    public String getFullName()
    {
        return FullName;
    }
    public int getActivationFee()
    {
        return ActivationFee;
    }

    public int BattleStrength()
    {
        return BattleStrength;
    }
}
nhhxz33t

nhhxz33t1#

这里有几个不同的问题:
1.编译错误
incompatible types: java.lang.String cannot be converted to java.util.HashMap<java.lang.String,OODCwk.troop>
解决方案:如果你需要一个散列表,不要调用“String getTroopDetails()”。
1.在方法getTroopDetails()内对getTroopDetails()的虚假调用
解决方案:这里听起来像是要调用一个不同的方法。
1.类名“coat”应以大写字母开头
解决方案:根据Java naming conventions,您应该将类重命名为Troop,并重命名其构造函数public troop(int fRef, String fName, int aFee, int bStrength)
1.setupTroop()实际上不执行任何操作
解决方案:将HashMap * 移出setupTroop()*,并使其成为类“Troop”的成员。
根据您随后的评论:
@AlexRudenko我试图实现的是,一旦我输入IW 1,我希望输出是IW 1的细节,即1,“Twisters”,200,200,如果检测到任何其他输入,它将返回No such team
解决方案:

  • 将HashMap〈String,roop〉作为成员变量。
  • 为它指定一个有意义的名称,例如“troopDetails”
  • 在构造函数中初始化HashMap
  • 在getTroopDetails()中返回散列Map

相关问题