Java Lenses A lens is basically a getter/setter that can be used for deep updates of immutable data. In the case of this library, mutable data can obviously be read/updated, too. It's Java, for Pete's sake. There is hardly anything immutable.