- 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/
- 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なのですが・・
- 397 名前:デフォルトの名無しさん [2008/06/19(木) 22:43:48 ]
- 久しぶりにJavaのお仕事…
既存のWebシステムに一画面追加するだけのお仕事だったのですが、 SIとSLを作成し、ローカルでコンパイルし、 作ったクラスファイルをUNIXサーバにFTPで配置したのに404 WebOTXを何度落とし上げしても404・・・ ずっと悩んでしまったんだけど、 これってもしやasant deployを忘れてるってことでおkですか?
- 398 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 22:52:14 ]
- >>396
その設定ファイルが正しく読めてない予感
- 399 名前:396 mailto:sage [2008/06/19(木) 23:00:58 ]
- pointup9
という項目を追加して読もうとしてるので、そこがおかしいみたいです・・ね javaのmain定義部分をもう少し見直してみます
- 400 名前:デフォルトの名無しさん [2008/06/19(木) 23:26:37 ]
- 初心者です
歌詞検索みたいなのってJavaでつくることは可能ですか?
- 401 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 23:34:30 ]
- データがあればね
- 402 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 00:00:07 ]
- >>383
もっと素直に ArrayList<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(map.entrySet()); Collections.sort(list, new Comparator<Map.Entry<String, Integer>>(){ public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return o1.getValue().compareTo(o2.getValue()) * -1; } }); for (Map.Entry<String, Integer> entry : list) { System.out.printf("Products: %s, Number: %s%n", entry.getKey(), entry.getValue()); }
- 403 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 00:23:02 ]
- > * -1;
初めて見た
- 404 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 01:26:42 ]
- そんな奴には Integer.MIN_VALUE を渡すことにしている。
- 405 名前:デフォルトの名無しさん [2008/06/20(金) 02:11:20 ]
- すいません、質問させて下さい。
classpath上に存在するクラスの中から、特定のアノテーションが付いているものだけを抽出する方法を調べています。 Javaで実行時のclasspath上に存在する全クラスを取得する方法ってないのでしょうか? もしくは特定のpackage以下に存在する全クラスでも良いのですが・・・。 ClassLoaderを自作するサンプルとかにあるみたいに、ディレクトリ以下の.classを直接読みに行く他ないのでしょうか・・・。
- 406 名前:デフォルトの名無しさん [2008/06/20(金) 02:24:26 ]
- ええ本教えて
- 407 名前:デフォルトの名無しさん [2008/06/20(金) 03:29:59 ]
- >>397
JavaとWebOTXについて言うと WebOTXを使ったWebアプリ開発についての書籍とかサイトって なかなかないんだよな・・・ WebOTXユーザって相当少ないのかな・・・ 事例とか簡単入門とかもあんまり見当たらないよな・・・ だれか詳しい人、何か参考になる情報あれば、ぜひ
- 408 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 03:34:46 ]
- >>407
君が詳しい人になって本を書くかサイトを立ち上げてほしいな。
- 409 名前:デフォルトの名無しさん [2008/06/20(金) 03:40:18 ]
- 3ヶ月間職業訓練校行った人
授業の内容どんなの?
- 410 名前:デフォルトの名無しさん [2008/06/20(金) 06:35:48 ]
- >>389
>>402 383です。おそくなりましたが、カキコをありがとうございます。 教えていただいたComperatorインタフェースの使い方、大変参考になりました! まさに知りたい事だったように思います。
- 411 名前:デフォルトの名無しさん [2008/06/20(金) 06:44:01 ]
- スペル間違い、Comparatorでした。
- 412 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 09:03:29 ]
- 私は今年javaを本格的に学び始めた者ですが質問です。
interface Frame { String Frame = "Alumi"; String getFrame(); } 上記の内容のinterfaceがあるとき実際にはどのような記述と同意であるか?というものです。 いろいろ調べてはみたのですが問題の定義もなんだかイマイチ曖昧で分かりません。 どなたか分かる方教えていただけませんか?
- 413 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 09:21:18 ]
- っinterface 暗黙 修飾子
- 414 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 09:29:50 ]
- >>413
abstract?
- 415 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 11:49:00 ]
- DecimalFormat exFormat2 = new DecimalFormat("###,###,###,##0.##");
System.out.println("hoge=" + exFormat2.format(99.999)); 上記ソースで実行結果が99.99となるような切捨てにしたいのですが どうしたらよいでしょうか?
- 416 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 11:51:54 ]
- >>405
クラスパスを自力で辿って、すべてのクラスの名前を (ファイル名等から) 知る Class#forName で、その名前のクラスをロードする Class#getAnnotation で、ロードしたクラスのアノテーションを調べる
- 417 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 12:35:18 ]
- >>415
1.6以降なら exFormat2.setRoundingMode(RoundingMode.DOWN) とかすりゃ切捨てできるけど
- 418 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 13:33:21 ]
- すいません、ここでJSPの質問をしても大丈夫でしょうか?
- 419 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 13:34:09 ]
- >>417
さんくす。1.5なので100かけて100で割ることにしました。
- 420 名前:デフォルトの名無しさん [2008/06/20(金) 14:58:24 ]
- BufferedImageに読み込んだ画像の背景を透明にしたいのですが
どのような方法がいいでしょうか?
- 421 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 15:11:56 ]
- 最初から背景が透明な画像 (透過GIFやアルファ付きPNG) を読み込むのが一番簡単だと思うよ
それじゃだめな理由があるなら、説明よろしく
- 422 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 15:53:16 ]
- >>420
何をもって背景にするかによって方法はいろいろあるけど、 一番お手軽で処理が速いのは>>421の言う通り最初から透明化したリソースを用意すること。 動的に透過色を変更したいとかの要求があるなら、イメージフィルタを通す方法がある。 例えば真っ白を背景色として透明にするなら、白のピクセルのアルファを0にするイメージフィルタを介してやる。 おおまかにはこんな感じで。 Image transimage = Toolkit.getDefaultToolkit().createImage(new FilteredImageSource( sourceimage.getSource(), new RGBImageFilter() { public int filterRGB(int x, int y, int rgb) { return (rgb & 0x00ffffff) == 0x00ffffff ? rgb & 0x00ffffff : rgb; } } )); これは背景色が固定された処理だけど、 背景にしたい色を与えて動的に背景色を変更するようにフィルタを実装すればそれなりにいろいろと。
- 423 名前:420 [2008/06/20(金) 16:14:09 ]
- >>421>>422
返信ありがとうございます できれば最初から透過された物を使用するのがベストだと思うのですが アプリケーションを実行する時にpngに関する事でエラーを起こしてしまい うまくいきません これは画像の作り方が悪いのでしょうか?
- 424 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 16:16:54 ]
- >>423
少なくともエラーは晒せ できればソースも それともエスパーによる回答希望?
- 425 名前:420 [2008/06/20(金) 16:41:26 ]
- 本当にすいません
画像を作り直したら成功しました ありがとうございました
- 426 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 17:12:38 ]
- whileで永久ループしているプログラムに外から停止命令を
出したいのですが、こういう場合はソケット通信が適切でしょうか? ほかに良い方法がありましたら教えてください。
- 427 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 17:15:40 ]
- 普通はThreadじゃないの?
- 428 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 17:15:48 ]
- っスレッド
- 429 名前:426 mailto:sage [2008/06/20(金) 17:23:55 ]
- >>427,428
ありがとうございます。 たとえば >java hoge.class で実行して >java hogestop.class を実行するとhoge.classのプログラムが終了するような感じにしたいです。 このような場合ですがスレッドはどのように使えますでしょうか?
- 430 名前:デフォルトの名無しさん [2008/06/20(金) 17:45:17 ]
- なんだ、小出し野郎か。
- 431 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 18:11:37 ]
- staticなflagを作って外部から書き換える
- 432 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 18:32:00 ]
- canvas3D上にpaintでfillRectを用いて描画したいと思っているのですが、
最前面に表示されません。何かいい方法ご存知でしたら教えて下さい。 よろしくお願いします。
- 433 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 01:53:26 ]
- javaアプリケーションからjarファイル(他のjavaアプリ)を起動することはできるのでしょうか?
方法をご存知でしたら教えていただきたいです。よろしくお願いします。
- 434 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 02:03:41 ]
- >>433
クラスパスが通ってれば、String[] argsを用意して com.example.app.FooApplication.main(args); を呼ぶだけ。 ・クラスパスが通ってない場合 ・mainのクラス名がわからない場合 などなどあるけど、まあ基本は↑ので。
- 435 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 08:58:12 ]
- >>434
ありがとうございます。試してみたところ起動できました。 今は同一プロジェクト内のクラスのmainを複数起動してみたのですが、 クラスパスが通っていれば他プロジェクトのmainも起動できるのでしょうか。 一つ問題なのが、この方法だとおそらく複数のアプリが同一プロセスで 実行されている気がするのですが、別々のプロセスで実行することは可能でしょうか。 答えていただければ幸いです。
- 436 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 09:21:18 ]
- ProcessBuilderとかRuntime(1.4まで)とか
Javaではサブプロセスと縁を切ることはできないんだっけ?
- 437 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 10:45:23 ]
- 独習JAVAで勉強してるんですが
スレッドの章でRunnableを実装したクラスで MyThread4(String str, long msec) { this.str = str; this.msec = msec; new Thread(this).start(); } と言う部分があり、その中の new Thread(this).start(); の部分が意味がいまいちわかりません。 質問があいまいですいませんが どなたか説明していただけないでしょうか。 お願いします。
- 438 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 10:51:36 ]
- // 自分自身をスレッドで実行されるコードとして、スレッドを作成する
Thread t = new Thread(this); // スレッドを開始する t.start();
- 439 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 11:23:58 ]
- MouseMotionListenerをimplementsしないと
・mouseDragged(MouseEvent e) ・mouseMoved(MouseEvent e) が実装できないのはなぜでしょうか。 インターフェイスはあくまで、指定したメソッドの 実装を義務付けるみたいな感じで習ったので。
- 440 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 11:33:21 ]
- >>439
MouseMotionListenerをimplementせずに ・mouseDragged(MouseEvent e) ・mouseMoved(MouseEvent e) を実装しても一向に構わないが、 MouseMotionListenerを実装したとは認識されない。ただそんだけ。
- 441 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 11:52:57 ]
- っダックタイピング
- 442 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 11:54:33 ]
- ダックタイピングか強い静的タイピングの違いだな。
- 443 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 11:55:16 ]
- ち、リロードしてなかったぜ
- 444 名前:439 mailto:sage [2008/06/21(土) 12:14:32 ]
- >>440
ありがとうございます。 addMouseMotionListner(this)によって渡すものが MouseMotionListenerクラスのオブジェクトでないと いけないのだと解釈しました。
- 445 名前:439 mailto:sage [2008/06/21(土) 12:17:13 ]
- ああ、何かおかしい
クラスというよりは、MouseMotionListenerという型で 受け取れる形だから、継承または実装されたオブジェクト でないと、うまいこといかないってことなのかなぁ
- 446 名前:439 mailto:sage [2008/06/21(土) 12:19:27 ]
- MouseMotionListenerというインターフェイスを
実装してないとダメなわけですね!
- 447 名前:デフォルトの名無しさん [2008/06/21(土) 14:29:59 ]
- ダックタイピング だとしてもimplementsやらないと結局機能しないんじゃないの?
- 448 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 14:57:52 ]
- ダックタイピングは持ってるメソッドで所属するクラス(オブジェクト)決めてるからそんな心配ナス
- 449 名前:デフォルトの名無しさん [2008/06/21(土) 15:34:40 ]
- リスナーの呼び出し元はどうするの。
addMouseListener()とかしないでどうやってcallするの?
- 450 名前: [―{}@{}@{}-] デフォルトの名無しさん mailto:sage [2008/06/21(土) 15:41:54 ]
- ホスト名(FQDN)が正当かどうか評価する方法はないでしょうか。
どうも . が付いても InetAddress#getByName 等では引けてしまうようで、 1. www.example.com : 当然 OK 2. www.example.com. : OK 3. www.example.com.. : これは NG といった状態になってしまいます。 或いは RFC 的に 2 も OK(1 と同じ場所を指す)と言う事なのでしょうか。 であると逆に、InetAddress#getByName で引ければ正当と判断して良い?
- 451 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 15:52:46 ]
- . つけてもブラウザで見れるね
- 452 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 16:25:32 ]
- >>449
addはもちろんするが型がなんであるかは関係ない。 普通はメソッドテーブルを検索して対応するメソッドがあれば呼ぶ。 この場合だとコールバック関数名が一致するオブジェクトをadd(これがcallee側になる)しといてcaller側が必要なコールバック関数を呼び出せるかどうか試してみる。 それに成功すればcallee側のコールバック関数を呼び出す。 ダックタイピング採用してるruby辺りをいじるのが早くて分かりやすい。
- 453 名前:デフォルトの名無しさん [2008/06/21(土) 16:27:39 ]
- implements MouseListener
じゃないと、型が違うからadd出来ないと思うが?
- 454 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 16:37:11 ]
- おまえはまずダックタイピングを理解しろ
- 455 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 16:50:24 ]
- このスレ的にはダックタイピングの議論を深めるのはスレ違いだし初心者を混乱させる元だ
今のjavaをやっている限りはダックタイピングについて理解しなくても構わない
|

|