2016-11-12 6 views
0

したがって、Javaでリンクリストのメソッドpeek()を書くように求められました。唯一のことは、私が "peek"したいオブジェクトが、私のLinkedListクラス内のプライベートクラスに存在するbase型のプライベート変数だということです。 peek()メソッドを使用してオブジェクトを返して印刷します。私はこれがプライベート変数にアクセスすることと関係があることを知っていますが、私はそれが私の持つものとうまく動作することはできません。ここに私のコードのスニペットがあります:自分自身のpeek()メソッドをJavaの自分のLinkedListクラス用に作成する

class LinkedStack <Base> 
{ 
    private class Run 
    { 
     private Base object; 
     private Run next; 
     private Run (Base object, Run next) 
     { 
      this.object = object; 
      this.next = next; 
     } 
    } 
    ... 
    public Base peek() 
    { 
     if(isEmpty()) 
     { 
      throw new IllegalStateException("List is empty"); 
     } 
     return object; //this throws an error 
    } 
    ... 
    public void push(Base object) 
    { 
     top = new Run(object, top); 
    } 
} 
class Driver 
{ 
    public static void main(String []args) 
    { 
     LinkedStack<String> s = new LinkedStack<String>(); 
     s.push("A"); 

     System.out.println(s.peek()); 
    } 
} 

ありがとうございました!ほんとうにありがとう。

+1

プッシュメソッドはどのように見えますか?あなたはどこで電話をしていますか?あなたは 'Run'が別のクラスの権利であることに気づきましたか? – BlackHatSamurai

+0

@BlackHatSamurai私はそれが別のクラスにネストされたクラスだと知っています。オリジナルの投稿を編集してプッシュメソッドを組み込んだ。 TopはRunオブジェクトとして宣言されています。 – awallace04

答えて

2

top変数を返してください。私はそれが初期化されて表示されませんが、私はあなたのプッシュメソッドでそれを初期化しないので、それはクラス変数だと仮定します。そうすることができます:

public Base peek() 
{ 
    if(isEmpty()) 
    { 
     throw new IllegalStateException("List is empty"); 
    } 
    return top.object; //this throws an error 
} 
+0

あなたは素晴らしいです!どうもありがとう! – awallace04

+0

私の喜び!お役に立てて嬉しいです! – BlackHatSamurai

関連する問題