Как динамически привести в java с обычными скобками?

1

Или это даже возможно? В то время я пишу REST client. В java есть класс URLConnection который расширен HttpURLConnection и HttpsURLConnection. Я хотел бы объявить тип (HttpURLConnection or HttpsURLConnection) и (HttpURLConnection or HttpsURLConnection) этот объект URLConnection на основе логического значения этого объявленного типа. Fe:

Class<? extends URLConnection> theClass = _SSL ? 
    HttpsURLConnection.class : HttpURLConnection.class;

тогда

((theClass) HttpConnection).setRequestMethod("POST");

или что-то подобное.

Заранее спасибо!

  • 0
    Вам нужен объект Class или объект для выполнения операций HTTP?
  • 1
    Пример, который вы демонстрируете, не демонстрирует никаких веских причин для динамического приведения. HttpsURLConnection является подклассом HttpURLConnection и вы вызываете метод базового класса.
Показать ещё 8 комментариев
Теги:
dynamic
casting

2 ответа

2
Лучший ответ

Я думаю, вам нужно всего лишь HttpsURLConnection java.net.HttpURLConnection потому что ваш HttpsURLConnection и HttpURLConnection расширяют этот абстрактный класс.

  • 0
    Спасибо, что сделали свое дело :)
0

Вы можете сделать что-то подобное.

if(_SSL) {
    ((HttpsURLConnection) HttpConnection).setRequestMethod("POST");
} else {
    ((HttpURLConnection) HttpConnection).setRequestMethod("POST");
}

Как прокомментировал szidijani, нет необходимости в объекте Class.

  • 0
    Да, я сделал это точно, спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню