java - 如何将一个类中的字符串结果添加到另一个类中的字符串列表中?
问题描述
我正在建立一个 eAuction 系统,我想为他们赢得的拍卖的每个买家制作一份清单。但是,我似乎无法将字符串从一个类传递到另一个类的链表。我浏览了有关将字符串从一个类传递到另一个类的网站,但它们都没有奏效。
我试过简单地使用 .add 方法传递它,但它不断给我一些不起作用的建议。
这是我的拍卖课
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.LinkedList;
import java.util.List;
public class Auction {
private int auctionID;
private boolean blocked = false;
private double startPrice, reservePrice;
private LocalDateTime closeDate;
private Item item;
private double UP, LOW;
private double currentBid;
private List<Bid> bids = new LinkedList<>();
private Status status;
private User seller;
private boolean itemFound;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MM yyyy");
private double bidAmount;
private User highestBidder;
public Auction(double startPrice, double reservePrice, double currentBid, User highestBidder,
LocalDateTime closeDate, Item item, User seller, Status status) throws Exception {
if (closeDate.isBefore(LocalDateTime.now().plusDays(7))) {
this.startPrice = startPrice;
this.reservePrice = reservePrice;
this.closeDate = closeDate;
this.item = item;
this.highestBidder = highestBidder;
this.currentBid = currentBid;
this.seller = seller;
UP = currentBid * 0.20;
LOW = currentBid * 0.10;
} else {
throw new Exception("CloseDate error: " + closeDate.format(formatter));
}
}
public void auctionVictory() {
if (status == Status.CLOSED && currentBid >= reservePrice) {
User winner = getHighestBidder();
Item winnerItem = getItem();
winnerItem.getItemName(itemName);
winner.victories.add(itemName);
}
}
}
我的物品类别:
public class Item {
private String itemName;
public Item(String itemName, User seller) {
setDescription(itemName);
}
public boolean checkItemSearch(String itemDescription) {
if (itemName.equals(itemDescription)) {
return true;
}
return false;
}
@Override
public String toString() {
return getItemName(itemName);
}
public void setDescription(String itemName) {
this.itemName = itemName;
}
public String getItemName(String itemName) {
return itemName;
}
}
我的买家分类:
public final class Buyer extends User {
public static List<String> victories = new LinkedList<String>();
public void Victory() {
}
public Buyer(String username, String password) {
super(username, password);
}
}
如果当前出价高于保留价,我希望方法“auctionVictory”能够获得最高出价的用户并获得拍卖的物品。
获得 Item 和 Buyer 后,我想从 Item 类调用 getItemName 方法并获取该项目的字符串名称。在它得到这个之后,我想将此字符串添加到买方类的“胜利”列表中。
解决方案
您的胜利列表是一个静态变量,这意味着它在买方类的每个实例之间共享,并且通过实例变量“winner”访问它没有意义。
我假设您希望您的胜利特定于用户,因此您应该删除静态修饰符。
推荐阅读
- c# - 单个 MongoDB 实例上的 C# MongoDB 驱动程序事务
- javascript - 记录执行 aync await 函数所用的时间
- css - 使外部库(语义 ui React)和 CSS 模块与 webpack css-loader 一起工作
- azure-devops - 即使在 azure devops 中删除后如何保留文件夹
- c - 无法建立客户端连接
- hyperledger-fabric - Fabric v1.4.2 链码错误 - 您要求调用不存在的函数
- ios - TouchesEnded 被称为另一个按钮被点击并取消其他动作
- git - 我可以在一个命令中递归地将某种类型的所有文件(.php)添加到 git 吗?
- sql-server - SQL Server 非规范化表并仍然链接到外键
- c# - Web api 中的参数值始终为空