java.net. URLEncoder.encode (Строка) удерживается от использования, что я должен использовать вместо этого?

Если у вас есть много элементов, лучше всего их инициализировать с помощью Java, а не с помощью FXML. Например, вместо:


    

и контроллера

public class Controller {

    @FXML
    private FlowPane container ;
    @FXML
    private Label label1 ;
    @FXML
    private Label label2 ;
    // ...

    @FXML
    private Label label1000 ;

    // ...
}

я бы сделал



и

public class Controller {

    @FXML
    private FlowPane container ;

    private List

В качестве варианта этой идеи рассмотрим определение настраиваемого компонента:

public class LabelFlow extends FlowPane {

    private List

Теперь в вашем FXML вы выполняете


и в своем контроллере

public class Controller {
    @FXML
    private LabelFlow labelFlow ;

    public void initialize() {
        for (Label label : labelFlow.getLabels()) {
            // do whatever you need with label....
        }
    }
}

Вам нужно перепрыгнуть через пару обручей, если вы хотите использовать собственный класс, подобный этому в Scene Builder. См. Добавление настраиваемого компонента в SceneBuilder 2.0

Если вы действительно хотите определить все эти элементы управления в FXML, что будет кошмаром обслуживания imo, вы может использовать отражение для доступа к переменным. Я не рекомендую это, а не только потому, что его трудно поддерживать, но также потому, что отражение по своей природе подвержено ошибкам (без проверки времени компиляции) и сложным.

Но вы могли бы сделать

public class Controller {

    @FXML
    private FlowPane container ;
    @FXML
    private Label label1 ;
    @FXML
    private Label label2 ;
    // ...

    @FXML
    private Label label1000 ;

    private List

183
задан Frank Krueger 28 March 2009 в 19:23
поделиться

2 ответа

Используйте другой encode метод в URLEncoder:

URLEncoder.encode(String, String)

первый параметр является текстом для кодирования; вторым является название кодировки символов для использования (например, UTF-8). Например:

System.out.println(
  URLEncoder.encode(
    "urlParameterString",
    java.nio.charset.StandardCharsets.UTF_8.toString()
  )
);
270
ответ дан Dave Jarvis 23 November 2019 в 05:54
поделиться

Использование org.apache.commons.httpclient.URI не является строго проблемой; то, что является проблемой, - то, что Вы нацелены на неправильного конструктора, который является обесценивается.

Используя всего

new URI( [string] );

действительно отметит его, как обесценивается. То, что необходимо, должно обеспечить в минимуме один дополнительный аргумент (первое, ниже), и идеально два:

  1. escaped: верный, если последовательность символов URI находится в завершенной форме. ложь иначе.
  2. charset: строка набора символов, чтобы сделать кодирование Escape, при необходимости

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

new URI( [string], true, StandardCharsets.UTF_8.toString() );

Немного сумасшедший поздно в игре (волосок более чем 11 лет спустя - ей-богу! ), но я надеюсь, что это помогает кому-то еще, особенно если метод в дальнем конце все еще ожидание URI, такой как org.apache.commons.httpclient.setURI().

1
ответ дан 23 November 2019 в 05:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: