【问题标题】:The method searchingStacks(Stack<E>, E) in the type SearchStack<E> is not applicable for the arguments (Stack<String>, String)SearchStack<E> 类型中的方法 searchStacks(Stack<E>, E) 不适用于参数 (Stack<String>, String)
【发布时间】:2014-11-24 12:34:26
【问题描述】:

我正在尝试创建一个通用方法来使用队列在堆栈中搜索元素“e”并将堆栈返回到其原始状态。

但是当我调用方法“searchStacks”时,我不断收到错误“SearchStack 类型中的方法 searchStacks(Stack, E) 不适用于参数 (Stack, String)”

请帮忙,提前谢谢你。

import java.util.Stack; 
import java.util.Stack.* ;   

public class SearchStack<E> extends Object {



    public static void main (String [] args ) {

        Stack < String > test = new Stack () ;

        for (int i = 0 ; i < 5 ; i ++ ) {

            test.push("a" + i ) ; }


        System.out.println (test.toString()) ;

        System.out.println ( searchingStacks (test , "a3") ) ;
        }


    public boolean searchingStacks (Stack<E> s1 , E e) {

        boolean result = false ; 
        Queue <E> temp = new LinkedQueue () ;


        while (s1.isEmpty() == false )
        {
            if (s1.peek() == e ) { result = true ; }
            temp.enqueue(s1.pop());
            }

        while (temp.isEmpty() == false ){

            s1.push( temp.dequeue() ) ;
            }

        while (! s1.isEmpty()  ) { temp.enqueue(s1.pop());}
        while (! temp.isEmpty() ) { s1.push(temp.dequeue()) ; }



        return result ;}

}

【问题讨论】:

  • 您似乎在方法声明中缺少泛型类型。尝试将public boolean searchingStacks (Stack&lt;E&gt; s1 , E e) 更改为public &lt;E&gt; boolean searchingStacks (Stack&lt;E&gt; s1 , E e)

标签: java generics stack queue


【解决方案1】:

main 方法是静态的,所以你不能直接在那里调用searchingStacks。 调用实例方法需要类的实例。

public class SearchStack<E> extends Object
{

public static void main(String[] args)
{
    SearchStack<String> ss = new SearchStack<String>();

    Stack<String> stack = new Stack<String>();

    for (int i = 0; i < 5; i++)
    {

        stack.push("a" + i);
    }

    System.out.println(stack.toString());

    System.out.println(ss.searchingStacks(stack, "a3"));
}
...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-25
    • 2011-12-03
    相关资源
    最近更新 更多