Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从其他类访问此ArrayList?_Java_Arrays - Fatal编程技术网

Java 如何从其他类访问此ArrayList?

Java 如何从其他类访问此ArrayList?,java,arrays,Java,Arrays,我是java的新手,我必须为大学做一个“数组项目”。从存储数组的Contacts类获取主类中的数组时遇到问题。这就是我现在所做的: public class Main { public static void main(String[] args) { // View Contact Testing Contacts contactObj = new Contacts(); System.out.println(contactObj);

我是java的新手,我必须为大学做一个“数组项目”。从存储数组的Contacts类获取主类中的数组时遇到问题。这就是我现在所做的:

public class Main {
    public static void main(String[] args) {
        // View Contact Testing
        Contacts contactObj = new Contacts();
        System.out.println(contactObj);
    }
}
公共类联系人{
公共静态void main(字符串[]args){
ArrayList arr=新的ArrayList();
协议新增(“名称1”);
协议增补(“名称2”);
返回arr.clone();
}
}
当我运行这个程序时,我得到以下错误:error:(11,25)java:不兼容类型:意外的返回值。 任何帮助都将不胜感激,
谢谢

正如其他人建议的那样,我还建议您在一些基本Java教程中多学习一些(在www上有一些)。但我也理解你的挣扎,我会给你举几个例子,说明你是如何做到这一点的。如下:

Main.java

public class Main {

    public static void main(String[] args) {
        Contacts contactObj = new Contacts();
        contactObj.getNames().forEach(System.out::println);

        contactObj.cleanNames();
        contactObj.getNames().forEach(System.out::println);

        contactObj.addName("John");
        contactObj.addName("Maria");

        contactObj.getNames().forEach(System.out::println);
    }
}
Contacts.java

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

public class Contacts {

    private List<String> names;

    //either to help your understanding and for sake of simplicity
    public Contacts() {
        this.names = new ArrayList<String>();
        this.names.add("name1");
        this.names.add("name2");

    }

    //clean the content of names from names List
    public void cleanNames(){
        if (Objects.nonNull(names)) {
            this.names.clear();
        }
    }

    //add a name to list
    public void addName(String name) {
        if (Objects.nonNull(names)) {
            this.names.add(name);
        } else {
            this.names = new ArrayList<>();
            this.names.add(name);
        }
    }

    //set a entire list to names attribute
    public void setNames(List<String> names) {
        this.names = names;
    }

    //get the name attribute
    public List<String> getNames() {
        if (Objects.nonNull(names)) {
            return this.names;
        } else {
            this.names = new ArrayList<>();
            return names;
        }
    }

}
import java.util.ArrayList;
导入java.util.List;
导入java.util.Objects;
公共类联系人{
私人名单名称;
//要么是为了帮助你理解,要么是为了简单
公众接触(){
this.names=new ArrayList();
本.名称.添加(“名称1”);
本.名称.添加(“名称2”);
}
//从名称列表中清除名称的内容
公共名称(){
if(Objects.nonNull(名称)){
this.names.clear();
}
}
//在列表中添加一个名称
public void addName(字符串名称){
if(Objects.nonNull(名称)){
此.names.add(name);
}否则{
this.names=new ArrayList();
此.names.add(name);
}
}
//将整个列表设置为“名称”属性
公共无效集合名(列表名){
this.names=名称;
}
//获取name属性
公共列表getNames(){
if(Objects.nonNull(名称)){
返回此名称;
}否则{
this.names=new ArrayList();
返回姓名;
}
}
}

您无法从main方法返回某些内容,因为它被声明为void(这意味着没有任何内容可返回!)。您有两个主函数,只需要一个,在联系人上存储一个数组,并将它们作为getter,很好看!你有很多关于Java基础知识的知识。我想说,您需要阅读方法的返回类型、主方法本身以及如何访问成员/方法。我建议您阅读更多关于java类和方法的内容,但为了进一步介绍,这里,
static void main(String[]args)
是java应用程序的主要入口点。所以“理想情况下”每个java应用程序只有一个
main
方法。尝试将
Contacts
类的方法名更改为
getStudentList()
,并在
Main
类中进行更改。尝试调用
contactObj.getStudentList()
它成功了!非常感谢;)不过有一个问题,为什么主要有3个控制台输出?您好,感谢反馈,我把这三个输出放在这里,让您了解在不同时刻使用列表时可能发生的情况:构建类之后、清理列表内容之后以及添加一些值之后。总结到说教的
联系人obj=新联系人();contactObj.getNames().forEach(System.out::println)是否返回列表中的所有名称?是的,它会在默认控制台上打印每个名称
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

public class Contacts {

    private List<String> names;

    //either to help your understanding and for sake of simplicity
    public Contacts() {
        this.names = new ArrayList<String>();
        this.names.add("name1");
        this.names.add("name2");

    }

    //clean the content of names from names List
    public void cleanNames(){
        if (Objects.nonNull(names)) {
            this.names.clear();
        }
    }

    //add a name to list
    public void addName(String name) {
        if (Objects.nonNull(names)) {
            this.names.add(name);
        } else {
            this.names = new ArrayList<>();
            this.names.add(name);
        }
    }

    //set a entire list to names attribute
    public void setNames(List<String> names) {
        this.names = names;
    }

    //get the name attribute
    public List<String> getNames() {
        if (Objects.nonNull(names)) {
            return this.names;
        } else {
            this.names = new ArrayList<>();
            return names;
        }
    }

}