wergio
@wergio
Программист - любитель!

Как вынести переменную вне класса?

Можно ли как-то сделать видимой переменную по всему классу?
String mess= response.toString();
В переменной находится ответ от сервера, но кроме как вывести в консоль с этим ответом больше ничего нельзя сделать.
return тоже не даёт результата.
Подскажите, кто знает.

public class Network {
    private static final String USER_AGENT = "Mozilla/5.0";
    private static final String POST_URL = "https://test.org/post.php";
    private static final String POST_PARAMS = "test=test";
    public static void main(String[] args) throws IOException {
        sendPOST();
    }

    public static void sendPOST() throws IOException {
        URL obj = new URL(POST_URL);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        con.setRequestMethod("POST");
        con.setRequestProperty("User-Agent", USER_AGENT);

        // For POST only - START
        con.setDoOutput(true);
        OutputStream os = con.getOutputStream();
        os.write(POST_PARAMS.getBytes());
        os.flush();
        os.close();
        // For POST only - END
        int responseCode = con.getResponseCode();
        if (responseCode == HttpURLConnection.HTTP_OK) { //success
            BufferedReader in = new BufferedReader(new InputStreamReader(
                    con.getInputStream()));
            String inputLine;
            StringBuffer response = new StringBuffer();

            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            in.close();

            // print result

            String mess = response.toString();
        }
    }
}
  • Вопрос задан
  • 650 просмотров
Пригласить эксперта
Ответы на вопрос 2
TheKnight
@TheKnight
Программист
Ну как как...
Сделать ее полем класса. Не статическим и не финальным. Если ваш класс используется из нескольких потоков - можно использовать ThreadLocal, что бы менялась только переменная в текущем потоке.

Есть более простой вариант - вернуть ее из метода. И передать в следующий метод.

(Джонни, ты точно не терял свои таблетки?)
Ответ написан
lxsmkv
@lxsmkv
Test automation engineer
Я совсем не специалист по правильной архитектуре классов, но первое что приходит на ум: обьявите переменную mess как private свойство наряду с AGENT, POST_URL и пр, только не делайте ее final. и сделайте для нее метод доступа getMessage. Если getMessage возвращает null, переменная не была записана.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы