[英]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
并且hashCode
是Pair
类和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.