[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 03/30 12:48 / Filesize : 271 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者】Java質問・相談スレッド116【歓迎】



1 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 17:52:10 ]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    pc11.2ch.net/hp/
Webプログラミング pc11.2ch.net/php/
をご利用下さい。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
【初心者】Java質問・相談スレッド115【歓迎】
pc11.2ch.net/test/read.cgi/tech/1210529127/
次スレは>>990あたりで。

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/

296 名前:デフォルトの名無しさん [2008/06/17(火) 23:55:05 ]
>>256
>>286
おいでくさいまし

297 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:55:22 ]
C++でもint& b = a;を「参照」という言葉で表現するという罠があるし、
まあいいんじゃねそんな世界

298 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:57:04 ]
値渡しor参照渡しってのは、呼び元に影響を与えるかどうかだ。
int[] data = new data[5];
この変数dataには実体ではなく配列データが保存されたメモリを指す
だからf(data)と渡してf関数の中でdataをいじれば呼び元の配列に影響を及ぼす
よって参照渡しである。
OK?

299 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:57:09 ]
いや、それは参照で合ってるだろ。
b に対する操作が a に及ぶんだから。

300 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:58:20 ]
>>298
data の参照先に影響を及ぼすが
data には影響を及ぼさない。
仮引数をいくらいじろうが、data の中身が急に int[10] に変わることは無い。
よって値渡し。
OK?

301 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:59:32 ]
>>298
引数に指定した変数そのものを指すのが参照渡し
実体がどうとかじゃなくて,そういう風に見せる言語機能

302 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:00:39 ]
>>300
例えば関数の中でdata[0] = 1 と代入したら
呼び元のdataに入ってる配列の値も変わるんですが。
意味分かってる?

303 名前:デフォルトの名無しさん [2008/06/18(水) 00:00:50 ]
>>256みたいな人をここでバカにすると、今度は>>256みたいな人が他のところでjava技術者を馬鹿にするから、そういう事はやっちゃダメ!!

304 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:01:40 ]
298 = 馬鹿
ってことぐらいしか分からない



305 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:01:46 ]
>>302
分かってるに決まってるだろwww

306 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:02:12 ]
盛り上がって参りました(棒読み)

>>299
あれは参照渡しに使えるけど、参照そのものではない

307 名前:デフォルトの名無しさん [2008/06/18(水) 00:02:47 ]
もうツマンネー自演はいいから

308 名前:デフォルトの名無しさん [2008/06/18(水) 00:04:13 ]
>>288
をこのスレの方々はどう考えてるのか教えていただけないでしょうか・・

309 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:05:04 ]
void 参照渡し(ref int[] data) { data = new int[] { 4, 5 }; }

int[] a = { 1, 2, 3 };
参照渡し(ref a);
出力(a);//{4, 5}が出力される

C#だとこんな感じ

310 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:05:33 ]
ポインタの話と同様、
void foo(int[] hoge) { hoge = new int[10]; }

int[] data = new int[5];
foo(data);
とやっても data が参照してるのは new int[5] のままであって new int[10] ではない。
Java の引数が本当に参照渡しなら、data は new int[10] を指すようになる。

311 名前:256 mailto:sage [2008/06/18(水) 00:08:05 ]
一応、ロムしてましたが、

アプレットはオフラインはできない
という答えを受け取って消えます。

さようなら。

312 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:08:13 ]
>>309>>310 の差をきちんと理解し実感していれば
Java が参照渡しなんて口が裂けても言えなくなる。
「Java が参照渡し」 という言葉は初心者にいらぬ誤解を与える邪悪な言葉だ。

313 名前:デフォルトの名無しさん [2008/06/18(水) 00:09:48 ]
いつの時代でも、Cのポインタを理解するのは鬼門ってこと
char*manko=&tinpo

314 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:12:21 ]
>>310
それってdataはnew int[10]になるんじゃないの?



315 名前:デフォルトの名無しさん [2008/06/18(水) 00:12:59 ]
>>312
じゃ、何渡しがいいかな?

316 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:13:34 ]
「オブジェクトの参照値渡し」とか?w

317 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:14:07 ]
>>315
ポインタ渡しでいいよ。
ぬるぽとか言うくらいだし。

318 名前:デフォルトの名無しさん [2008/06/18(水) 00:14:30 ]
一応、ポインタを全快に理解してないと、GCを実装できないんだが・・

319 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:14:48 ]
お前らが頭いいのは分かったが
何言ってんのかがさっぱり分からん!

320 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:15:48 ]
>>314
ならないよ

321 名前:デフォルトの名無しさん [2008/06/18(水) 00:15:54 ]
>>316
あまり厳密に突っ込みを入れたくは無いだが、それは「インスタンスの」じゃないの?

322 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:17:34 ]
>>314 みたいなのが出てくるから
Java は参照渡しとか言うのは邪悪としか言いようが無いんだよな。

323 名前:デフォルトの名無しさん [2008/06/18(水) 00:19:12 ]
Javaやる前にCを勉強してください。それも鬼門とか超難関といわれる「ポインタ」(と参照)についてしっかりやっておかないとついてこれなくなります。

324 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:20:57 ]
>>315
参照の値渡しでいいんじゃね?



325 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:21:17 ]
Cに参照はないし
別にポインタは難関でもなんでもない。

326 名前:デフォルトの名無しさん [2008/06/18(水) 00:23:45 ]
アパマンの奴はDQNしかない。「とーちゃん。派遣面接受かったみたいだよー」のあの派遣会社のCMと同程度のDQNしかいない。

327 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:33:46 ]
>>326
なにいってんだ?同じ人間だし、確かに変なやつだとしてもな、どこかにいいところがあるだろ。
そういうところを互いに評価しないといけないんじゃないのか?

328 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:38:13 ]
>>321
java.sun.com/docs/books/jls/third_edition/html/typesValues.html#12028
> An object is a class instance or an array.

だから「オブジェクト」のほうが正確なんじゃないかな?

329 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:44:08 ]
いや、Java的にはね

330 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 01:00:22 ]
>>328
たぶん君もアパマンのDQNと同等と思ったけどね、そう噛み付きなさんなw

331 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 01:03:15 ]
「アパマン」「DQN」がマイブームの香具師がいるな

332 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 01:03:53 ]
オレ的解釈だと、C的にはオブジェクトの」、Java的にはインスタンスの」かな。
オブジェクトの単語自体があいまだからなんともいえないけど。>>328の引用は単なる君が権威主義(英語とかSUNとか)が好きなだけじゃないのかな?

333 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 01:05:57 ]
よくわからんw

334 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 01:09:26 ]
>>328は権威にあこがれるDQNってことじゃないの?



335 名前:デフォルトの名無しさん [2008/06/18(水) 01:17:09 ]
>>328,331,333
食わず嫌いはいけませんね。
そうなってしまったのは、あなたの人格が歪んでるからでしょうか?

336 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 01:55:47 ]
権威も何も、Sunが作った言語なんだから、
Sunの見解を参照するのは当然でしょ。

337 名前:デフォルトの名無しさん [2008/06/18(水) 02:26:01 ]
英語の文脈で使われるobjectと日本語の文脈で使われるオブジェクトは違うでしょ
javaを使うならJLSは当然第一に参考にすべき文書だけど日本語に訳する時に直訳はいかんよ

338 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 06:28:49 ]
>>268 >Cに参照渡しはない
>>270 >用語は違うがあるけど?
Javaでいう参照渡しはC/C++でいうアドレス渡し

ところで、
>>270 >Cやったこと無いくせにに、適当なこと言う言うな
??

339 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 09:11:17 ]
toStringで任意の型のオブジェクトを文字列に変換することができますが、
逆に、Type型の値と文字列からオブジェクトを作成するような枠組みは無いのでしょうか?

よろしくお願いします。

340 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 10:00:02 ]
>>339
意味がよく判らないんだけど、
 "int", "1" => int で 1
 "float", "1" => float で 1.0
みたいな感じ?
で、それは既存の組み込み型だけでいいの?

341 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 10:32:46 ]
sprintf() の 逆なら atoi()
static Integer Integer.valueOf(String s)
<指定された String の値を保持する Integer オブジェクトを返します。>
Type型と文字列から、じゃなくて? 表現は正確に。

342 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 11:56:44 ]
Cのscanf()に相当する関数が欲しいって話かな。

343 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 12:15:23 ]
スクリプト系言語のeval相当のものが欲しいようにも読める

344 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 12:34:41 ]
そこでJson-libですよ。



345 名前:339 mailto:sage [2008/06/18(水) 13:50:08 ]
説明がわかりにくくてすみません。

Object a = fromString(java.util.Date.class,"2008/1/1");
System.out.println(a.getClass()); // class java.util.Date
System.out.println(a); // Tue Jan 01 00:00:00 JST 2008

Object b = fromString(Integer.class,"10");
System.out.println(b.getClass()); // class java.lang.Integer
System.out.println(b); // 10

上のfromStringのように、文字列と変換後の型を指定すると、
文字列を指定した型のオブジェクトに変換できるような物が欲しいのです。

.NETのTypeConverterのように、
既存の組み込み型や標準ライブラリで定義された型に対して使用でき、
さらに、自分で作成したクラスに対する動作も指定できるような枠組みがあればよいのですが
このようなものはありませんでしょうか?

346 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 13:51:30 ]
JDK6でrhinoでevalすればいいだろ

347 名前:346 mailto:sage [2008/06/18(水) 13:53:03 ]
>>343-344あてね

348 名前:デフォルトの名無しさん [2008/06/18(水) 13:57:57 ]
Class.forName()

349 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 13:59:30 ]
>>339
「toStringの逆」という変換が一般には無理だとわかった上で?
具体例をどうぞ

350 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 13:59:51 ]
やべ遅れたw

351 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 14:32:23 ]
リフレクションで出来そうじゃない?

352 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 14:35:23 ]
よくわからんけど、インターフェースが統一されないとやなのか

353 名前:デフォルトの名無しさん [2008/06/18(水) 15:20:13 ]
いやいや、単なるC#宙でしょ

354 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:00:56 ]
自分で作ればいいんじゃない
Object fromString(Class c, String s) {
if (c == Date.class) return DateFormat.getInstance().parse(s);
if (c == Integer.class) return Integer.parseInt(s);
if (c == Float.class) return Float.parseFloat(s);
以下略
}



355 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:52:10 ]
toStringが返す文字列からオブジェクトを復元することは汎用的には無理

356 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 17:42:53 ]
Object#toString()ってサブクラスの実装依存じゃなかったっけ?

357 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:41:28 ]
うん。というか、
Object#toString()がオーバーライドされていないと、
クラス名とハッシュ値しか返ってこないから、
インスタンスの内部状態を知ることができない。

358 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:58:04 ]
ttp://msdn.microsoft.com/ja-jp/library/ayybcxe5(VS.80).aspx
Windows フォームのプログラミング
方法 : 型コンバータを実装する

ここなんかを見ると、GUI要素のプロパティをいじる時に文字列を経由したりするよねっていう感じの
用途がかいま見える

359 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 19:02:03 ]
TypeConverterってそういうもんだよ
実装したらメタデータとして型やプロパティに指定しといてリフレクションで取ってくるの

360 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 19:39:10 ]
これは邪道かな(あとPnutsですまん)
pe = class java.beans.PropertyEditorManager::findEditor(Integer.TYPE)

pe.setAsText("100")
println(pe.value - 1) // 99

pe.value = 200
println("200".equals(pe.getAsText())) // true

361 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:27:12 ]
だからそれならrhinioで出来るって

362 名前:デフォルトの名無しさん [2008/06/18(水) 20:36:38 ]
このスレでは、String.charAtやClass.forNameじゃ不満なのか?
もう答えるつもりないし、どうでもいいけど

363 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:45:44 ]
>>361
ぐぐったら前立腺マッサージャーが出たYO

364 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:44:13 ]
>>362
Class.forNameは外していると思うけど、String.charAtはまあまあかな。桁数チェックにもなるし。



365 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:09:43 ]
だれだ、おまえ?

366 名前:デフォルトの名無しさん [2008/06/18(水) 22:50:54 ]
>>364
ここではあなたの評価を気にしながら質問に答えなければいけないのですか?

367 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:14:03 ]
>>366
どこからそういう疑問が湧いたのですか?

368 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 00:12:43 ]
C言語でいう
int data = 3;
printf("%3d",data);
のように右寄せするメソッドご存じないでしょうか?

369 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 00:17:55 ]
>>368
System.out.print(String.format("%3d", data));


370 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 00:18:33 ]
>>368
System.out.printf

371 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 00:18:54 ]
または
System.out.format("%3d", data);


372 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 00:19:10 ]
ごめん,かぶった.

373 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 00:19:32 ]
System.out.printf();

改行は ¥n ではなく %n を使う。


374 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 00:29:23 ]
>>369-373
迅速にお答えいただきありがとうございました。



375 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 01:13:23 ]
1.4系だったという落ちですね。わかります。

376 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 02:40:00 ]
質問です
開発は windowsXP+Eclipseで行い、jarファイルを生成
実行は Solaris10 にて行いました
実行時にエラーとして
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Layout
at Cardget.<clinit>(Cardget.java:40)
と出てしまったのですが、ドコから調べればよいかヒントなど
ありませんでしょうか

実行方法は $ java -cp zgss_core.jar Cardget としました


377 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 02:59:14 ]
log4jをクラスパスに通せ

378 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 04:00:33 ]
うむ

379 名前:デフォルトの名無しさん [2008/06/19(木) 04:29:15 ]
if(test[s]<test[t]){
int tmp=test[t];
test[t]=test[s];
test[s]=tmp;
}

if(test[s]<test[t]){
int tmp=test[s];
test[s]=test[t];
test[t]=tmp;
}
はどっちを書いてもいいの?


380 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 04:35:39 ]
どこに

381 名前:デフォルトの名無しさん [2008/06/19(木) 08:01:31 ]
そのソースだけだと、どっちでもいいとしか言えんがなw

382 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 09:17:15 ]
TraverseEventってなに?
マウスイベントとか、キーイベントで、ででてくるんだけど、
イマイチ英和辞典の訳じゃ掴めない。

trav・erse ━━ vt. 横切る, 横断する; 通過する; あちこち動く;

383 名前:デフォルトの名無しさん [2008/06/19(木) 11:25:27 ]
質問させてください。
Mapの値を降順に表示したいんです。現在下のような記述をしてるのですが、
どうも最善な気がしません。これよりマシな方法をごぞんじなら教えてください。
Mapのインスタンス名はmapです。

Set<Integer> ts = new TreeSet<Integer>();
ts.addAll(map.values());

List<Integer> order = new ArrayList<Integer>();
order.addAll(ts);

for(int i= order.size()-1; i>=0; i--){
int num = order.get(i);

for(Entry<String, Integer> en:map.entrySet()){
String key = en.getKey();
Integer value = en.getValue();
if(value == num){
StringBuilder sb = new StringBuilder("Products: ");
sb.append(key).append(": Number: ").append(value);
System.out.println(sb.toString());
}
}
}

384 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 11:32:59 ]
TreeSetの値を出力すればいいのではなくて?



385 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 11:54:42 ]
>>383
値の降順にソートするコンパレータを設定したTreeMapにmapをputAllして、
そのTreeMapから順番に取り出せばいいんじゃない?

386 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 11:58:04 ]
あ、キーの値じゃなくて値か
じゃあ385はダメだね

387 名前:385 mailto:sage [2008/06/19(木) 12:08:03 ]
Entryの値の方で降順にソートするコンパレータを設定したTreeSet<Map.Entry<String, Integer>>に
map.entrySet()をaddAllして、そのTreeSetから順番に取り出せばいいのかな。

388 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 12:11:05 ]
配列に全部突っ込んでからソートした方が速そう

389 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 12:23:26 ]
おおまかにはこんな感じかな?
Set<Map.Entry<String, Integer>> set = new TreeSet<Map.Entry<String, Integer>>(
new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
set.addAll(map.entrySet());
for (Map.Entry<String, Integer> e : set) {
System.out.println("Products: " + e.getKey() + ": Number: " + e.getValue());
}

StringBuilderを使っているところはインスタンスをループの外で生成するのなら別だけど、
わざわざそう書かなくても+で結合する書き方でもコンパイラがそんな感じにしてくれる。

>>388
それもいいかも

390 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 12:34:23 ]
どうもgenericsの記述量に負けてあまりシンプルって感じに見えないや。
流れは単にnew TreeSetしてaddAllだけなのに。

391 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 17:34:42 ]
JavaSE6からjavax.tools.Compilerを使えばJREだけでJavaのコンパイルできるってこと?

392 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 18:05:52 ]
>>391
JRE には tools.jar が無いから無理のはず。

393 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 18:18:21 ]
JREにtools.jarは入っていないけれど、
tools.jarをJREといっしょに再配布するのは構わなかったはずなので、
あとはtools.jarにパスが通っていればおk

394 名前:393 mailto:sage [2008/06/19(木) 18:23:07 ]
自分の作成した動的コンパイル機能付きのプログラムを配布する場合、という意味ね
自分の環境だけでいいのなら素直にJDKをインストール



395 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 18:24:52 ]
なるほど、tools.jarの再配布条件を調べてみます
ありがd

396 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 22:17:29 ]
質問です
jarを実行したところエラーが出まして
Can't find resource for bundle java.util.PropertyResourceBundle, key table.section.pointup9
というエラーが出たのですが、ドコから調べていいのかわからず。
設定ファイルを読んで処理をするjarなのですが・・







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<271KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef