将多个对象类型传递给单一类型的方法

时间:2014-10-15 00:25:03

标签: java

我有多个具有不同名称的类,但它们都具有相同的变量名。我想将它们传递给单个方法并直接访问变量。以下示例仅显示两个,但我还有更多。

Class1{
 float x,y;
 MyArrayObj myarrayobj;//this is new'ed.
}
Class2{
 float x,y;
 MyArrayObj myarrayobj;//this is new'ed.
}

static myGenericMethod(GenericClassObj myObj){

float x = myObj.x;
float pt = myObj.myarrayobj.array[0];

}

这是可能的,还是我必须使用" getters / setters' ?

1 个答案:

答案 0 :(得分:4)

如果所有这些类共享公共字段,请将这些字段提取到超类,并使现有类扩展该字段。然后你的泛型方法接受超类类型的对象并直接访问字段。

abstract MySuperClass{
    float x,y;
    MyArrayObj myarrayobj;//this is new'ed.
}
Class1 extends MySuperClass{
    // Class1 specific fields and methods
}
Class2 extends MySuperClass{
    // Class2 specific fields and methods
}

static myGenericMethod(MySuperClass myObj){
    float x = myObj.x;
    float pt = myObj.myarrayobj.array[0];
}

如果你不希望它被实例化,那就让超类抽象(如上所述)。