Java 解析IP时类型字符串错误的Getting方法未定义
我试图在使用Swing创建的工具中将IP转换为web地址,反之亦然。 这里是动作监听器部分Java 解析IP时类型字符串错误的Getting方法未定义,java,network-programming,Java,Network Programming,我试图在使用Swing创建的工具中将IP转换为web地址,反之亦然。 这里是动作监听器部分 public void actionPerformed(ActionEvent e) { if(e.getSource()==check1) { String ipresult,queryip=inputip.getText(); try { InetAddress ip1=InetAddress.getByName
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()代码>
is方法对于类型字符串未定义
我做错了什么?如果有人需要,我可以发布完整的代码 这看起来像是个问题:
InetAddress ip1=InetAddress.getByName(queryip);
ipresult=queryip.getHostName();
我猜你的意思是:
InetAddress ip1 = InetAddress.getByName(queryip);
ipresult = ip1.getHostName();
基本上,您是在queryip
上调用getHostName
,而不是在ip1
上。然后,你对第二段代码有完全相同的错误——这看起来与第一个片段非常相似,你应该考虑提取一种在两种情况下都可以调用的方法。
但是,您不应该只修复代码。你应该退后一步,找出自己无法解决的原因:
- 您是否仔细阅读了错误消息
- 您是否仔细查看了代码,以了解编译器为什么会抱怨这行代码
- 你真的理解(从语言的角度)你的每一行代码吗
不知道事情不是问题-如果你没有从错误中吸取教训,那就是问题。getHostAddress()
没有为类型字符串定义。它是类InetAddress
的一个方法,但您正在queryweb
上调用它,queryweb是一个String
queryip根据
String ipresult,queryip=inputip.getText();
由于字符串没有getHostName()方法,因此无法获取该错误。现在,如果要初始化一个具有这样一个方法的对象,可以调用它。从您的代码中猜测,您应该:
ipresult=ip1.getHostName();
您应该有一个具有字符串字段和方法getHostName()的对象。您可能想用GestToString(String IP)方法来考虑静态类。这完全取决于您需要多少InetAddress对象,下面的代码在这种情况下会有所帮助
String clientIp = request.getRemoteHost();
System.out.println(clientIp);
InetAddress Address =InetAddress.getByName(clientIp);
System.out.println("Testing client name:"+Address.getHostName());
好这仍然是一个不知道的问题,这就是为什么SE站点通常有解决方案的原因:D。尽管答案很好,+1Oh-oops,谢谢。我没意识到我在给queryip打电话:<我的坏。。谢谢你把这件事弄清楚。