Java 如何从其他类访问此ArrayList?
我是java的新手,我必须为大学做一个“数组项目”。从存储数组的Contacts类获取主类中的数组时遇到问题。这就是我现在所做的: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);
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;
}
}
}