gpt4 book ai didi

java - 驱动类ArrayList难度

转载 作者:行者123 更新时间:2023-12-01 21:41:25 27 4
gpt4 key购买 nike

好吧,我有一个驱动程序类和一个数组列表(正如您可能猜到的那样)。

我的数组列表充满了字符串,我通过在其他类中创建的 getter 来访问它。

它说“应该以静态方式访问 Desktop 类型中的静态方法 getMouseList()”。我应该如何解决这个问题?您还看到其他错误吗?

感谢所有能提供帮助的人!

这是我的代码:

类(class):

    static ArrayList <String> Strings;


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

public static ArrayList<String> getStrings() {
return Strings;
}

驱动程序类别:

Desktop test4 = new Desktop(); 
System.out.println(test4.getStrings());

最佳答案

由于它是静态的,因此它属于它的类,而不是类实例。因此,您需要使用类来访问它:Desktop.getStrings()

更新我需要查看更多代码才能准确解释发生了什么。因此,我将尝试解释我想象的你的代码。请注意,Java 程序从一个主方法开始。根据您执行程序的方式,其中一个将被调用,其他则不会。

无论如何,一种方法是在 Desktop 中创建另一个静态方法,并将初始化代码从 main 移至该方法,例如:

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

然后,请确保在尝试访问 Strings 数组之前通过 Desktop.initializeStings(); 调用该方法(例如在程序的实际 main 方法的开头)。

编辑2:好的,你的 main 现在应该看起来像这样:

public static void main(String[] args) {
Desktop.initializeStrings();
Driver.doSomething();
}

和您的Driver的方法(在Driver类中):

public static void doSomething() {
//some code

//strings are initialized and will get printed
System.out.println(Desktop.getStrings());
}

这应该会提示您如何继续前进。顺便说一句,所有这些静态特性都阻碍了 Java 面向对象的本质。我建议您阅读 Java 面向对象编程模型的教程:https://docs.oracle.com/javase/tutorial/java/index.html

关于java - 驱动类ArrayList难度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36389189/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com