Java 您如何制作一种方法,可以针对每个参数一次更改一个参数?

Java 您如何制作一种方法,可以针对每个参数一次更改一个参数?,java,class,methods,Java,Class,Methods,如何制作一个能够更改对象每个参数的方法(仅1个)?一次只能选择一个参数 我的想法是这样的。我得到了一个对象,有3个变量(例如,对象(第一,第二,第三)),我想更改对象的第一个参数,第二个和第三个 好的,我知道如何创建一个每次更改一个参数的方法(但是如果我想创建一个要求所有3个参数的方法,我需要创建3个或4个方法。)例如,但是有没有一种方法可以只创建一个方法,可以对每个参数都执行所有操作?例如 double count(object.) /*After the point you can in

如何制作一个能够更改对象每个参数的方法(仅1个)?一次只能选择一个参数

我的想法是这样的。我得到了一个对象,有3个变量(例如,对象(第一,第二,第三)),我想更改对象的第一个参数,第二个和第三个

好的,我知道如何创建一个每次更改一个参数的方法(但是如果我想创建一个要求所有3个参数的方法,我需要创建3个或4个方法。)例如,但是有没有一种方法可以只创建一个方法,可以对每个参数都执行所有操作?例如

 double count(object.)  /*After the point you can input which 
 parameter you want to change. Method asks only for 1 object parameter,
 but you can use this method for every parameter of the object. */
    {
      return object. +19;
    }
当我想调用这个方法时,我可以这样做

 count(object.first)
 count(object.second)
你只需要一种方法就可以做到这一切。我真的不知道如何很好地解释它。

你可以用它来获取Member的实例,但是这很重而且很慢。我想要一个
HashMap


如果这些参数是对象,并且没有int或double之类的基元类型,那么您可以将它们传递到方法中,更改它们的属性值并保留它(不需要返回任何内容)。您的调用方法将能够处理这些更改。您的参数是按值传递的(这意味着您传递的对象将被复制,并且您的方法正在处理新的副本),但它们的属性仍然链接到内存中的同一区域(这意味着您对象的属性与对象副本的属性对内存的引用相同)

结果将是: 2. 3.
4

如果我理解正确,这是不可能做到的(无需思考),除非你将所有属性存储在
地图中,我强烈建议你不要这样做。谁说他的所有属性都是数字类型的?我理解他的问题是这样的:“如何用一个方法替换所有setter,该方法可以修改类的给定属性,以便在添加属性时不必再添加另一个setter?”@jlordo我从count方法推断出这一点。但我不确定我是否完全理解了问题中的含义。
public class MultiCounter {
    private Map<String, AtomicInteger> counters = new HashMap<>();
    public synchronized int count(String name) {
        AtomicInteger c = counters.get(name);
        if (c==null) {
            c = new AtomicInteger(0);
            counters.put(name, c);
        }
        return c.incrementAndGet();
    }
}
enum Key {
    first,
    second
}

private Map<Key, AtomicInteger> counters = new EnumMap<Key, AtomicInteger>(Key.class);
public synchronized int count(Key key) {
    AtomicInteger c = counters.get(key);
    if (c==null) {
        c = new AtomicInteger(0);
        counters.put(key, c);
    }
    return c.incrementAndGet();
}
 int count = myCounter.count(Key.first);
public void testMethod() throws Exception {
        MyObject param1 = new MyObject();
        MyObject param2 = new MyObject();
        MyObject param3 = new MyObject();

        setCountUp(param1, param2, param3);

        System.out.println(param1.getCount());
        System.out.println(param2.getCount());
        System.out.println(param3.getCount());
    }

    private void setCountUp(MyObject param1, MyObject param2, MyObject param3) {
        param1.setCount(param1.getCount() + 1);
        param2.setCount(param2.getCount() + 2);
        param3.setCount(param3.getCount() + 3);
    }

    private static class MyObject {
        private long count = 1;

        public void setCount(long count) {
            this.count = count;
        }

        public long getCount() {
            return count;
        }
    }