Java 获取并设置一个';主要申报了什么?

Java 获取并设置一个';主要申报了什么?,java,arraylist,getter,Java,Arraylist,Getter,好的,我在main中声明了一个arraylist,因为在其他地方它会带来一个错误。但是,我想在以后使用该arraylist来获得一个getter,但它无法识别arraylist,因为它位于我的主目录中 错误是 “无法将其解析为变量” 我能做些什么来纠正这个问题 public static void main(String[] args) { ArrayList <String> Strings = new ArrayList <String>();

好的,我在main中声明了一个arraylist,因为在其他地方它会带来一个错误。但是,我想在以后使用该arraylist来获得一个getter,但它无法识别arraylist,因为它位于我的主目录中

错误是

“无法将其解析为变量”

我能做些什么来纠正这个问题

public static void main(String[] args) {
    ArrayList <String> Strings = new ArrayList <String>(); 
        Strings.add("hi");
        Strings.add("hello");
        Strings.add("goodbye");
}

public ArrayList<String> getArrList() {
        return Strings;
    }
publicstaticvoidmain(字符串[]args){
ArrayList字符串=新的ArrayList();
字符串。添加(“hi”);
Strings.add(“hello”);
字符串。添加(“再见”);
}
公共ArrayList getArrList(){
返回字符串;
}

您不能从静态方法调用非静态方法

必须将arraylist定义为静态变量,然后将其getter设置为静态

static ArrayList <String> Strings;

public static void main(String[] args) {
    Strings = new ArrayList <String>(); 
        Strings.add("hi");
        Strings.add("hello");
        Strings.add("goodbye");
}

public static ArrayList<String> getArrList() {
        return Strings;
}
静态数组列表字符串;
公共静态void main(字符串[]args){
Strings=newarraylist();
字符串。添加(“hi”);
Strings.add(“hello”);
字符串。添加(“再见”);
}
公共静态ArrayList getArrList(){
返回字符串;
}

您不能从静态方法调用非静态方法

必须将arraylist定义为静态变量,然后将其getter设置为静态

static ArrayList <String> Strings;

public static void main(String[] args) {
    Strings = new ArrayList <String>(); 
        Strings.add("hi");
        Strings.add("hello");
        Strings.add("goodbye");
}

public static ArrayList<String> getArrList() {
        return Strings;
}
静态数组列表字符串;
公共静态void main(字符串[]args){
Strings=newarraylist();
字符串。添加(“hi”);
Strings.add(“hello”);
字符串。添加(“再见”);
}
公共静态ArrayList getArrList(){
返回字符串;
}

像这样做,

class MyClass{
ArrayList <String> Strings;

    public static void main(String[] args) {
        Strings = new ArrayList <String>(); 
        Strings.add("hi");
        Strings.add("hello");
        Strings.add("goodbye");
    }

public ArrayList<String> getArrList() {
      MyClass myClass = new myClass();
        return myClass.Strings;
    }

}
class-MyClass{
数组列表字符串;
公共静态void main(字符串[]args){
Strings=newarraylist();
字符串。添加(“hi”);
Strings.add(“hello”);
字符串。添加(“再见”);
}
公共ArrayList getArrList(){
MyClass MyClass=新的MyClass();
返回myClass.Strings;
}
}

像这样做,

class MyClass{
ArrayList <String> Strings;

    public static void main(String[] args) {
        Strings = new ArrayList <String>(); 
        Strings.add("hi");
        Strings.add("hello");
        Strings.add("goodbye");
    }

public ArrayList<String> getArrList() {
      MyClass myClass = new myClass();
        return myClass.Strings;
    }

}
class-MyClass{
数组列表字符串;
公共静态void main(字符串[]args){
Strings=newarraylist();
字符串。添加(“hi”);
Strings.add(“hello”);
字符串。添加(“再见”);
}
公共ArrayList getArrList(){
MyClass MyClass=新的MyClass();
返回myClass.Strings;
}
}

您需要使用OOP,如果不需要,不要定义静态的东西,使用setter和getter并封装类的私有字段

例子:
公共类测试器{
私人名单;
公共测试人员(){
stringList=新的ArrayList();
}
公共无效公共列表(){
字符串列表。添加(“hi”);
stringList.add(“hello”);
添加(“再见”);
}
公共静态void main(字符串[]args){
测试仪t=新测试仪();
t、 大众主义者();
List=t.getList();
系统输出打印项次(列表);
}
公共列表getList(列表列表){
返回字符串列表;
}
公共列表集合列表(){
返回字符串列表;
}
}

您需要使用OOP,如果不需要,不要定义静态的东西,使用setter和getter并封装类的私有字段

例子:
公共类测试器{
私人名单;
公共测试人员(){
stringList=新的ArrayList();
}
公共无效公共列表(){
字符串列表。添加(“hi”);
stringList.add(“hello”);
添加(“再见”);
}
公共静态void main(字符串[]args){
测试仪t=新测试仪();
t、 大众主义者();
List=t.getList();
系统输出打印项次(列表);
}
公共列表getList(列表列表){
返回字符串列表;
}
公共列表集合列表(){
返回字符串列表;
}
}

Declare
Strings
outside main。。意思是在班级层面!帮助我们帮助您-请发布一个完整的示例,说明您试图实现的目标。当您在“其他地方”声明时,您是如何做到的,以及您遇到了什么错误?声明
Strings
outside main。。意思是在班级层面!帮助我们帮助你-请发布一个完整的例子,说明你正在努力实现的目标。当你在“其他地方”声明时,你是如何做到的,你得到了什么错误?回答得好。
main
方法应该有最少的代码,刚好足以让你的应用程序运行。业务逻辑属于类/对象,而不是
main
方法。回答得好。
main
方法应该有最少的代码,刚好足以让你的应用程序运行。业务逻辑属于类/对象,而不是
main
方法。