gpt4 book ai didi

Java - 如何从另一个方法访问方法范围内的 ArrayList?

转载 作者:行者123 更新时间:2023-12-01 23:50:29 26 4
gpt4 key购买 nike

是的,我知道这是不可能的;但问题是我真的需要这样做。我将解释整个陷阱:

public class MainMethods {

ArrayList arrayOfValues; // << PROBLEM

HashMap<String, Object> matrix = new HashMap<String, Object>();

void sendKeyToMatrix(String key) {
arrayOfValues = new ArrayList();
matrix.put(key, arrayOfValues);
}

void attachValueToKey(Object object, Object value) {
matrix.put((String) object, arrayOfValues.add(value));
}

void removeFromMatrix(String key) {
matrix.remove(key);
}}

那是我的类(class),这些是我的方法。我创建了一个 HashMap,键是字符串,值是对象;非常简单。

真正的问题是我打算用这个“对象”作为一个值来做什么。我有一个 GUI 和一个调用“sendKeyToMatrix”的按钮,以及另一个为其附加值的按钮,两者都来自文本字段。由于 HashMap 的“.put()”方法需要一个对象,并且我必须首先仅创建键,因此第二个参数是“null”或问题(ArrayList)。

完美的解决方案:

public class MainMethods {

HashMap<String, Object> matrix = new HashMap<String, Object>();

void sendKeyToMatrix(String key) {
ArrayList arrayOfValues = new ArrayList();
matrix.put(key, arrayOfValues);
}

void attachValueToKey(Object object, Object value) {
matrix.put((String) object, ghostOrigin.add(value));
}

void removeFromMatrix(String key) {
matrix.remove(key);
}}

当我使用按钮调用“sendKeytoMatrix”时,它会创建一个以空 ArrayList 作为其值的键。该 key 已添加到我的 JList 中。然后,当我调用第二个按钮(考虑 JList 中选择的内容)时,我向 ArrayList 添加一个元素:

第二个按钮的代码:

btnInsertContent.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
mainMethods.attachValueToKey(mainList.getSelectedValue(), textContent.getText());
mainCombo.addItem(textContent.getText());
System.out.println(mainMethods.matrix);

}
});

“attachValueToKey”的第二个参数接收文本字段给出的字符串,我遇到了大问题:

我无法将它添加到“sendKeyToMatrix”方法内的ArrayList中,这是显而易见的,但这是一个大问题,因为如果我将变量声明为那里的字段(这样我就可以在其他范围),我得到了我不知道的错误且深奥的神秘结果。

用一个简单的问题来回答这个问题:如何访问另一个方法中的变量?

如果我在“attachValueToKey”内声明变量,则每次按下按钮时,它都会在 ArrayList 内创建一个 ArrayList。

好的,谢谢大家的帮助。也许必须有一种方法通过面向对象的魔法来召唤解决方案,例如实例等。

最佳答案

我想这样的事情应该可以回答你的问题:

void attachValueToKey(Object object, Object value) {
ArrayList a = matrix.get((String) object);
a.add(value));
}

关于Java - 如何从另一个方法访问方法范围内的 ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16377434/

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