whyoptionalclassinintroducedinjava8