好的,所以我无法理解为什么它说这个方法没有在本地使用....私有String formatNumber()方法就这么说。
基本上我需要做的是有一个返回周长的方法 - 将数字舍入到2位小数并返回字符串的另一种方法 - 以及另一种返回圆周格式化版本的方法......
不难看出我正在尝试做什么,但它给了我上述错误,我无法弄明白。
//figures out circumference
public double getCircumference(){
circumference = 2 * Math.PI * radius;
return circumference;
}
//takes string and turns back into a double
public double getFormattedCircumference(){
double x = Double.parseDouble(format);
return x;
}
//this method is giving the error of not being used locally...
//method takes double and turns to string so that it can be formatted and it
has to be a string
private String formatNumber(double x){
x = circumference;
NumberFormat number = NumberFormat.getNumberInstance();
number.setMaximumFractionDigits(2);
String format = number.format(x);
return format;
}
答案 0 :(得分:3)
你已经声明了私有方法,但是你没有在当前的代码中使用它,因此编译器会警告你这一点(检查你的程序,看看你是否在任何地方调用这个方法)。
顺便提一下,您所看到的是警告而不是错误。您的代码仍应编译,程序仍将运行(如果没有错误)。
编辑1
你对这个方法有一个严重的问题,也许不止一个,因为它接受一个双参数然后立即丢弃它。为什么?如果要格式化作为参数传入的数字,则不希望丢弃该参数。另外,您是否想要使用此方法public
以便它可以被此类之外的对象调用?此外,该方法是否具有状态还是无状态?它会使用类的字段,还是只格式化传入它的数字。如果是后者,那应该是static
方法。
答案 1 :(得分:0)
我弄明白了。我让它变得比实际更难。
//figures out circumference
public double getCircumference(){
circumference = 2 * Math.PI * radius;
return circumference;
}
public String getFormattedCircumference(){
return formatNumber(getCircumference());
}
//formats to two decimal places.
private String formatNumber(double x){
NumberFormat number = NumberFormat.getNumberInstance();
number.setMaximumFractionDigits(2);
String format = number.format(x);
return format;
}