【问题标题】:how to make an object migrate from one container object to another. (like software agent!)如何使对象从一个容器对象迁移到另一个容器对象。 (就像软件代理!)
【发布时间】:2016-08-23 06:08:45
【问题描述】:

假设我有两个 PARKING 类的对象,分别是 P1 和 P2。 PARKING 类具有唯一标识符 (UUID)。 我还有一个 CAR 类的对象,它的名字是 mycar。

我的汽车目前是在 P1 制造的,现在想迁移到 P2。

这里有一些代码:

public class PARKING {

    public String ID = new String();
    ID  = UUID.randomUUID().toString();
    CAR car;

    public PARKING(CAR car) {
        this.car = car;
    }
    public PARKING (){

        }
    }


    public class CAR {

        public int ID;
        public String name = new String();

    }

    public static void main(String[] args) {
        CAR mycar = new CAR();
        PARKING P1 = new PARKING(mycar);
        PARKING P2 = new PARKING();   
    }    
}

请注意,我不希望 P2 占用我的汽车。 我的意思是这样的 P2.setCAR(P1.getCAR());

我希望汽车本身从其当前对象 P1 迁移到另一个对象 P2。

我希望我已经清楚地解释了这个问题。 提前致谢。

【问题讨论】:

  • 所以你想创建一个方法来接受参数PARKING p1, PARKING p2 来移动汽车?您在制作该方法时遇到了什么问题?
  • 由于 PARKING 引用了 Car,因此由该类来处理切换(通过您描述的 setter/getter 组合,或通过其他方式)。如果没有 Parking 课程的参与,您将无法让 Car 切换停车场。

标签: java object migrate


【解决方案1】:

如果我理解了你的查询,那么你想做的事情就很简单了,这里有一个可以完成的示例方法:

public void moveCars(PARKING toMoveFrom, PARKING toMoveTo){
    //Checking a car can be moved from A to B
    if (toMoveFrom.car != null && toMoveTo.car == null){
        //Put car in B
        toMoveTo.car = toMoveFrom.car;
        //Remove car from A
        toMoveFrom.car = null;
    }
    else{
        //Either car blocking way or no car in original parking, handle error
    }
}

这是假设您已将 PARKING.car 属性设为公共或添加了公共 getter/setter 以便您可以访问它。但是,如果您希望汽车能够自行移动,那么您需要在 Car 类上创建一个属性,该属性也存储停车位并通过它进行更改。选择,但这取决于你

【讨论】:

    猜你喜欢
    • 2014-07-30
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多