code: public class TestIntegerWithHistory {
  
      public static void main(String[] args) {
  
          //creating and setting three different values
          IntegerWithHistory i = new IntegerWithHistory(3);
          i.set(42);
          i.set(7);
  
          //looking at current value and history
          System.out.println("The current value of i is :" + i.get());
          System.out.println("The history of i is :" + i.getHistory());
  
          //demonstrating rollback
          System.out.println("Rolling back:");
          System.out.println("returns what was the current value: " + i.rollback());
          System.out.println("after rollback: " + i.get());
          System.out.println("returns what was the current value: " + i.rollback());
          System.out.println("after rollback: " + i.get());
          System.out.println("Rolling back only works to the original value: " + i.rollback());
          System.out.println("Rolling back only works to the original value: " + i.rollback());
          System.out.println("So there is no way to 'null' the variable: " + i.get());
  
      }
  }
  