Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8305408

StringBuilder and StringBuffer should implement Appendable explicitly

XMLWordPrintable

    • Icon: CSR CSR
    • Resolution: Approved
    • Icon: P4 P4
    • 21
    • core-libs
    • None
    • minimal
    • Make already-implemented interface more explicit.
    • Java API
    • SE

      Summary

      Explicitly add Appendable to the list of implemented interfaces of StringBuffer and StringBuilder.

      Problem

      StringBuffer and StringBuilder "mysteriously" are Appendable by virtue of inheriting from their non-public superclass.

      Solution

      Explicitly add Appendable to the implements clauses of StringBuffer and StringBuilder.

      Specification

      diff --git a/src/java.base/share/classes/java/lang/StringBuffer.java b/src/java.base/share/classes/java/lang/StringBuffer.java
      index b0ee2a5c2e3..d62696d9300 100644
      --- a/src/java.base/share/classes/java/lang/StringBuffer.java
      +++ b/src/java.base/share/classes/java/lang/StringBuffer.java
      @@ -111,7 +111,7 @@ import jdk.internal.vm.annotation.IntrinsicCandidate;
        */
        public final class StringBuffer
           extends AbstractStringBuilder
      -    implements Serializable, Comparable<StringBuffer>, CharSequence
      +    implements Appendable, Serializable, Comparable<StringBuffer>, CharSequence
       {
      
           /**
      diff --git a/src/java.base/share/classes/java/lang/StringBuilder.java b/src/java.base/share/classes/java/lang/StringBuilder.java
      index 17fd105ad3f..bffbd14ef50 100644
      --- a/src/java.base/share/classes/java/lang/StringBuilder.java
      +++ b/src/java.base/share/classes/java/lang/StringBuilder.java
      @@ -90,7 +90,7 @@ import java.io.StreamCorruptedException;
        */
       public final class StringBuilder
           extends AbstractStringBuilder
      -    implements java.io.Serializable, Comparable<StringBuilder>, CharSequence
      +    implements Appendable, java.io.Serializable, Comparable<StringBuilder>, CharSequence
       {
      
           /** use serialVersionUID for interoperability */

            darcy Joe Darcy
            webbuggrp Webbug Group
            Alan Bateman
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: