当前位置: 首页 > 知识库问答 >
问题:

当调用方法时,java ArrayList始终为空

何高旻
2023-03-14

我的程序很简单。我有一个有2个方法的类。我有另一个类在那里调用这两个方法。当调用第一个方法时,初始化arraylist并填充一些对象,然后调用第二个方法,简单地告诉arraylist的大小并打印出来。我不明白为什么我总是得到一个空的时候,第二个方法被调用。然而,当我在第一个方法中打印数组时,我得到了大小和所有it元素。Arraylist是公共得..请看一下代码。

在第一班

Items initialize = new Items();
initialize.init(); 
Items view = new Items();
view.viewItems();
public class Items {

public String id;
public String name;
public String details;
public String stock;

public ArrayList<Items> myList = new ArrayList<Items>();

public void init(){

    Items item1 = new Items();


item1.id = "0023";
item1.name = "Round Table";
item1.details = "Brown, high quality wood blah blah..";
item1.stock = "34";
myList.add(item1);


if(myList.size()==0){
        System.out.println("There are no products to display");
    }

    Iterator<Items> iterator = myList.iterator();
    System.out.println(myList.size());
            System.out.println("Products Available:");
    while(iterator.hasNext()){
        Items current = iterator.next();

        System.out.println("\nID: " +current.id + "\nTitle: "+current.name+"\nDescreption: "+current.details+"\nAmount: "+current.stock);

}

public void viewItems() {

int size  = myList.size();

if(myList.size()==0){
        System.out.println("There are no products to display");
    }

    Iterator<Items> iterator = myList.iterator();
    System.out.println(myList.size());
            System.out.println("Products Available:");
    while(iterator.hasNext()){
        Items current = iterator.next();

        System.out.println("\nID: " +current.id + "\nTitle: "+current.name+"\nDescreption: "+current.details+"\nAmount: "+current.stock);



}

共有1个答案

欧阳嘉
2023-03-14

您正在创建项的新实例然后调用viewItems()方法。您必须在调用init()的同一实例上调用viewItems(

Items initialize = new Items();
initialize.init(); 
initialize .viewItems();
 类似资料:
  • Powermock为什么不模拟静态方法调用,而是在然后()语句中调用初始方法? 在这种情况下,我有一系列方法调用: TestClass方法-调用- Class4方法尝试查找上下文中不存在且挂起的对象,因此我尝试使用Powermock模拟公共静态Class3方法。 所有的类和方法都是非最终的。我使用TestNg。我的测试方法有一个@准备测试我尝试了以下方法来模拟方法调用: 或而不是当-然后返回: 或

  • 问题内容: 我在一个教程中找到了这个示例。 当我运行此程序时,我的hs.size()值为2 ..,并且equals方法仅被调用一次。有人解释了我何时在HashSet中调用equal()方法 当上述程序中的equal方法调用时 问题答案: 您的代码将调用的唯一一次。另一次调用方法将是对的类。 此答案说明何时由和何时调用方法。摘录: HashSet利用哈希码来加快处理速度。假定彼此相等的两个对象将具有

  • 问题内容: 撑杆2设置到,安全问题。静态方法调用在某些情况下可能很有用,例如,在验证器表达式中使用StringUtils处理基于表达式的验证器Struts2时。 解决此问题的一种方法是在操作中定义一个辅助方法,例如,如果要使用类,则应在下面添加: 并将其用作或 如您所见,对于类中的每个方法,我们都需要在操作中定义一个具有相同签名的方法。 有没有更好的方法来避免这些样板吸气剂? 问题答案: OGNL

  • 问题内容: 是否有一种方法可以使每次调用方法时都会被调用的“超级方法”,即使对于未定义的方法也是如此?有点像这样: 编辑- 细节:我有一个库,该库进行了很多更新,并且每次更新都变得晦涩难懂。为了简化我的工作流程,我正在使程序自动更新库(需要执行我想做的事情,我不会具体说明原因,但是我的程序可以与将来的更新一起使用)并且我有混淆映射与库一起下载时,我想制作一种例如称为的代理,然后在我调用它时,将获得

  • 这是一个线程,用于处理服务器端的输入和输出: 如果我调用print方法,线程就会被阻塞。这意味着“之前”是打印出来的,但“之后”永远不会到达。printwriter的CheckError方法返回false! 它位于一个AbstractServer中,由两个不同的服务器使用。第一个以前就已经使用过了,而且一直都没有问题(现在仍然如此)。另一个是新的,导致了这个问题。对于每个初始化的连接(两个具有不同

  • 问题内容: 如果我有两个变量: 在不知道的类的情况下obj,如何调用由其标识的方法methodName? 被调用的方法没有参数,并且有String返回值。 问题答案: 参数标识你需要的非常特定的方法(如果有多个重载可用,如果该方法没有参数,则仅给出methodName)。 然后,你通过调用该方法 同样,.invoke如果没有,请忽略中的参数。