有一种方法可以使对象A像对象B一样行为?

时间:2019-09-10 22:54:28

标签: java android json

我有两个对象A和B:

    public class A {
      @SerializedName("idProject")
      private int id;

      @SerializedName("nameProject")
      private String name;

      //with setter and getters and other methods
    }

    ///////////////////////////////////////////////

    public class B {
      @SerializedName("idMenu")
      private int id;

      @SerializedName("nameMenu")
      private String name;

      //with setter and getters and other methods
    }

这些对象是通过服务中的json填充的。我可以使用该服务没有问题。 但是在我的代码的另一部分中,我有一个方法需要这样的对象:

    public void method(C c){
      ....
    }


    public class C {
      private int id;

      private String name;

      //with setter and getters and other methods
    }

如何将对象A或B传递给仅接受C类型对象的方法?

1 个答案:

答案 0 :(得分:1)

据我所知,您希望在此处进行类型转换行为。由于无法在Java中将对象A或B转换为C,因此必须在A和B中实现为您提供等效C对象的方法。

class A {
    //...
    C C() {
        return new C(id, name);
    }
}

class B {
    //...
    C C() {
        return new C(id, name);
    }
}

class C {
    //...
    C(int id, String name) {
        this.id = id;
        this.name = name;
    }
}

现在,您可以轻松地调用C()方法来获取等效的class C实例并将其传递给指定的方法。

method(objA.C());