gpt4 book ai didi

java - ItemArray.checklist.add() 不将字符串附加到 ArrayList

转载 作者:行者123 更新时间:2023-12-01 07:19:02 25 4
gpt4 key购买 nike

我已经学习java大约3天了,但我似乎无法将数据附加到我的ArrayLists( list )之一。尝试显示数组内的所有项目时的输出始终为 []。非常感谢您的帮助!

ShopAssist.java:

import java.io.*;
import java.util.Scanner;

class ShopAssist {
public static void main(String[] args){
//Items itemchecklist = new Items();
System.out.println("( Add | Remove | Show | Exit )");
System.out.print(">");
Scanner menuinput = new Scanner(System.in);
String choice = menuinput.nextLine();
if (choice.equals("Add")){
AddItem();
}

else if (choice.equals("Remove")){
RemoveItem();
}
else if (choice.equals("Show")){
ShowItems();
}

while(true){
main(null);
}
}

public static void AddItem(){
Items ItemArray = new Items();
System.out.print("Add: ");
Scanner addinput = new Scanner(System.in);
String addchoice = addinput.nextLine();
ItemArray.checklist.add(addchoice);
System.out.println("Info: " + addchoice + " has been added to checklist!");
}

public static void RemoveItem(){
System.out.println("RemoveItem Method");
}

public static void ShowItems(){
Items ItemArray = new Items();
System.out.println("ShowItems Method");
System.out.println(ItemArray.checklist);
}
}

Items.java:

import java.util.ArrayList;
public class Items {
ArrayList<String> checklist = new ArrayList<String>();

}

最佳答案

您创建 ItemArray 的多个实例。
均在 AddItem()ShowItems() 中。因此,您永远不会在这些方法中使用相同的实例。

应该写一次:

 Items ItemArray = new Items();

并且是这些方法的传递参数或类的字段。

理想情况下,这应该是一个私有(private)实例字段,您应该将静态方法更改为实例方法:

class ShopAssist {

private Items items = new Items();
...

public static void main(String[] args){

ShopAssist shopAssist = new ShopAssist();

while (true) {
System.out.println("( Add | Remove | Show | Exit )");
System.out.print(">");
Scanner menuinput = new Scanner(System.in);
String choice = menuinput.nextLine();

if (choice.equals("Add")) {
shopAssist.addItem();
}
else if (choice.equals("Remove")) {
shopAssist.removeItem();
}
else if (choice.equals("Show")) {
shopAssist.showItems();
}
}
}

public void addItem(){
...
}
...
public void showItems(){
System.out.println("ShowItems Method");
System.out.println(items.checklist);
}
...
}

到处使用static不是OOP。

关于java - ItemArray.checklist.add() 不将字符串附加到 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46848760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com