Переименование openconnection () или его сокращение? - PullRequest
0 голосов
/ 17 сентября 2011

Можно ли переименовать 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 ]

9 голосов
/ 17 сентября 2011

Примите этот ответ с большим пакетом соли. Это сработает , но вы, как правило, не хотите возиться с отражением, если не очень хорошо разбираетесь в 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;

См .:

потенциальные исключения, с которыми вам придется как-то разбираться, начиная с одной строки кода:


Я не совсем уверен, почему вы хотите это сделать, хотя.Почти наверняка есть лучший способ достичь того же конечного результата. Какую большую проблему вы пытаетесь решить?

0 голосов
/ 17 сентября 2011

Для первой части вы не можете сделать это напрямую. Вы не можете получить производную от URL, поскольку она является окончательной, поэтому вам придется написать прокси-класс, а это будет пустой тратой времени и может привести к ошибкам.

Для второго вы можете сделать это, используя отражение . Это не тривиально, это сложная тема. Так что я бы избегал этого, пока вы не будете очень знакомы с языком Java в целом.

Если бы вы объяснили, чего пытались достичь, возможно, вы получите лучшие предложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...