从另一个java类访问主类中的链表

从另一个java类访问主类中的链表,java,inheritance,linked-list,Java,Inheritance,Linked List,我有一个网上商店的项目。类OnlineStore是启动程序的主要方法所在的位置。我还有3个类,User、Item和package,以及一些继承的类 我将所有用户、项目和包存储在链接列表中。 我在main方法中的OnlineStore类中创建了实例,但我希望能够随时访问它们;类项目应该能够访问此链接列表并删除已售出的项目 public class OnlineStore{ public static void main(String[] args) { LinkedList<

我有一个网上商店的项目。类OnlineStore是启动程序的主要方法所在的位置。我还有3个类,User、Item和package,以及一些继承的类

我将所有用户、项目和包存储在链接列表中。 我在main方法中的OnlineStore类中创建了实例,但我希望能够随时访问它们;类项目应该能够访问此链接列表并删除已售出的项目

public class OnlineStore{

    public static void main(String[] args) {
    LinkedList<User> users = new  LinkedList<User>();
    LinkedList<Item> itemsSold =  new  LinkedList<Item>();
    LinkedList<Item> items =  new  LinkedList<Item>(
    LinkedList<Package> packages =  new  LinkedList<Package>();
    }
}

//Then I create some instances of Items Users and call their methods of buying, 
//loging in, etc..

//If a item is buyed:

public class Buyer extends User {
    //ATTRIBUTES
    private String accountNumber;
    private LinkedList<Item> boughtItems;

    //CONSTRUCTOR
    public Buyer(String n, String id, String pass, String a){
        super(n, id, pass);
        accountNumber = a;
    }

    //METHODS
    public void buy(Item i){
        boughtItems.add(i);
        //Here I need to acces the first class and remove from availableItems
        items.remove(i);
    }



}
公共类在线商店{
公共静态void main(字符串[]args){
LinkedList用户=新建LinkedList();
LinkedList itemsSold=新建LinkedList();
LinkedList项目=新建LinkedList(
LinkedList packages=新建LinkedList();
}
}
//然后我创建了一些物品用户实例,并调用他们的购买方法,
//登录等。。
//如果购买了物品:
公共类买方扩展用户{
//属性
私有字符串accountNumber;
私有链接列表项;
//建造师
公共买方(字符串n、字符串id、字符串通行证、字符串a){
超级(n,id,pass);
accountNumber=a;
}
//方法
公开无效购买(第一项){
增加(i)项;
//在这里,我需要访问第一个类并从可用项中删除
删除第(i)项;
}
}
谢谢你的帮助!
John R.

试试这样的方法:

public class OnlineStore{

    public static LinkedList<User> users = new  LinkedList<User>();
    public static LinkedList<Item> itemsSold =  new  LinkedList<Item>();
    public static LinkedList<Item> items =  new  LinkedList<Item>();
    public static LinkedList<Package> packages =  new  LinkedList<Package>();

    public static void main(String[] args) {

    }
公共类在线商店{
public static LinkedList users=new LinkedList();
public static LinkedList itemsSold=new LinkedList();
public static LinkedList items=new LinkedList();
public static LinkedList packages=new LinkedList();
公共静态void main(字符串[]args){
}

}

您实际上还没有问任何问题。您的代码有什么问题需要帮助吗?如果有,请确保您的问题包括您遇到的任何编译或运行时错误,以及预期与实际输出。a将是理想的。感谢您的帮助,我将更新我的问题。正如您在我的代码中看到的,我有f我们在main方法中的“maste”链接列表。假设我的类用户如下:公共类用户{private String name;private String identifier;private String password;公共用户(String n,String id,String pass){name=n;identifier=id;password=pass;}//setters and getter}感谢您的帮助,我将更新我的问题。类购买者扩展了类用户。如果您在代码“items.remove(I)”中看到该部分,这实际上不起作用,因为它无法访问linkedlist项,因为它是在此类之外声明的。您认为我应该怎么做?好的,我尝试了这个,它编译了。但是想象一下,现在我创建了一个Buyer b1=new Buyer(“此处的参数”)和Item i1=new Item(“此处的参数”),然后调用方法b1.buy(i1):public void buy(Item I){OnlineStore.items.remove(i);}因为我需要从静态列表中删除该项;这给了我一个错误:线程“Main”java.lang.NullPointerException中的异常位于OnlineStore.Buyer.buy[…]谢谢。你在列表中放置了任何项目吗?因为也许你正在尝试删除列表中不存在的元素。我个人认为,不要将主方法放置在OnLeStEnter类中,而是在其他一些主类中。在这种情况下,在线商店将是正常类,所有链接列表都不会。是静态的,您可以通过方法访问它们。