<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Mar 20, 2018, at 10:15 AM, Brian Goetz <<a href="mailto:brian.goetz@oracle.com" class="">brian.goetz@oracle.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
  
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" class="">
  
  <div text="#000000" bgcolor="#FFFFFF" class="">
    <br class="">
    <blockquote type="cite" cite="mid:CAGKkBku7YMp2JRBBixSz_WAnSVxoV9XhMdy1Nrw2ngotst5FaA@mail.gmail.com" class="">
      <div dir="ltr" class="">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div class=""><br class="">
            </div>
            <div class="">So add all this up and we have <i class="">three</i> kind of
              finalness for fields:</div>
            <div class=""><br class="">
            </div>
            <div class="">- by default mutable, but you can change it</div>
            <div class="">- by default final, and you can't change it</div>
            <div class="">- (and now) by default final, but you can change it</div>
            <div class=""><br class="">
            </div>
            <div class="">This seems like quite a bad situation to me.</div>
            <br class="">
          </div>
        </div>
      </div>
    </blockquote>
    <br class="">
    I think what you are really saying here is: if you want immutable
    records, wait for value records, don't try to cram them in early? 
    Then a record inherits the finality of the class kind that it is
    describing.  And same with field accessibility. <br class=""></div></div></blockquote><br class=""></div><div>On its face, that sounds right to me.</div><div><br class=""></div><div>I wish “value" could be the default for records, just as I wish “final" had been the default all along for all fields and local variables.  They’re the same issue.  But that’s not our history, so we have to live with it.</div><div><br class=""></div></body></html>