java - URL 作为 Java 对象中的字段

标签 java url object constructor try-catch

我有一个对象,其中包含 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/

相关文章:

java - 如何检测重试 Flux 中的恢复?

java - Android studio fragment 或新 Activity

Node.js 找不到网址

JAVA 获取带有授权 header 值的请求

javascript - JS使用扩展运算符克隆对象并更改一个字段

java - 绑定(bind)线程运行时间

java - Grails-在 Controller 中实现自动完成请求的反跳算法

url - 可以在查询变量中使用的有效 URL 字符是什么?

javascript - Object.defineProperty 的主要用例是什么?

javascript - ng-if 中的原始 javascript 不起作用?