前提・実現したいこと
shoppingというシステムを作っています。
shopping.javaの6行目の
Stand stand = new Stand();
に以下のエラーメッセージが発生しています。
エラーを解決したいです。
発生している問題・エラーメッセージ
Exception in thread "main" java.lang.Error: Unresolved compilation problem: デフォルト・コンストラクターは、暗黙的スーパー・コンストラクターによってスローされる例外型 IOException を処理できません。明示的コンストラクターを定義する必要があります
該当のソースコード
Shoppingjava
1import java.io.IOException; 2 3public class Shopping { 4 5 Calculation calculation = new Calculation(); 6 Stand stand = new Stand(); 7 8 public static void main(String[] args) { 9 try { 10 Shopping sh = new Shopping(); 11 sh.exec(args); 12 } catch(Exception e) { 13 e.printStackTrace(); 14 } 15 } 16 17 private void exec(String[] args)throws IOException { 18 try { 19 stand.prepare(); 20 toOrder(args); 21 } catch(Exception e) { 22 e.printStackTrace(); 23 24 } 25 26 private void toOrder(String[] args) { 27 try { 28 for (int i = 0; i < args.length; i +=2 ) { 29 String code = args[i]; 30 String num = args[i + 1]; 31 Item oneItem = stand.order(code, num); 32 calculation.buy(oneItem, num); 33 } 34 calculation.pay(); 35 } catch(Exception e) { 36 e.printStackTrace(); 37 } 38 } 39} 40 41
Itemjava
1public class Item { 2 3 private String codes = null; 4 5 private String name = null; 6 7 private String price = null; 8 9 private String stock = null; 10 11 public Item(String codes, String name, String price, String stock) { 12 this.codes = codes; 13 this.name = name; 14 this.price = price; 15 this.stock = stock; 16 } 17 18 public String getCodes() { 19 return codes; 20 } 21 22 public String getName() { 23 return name; 24 } 25 26 public String getPrice() { 27 return price; 28 } 29 30 public boolean stock(String num) { 31 int order = Integer.parseInt(num); 32 int stock = Integer.parseInt(this.stock); 33 return order <= stock; 34 } 35}
Calculationjava
1public class Calculation { 2 3 private int sum; 4 5 public void buy(Item item,String num){ 6 int price = Integer.parseInt(item.getPrice())*Integer.parseInt(num);; 7 sum += price; 8 } 9 10 public void pay() { 11 System.out.println(sum + "円"); 12 } 13} 14
Standjava
1import java.io.BufferedReader; 2import java.io.FileNotFoundException; 3import java.io.FileReader; 4import java.io.IOException; 5import java.util.HashMap; 6import java.util.Map; 7 8public class Stand { 9 10 public Map<String, Item> items = new HashMap<String, Item>(); 11 12 public Stand() throws IOException { 13 try { 14 BufferedReader csvFile = new BufferedReader(new FileReader("shop.csv")); 15 readFile(csvFile); 16 csvFile.close(); 17 } catch (FileNotFoundException e) { 18 System.out.println("ファイルがありません"); 19 throw e; 20 } 21 } 22 23 private void readFile(BufferedReader csvFile) throws IOException { 24 String line; 25 while ((line = csvFile.readLine()) != null) { 26 String datas[] = line.split(","); 27 datas[0] = Integer.parseInt(datas[0]); 28 Item item = new Item(datas[0], datas[1], datas[2], datas[3]); 29 items.put(datas[0], item); 30 } 31 } 32 } 33 34 35 public Item order(String code, String num) { 36 Item item = items.get(code); 37 if (item.Stock(num)) { 38 return item; 39 } 40 return null; 41 } 42}
考えたこと
this()やsuper()を記入してみましたが、上手くいきませんでした。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/18 13:33