动态方法调用?

时间:2011-09-17 15:29:43

标签: java class url

  

可能重复:
  Renaming openconnection() or cutting it up?

原单:

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**();

当我把它变成一个String时,我得到一个错误,但是我不确定如何将它结合起来来定义它。这有道理吗?我对使用Java进行编码感到很生气。

1 个答案:

答案 0 :(得分:2)

你想要的是可能的。您正在寻找java.lang.reflect

String st1 = "open";
String st2 = "Connection";
URL url = new URL("http://google.co.in");

Class<URL> clazz = url.getClass();
Method m = clazz.getDeclaredMethod(st1 + st2);
URLConnection obj = (URLConnection) m.invoke(url);

将其包裹在try-catch中。