Switch statements in Rock-Paper-Scissors game
Instead of creating a new Item each time you can just use a enum:

public enum Move{
    Paper{ 
        public boolean canBeat(Move other){
            return other==Rock;
        }
    },
    Scissor{ 
        public boolean canBeat(Move other){
            return other==Paper;
        }
    },
    Rock{ 
        public boolean canBeat(Move other){
            return other==Scissor;
        }
    };

    public abstract boolean canBeat(Move other);


    public boolean losesTo(Move other){
        return other.canBeat(this);
    }
}


Then You can keep them in an array (like what is returned by Move.values()) and index into that.

public Item getItem() throws WrongMove {
    int choice = choiceValue(this.move);
    if(choice&lt;0||choice &gt;= Move.values().length)
        throw new WrongMove("Wrong move. Game end");
    else return  Move.values()[choice];
}