我有一个对象,其中包含 String
类型的字段,其值类似于“http://stackoverflow.com”
我有一个必须采用URL
的方法。因此,我将其包装在一个接受 String
的方法中,然后从 String
构造一个 URL
(显然需要将其包装在一次尝试...)
看来应该有更简单的方法。是否可以将我的值作为 URL
而不是 String
存储在对象中?我尝试了这个 public URL url = "http://stackoverflow.com";
是否可以按照这些思路做一些事情?有没有比我原来做的更好的方法?
谢谢
原文:
public String urlString = "http://stackoverflow.com";
public boolean myMethod(String urlString) {
try {
URL newURL = new URL(urlString);
useUrl(newURL);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
不起作用,但看起来更好:
public URL url = "http://stackoverflow.com";
public boolean myMethod(URL url) {
useUrl(url);
}
最佳答案
Java 不支持隐式转换。如果你想将一种类型转换为另一种类型,你必须明确地这样做
final URL url = new URL("http://stackoverflow.com/");
但是这会引发一个已检查的异常,因此您需要一个像这样的辅助方法
private static final URL url = getUrl("http://stackoverflow.com/");
private static URL getUrl(String spec) {
try {
return new URL(spec);
} catch (MalformedURLException e) {
throw new AssertionError(e);
}
}
或者使用构造函数
private final URL url;
public MyClass(String spec) throws MalformedURLException {
url = new URL(spec);
}
关于java - URL 作为 Java 对象中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16201636/