- PR -

無検査呼び出しのエラー

投稿者投稿内容
ユイ
会議室デビュー日: 2005/11/24
投稿数: 15
お住まい・勤務地: 東京都
投稿日時: 2005-11-28 14:45
ソースファイル:%JAVA_LESSON%src配下
クラスファイル:%JAVA_LESSON%classes配下

以前ここで、皆様に協力頂いたのですが再度ご協力願えませんでしょうか?お願いします!!
以下の5つのソースファイルをコンパイルして、%JAVA_LESSON\lib 配下javalessonlib.jarとしてアーカイブして下さい。javalessonlib.jar内のPrintABCクラスを実行してください。


---PrintChar

package lib.javalesson;

public interface PrintChar{
public void printChar();
}


---PrintCharA

package lib.javalesson;

public class PrintCharA implements

PrintChar{
public void printChar(){
System.out.print('A');
}
}

---PrintCharB

package lib.javalesson;

public class PrintCharB implements

PrintChar{
public void printChar(){
System.out.print('B');
}
}

---PrintCharC

package lib.javalesson;

public class PrintCharC implements

PrintChar{
public void printChar(){
System.out.print('C');
}
}

---PrintCharABC

package lib.javalesson;

import java.util.ArrayList;

public class PrintABC{
public static void main(String[]args){
ArrayList charlist = new ArrayList();
PrintChar printA = new PrintCharA();
charlist.add(printA);
PrintChar printB = new PrintCharB();
charlist.add(printB);
PrintChar printC = new PrintCharC();
charlist.add(printC);
System.out.println("--ライブラリの中のクラスから文字列出力--\n");
for(int i = 0;i < charlist.size();i++){
PrintChar printchar = (PrintChar)charlist.get(i);
printchar.printChar();
}
System.out.println("\n\n-------------------------")
}
}


D:\JAVA_LESSON>javac -Xlint:unchecked -sourcepath D:\JAVA_LESSON\src -d D:\JAVA_
LESSON\classes src\lib\javalesson\PrintABC.java
src\lib\javalesson\PrintABC.java:14: 警告: [unchecked] raw 型 java.util.ArrayLis
t のメンバとしての add(E) への無検査呼び出しです。
charlist.add(printA);
^
src\lib\javalesson\PrintABC.java:16: 警告: [unchecked] raw 型 java.util.ArrayLis
t のメンバとしての add(E) への無検査呼び出しです。
charlist.add(printB);
^
src\lib\javalesson\PrintABC.java:18: 警告: [unchecked] raw 型 java.util.ArrayLis
t のメンバとしての add(E) への無検査呼び出しです。
charlist.add(printC);
^
と、エラーが出てしまうのですが友人のPCで試した所正常にコンパイルする事が出来ましたが、こちらではコンパイルする事が出来ません。どうかご協力をお願いします。

[ メッセージ編集済み 編集者: ユイ 編集日時 2005-11-28 14:51 ]

[ メッセージ編集済み 編集者: ユイ 編集日時 2005-11-28 14:53 ]
ハツキタツミ
大ベテラン
会議室デビュー日: 2005/05/24
投稿数: 108
投稿日時: 2005-11-28 14:59
http://www.google.co.jp/search?q=%22%E7%84%A1%E6%A4%9C%E6%9F%BB%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97%E3%81%A7%E3%81%99%22&start=0&start=0&hl=ja&lr=lang_ja&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:ja-JP:official
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2005-11-28 15:02
Java SE 5.0 (古い呼び方で J2SE 5.0)を使っているためと思われます。
(java -version を実行してみてください。)

対策として、以下の方法が考えられます。

(1) Java SE 1.4.2 を使う。
(2) コマンドライン引数に -source 1.4.2 を追加する。
(3) Java SE 5.0 の書き方に改める。

(3) を具体的に書くと
コード:
ArrayList charlist = new ArrayList();
...
PrintChar printchar = (PrintChar)charlist.get(i);



コード:
ArrayList<PrintChar> charlist = new ArrayList<PrintChar>();
...
PrintChar printchar = charlist.get(i); 


に変更するということです。
ユイ
会議室デビュー日: 2005/11/24
投稿数: 15
お住まい・勤務地: 東京都
投稿日時: 2005-11-28 15:22
Gio殿ハツキタツミ殿、有難うございます。

早速java -versionを試してみました。
D:\JAVA_LESSON>java -version
java version "1.5.0_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-b05)
Java HotSpot(TM) Client VM (build 1.5.0_05-b05, mixed mode, sharing)

因みに、-source 1.4.2はどのように追加したら良いのですか?
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2005-11-28 15:29
ど、どのようにとおっしゃいましても(汗)

ごく普通に
javac -Xlint:unchecked -source 1.4.2 -sourcepath D:\JAVA_LESSON\src -d D:\JAVA_
LESSON\classes src\lib\javalesson\PrintABC.java
でよろしいと思います。
ユイ
会議室デビュー日: 2005/11/24
投稿数: 15
お住まい・勤務地: 東京都
投稿日時: 2005-11-28 15:36
すみません!まだコマンドオプションも勉強中でして(汗)申し訳ありません!!
それと、実行して見ましたらこの様になったのですが、違いますよね?

D:\JAVA_LESSON>javac -Xlint:unchecked -source 1.4.2 -sourcepath D:\JAVA_LESSON\s
rc -d D:\JAVA_LESSON\classes src\lib\javalesson\PrintABC.java
javac: 1.4.2 は無効なソースバージョンです。
使い方: javac <options> <source files>
使用可能なオプションには次のものがあります。
-g すべてのデバッグ情報を生成する
-g:none デバッグ情報を生成しない
-g:{lines,vars,source} いくつかのデバッグ情報だけを生成する
-nowarn 警告を発生させない
-verbose コンパイラの動作についてメッセージを出力する
-deprecation 推奨されない API が使用されているソースの位置を出力
する
-classpath <path> ユーザクラスファイルを検索する位置を指定する
-cp <path> ユーザクラスファイルを検索する位置を指定する
-sourcepath <path> 入力ソースファイルを検索する位置を指定する
-bootclasspath <path> ブートストラップクラスファイルの位置を置き換える
-extdirs <dirs> インストール済み拡張機能の位置を置き換える
-endorseddirs <dirs> 推奨規格パスの位置を置き換える
-d <directory> 生成されたクラスファイルを格納する位置を指定する
-encoding <encoding> ソースファイルが使用する文字エンコーディングを指定
する
-source <release> 指定されたリリースとソースの互換性を保つ
-target <release> 特定の VM バージョン用のクラスファイルを生成する
-version バージョン情報
-help 標準オプションの概要を出力する
-X 非標準オプションの概要を出力する
-J<flag> <flag> を実行システムに直接渡す

さぷり
会議室デビュー日: 2005/11/18
投稿数: 18
投稿日時: 2005-11-28 16:18
こんにちわ。

-source オプションを使用するなら 1.4.2 ではなく 1.4 と指定します。

javac -Xlint:unchecked -source 1.4 -sourcepath D:\JAVA_LESSON\src -d D:\JAVA_
LESSON\classes src\lib\javalesson\PrintABC.java

ですね。
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2005-11-28 16:33
あゑ(←奇声)、失礼しました(_ _)
さぷりさん、フォローありがとうございます。

スキルアップ/キャリアアップ(JOB@IT)