- - PR -
Vector型配列の宣言方法について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-07-03 18:36
String型に指定したVector型配列を使用しようとしたところ
宣言部分で"';'がありません"とコンパイルエラーになります。 当然';'はついているのにも関わらずです。 何らか別の原因があるのでしょうがそれがわからずに困っています。 下記が問題部分のコードです。 *************************************************************** private Vector<String> adrs<String>; //[name,address] *************************************************************** どなたかVector型変数の正しい宣言方法を教えて頂けないでしょうか。 ==================================================== 全体のソースを書きに記します。ご参考まで。 ==================================================== /* * SendMail.java * * Created on 2007/07/03, 13:38 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package sendmail; /******************************************************************** --------------------------------------------------------------------- メールを指定されたアドレスに送信する。 --------------------------------------------------------------------- 引数;smtp、to、from、件名、本文 --------------------------------------------------------------------- ********************************************************************/ import java.util.*; import javax.mail.*; import javax.mail.internet.*; public class SendMail{ private String host; private String myNm; private String myAd; private String sbj; private String msg; private Vector<String> adrs<String>; //[name,address] //コンストラクタ。 SendMail(String strHost, String strMyNm, String strMyAd){ host = strHost; myNm = strMyNm; myAd = strMyAd; } public Vector getVctAddress(){return adrs;} public String getStrSubject(){return sbj; } public String getStrMessage(){return msg; } //メールアドレス、件名、内容の設定。 public void set(Vector vctAdrs, String strSubject, String strMessage){ adrs = vctAdrs; sbj = strSubject; msg = strMessage; } //メール送信処理。 public void send(){ try{ String smtp = host; String myName = myNm; String myAddress = myAd; String subject = sbj; String message = msg; //SMTPサーバーの指定 Properties props = System.getProperties(); props.put("mail.smtp.host",smtp); Session session = Session.getDefaultInstance(props,null); MimeMessage mmsg = new MimeMessage(session); //あて先 InternetAddress[] toList = new InternetAddress[1]; //送信元 InternetAddress fromAddress = new InternetAddress(myAddress,MimeUtility.encodeWord(myName,"iso-2022-jp","B")); mmsg.setFrom(fromAddress); mmsg.setSentDate(new Date()); //件名 mmsg.setSubject(MimeUtility.encodeText(subject,"iso-2022-jp","B")); //本文 mmsg.setContent(message,"text/plain; charset=iso-2022-jp"); //メールの形式を指定(メールヘッダ) mmsg.setHeader("Content-Transfer-Encoding","7bit"); //送信 Transport transport = session.getTransport("smtp"); transport.connect(); String toName, toAdrs; for(int i=0; i < adrs.size();i++){ try{ String[] s = new String[2]; s = adrs.elementAt(i); toName=s[0] + "様"; toAdrs=s[1]; toList[0] = new InternetAddress(toAdrs,MimeUtility.encodeWord(toName,"iso-2022-jp","B")); mmsg.setRecipients(MimeMessage.RecipientType.TO,toList); transport.send(mmsg,toList); }catch(Exception f){ System.out.println("例外:" + f.toString()); f.printStackTrace(); } } transport.close(); } catch(Exception e){ System.out.println("例外:" + e); } } } | ||||||||
|
投稿日時: 2007-07-03 18:41
[quote]
private Vector<String> adrs<String>; [/qurte] 宣言の書式が間違ってますよ。 | ||||||||
|
投稿日時: 2007-07-03 20:31
Genericsのない書き方は、できますか?
| ||||||||
|
投稿日時: 2007-07-03 21:00
という文法ですよね。 "';'がありません"は変数名の後ろででていませんか? 変数名の直後に;がある必要があるからですね。 | ||||||||
|
投稿日時: 2007-07-03 23:10
コンパイラによってエラー箇所の解釈が多少違いますので、
エラー内容とエラーメッセージが必ず一致するとは限りません。 特に文法の間違いの検出は難しいものです。 | ||||||||
|
投稿日時: 2007-07-04 09:37
皆様早速のご返答ありがとうございます。
以下のように宣言を書き換えました。 ************************************************** private Vector<String> adrs; //[name,address] ************************************************** しかしそうすると今度はVector型の変数をString型の変数に代入する箇所で "互換性がない"とエラーになってしまいます。 ************************************************** try{ String[] s = new String[2]; s = adrs.elementAt(i); ←問題の箇所 toName=s[0] + "様"; toAdrs=s[1]; toList[0] = new InternetAddress(toAdrs,MimeUtility.encodeWord(toName,"iso-2022-jp","B")); mmsg.setRecipients(MimeMessage.RecipientType.TO,toList); transport.send(mmsg,toList); }catch(Exception f){ System.out.println("例外:" + f.toString()); f.printStackTrace(); }************************************************** どなたかVector型とString型の型変換についてご教示願います。 | ||||||||
|
投稿日時: 2007-07-04 09:37
皆様早速のご返答ありがとうございます。
以下のように宣言を書き換えました。 ************************************************** private Vector<String> adrs; //[name,address] ************************************************** しかしそうすると今度はVector型の変数をString型の変数に代入する箇所で "互換性がない"とエラーになってしまいます。 ************************************************** try{ String[] s = new String[2]; s = adrs.elementAt(i); ←問題の箇所 toName=s[0] + "様"; toAdrs=s[1]; toList[0] = new InternetAddress(toAdrs,MimeUtility.encodeWord(toName,"iso-2022-jp","B")); mmsg.setRecipients(MimeMessage.RecipientType.TO,toList); transport.send(mmsg,toList); }catch(Exception f){ System.out.println("例外:" + f.toString()); f.printStackTrace(); }************************************************** どなたかVector型とString型の型変換についてご教示願います。 | ||||||||
|
投稿日時: 2007-07-04 10:00
それですべて解決、なんて、誰も保証なんかしてないし。 「しかし」とか「今度は」とか、関係ないでしょ。
ちゃんと答えがでてるじゃないですか。 その互換性をチェックしましょう。 |