【问题标题】:Using a for loop to run class methods from multiple class objects in Java使用 for 循环从 Java 中的多个类对象运行类方法
【发布时间】:2020-06-19 10:19:16
【问题描述】:

(对于某些上下文)我的实际问题是我有许多 Text 对象,根据条件需要执行 text.setText("sometext") 方法。 (我正在创建一个日历,随着月份的变化,当月的第一天也会发生变化,这反过来又会导致日期(1,31)改变它们出现在我创建的日历界面上的位置。

我的方法是创建Text 对象,将它们添加到HashMap。然后,根据当月的第一天在哪里,从 HashMap 调用适当的 Text 对象,并从 Texttext.setText("sometext") 中运行一个方法@

我没有添加实际代码,因为 99% 是无关紧要的,可能只会混淆问题,但这段代码应该说明我想要实现的目标。 `公共类测试{

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);
}

}

我们将不胜感激任何有关使其发挥作用的提示,或提出不同/更好方法的建议。

【问题讨论】:

    标签: java class object methods hashmap


    【解决方案1】:

    让甚至没有编译的代码工作。

    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;
            }
    
        }
    
    }
    

    【讨论】:

    • 非常感谢@Gilbert Le Blanc。我能够在我的代码中使用和修改您的解决方案。很抱歉没有解释代码没有编译的问题。我用它作为例子来解释我的意思。
    猜你喜欢
    • 2017-08-22
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多