LinkedList中的Return null基本上就是Return null



我有三个类客户、商店和物品

我正在使用"LinkedList"来移动类。

项目类别

public class Item {
public Item(String code, String name) {
this.code = code;
this.name = name;
}
@Override
public String toString() {
return name + " : " + code;
}
}

商店级

public class Store {
private LinkedList<Item> items = new LinkedList<Item>();
public Store(String name, String number) {
this.name = name;
this.number = number;
}
public void addItem(String code, String name){
items.add(new Item(this, code, name);
}
public LinkedList<Item> viewItem(){
for(int j = 0 ; j < items.size(); j++)
System.out.println(items.get(j))
return null; // I though return null you just return nothing. But it literally return null;
}
}

客户

public class Customer {
private LinkedList<Store> stores = new LinkedList<Store>();
public Customer() {
stores.add(new Store("Game", "1"));
stores.add(new Store("Grocery", "2"));
stores.get(0).addItem("001A", "GTA");
stores.get(0).addItem("001B", "GOD OF WARS");
stores.get(0).addItem("001C", "THE LAST OF US");
stores.get(1).addItem("002A", "Sandwich");
stores.get(1).addItem("002B", "Cup Noodle");
stores.get(1).addItem("002C", "Ice Cream");
}
public static void main(String args[]) {
new Customer().view();
}
public void view() {
System.out.println(stores.get(0).viewItem());
}
}

我只想退回

GTA : 001A
GODS OF WARS : 001B
THE LAST OF US: 001C

但相反,它也返回"null"我该如何消除它。

我尝试只使用"活动",但它只返回一个。

我无法删除LinkedList,因为它必须返回一系列视频游戏。

有人能给我解释一下吗,谢谢。

在函数Customer.view中,打印出函数Store.viewItem的结果。因为viewItem函数返回null,所以print语句将打印null

只需删除打印声明,你就可以得到你想要的:

public void view(){
stores.get(0).viewItem();
}

查看此

public LinkedList<Item> viewItem() {
for(int j = 0 ; j < items.size(); j++)
System.out.println(items.get(i))
return null; 
}

更确切地说,这个System.out.println(items.get(i))是什么i?您的变量循环称为j

那么return null显式地是一种糟糕的做法。

更好的方法:

public LinkedList<Item> items() {
return new LinkedList(items); 
}

然后

public void view() {
stores.get(0).items().forEach(System.out::println);
} 

最新更新