我正在编写一个转换某些单位的程序,但我一直遇到错误。我的程序有4个方法(一个用于原始单位,一个用于转换为新单位,一个用于转换&一个用于多少个单位),而且每个方法都是正确编写的。当我运行它时,我得到了“未解决的编译问题”的错误。
代码如下:
public static String getUnitFrom(){
String original = "";
final String OZ = "oz";
final String LB = "lb";
final String IN = "in";
final String FT = "ft";
switch(original){
case OZ:
original = "oz";
break;
case LB:
original = "lb";
break;
case IN:
original = "in";
break;
case FT:
original = "ft";
break;
default:
System.out.println("Invalid input.");
}
return original;
}
public static String getUnitTo(String conversionFromUnit){
String conversionFromUnit = "";
final String G = "g";
final String KG = "kg";
final String MM = "mm";
final String CM = "cm";
final String M = "m";
if(getUnitFrom().equals("oz") || getUnitFrom().equals("lb")){
switch(conversionFromUnit){
case G:
conversionFromUnit = "g";
break;
case KG:
conversionFromUnit = "kg";
break;
default:
System.out.println("Invalid conversion!");
}
}
else if (getUnitFrom().equals("in") || getUnitFrom().equals("ft")){
switch (conversionFromUnit){
case MM:
conversionFromUnit = "mm";
break;
case CM:
conversionFromUnit = "cm";
break;
case M:
conversionFromUnit = "m";
break;
default:
System.out.println("Invalid conversion!");
}
}
return conversionFromUnit;
}
public static double getValue(){
double value = 0;
if(getUnitFrom() > 0 && getUnitTo() > 0){
value = input.nextDouble();
}
}
public static double getConversionRate(String from, String to){
double rate = 0;
if(from.equals(getUnitFrom("oz")) && to.equals(getUnitTo("g"))){
rate = 28.3;
}
else if(from.equals(getUnitFrom("oz")) && to.equals(getUnitTo("kg"))){
rate = 0.028;
}
else if(from.equals(getUnitFrom("lb")) && to.equals(getUnitTo("g"))){
rate = 453.6;
}
else if(from.equals(getUnitFrom("lb")) && to.equals(getUnitTo("kg"))){
rate = 0.045;
}
if(from.equals(getUnitFrom("in")) && to.equals(getUnitTo("mm"))){
rate = 25.4;
}
else if(from.equals(getUnitFrom("in")) && to.equals(getUnitTo("cm"))){
rate = 2.54;
}
else if(from.equals(getUnitFrom("in")) && to.equals(getUnitTo("m"))){
rate = 0.0254;
}
else if(from.equals(getUnitFrom("ft")) && to.equals(getUnitTo("mm"))){
rate = 304.8;
}
else if(from.equals(getUnitFrom("ft")) && to.equals(getUnitFrom("cm"))){
rate = 30.48;
}
else if(from.equals(getUnitFrom("ft")) && to.equals(getUnitFrom("m"))){
rate = 0.3048;
}
return rate;
}
public static void main(String[] args) {
String convertFrom = getUnitFrom();
String convertTo = getUnitTo();
double valueOf = getValue();
System.out.println(getValue() + " " + getUnitFrom() + " = " + (getValue() * getConversionRate()) + " " + getUnitTo());
}
public static Scanner input = new Scanner(System.in);发布于 2016-03-05 10:39:27
发布于 2016-03-05 10:40:04
抛出错误后会列出问题。
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The method getUnitTo(String) in the type Testing is not applicable for the arguments ()
The method getConversionRate(String, String) in the type Testing is not applicable for the arguments ()
The method getUnitTo(String) in the type Testing is not applicable for the arguments ()
at testing.Testing.main(Testing.java:122)https://stackoverflow.com/questions/35809275
复制相似问题