2017-10-25 15 views
0

バッファ内のリーダーを介して必要なオブジェクト(カード、オブジェクト)へのリンクにフィードされるファイル内のStringを新しいオブジェクトの作成(購入)のためのパラメータ。BufferedReader、csv、パラメータとしてintを渡す方法(パラメータはオブジェクトです)

マイカードはハッシュマップ内に保存されています。 私の購入はハッシュマップに保存されています。 私のカードは起動時にバッファードリーダーを使用してプログラムにロードされます。 私の購入は起動時にバッファードリーダーを使ってをプログラムにロードしようとしています。

エラーが

no suitable method found for put(int,cards) 
    method Map.put(Integer,purchase) is not applicable 
     (argument mismatch; cards cannot be converted to purchase) 
    method AbstractMap.put(Integer,purchase) is not applicable 
     (argument mismatch; cards cannot be converted to purchase) 
    method HashMap.put(Integer,purchase) is not applicable 
     (argument mismatch; cards cannot be converted to purchase) 

ここに私の購入クラスである:ここでは

public class purchase 

{ 
    int receiptId; 
    cards cards1; 
    int time; 
     private double men; 
     private double women; 
     private double kids; 
     private double home; 
     private double sport; 

     public purchase(int receiptId, cards cards1, double men, double women, double kids, double home, double sport) 
    { 
      this.receiptId = receiptId; 
      this.cards1 = cards1; 
      this.men = men; 
      this.women = women; 
      this.kids = kids; 
      this.home = home; 
      this.sport = sport; 
     } 

は、HashMapの作成である:ここで

private static HashMap<Integer, purchase> purchaseMap = new HashMap<Integer, purchase>(); 
    private static HashMap<Integer, cards> map = new HashMap<Integer, cards>(); 

は、カードのコードの種類の一つ(ありますbasicCardはRegisteredCardを、registeredcardsはカードを拡張する)。ここで

public class basicCard extends registeredCards 

{ 
     private String name; 
     private String email; 
     double balance; 
     int id; 
     double points; 

    public basicCard(String name, String email, double balance, int id, double points) 
    { 
      super(name, email, balance, id, points); 
      this.name = name; 
      this.email = email; 
      this.balance = balance; 
      this.id = id; 
      this.points = points; 
    } 

ここで購入

1,null,10.0,10.0,10.0,10.0,10.0 
2,1,10.0,10.0,10.0,10.0,10.0,10.0 
3,2,10.0,10.0,10.0,10.0,10.0,10.0 

ための.txtファイルCSVは、カードや購入

両方のためのBufferedReadersここでカード

b,basictestnew1,[email protected],0.0,1,0.0 
p,basictestnew1,[email protected],0.0,2,0.0 
a,0.0,3,0.0 

ための.txtファイルCSVですされ​​ています

try 
    { 
     BufferedReader in = new BufferedReader(new FileReader("cardData.txt")); 
     String line; 
     line = in.readLine(); 
     while (line != null) 
      { 
       String[] field = line.split(","); 
       if (field[0] .equals("b")) 
       { 
        basicCard b2 = new basicCard(field[1], field[2], Double.parseDouble(field[3]), Integer.parseInt(field[4]), Double.parseDouble(field[5])); 
        System.out.println("Basic card created after BufferedReader split"); 
        map.put(b2.getid(), b2); 
        cardsList.add(b2.getid()); 
        line = in.readLine(); 
       } 
       else if (field[0] .equals("p")) 
       {  
        premiumCard p2 = new premiumCard(field[1], field[2], Double.parseDouble(field[3]), Integer.parseInt(field[4]), Double.parseDouble(field[5])); 
        System.out.println("Premium card created after BufferedReader split"); 
        map.put(p2.getid(), p2); 
        cardsList.add(p2.getid()); 
        line = in.readLine(); 
       } 
       else if (field[0] .equals("a")) 
       {  
        anonCard a2 = new anonCard(Double.parseDouble(field[1]),Integer.parseInt(field[2]),Double.parseDouble(field[3]));  
        System.out.println("Anon card created after buffered reader split"); 
        map.put(a2.getid(), a2); 
        cardsList.add(a2.getid()); 
        line = in.readLine(); 
       } 
      } 
     in.close(); 

     BufferedReader in1 = new BufferedReader(new FileReader("purchaseData.txt")); 
     String line1; 
     line1 = in1.readLine(); 
     while (line1 != null) 
     { 
      String[] field1 = line.split(","); 
      int cardInt; 
      int receiptId; 
      receiptId = Integer.parseInt(field1[0]); 
      cards cards3; 
      cardInt = Integer.parseInt(field1[1]); 
      cards3 = map.get(cardInt); 
      purchase p2 = new purchase(Integer.parseInt(field1[0]), map.get(cardInt), Double.parseDouble(field1[2]), Double.parseDouble(field1[3]), Double.parseDouble(field1[4]), Double.parseDouble(field1[5]), Double.parseDouble(field1[6])); 
      purchaseMap.put(receiptId, cards3); 
     } 
     in1.close(); 
    } 
    catch (IOException e) 
    { 
    System.out.println(e.getMessage()); 
    } 

助けてください、私は失ったよ:

+0

のようになりますか? – Stefan

+1

例外から:*メソッドMap.put(整数、購入)は適用されません(引数の不一致;カードを購入に変換できません)*、カードオブジェクトを購入値に入れています(該当しません) – PSo

答えて

0

あなたのコード

ここ
BufferedReader in1 = new BufferedReader(new FileReader("purchaseData.txt")); 
String line1; 
line1 = in1.readLine(); 
while (line1 != null) 
{ 
    String[] field1 = line.split(","); 
    int cardInt; 
    int receiptId; 
    receiptId = Integer.parseInt(field1[0]); 
    cards cards3; 
    cardInt = Integer.parseInt(field1[1]); 
    cards3 = map.get(cardInt); 
    purchase p2 = new purchase(Integer.parseInt(field1[0]), map.get(cardInt), Double.parseDouble(field1[2]), Double.parseDouble(field1[3]), Double.parseDouble(field1[4]), Double.parseDouble(field1[5]), Double.parseDouble(field1[6])); 
    purchaseMap.put(receiptId, cards3); 
} 

\あなたはpurchaseMap購入型オブジェクトを配置することができますpurchaseMapに(カードタイプである)cards3オブジェクトを入れしようとしています。

のようにコードしてもエラーは発生しません。purchaseMap.put(receiptId、p2);

p2は購入タイプのオブジェクトです。

カード3p2に置き換えてください。

あなたのコードは正確にうまくいかどう下記

BufferedReader in1 = new BufferedReader(new FileReader("purchaseData.txt")); 
String line1; 
line1 = in1.readLine(); 
while (line1 != null) 
{ 
    String[] field1 = line.split(","); 
    int cardInt; 
    int receiptId; 
    receiptId = Integer.parseInt(field1[0]); 
    cards cards3; 
    cardInt = Integer.parseInt(field1[1]); 
    cards3 = map.get(cardInt); 
    purchase p2 = new purchase(Integer.parseInt(field1[0]), map.get(cardInt), Double.parseDouble(field1[2]), Double.parseDouble(field1[3]), Double.parseDouble(field1[4]), Double.parseDouble(field1[5]), Double.parseDouble(field1[6])); 
    purchaseMap.put(receiptId, p2); 
} 
+0

問題が発生しました! ! – Zenith

関連する問題