首页 > 解决方案 > 如何将一个类中的字符串结果添加到另一个类中的字符串列表中?

问题描述

我正在建立一个 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 方法并获取该项目的字符串名称。在它得到这个之后,我想将此字符串添加到买方类的“胜利”列表中。

标签: javalinked-list

解决方案


您的胜利列表是一个静态变量,这意味着它在买方类的每个实例之间共享,并且通过实例变量“winner”访问它没有意义。

我假设您希望您的胜利特定于用户,因此您应该删除静态修饰符。


推荐阅读