繁体   English   中英

如何从Java中的两个对象检索值?

[英]How do I retrieve a value from two objects in Java?

我想做以下事情:

MyObject obj1 = new MyObject();
MyObject obj2 = new MyObject();
MyObject obj3 = new MyObject();
MyObject obj4 = new MyObject();

values[obj1][obj2] = 1;
values[obj2][obj4] = 2;
values[obj1][obj4] = 3;

int someValue = values[obj1][obj2];
int someOtherValue = values[obj2][obj4];
int anotherValue = values[obj1][obj4];

如何在Java中使用两个对象作为键来创建这些getter和setter方法?

您问题中的语法看起来更像C#,并且在Java(在其中数组索引必须为整数)中无效。

您可以创建一个Pair<F,S>类,其中包含对两个对象的引用。

然后,您可以创建HashMap<Pair<MyObject,MyObject>,Integer> ,因此一对MyObject实例将用作键。

Map<Pair<MyObject,MyObject>,Integer> values = new HashMap<>();

然后,您将使用以下方式分配值:

values.put(new Pair<>(obj1,ob2), 1);

并通过以下方式获得价值:

Integer someValue = values.get(new Pair<>(obj1,ob2));

您必须适当地重写equals并且hashCodePair类和MyObject类。

您可以使用另一个类返回“两个对象”。也许可以解决此问题

    final class MyResultObject {
            private final MyObject firstObject;
            private final MyObject secondObject;
        private final int key;
            public MyResult(MyObject firstObject, MyObject secondObject ,int key) {
                this.firstObject = firstObject;
                this.secondObject = secondObject;
                this.key=key;
            }


    public int getKey() {
                return key;
            }
    Public int getKeyValue(MyObject Object1, MyObject Object2){

}
        }

       //and then you can workaround this
        public static void main(String[] args) {
            MyResultObject resultOb = new MyResultObject(obj1,obj2,1);
            System.out.println(resultOb.getFirstObject() + resultOb.getSecondOBject());
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM