私はLinkedHashSet
に拡張された単純なクラスを持ち、toString()
メソッドをオーバーライドしようとしています。メインメソッドのSet
にいくつかの要素を追加しましたが、私のtoString
メソッドの中では、Set
は空です。コード:なぜ私のLinkedHashSetはtoString()メソッド内で空ですか?
import java.util.*;
import java.util.*;
public class MyHashSet<T> extends LinkedHashSet<T>{
private Set <T> myHashSet;
public MyHashSet(){
myHashSet = new HashSet<T>(5);
}
@Override
public String toString(){
if (myHashSet.isEmpty())
return "This MyHashSet is empty.";
else
return myHashSet.toString();
}
public static void main (String[] args){
MyHashSet <String> myHashSet = new MyHashSet<>();
myHashSet.add("A");
myHashSet.add("B");
myHashSet.add("C");
myHashSet.add("D");
myHashSet.add("E");
System.out.println(myHashSet);
System.out.println(myHashSet.isEmpty());
}
}
は、次の値を返します。
このMyHashSetは空です。
偽私が代わりに返すようにtoString()
を期待してい
[A、B、C、D、E]私が間違っているのは何
?前もって感謝します。
ヒント:あなたのコードには、myHashSetという** 2つの**ものがあります。 –
デバッガで5分間、この質問(およびその結果としてのdownvote)は必要ではありませんでした。 –
myHashSet.myHashSet.add( "A"); :この形式でデータを追加します。 – Akash