我正在编写一个转换某些单元的程序,但我一直遇到错误。我的程序有4个方法(一个用于原始单元,一个用于转换为新单元,一个用于转换,一个用于多少单位),您可以告诉每个方法都正确写入。当我运行它时,我得到了#34;未解决的编译问题的错误。"
以下是代码:
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);
答案 0 :(得分:0)
答案 1 :(得分:0)
抛出错误后会列出问题。
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)