0

コンピュータ アプリケーションの内部評価用に Java でプロジェクトを準備していますが、クラスに構文エラーが見つからないにもかかわらず、メソッドの呼び出しでエラーが発生しました。これは私のコードです:

    package CommandPromptBrowser.GoogleWebsite;
    import java.util.*;
    class Commandprompt
    {
    Scanner sc=new Scanner(System.in);
    Searchbox se=new Searchbox();
    Title ti=new Title();
    Searchresults sr=new Searchresults();
    String cmd;
    String key;
    void commandBox()
    {
        System.out.println("***");
        cmd=sc.next();
        key=sc.next();
    }  
    boolean typeCommand()
    {
        if(cmd.equals("type>box"))
        {
            return(true);
        }
        else 
        {
            return(false);
        }
    }
    boolean clickCommand()
    {
        if(cmd.equals("click>button"))
        {
            if(key.equals(se.search))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        else
        {
            return(false);
        }
    }
    void commands()
    {
        boolean res;
        if(res=typeCommand())
        {
            se.searchBox(key);
            commandBox();
        }
        else if(res=clickCommand())
        {
            sr.resultScreen();
            commandBox();
        }
    }
}

Googleclient というメソッドを呼び出すと、次のエラーが発生します。

java.lang.StackOverflowError:
null(in java.lang.String)

Scanner問題はクラスオブジェクトによるものだと思います。クラス Googleclient のコードについて言及したいと思います-

    package CommandPromptBrowser.GoogleWebsite;
public class Googleclient
{
    Title ti=new Title();
    Searchbox sea=new Searchbox();
    Commandprompt cp=new Commandprompt();
    public void clientRunner()
    {
        ti.welcomeScreenTitle();
        sea.emptySearchBox();
        cp.commandBox();
        cp.clickCommand();
        cp.typeCommand();
        cp.commands();
    }
}

できるだけ早く返信してください。お願いします.....

4

1 に答える 1

-1

「cmd」が null の場合、これは失敗します (null は equals メソッドではありません)。

if(cmd.equals("type>box"))

それを次のものに置き換えてみてください:

if("type>box".equals(cmd))
于 2013-10-27T12:08:37.003 に答える