java - 如何从main调用java中的方法?

标签 java methods call program-entry-point calling-convention

import java.util.*;

import java.io.*;

public class Test extends ArrayList
{

    ArrayList<String> list = new ArrayList<String>();

    public static void main(String[] args)
    {
        new Test().add();
        new Test().contains();
    }



    public boolean add(){
        list.add("cat");
        System.out.println(list);
        return true;
    }

    public void contains(){
        if (list.contains("cat")){
            System.out.println("list contains cat");
        }
        else{
            System.out.println("list doesn't contain cat");
        }

    }

}

为什么结果[cat]列表不包含cat? 它一直给我 [cat] 列表不包含猫。 第一种方法可以正常工作,但为什么第二种方法不行呢? 谢谢...我对此真的很陌生。

最佳答案

这是因为您使用不同的实例调用这两个方法。

new Test().add(); // Creates 1 instance
new Test().contains(); // creates another instance

您需要使用同一个实例来调用这两个方法。

Test t = new Test();
t.add();
t.contains();

new Test() 创建的每个新 Test 对象都有其自己的 list 副本。这就是为什么当您使用另一个实例调用 contains() 时,它仍然是空的,因为第一个实例的 list 仅添加了字符串“cat”。

关于java - 如何从main调用java中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19996363/

相关文章:

java - 一个匿名类可以有多少个实例?

java - Java 5 或更早版本中的抽象类

java - 我们如何对 Map 按值降序排序,然后按键按字母顺序排序?

java - 使用 count 方法并 for 每次循环来计算数组中元素的数量

android - 在 Android 中拒绝来电

java 如何使用点或曲线绘制G谱号和F谱号

java - 如何使用 Mockito 测试一个简单的给定方法

java - Morena 版本 6 与 7

java - Java和Spring中的同步和异步调用

javascript - 如何调用javascript变量 "like class"