将对象列表转换为String数组

时间:2015-06-03 17:00:11

标签: java

我有下面的pojo,由以下成员组成,所以下面是pojo,其成员很少

public class TnvoicetNotify  {
    private List<TvNotifyContact> toMap = new ArrayList<TvNotifyContact>();
    private List<TvNotifyContact> ccMap = new ArrayList<TvNotifyContact>();

}

现在在其他一些类中,我在方法签名中获取上面类TnvoicetNotify的对象作为参数,如下所示。所以我想从列表中编写提取代码并将它们存储在此方法本身的字符串数组中< / p>

public void InvPostPayNotification(TnvoicetNotify TnvoicetNotify)
    {

        String[] mailTo =  it should contain all the contents of list named toMap  
        String[] mailCC =  it should contain all the contents of list named ccMap 
     }

现在在上面的类中,我需要在上面的pojo中提取名为TnvoicetNotify的类型列表中的toMap,并且如果arraylist在字符串数组中,我想存储每个项目,如下面的方式所示

例如列表中的第一项是A1,第二项是A2,第三项是A3 所以它应该作为

存储在字符串数组中
 String[] mailTo = {"A1","A2","A3"};

同样我想要实现相同的cc部分也如上面pojo它在列表中我想以下面的方式存储

 String[] mailCc = {"C1","C2","C3"};

所以请建议如何在InvPostPayNotification方法

中实现这一点

2 个答案:

答案 0 :(得分:2)

伪代码,因为我不知道TnvoicetNotify的详细信息:

public void invPostPayNotification(final TnvoicetNotify tnvoicetNotify)
{
    final List<String> mailToList = new ArrayList<>();
    for (final TvNotifyContact tv : tnvoicetNotify.getToMap()) { // To replace: getToMap() 
        mailToList.add(tv.getEmail()); // To replace: getEmail() 
    }
    final String[] mailTo = mailToList.toArray(new String[mailToList.size()])
    // same for mailCc then use both arrays
}

答案 1 :(得分:1)

如果您使用的是Java 8,则只需使用一个内容:

String[] mailCC = ccMap.stream().map(TvNotifyContact::getEmail).toArray(String[]::new);