Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The problem is alleviated by creating a copy of the mutable input and using it to perform operations so that the original object is left unscathed. This can be realized by implementing the java.lang.Cloneable interface and declaring a public clone method or by performing using a copy constructor. Performing a manual copy of object state within the caller , becomes necessary if the mutable class is declared as final (that is, it cannot provide an accessibly accessible copy method). xyz

Code Block
bgColor#ccccff
public final class MutableDemo {

    // java.net.HttpCookie is mutable
    public void copyMutableInput(HttpCookie cookie) {
        if (cookie == null) {
            throw new NullPointerException();
        }

        // create copy
        cookie = cookie.clone();

        //check if cookie has expired
        if(cookie.hasExpired())
        {
          //cookie is no longer valid, handle condition
        }

        doLogic(cookie);
    }
}

...