Java 为什么getPersonal()在以下情况下返回null?

Java 为什么getPersonal()在以下情况下返回null?,java,email,jakarta-mail,Java,Email,Jakarta Mail,我一直在用Java处理InternetAddress。我使用了下面的代码片段 InternetAddress internetAddress = new InternetAddress("king<***@***.com>"); System.out.println(internetAddress.getPersonal()); InternetAddress InternetAddress=新的InternetAddress(“国王”); System.out.println(i

我一直在用Java处理InternetAddress。我使用了下面的代码片段

InternetAddress internetAddress = new InternetAddress("king<***@***.com>");
System.out.println(internetAddress.getPersonal());
InternetAddress InternetAddress=新的InternetAddress(“国王”);
System.out.println(internetAddress.getPersonal());
在这种情况下,它返回king作为输出

InternetAddress internetAddress = new InternetAddress(",<***@***.com>");
System.out.println(internetAddress.getPersonal());
InternetAddress InternetAddress=新的InternetAddress(“,”);
System.out.println(internetAddress.getPersonal());
在这种情况下,没有异常,但返回null

这里逗号不是用双引号括起来的,那么它是如何被接受的,为什么它返回null而不是逗号

谢谢。

根据解析函数文档的说法,addressList参数被解释为以逗号分隔的地址字符串列表,java很可能将其视为两封电子邮件,一封无效(空)地址,另一封没有个人地址

您的构造函数调用newinternetaddress(“xyz”)然后被直接传递到parse,如您所见

逗号有一种特殊的处理方式,它试图将逗号检测为地址列表,您可以看到

相关文档:

根据解析函数文档判断,addressList参数被解释为以逗号分隔的地址字符串列表,java很可能将其视为两封电子邮件,一封无效(空)地址,另一封没有个人地址

您的构造函数调用newinternetaddress(“xyz”)然后被直接传递到parse,如您所见

逗号有一种特殊的处理方式,它试图将逗号检测为地址列表,您可以看到


相关文档:

可能将逗号解释为一个单独的发送者列表,parse()函数中有专门处理逗号的代码,但我不理解整个函数,请在此处查看源代码:逗号用于列表。请看,它可能将逗号解释为一个单独的发送者列表,parse()函数中有专门处理逗号的代码,但我不理解整个函数,请检查这里的源代码:逗号用于列表。看到Yes,可以提出一个参数,在这种情况下它应该抛出一个解析异常,因为它只需要一个地址,而你给了它一个两个地址的列表,其中一个是空的。是的,可以提出一个参数,在这种情况下它应该抛出一个解析异常,因为它只需要一个地址,而你给了它一个两个地址的列表,其中一个是空的。