質問: new LinkedList(); //中略 if(hoge.offer(hogehoge)){ //hoge.add(hogehoge)ならコンパイル、実行成功 hogeNumber.offer(i); //hogeNumber.add(i);ならコンパイル、実行成功 System.out.println("hogehoge:「" + i + "」"); i++; } else { System.out.println("これ以上追加できません"); } } public class HogeHoge{ //省略 HogeHoge(){ this(null,0); } HogeHoge(String x,int y){ } //後略 } ``` ### エラーメッセージ `Hoge.java:xx:エラー:シンボルを見つけられません if(hoge.offer(hoge)){ シンボル: メソッド offer(HogeHoge) 場所: タイプListの変数 hogehoge Hoge.java:xx:エラー:シンボルを見つけられません hogeNumber.offer(i); シンボル: メソッド offer(int) 場所: タイプListの変数 hogeNumber エラー2個` ### その他 サクラエディタを使用して、コマンドプロンプトで動かしています。 jdk1.8.0_121をインストールしてあります。
回答: メソッドがあるかないかの判定は、変数の持つインスタンスの実体型ではなく、変数の宣言型で行われます。 いまhogeなどはList型として宣言されており、Listインタフェースはofferというメソッドを持っていません。hogeなどの型をLinkedListや、Dequeで宣言してください。