次のようなデータファイルを読み込もうとしています:
N 1000.0 ニューヨーク R 2000.0 CA 0.09 R 500.0 GA 0.07 N 2000.0 WY ○ 3000.0 日本 0.11 20.0 N 555.50 CA O 3300.0 エクアドル 0.03 30.0 R 600.0 NC 0.06
それを使用してarrayListを埋めます
私のプログラムは、抽象クラスとそれを実装するための 3 つのクラスで構成されています。
1. 非営利注文
public class NonProfitOrder extends Order {
public NonProfitOrder(double price, String location) {
super(price, location);
}
public double calculateBill() {
return getPrice();
}
public String printOrder(String format){
String Long = "Non-Profit Order" + "\nLocation: " + getLocation() + "\nTotal Price: " + getPrice();
String Short = "Non-Profit Order-Location: " + getLocation() + ", " + "Total Price: " + getPrice();
if (format.equals("Long")){
return Long;
}
else{
return Short;
}
}
}
2.レギュラーオーダー
public class RegularOrder extends Order {
double taxRate;
public RegularOrder(double price, String location, double taxRate) {
super(price, location);
this.taxRate = taxRate;
}
private double calcTax() {
double tax;
tax = getPrice() * taxRate;
return tax;
}
public double calculateBill() {
double bill;
bill = price + calcTax();
return bill;
}
public String printOrder(String format){
String Long = "Regular Order" + "\nLocation: " + getLocation() + "\nPrice: " + getPrice() +
"\nTax: " + calcTax() + "\nTotal Price: " + calculateBill();
String Short = "Regular Order-Location: " + getLocation() + ", " + "Total Price: " + calculateBill();
if (format.equals("Long")){
return Long;
}
else{
return Short;
}
}
}
と非常によく似た別のRegularOrder
私の問題は私のメインにあります。メソッドを使用する必要がありますreadOrders(fileName:string):ArrayList<Order>
public static ArrayList<Order> readOrders (String fileName) throws FileNotFoundException{
String type;
Scanner s = new Scanner(new File("orders.txt"));
ArrayList<Order> orders = new ArrayList<Order>();
while (s.hasNext()){
type = s.nextLine();
}
switch(type) {
case 1: type = NonProfitOrder();
break;
case 2: type = RegularOrder();
break;
case 3: type = OverseasOrder();
return orders;
}
}
まだ言っているように、これを適切に行う方法がわかりません
readOrders は型に解決できません。
最初のreadOrders
.
動作しないスイッチ状態でコードを更新しました。ケース 1、2、3 の代わりに N、O、R を使用する必要がありますか、それとも各タイプの注文をどのように参照すればよいですか? また、「タイプの不一致」エラーが発生していますが、修正できません。