我想做以下事情:
{{1}}
如何使用两个对象作为Java中的键来创建这些getter和setter?
答案 0 :(得分:1)
您的问题中的语法看起来更像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
类。
答案 1 :(得分:0)
你可以使用另一个类来返回两个对象..可能你可以解决这个问题
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());
}