3
 public String(String original) {
     int size = original.count;
     char[] originalValue = original.value;
     char[] v;
     if (originalValue.length > size) {
         // The array representing the String is bigger than the new
         // String itself.  Perhaps this constructor is being called
         // in order to trim the baggage, so make a copy of the array.
         int off = original.offset;
         v = Arrays.copyOfRange(originalValue, off, off+size);
     } else {
         // The array representing the String is the same
         // size as the String, so no point in making a copy.
         v = originalValue;
     }
     this.offset = 0;
     this.count = size;
    this.value = v;
 }

バカなことを言って申し訳ありませんが、わかりません。count フィールドと value フィールドは非公開ですが、このコードは何らかの形でこれらの値に直接到達しているように見えます。どうすればいいの?

4

1 に答える 1

5

private「オブジェクトからのみアクセス可能」ではなく、「クラスからのみアクセス可能」を意味します。

于 2012-04-29T19:33:58.870 に答える