我使用与我在网上找到的代码非常相似的代码,但我收到了错误"无法实例化GeoIPService"类型。我在另一个问题here中发现了同样的问题,但从未得到回答。
import net.webservicex.www.GeoIP;
import net.webservicex.www.GeoIPService;
import net.webservicex.www.GeoIPServiceSoap;;
public class CountryFinder
{
public static void main(String[] args)
{
GeoIPService service = new GeoIPService(); // "Cannot instaniate the type GeoServiceIP"
GeoIPServiceSoap port = service.getGeoIPServiceSoap();
System.out.print(port.getGeoIP("1.1.1.1").getCountryName());
}
}
更新:对于使用相同类的任何人,通过实例化GeoIPServiceLocator而不是GeoIPService来解决问题。
答案 0 :(得分:1)
GeoIPService
是一个接口,而不是一个类,因此您必须实例化它的实现,而不是接口本身。
不正确:
GeoIPService service = new GeoIPService();
正确:
GeoIPService service = new ClassThatImplementsGeoIPService();