编译错误 - 不兼容的类型

时间:2014-08-27 02:12:11

标签: java

我正在制定一个计划,我已经得到了按摩:

错误:不兼容的类型:int不能转换为String if(Double.parseDouble(obtenerMedallasEqu(nombre))> promedio())

当我试图编译它时。说实话,我不知道如何纠正这个错误。

与代码的这一部分相关的方法

public int obtenerMedallasEqu(String nombre){
    int i = 0;
    int medallas = 0;
    while (i<cantEquipos){
        if(equipos[i].getNombre().equals(nombre))
            medallas = medallas + equipos[i].getOro() + equipos[i].getPlata() + equipos[i].getBronce();
    i++;
    }
    return medallas;
}
public double promedio(){
    return (olimpiadasant[0] + olimpiadasant[1] + olimpiadasant[2] + olimpiadasant[3] + olimpiadasant[4])/5;
}

public String medallasOlimp(){
    int i = 0;
    String resultado = "";
    String nombre = "";
    while(i < cantEquipos){
        if(Double.parseDouble(obtenerMedallasEqu(nombre)) > promedio())
            resultado = "La cantidad de medallas obtenidas en Londres del " + i + " equipo es \n mayor que el promedio de medallas obtenidas en las \n 5 olimpiadas precedentes.";
        i++;
    }
    return resultado;
}

也许你们可以帮助我,或者至少给我一个如何解决它的提示。 已经谢谢了。

1 个答案:

答案 0 :(得分:3)

让我们看一下Double.parseDouble(obtenerMedallasEqu(nombre))obtenerMedallasEqu(nombre)的返回类型为int。但是,Double.parseDouble(String s)期望一个字符串,而不是一个int。因此你的错误。似乎Double.parseDouble(..)调用是不必要的 - 它已经是一个整数,你不需要解析任何东西到一个双精度。尝试将该行更改为:

if( ((double) obtenerMedallasEqu(nombre)) > promedio())