Почему getPersonal () возвращает ноль в приведенном ниже случае? - PullRequest
0 голосов
/ 09 июля 2019

Я работал с InternetAddress на Java.Я использовал приведенный ниже фрагмент кода.

InternetAddress internetAddress = new InternetAddress("king<***@***.com>");
System.out.println(internetAddress.getPersonal());

В этом случае он возвращает король в качестве вывода.

InternetAddress internetAddress = new InternetAddress(",<***@***.com>");
System.out.println(internetAddress.getPersonal());

В этом случае исключений нет, но возвращается ноль.

Здесь запятая не заключена в двойные кавычки, тогда как она принимается и почему вместо запятой возвращается ноль?

Спасибо.

1 Ответ

2 голосов
/ 09 июля 2019

Судя по документации функции разбора InternetAddress, в которой говорится, что параметр addressList интерпретируется как список адресных строк, разделенных запятыми, весьма вероятно, что java видит это как два электронных письма, одно недопустимое (пустое)) адрес, и один без личного адреса.

Ваш вызов конструктора new InternetAddress ("xyz") затем передается для непосредственного анализа, как вы можете видеть здесь

Существует специальная обработка запятых, где он пытаетсяопределить запятые в виде списка адресов, которые вы можете увидеть здесь

Соответствующая документация: https://docs.oracle.com/javaee/6/api/javax/mail/internet/InternetAddress.html#parse

...