Использование for l oop для запуска методов класса из нескольких объектов класса в Java - PullRequest
1 голос
/ 19 июня 2020

(для некоторого контекста) Моя реальная проблема в том, что у меня есть много Text объектов, которым в зависимости от условий потребуется выполнить метод text.setText("sometext"). (Я создаю календарь, который по мере изменения месяцев меняется и в первый день месяца, что, в свою очередь, приводит к изменению дат (1,31) в том месте, где они появляются в созданном мною интерфейсе календаря.

My подход заключался в создании Text объектов, добавлении их в HashMap. Затем, в зависимости от того, где находится первый день месяца, вызовите соответствующие Text объекты из HashMap и запустите метод из класса Text text.setText("sometext")

Я не добавил фактический код, потому что 99% не имеет значения и, вероятно, просто запутает проблемы, но этот код должен иллюстрировать то, чего я пытаюсь достичь. `Publi c class Test {

public static void main(String[] args) {

    ExampleCLass object1 = new ExampleCLass("object1");
    ExampleCLass object2 = new ExampleCLass("object2");

    HashMap<Integer, Object> hashMap = new HashMap<>();

    //if some condition has been met
    for(Object object : hashMap){
        object.printname();
    }

}

} `

public class ExampleCLass {

private final String name;


public ExampleCLass(String name) {
    this.name = name;
}

public void printName(){
    System.out.println(this.name);
}

}

любые советы по тому, как заставить это работать, или предложения другого / лучшего подхода будут очень признательны.

1 Ответ

0 голосов
/ 19 июня 2020

Заставить ваш код, который даже не компилировался, заработать.

import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

public class HashMapTest {

    public static void main(String[] args) {
        new HashMapTest().test();
    }

    public void test() {
        HashMap<Integer, ExampleClass> hashMap = new HashMap<>();
        ExampleClass object1 = new ExampleClass("object1");
        hashMap.put(1, object1);
        ExampleClass object2 = new ExampleClass("object2");
        hashMap.put(2, object2);

        // if some condition has been met
        Set<Integer> hashSet = hashMap.keySet();
        Iterator<Integer> iter = hashSet.iterator();
        while (iter.hasNext()) {
            Integer key = iter.next();
            ExampleClass ec = hashMap.get(key);
            System.out.println(ec.printName());
        }
    }

    public class ExampleClass {

        private final String name;

        public ExampleClass(String name) {
            this.name = name;
        }

        public String printName() {
            return this.name;
        }

    }

}
...