重命名openconnection()还是将其切断?

时间:2011-09-17 07:56:08

标签: java class url

是否可以重命名openconnection()?

原单:

URL url = new URL("http://google.co.in");
URLConnection connection = url.**openConnection**();

后:

URL url = new URL("http://google.co.in");
URLConnection connection = url.**connect**();

我只是想知道它是否可行以及我将如何去做。还有其他选择吗?为了做到这一点,我正在考虑上课,但我不能100%确定是否可能。

< ------------------或---------------->

原单:

URL url = new URL("http://google.co.in");
URLConnection connection = url.**openConnection**();

后:

string st1 = "open";
string st2 = "Connection";
URL url = new URL("http://google.co.in");
URLConnection connection = url.**st1 + st2**();

当我把它变成一个字符串时,我得到一个错误,但我不确定如何将它们结合起来来定义它。如果那样的话,那我在使用Java进行编码方面有点生气。

2 个答案:

答案 0 :(得分:9)

用一大袋盐来回答这个问题。这个工作,但除非你对Java非常熟悉,否则你通常不想反思


你可以用反射完成#2,忽略你必须处理的各种令人讨厌的异常:

String st1 = "open";
String st2 = "Connection";
URL url = new URL("http://google.co.in");
Object obj = url.getClass().getMethod(st1 + st2).invoke(url);
URLConnection connection = (URLConnection) obj;

请参阅:

您必须以某种方式处理的潜在例外情况,来自一个代码行:


但是,我不确定你为什么要这样做。几乎可以肯定有更好的方法来实现相同的最终结果。 您尝试解决的问题是什么?

答案 1 :(得分:0)

对于第一部分,你不能直接这样做。你不能从URL派生,因为它是最终的,所以你必须编写代理类,这将浪费时间并且可能会引入错误。

对于第二个,您可以使用reflection来做到这一点。这不是一件轻而易举的事,这是一个高级话题。所以我要避免这种情况,直到你非常熟悉Java语言为止。

如果你解释了你想要达到的目标,也许你会得到更好的建议。