Java 我们可以将字符串传递给需要向量参数的方法吗?

Java 我们可以将字符串传递给需要向量参数的方法吗?,java,vector,Java,Vector,我有一种发送签名为的电子邮件的方法 sendemail(Vector addr, String subject, String body) zvector addr包含电子邮件必须发送到的电子邮件地址 如果我们有多个分开的电子邮件地址,那么我们将每个地址添加到 向量并传递它。但是现在我只想把邮件发到一个地址 因此,我可以将字符串电子邮件地址直接传递给方法或需要的对象吗 要将单个字符串也添加到向量 您将需要创建一个单元素向量。下面是一个创建一项向量的方法: public <T> Ve

我有一种发送签名为的电子邮件的方法

sendemail(Vector addr, String subject, String body)
zvector addr包含电子邮件必须发送到的电子邮件地址

如果我们有多个分开的电子邮件地址,那么我们将每个地址添加到 向量并传递它。但是现在我只想把邮件发到一个地址

因此,我可以将字符串电子邮件地址直接传递给方法或需要的对象吗 要将单个字符串也添加到向量


您将需要创建一个单元素
向量
。下面是一个创建一项向量的方法:

public <T> Vector<T> singletonVector(T item) {
    Vector<T> v = new Vector<T>(1);
    v.add(item);
    return v;
}

您将需要创建一个单元素
向量
。下面是一个创建一项向量的方法:

public <T> Vector<T> singletonVector(T item) {
    Vector<T> v = new Vector<T>(1);
    v.add(item);
    return v;
}

您肯定需要实例化一个新的
向量
,并向其添加
字符串

另一种解决方案是使用不同的签名重载函数:

sendemail(Vector<String> addr, String subject, String body) {
  ..
}

sendemail(String addr, String subject, String body) {
  Vector<String> vaddr = new Vector<String>();
  vaddr.add(addr);
  sendemail(vaddr, subject, body);
}
sendmail(矢量地址、字符串主题、字符串正文){
..
}
sendemail(字符串地址、字符串主题、字符串正文){
向量vaddr=新向量();
vaddr.add(地址);
发送电子邮件(vaddr、主题、正文);
}

因此,新的
向量仍然是实例化的,但至少您可以使用您喜欢的签名。

您肯定需要实例化一个新的
向量
,并向其添加
字符串

另一种解决方案是使用不同的签名重载函数:

sendemail(Vector<String> addr, String subject, String body) {
  ..
}

sendemail(String addr, String subject, String body) {
  Vector<String> vaddr = new Vector<String>();
  vaddr.add(addr);
  sendemail(vaddr, subject, body);
}
sendmail(矢量地址、字符串主题、字符串正文){
..
}
sendemail(字符串地址、字符串主题、字符串正文){
向量vaddr=新向量();
vaddr.add(地址);
发送电子邮件(vaddr、主题、正文);
}

因此,新的
向量仍然是实例化的,但至少可以使用您喜欢的签名。

您需要将单个字符串添加到向量中

如果可以修改sendemail,则可以将其定义为:

public void sendemail(String subject, String body, String ... addr)

然后你不需要构造一个向量,你只需要传递地址

您需要将单个字符串添加到向量

sendemail(String...addr, String subject, String body)
{

    //addr.length(): The number of email address
    //addr[0]: 1st email adrdess 
    //addr[1]: 2nd email adrdess 
    .
    .
    .
    //addr[addr.length-1]: last email adrdess 

}
如果可以修改sendemail,则可以将其定义为:

public void sendemail(String subject, String body, String ... addr)
然后你不需要构造一个向量,你只需要传递地址

sendemail(String...addr, String subject, String body)
{

    //addr.length(): The number of email address
    //addr[0]: 1st email adrdess 
    //addr[1]: 2nd email adrdess 
    .
    .
    .
    //addr[addr.length-1]: last email adrdess 

}
我建议你这样写:

sendemail(String...addr)
{

    subject=addr[addr.lentgh-2];
    body=addr[addr.lentgh-1];
    addr[0]..addr[addr.length-3]: email addresses.

}
我建议你这样写:

sendemail(String...addr)
{

    subject=addr[addr.lentgh-2];
    body=addr[addr.lentgh-1];
    addr[0]..addr[addr.length-3]: email addresses.

}

sendemail是一项现有功能,用于在多种情况下发送电子邮件。因此,我认为我无法更改签名。sendemail是一项现有功能,用于在多种情况下发送电子邮件。所以我想我不能更改签名。顺便说一句:。Java类是区分大小写的(vector=>vector,string=>string),很抱歉在这里输入error.BTW:。Java类是区分大小写的(vector=>vector,string=>string),很抱歉在这里输入错误。