Java 存储主机名和端口的最佳方式是什么?

Java 存储主机名和端口的最佳方式是什么?,java,networking,uri,Java,Networking,Uri,我需要一个映射,在其中存储ID(键)和主机名:port(值)。我应该使用什么类型的对象来存储值 我试过这样的方法: map.put(id, new URI("localhost:2222")); 但在我被处决之后 entry.getValue().getHost() 及 我得到:null和-1 我只需要主机名和端口,不需要更多。映射。您显示的两行是相同的,因此我不确定为什么会得到不同的结果,但是如果没有更多的代码,就无法确定查找失败的原因,除非URI没有正确解析。映射。您显示的两行是相同的,

我需要一个映射,在其中存储ID(键)和主机名:port(值)。我应该使用什么类型的对象来存储值

我试过这样的方法:

map.put(id, new URI("localhost:2222"));
但在我被处决之后

entry.getValue().getHost()

我得到:null和-1


我只需要主机名和端口,不需要更多。

映射。您显示的两行是相同的,因此我不确定为什么会得到不同的结果,但是如果没有更多的代码,就无法确定查找失败的原因,除非URI没有正确解析。

映射。您显示的两行是相同的,因此我不确定为什么会得到不同的结果,但是如果没有更多的代码,就无法确定查找失败的原因,除非URI没有正确解析。

您可以使用InetSocketAddress。

您可以使用InetSocketAddress。

我更正了我的问题。我创建新的URI(“localhost:2222”);所以我希望getHost()将返回“localhost”,getPort()将返回2222,但不幸的是,我得到了null和-1。@Radek因为您没有传入scheme,所以会发生这种情况—请参阅。我更正了我的问题。我创建新的URI(“localhost:2222”);所以我希望getHost()将返回“localhost”,getPort()将返回2222,但不幸的是,我得到了null和-1。@Radek因为您没有传入方案,所以会发生这种情况--请参见。谢谢,我完全忘记了InetSocketAddress。谢谢,我完全忘记了InetSocketAddress。
entry.getValue().getPort()