链接用java计算税率的类



此行中的类型不匹配:
final Map<String, Double> taxRates = new Map<>();
很明显,我做错了什么,搞不清楚是什么。
该代码应该能够计算不同国家的税率。感谢

package tax;
import java.util.Scanner;
import java.util.Map;
import java.util.HashMap;
public class application{
private static Scanner reader;
public static void main (String[] args) {
    //constants
    final Map<String, double> taxRates = new Map<>(); 
    taxRates.put( "China", 0.2 );
    taxRates.put( "Japan", 0.1 );
    taxRates.put( "USA", 0.3 );
    reader = new Scanner(System.in);
    //Variables 
    double purchases;  
    double taxespaid;
    double taxRate;   
    String country;
    System.out.print("Enter the country you are purchasing in: ");
    country = reader.nextLine();
    taxRate = taxRates.get( country );
    if( taxRate == null )
    {
        System.out.println( "Could not find country: " + country );
        return; 
    }
    //Request Input 
    System.out.print("Enter your total amount of purchases in " + country + " :"); 
    purchases = reader.nextDouble();
    taxespaid = purchases * taxRate;

    //Display Tax
    System.out.println("The refund amount you owed is $" + taxespaid);
}

}

java.util.Map是一个接口,而不是类,不能用new实例化。

您将希望选择Map的具体实现,如HashMap。

然而,你也不能有基元的映射,所以需要使用double的盒装版本,double:

final Map<String, Double> taxRates = new HashMap<>(); 

不能在泛型类型声明中使用基元。您需要使用Map<String, Double>(大写D(。您还需要使用具体类HashMapMap的其他实现之一。

附带说明一下,使用double不会为您提供准确的税务计算。请考虑BigDecimal

Map是一个接口,您必须使用作为Map接口(例如HashMap(实现的Type。

再见,Markus

相关内容

  • 没有找到相关文章

最新更新