There really is no problem with clearing the world. If in the hero class:
This saves the location of the hero and saves a reference to the world; then removes all objects, creates the new area and re-inserts the hero at the same location it was removed from.
World world=getWorld(); int heroX=getX(), heroY=getY(); world.removeObjects(getObjects(null)); // call method to create new area world.addObject(this, heroX, heroY);