-1

Swing を使用して作成されたツールで、IP を Web アドレスに、またはその逆に変換しようとしています。アクションリスナー部分はこちら

public void actionPerformed(ActionEvent e)
{
    if(e.getSource()==check1)
    {
        String ipresult,queryip=inputip.getText();

        try
        {
            InetAddress ip1=InetAddress.getByName(queryip);
            ipresult=queryip.getHostName();
            outputweb.setText(ipresult);        
        }
        catch(Exception e1)
        {
            outputweb.setText("Please check the IP address");
        }
    }

    if(e.getSource()==check2)
    {
        String webresult,queryweb=inputweb.getText();
        try
        {
            InetAddress web1=InetAddress.getByName(queryweb);
            webresult=queryweb.getHostAddress();
            outputip.setText(webresult);

        }
        catch(Exception e2)
        {

        }
    }
}

私はEclipseでこれを行っているので、エラーは行に表示さ れwebresult=queryweb.getHostAddress();ipresult=queryip.getHostName();method is undefined for the type String

私が間違っていることは何ですか?誰かが必要な場合は、完全なコードを投稿できます。

4

4 に答える 4

3

さて、これは問題のように見えます:

InetAddress ip1=InetAddress.getByName(queryip);
ipresult=queryip.getHostName();

私はあなたが意味したと思います:

InetAddress ip1 = InetAddress.getByName(queryip);
ipresult = ip1.getHostName();

getHostName基本的にqueryip、 ではなくを呼び出していましたip1。次に、コードの 2 番目の部分にまったく同じ間違いがあります。これは最初の部分と十分に似ているため、両方のケースで呼び出すことができるメソッドを抽出することを検討する必要があります。

ただし、コードを修正するだけではいけません。一歩下がって、自分でこれを理解できなかった理由を考えてみてください。

  • エラーメッセージをよく読みましたか?
  • コンパイラがその行について不平を言っている理由を理解するために、コードを注意深く調べましたか?
  • コードのすべての行を (言語の観点から) 実際に理解していますか?

知らないことは問題ではありません。間違いから学ばなければ問題です。

于 2013-06-27T17:44:40.877 に答える
0

queryip は文字列型です

 String ipresult,queryip=inputip.getText();

string にはメソッド getHostName() がないため、そのエラーが発生します。このようなメソッドを持つオブジェクトを初期化する場合は、それを呼び出すことができます。コードから推測するだけで、次のようにする必要があります。

 ipresult=ip1.getHostName();

文字列フィールドと getHostName() メソッドを持つオブジェクトが必要です。メソッド getHostName(String ip) を持つ静的クラスを検討することをお勧めします。これはすべて、InetAddress オブジェクトがどれだけ必要かによって異なります。

于 2013-06-27T17:48:42.870 に答える
0

getHostAddress()タイプ String には定義されていません。それはクラスのメソッドですInetAddressが、あなたはそれを呼び出していquerywebますString

于 2013-06-27T17:46:19.320 に答える