バッファ内のリーダーを介して必要なオブジェクト(カード、オブジェクト)へのリンクにフィードされるファイル内の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());
}
助けてください、私は失ったよ:
のようになりますか? – Stefan
例外から:*メソッドMap.put(整数、購入)は適用されません(引数の不一致;カードを購入に変換できません)*、カードオブジェクトを購入値に入れています(該当しません) – PSo