1 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 18:21:51 ] プログラミング言語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質問・相談スレッド116【歓迎】 pc11.2ch.net/test/read.cgi/tech/1213347130/ 次スレは>>990 あたりで。 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/
445 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 10:11:16 ] RMIのサーバー側は2つのリモートコールがほぼ同時に発生した場合並列処理になるのでしょうか? それとも1つずつの処理になり、後のものは先の終了を待つまで呼ばれないのでしょうか?
446 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 10:12:22 ] Randomをnewしてそのまま使ってはだめ
447 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 12:56:02 ] 来年からプログラマとして働くことになったのですが JavaってSwingとかのGuiアプリケーションの知識身に付けて実務で使われることってありますか? それは完全に役に立たないって事は無いとは思いますが費用対効果として JSP/サーブレットとかをずっとやってた方が役に立つのかなと疑問に思いました。
448 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 13:09:45 ] >>447 就職先の業務内容次第じゃね? どんな部所に配属されるかにもよる。 分からないなら好きな方やっとけばいいと思う。
449 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 13:13:26 ] >>447 ぶっちゃけ、Javaを使うかどうかもわからないんじゃないの?
450 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 13:35:48 ] >>448-449 すいません、レスありがとうございます。 一応研修期間中にSJC-P取得があるみたいなのでJavaは使うと思われます。 なんか市販のソフトって大概exeで、JavaのGuiアプリって使われてるのか疑問だったのです。 なんかいまいち業界事情がPCショップとかで売られてるソフトのイメージでしか判断出来ない感じあるのですが、 そのレス内容から判断すると一応使われる技術と考えてOKでしょうか。
451 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 14:12:26 ] >>450 一応言っとくけど、exeってのはWindowsで「しか」使えない実行ファイル形式だからね。(wineとかは例外) 携帯アプリならJavaでGUI操作するんじゃね。(場合/キャリア/気分に依存する)
452 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 14:28:19 ] >>445 JavaDoc の「Java RMI の仕様」の「3.2 リモートメソッド呼び出しにおけるスレッドの使用法」 を読む限り、呼び出される側は並列処理になり得ると書いてある。 なのでスレッドセーフになるようにすべきだそうだ。
453 名前:デフォルトの名無しさん [2008/08/21(木) 14:28:47 ] SUNはデスクトップに力を入れる方針だし、これからはSwingでしょ。
454 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 14:41:10 ] >>451 ,453 そっかぁ、exeがwin依存なのは知ってたのですが、 winユーザが大半だから利益追求が絡む企業での実務では使われないものかと思ってました。 WIN32APIとか.NETと比べてJavaの方が整備されてて好きなので swingの需要があるようで良かったです。 残りの一年こっちをやろうと思います、ありがとうございました!
455 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 15:43:16 ] いやswingの需要は無いよ
456 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 15:45:19 ] >>455 お前が使えないだけじゃね?
457 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 15:50:19 ] それよりWindowsプログラマならVisualC++をマスターするほうが よっぽど役に立つよ
458 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 16:00:40 ] >>457 まあ、Javaなら後からでも覚えられるし、VCは使いづらいし覚えなくちゃいけないことも多いからな・・・
459 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 18:43:59 ] ま、俺は、SwingGUIアプリでOracleと接続したやつ作ったけど、 役に立たなかったなあ。なぜかというと、SwingGUIがあまりにももっさりしていたから。だいぶ昔の話だけど。
460 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 18:45:10 ] Swingやるなら、JavaFXとかAppletとか極めれ。東京都の中で必要としているところが10箇所くらいあるから。
461 名前:デフォルトの名無しさん [2008/08/21(木) 18:47:28 ] ___ / ⌒ ⌒\ / (⌒) (⌒) \ でも、個人的にはVCの方がすきなんだお! / ///(__人__)/// \ | u. `Y⌒y'´ | \ ゙ー ′ ,/ /⌒ヽ ー‐ ィヽ / rー'ゝ 〆ヽ /,ノヾ ,> ヾ_ノ,| | ヽ〆 |´ |
462 名前:デフォルトの名無しさん [2008/08/21(木) 18:49:45 ] / ̄ ̄\ / _ノ \ | ( ●)(●) . | (__人__) Awtって必要ないだろ… | ` ⌒´ノ 常識的に考えて… . | } . ヽ } ヽ ノ \ / く \ \ | \ \ \ | |ヽ、二⌒)、 \
463 名前:デフォルトの名無しさん [2008/08/21(木) 19:41:26 ] 複数のスレッドをwaitさせて特定のスレッドのみnotifyで再開させたいのですが ランダムで再開というのを見ると特定のスレッドのみ再開させるというのは不可能なんでしょうか または他のメソッドで上記に似たような事をできないでしょうか まだまだ初心者なので変なことを聞いているようであればすいません ご教授よろしくお願いします
464 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 20:11:38 ] notifyAllで全部のスレッドを起こす 起きたスレッドは、呼ばれたのが自分じゃなかったら、waitで二度寝する
465 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 21:00:50 ] getKeyCodeで0を返すショートカットボタンなどは、 javaからどのボタンが押されたか判定することはできないのでしょうか?
466 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 22:45:22 ] 意味不明。 Webなのか?Swingなのか?
467 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 23:03:20 ] byte a=5; byte b=6; byte c=a+b; これって3行目がc=5+6なら通るのになんでエラーになるんでしょうか? 大きいintの値を小さいbyteに入れようとするから普通は一行目からエラー だけれども、それだと面倒だからコンパイラが親切で自動でキャストしてくれるから 一二行目はエラーにならないみたいな話を本で見たので、それが行われないって話だと思うのですが、 byte+byteはint以下の数値を扱う式はintとして評価される、というルールから intになるので自動でキャストしてくれそうだと思ったのですが。
468 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 23:06:40 ] >>467 byte a=5; byte b=6; byte c; c=a+b; ってやってみたら? 変数の初期化部分で変数は使えないんだと思う。
469 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 23:11:29 ] int -> byteは縮小だから、byte a = 5; が通る方が特殊と考えれ うろ覚えだが、byte a = 999999; とかだとコンパイルエラーにならなかったか?
470 名前:デフォルトの名無しさん [2008/08/21(木) 23:23:54 ] >>468 コンパイルできないけどorz
471 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 23:28:26 ] >>470 二項数値昇格で int型の値に昇格されるはずだから、 >>468 がコンパイルできたら言語仕様に反する。
472 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 23:37:41 ] もう少し考えろよw
473 名前:468 mailto:sage [2008/08/21(木) 23:42:38 ] おれ涙目w byte a=5; byte b=6; byte c; c = (byte)(a+b); でどうだ。 今回はコンパイルも通った(gcjだけど)から、大丈夫だ。
474 名前:デフォルトの名無しさん [2008/08/21(木) 23:43:39 ] コンパイルが通るコードが前提だろ!
475 名前:468 mailto:sage [2008/08/21(木) 23:48:57 ] byte a=5; byte b=6; byte c = (byte)(a+b); なんだ、これでもうまくいくのか。 流石だなJava.
476 名前:467 mailto:sage [2008/08/21(木) 23:50:32 ] レスありがとうございます。 手元の本で関連がありそうな所を漁ると、 (1) 「char(数値を格納した)、short、byteのint以下の範囲の数値を格納する型は、 たとえその型の範囲内の数値でもその式を評価すると全てintになる。」 (例) byte a=1; byte b=2; a+b ←byteの範囲内でもint型 (2) 「short,char,byteのint以下の範囲の数値を格納する型に数値を格納する際、 数値はint型として評価されるが簡略化のためキャストを行わなくても コンパイラが自動的にキャストする」 (例) byte a=1; ←コンパイラが自動で(byte)1としてくれるので有効。 この二つの記述があり、それを踏まえてbyte a=1+2は(2)により有効なのですが、 これが467で書いたように変数で行うとコンパイラの自動キャストが働かないのが謎なのです。 もちろん>>473 の方が書いてくれたように自分で明示的にキャストすれば通るのですが。
477 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 23:56:16 ] >>476 リテラルをキャストするのと、変数をキャストするのは意味が違うんじゃないの?
478 名前:デフォルトの名無しさん [2008/08/21(木) 23:58:42 ] 少しはググれよ
479 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 00:01:04 ] 自動的に変換が効くのは定数のときのみ java.sun.com/docs/books/jls/third_edition/html/conversions.html#190806
480 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 00:05:52 ] >>478 これは少しググって見つけるの難しいだろw
481 名前:デフォルトの名無しさん [2008/08/22(金) 00:10:25 ] byte b; b = (byte)200; System.out.print(b); とすると-56と表示されるんですがなぜその値なのでしょうか? それから、longをfloatに型変換するのがなぜ拡大変換なのですか? 二つともビットは同じだと思うんですが・・・。
482 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 00:14:27 ] >>477 ,479 なるほど、ありがとうございます! 自動的な変換は制限があったのですか、、byteとかはストリームからの読み取りとかでは使ってましたが こういう数値を足したりするのをbyteではあまりやらないので勉強になりました。 お世話になりました。
483 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 00:15:41 ] >>481 2の補数表現。 long より float の方が表現できる値の範囲が広いから。 あとビット数はfloat32bitでlongが64bit
484 名前:デフォルトの名無しさん [2008/08/22(金) 00:18:48 ] Vista java インストールできない、.java形式で保存できない どうすればいい? 一応インストールはしたつもり
485 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 00:20:34 ] インストールできないのにインストールしたつもり??
486 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 00:20:42 ] >>481 intは32ビット。byteが16ビット。入りきらないのはちょんぎっちゃう。 32ケタあった1と0の組み合わせが無理やり16ケタにちょんぎられちゃうわけだから 変な数になっちゃう。
487 名前:デフォルトの名無しさん [2008/08/22(金) 00:29:03 ] 485さん 確実にインストールはできています。しかし コマンドプロンプトで java -versionで バージョン確認はできるのですが、javacは表示されません。
488 名前:デフォルトの名無しさん [2008/08/22(金) 00:31:08 ] いつクビになるかいつもビクビクするよね。
489 名前:482 mailto:sage [2008/08/22(金) 00:33:30 ] お世話になったので寝る前に自分からも。 >>481 Javaではダウンキャストの際に単純に上回るビットを左から削除するだけ。 200は内部的には00000000 00000000 00000000 11001000で byteにキャストすると下8桁の11001000だけが残る。 この値は単純に見ると200だがbyteは符号付きの型なので 一番左の1bitを+-の判定に使う。 そのためこの値は二の補数で表現された-56という数と解釈される。 (全ビットを0と1反転させた後1加えると56になる。) ちなみにbyteの格納範囲は-127〜127。
490 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 00:36:25 ] sdkを入れてないとか、sdkにパスが通ってないとか
491 名前:デフォルトの名無しさん [2008/08/22(金) 00:41:29 ] set path + Enterで 表示されるのが 'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 d:\java>set path Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files\In tel\DMIX;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\ Common Files\Roxio Shared\DLLShared\;C:\Program Files\Common Files\Roxio Shared\ DLLShared\;C:\Program Files\Common Files\Roxio Shared\9.0\DLLShared\;C:\Program Files\Common Files\Sony Shared\FeliCaLibrary;C:\Program Files\Edy\Edy Library;C: \Program Files\Java\jre1.6.0_07\bin PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC d:\java>
492 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 00:48:25 ] C:\Program Files\Java\jdk1.6.0_07\bin というフォルダはないかな?そこにパスを通せ。
493 名前:デフォルトの名無しさん [2008/08/22(金) 00:53:36 ] C:\Program Files\Java\jre1.6.0_07\binというフォルダは確かに存在します。 パスを通すとは?491で表示した、set Pathで表示されたら問題ないはずではないのですか?
494 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 00:54:37 ] よく目を凝らして jre jdk
495 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 00:55:34 ] >>493 jreじゃなくてjdk。 jreはJava Runtime Enviroment jdkはJava Development Kit
496 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 00:59:01 ] みんな優しいな
497 名前:デフォルトの名無しさん [2008/08/22(金) 01:02:17 ] >>494 、>>495 環境変数のJAVA_HOMEをjre → jdkに変更をすればいいですか?
498 名前:デフォルトの名無しさん [2008/08/22(金) 01:17:33 ] それともインストール自体が間違っていたのですか?
499 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 01:17:39 ] >>497 そのjdkのフォルダがあるなら、ね。 なかったら、Java SE Development Kit (通称JDK)をインストールする必要がある。
500 名前:デフォルトの名無しさん [2008/08/22(金) 01:20:51 ] インストールしたのが java.sun.com/javase/ja/6/download.html の JDK 6 Update 7をダウンロードしました。
501 名前:デフォルトの名無しさん [2008/08/22(金) 01:23:08 ] これはFAQだな。 本の初めのほうに書いてある。
502 名前:デフォルトの名無しさん [2008/08/22(金) 01:25:48 ] ちなみに会社だとXPで何も問題なくできるのに、自宅のVistaではかなりてこずっています。
503 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 01:32:37 ] >>500 JavaはC言語とかと違ってコンパイルすると中間コードが生成される。 これは君が普段使うソフトの形式であるexeと違ってコンピュータは直接実行出来ない。 これを動かすのに必要なのがJRE。 Javaで開発されたソフトを使うにはユーザはこれを入れなければならない。 逆に、ユーザは自分の環境に合ったJREを入れることで、exeと違ってMacだろうがLinuxだろうが実行出来る。 JDKっていうのは、君が書いたソースコードを中間コードにするためのもの。 javacってのはこのJDKに含まれるコマンド。
504 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 01:34:00 ] update10がRCなのか。でたら久しぶりにJDKをあげるかな
505 名前:デフォルトの名無しさん [2008/08/22(金) 01:40:03 ] とりあえず自分のインストールあったJavaをすべてアンインストールしたら 無事コンパイルと実行ができました。HelloWorldが表示されました。 JDK 6 Update 3とJDK 6 Update 5がインストールされてたからおかしくなっていたのですかね?
506 名前:デフォルトの名無しさん [2008/08/22(金) 01:56:55 ] w=( x==y? a : x==z? b : c ); Javaだと評価順についてはどういうカッコの付け方になるんでしょうか。
507 名前:437 [2008/08/22(金) 02:15:47 ] 任意の文字列でパスワードを作るメソッド String s = "ABCDEFG............xyz!#$%&'0123456789"; // 使ってよい文字のリスト Random r = new Random(); char[] password = new char[10]; for(int i = 0; i < 10; i++) { password[i] = s.charAt(r.nextInt(s.length()); } 使ってよい文字に条件を付けたいのですが、 英字大文字、英字小文字、数字、記号の各文字種を、 必ず一文字は結果に出せるようにしたいです。 例:An?)9j1aQ0 各文字種ごとに変数を作る事になると思いますが、 その先の記述をどうしたら良いかで悩んでおります。 各文字種を配列に入れてからシャッフルするとか、ですかね? 大変お手数ですが、皆さんの知恵をお借りしたいです。 宜しくお願いいたします。
508 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 02:32:36 ] >>507 1. 最初に各文字種をパスワードに1文字ずつ追加する。 2. 不足文字数分をパスワードに追加する。 3. パスワードをシャッフル。
509 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 07:41:21 ] >>463 CountDownLatch でも使え。
510 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 08:36:55 ] >>480 ぐぐるまでもなく、言語仕様読めば解決。 要するに読んでないだけ。 >>507 それJavaとか関係ない段階の質問だと思うんだけど。
511 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 10:59:22 ] >>510 スレタイ読める? ていうかお前のレスの方がスレ違いなんだよカス
512 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 11:08:32 ] >>511 こんなバカが回答ほしがってるのかw 寝言は>>1 ぐらい読んでから言えクズw
513 名前:デフォルトの名無しさん [2008/08/22(金) 11:14:33 ] いろんなスレで暗号・パスワード聞いている奴いるからそいつだろ。 こういうカスが作ったゴミ暗号なんか、どうせ作ってもすぐ解読されるからほっとけ。
514 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 11:15:47 ] >507 ランダムで生成し、生成した文字列に対して文字種ごとに存在をチェックすればOK 全種類が入ってなければ再生成。 この手の乱数による抽出では出現率の偏りに注意しましょう。 まあ、全種類が必ず入ってる時点である種の偏りがあるわけだが...
515 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 11:16:17 ] >>511 こういう煽りたいだけの奴は放置しろよ
516 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 14:23:11 ] すごく単純な質問ですみません コマンドプロンプトでひらがな入力をするには、どうすればいいのでしょうか
517 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 14:29:07 ] スレ違い
518 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 14:29:11 ] すみません、自己解決しましたOrz 昔は、こうやって変換してたんですね
519 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 17:52:40 ] そういえばいつからだろうか日本語入力切り替えにalt押さなくなったのは・・・。
520 名前:デフォルトの名無しさん [2008/08/22(金) 17:55:52 ] すみません。相談です。 僕は、人見知りの臆病者なんですが、性欲は人一倍あります。 いつも暇があるとエロいことばかり考えてしまいます。見てはいけないと思いつつも エロサイトをしょっちゅうのぞいてしまいます。余計、エロくなります。。 職場でも町でも、女の人と顔があうと絶対エロいにやけ顔になってしまいます。 職場の人から「うわ〜、○○さん、いやらしい顔してる〜」とかいわれて、しょっちゅう胃がいたくなります。 まじめな顔をしようと思ってもにやけ顔になってしまいます。。 ほんとに苦痛でしょうがないです。どうしたらいいでしょうか?
521 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 17:57:20 ] >>520 Javaをやればいいと思う。
522 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 17:57:29 ] switchステートメント使ったプログラム見たとき便利だなぁと思ったんですが 講義中に「これあんまり使わない」みたいな事を言われました。 その先生だけかもしれませんが、なぜでしょうか? 構文が気持ち悪いとか、if使えばいいから とかしか思いつかないんですが。 まさか「これ(お前ら程度のレベルでは)あんまり使わない」って事だったんですかね。
523 名前:520 [2008/08/22(金) 17:59:23 ] いっそのこと女性がこの世からいなくなればいいとさえ思ってしまいます。
524 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 18:03:25 ] はいはい
525 名前:520 [2008/08/22(金) 18:04:15 ] 皆さんは、エロイ事とか想像しないんですか?
526 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 18:04:21 ] >>522 オブジェクト指向を極めればswitchなど使わなくなる
527 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 18:08:06 ] >>522 一般論としては「使わないほうがいい」ということはない。 その言葉の前にいろいろ前提がなかったかな? クラスの説明中ならswitchより多態(ポリモーフィズム)をということかもしれない。
528 名前:520 [2008/08/22(金) 18:08:27 ] このままでは、セクハラの指導をうけなければなりません。それこそ一社中の恥になってしまいます。 また、どうしても見てしまうので、指導を受けたからといって治るものでもありません。 どうしたらいいんでしょうか?
529 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 18:38:24 ] >>522 その先生の意図はわからんけど、switchが適切な場面で必ずswitchを使 うようにしても、ifに比べたら頻度はものすごく少ないと思う。
530 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 19:46:31 ] >>528 悩んだらソープへ行け!って偉い人が言ってた。 >>522 絶対使うなってわけじゃないが、今後分岐が増えていく予定がすこしでもあるなら switch 以外の方法を使ったほうが保守性が高いので。
531 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 20:04:55 ] えー、switchの方が保守性は高そうだけどな。 あるCの入門書で、continueの説明に「めったに使われない」と書いてあって、 釈然としなかった経験がある。 初学者に教える時に、教師個人の余計な感想は邪魔かも。
532 名前:522 mailto:sage [2008/08/22(金) 20:14:56 ] なるほど。もしかするとその先生の主観が入った意見だったのかもしれません。 また次の講義で質問してみますね。 >>528 朝起きていっぺんぬいてから出勤するっていう人の書き込みをみたことがあります。 その人によると、明鏡止水だそうです。
533 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 20:18:31 ] >>522 古いバージョンだと、switchの判定式に整数しか使えなかったから その名残では
534 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 20:54:47 ] >>533 いつのまにか整数以外が 使えるようになったのかと思っちゃったじゃないか。 java.sun.com/docs/books/jls/third_edition/html/statements.html#14.11 ひょっとしてenumのことか?
535 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 21:08:01 ] Stringのswitchは7で導入予定なんだよな? ほしいー
536 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 21:34:42 ] >>531 switchを使ってる場合、例えば、 switch (obj.type) { case A: 処理a(obj); break; case B: 処理b(obj); break; } こうなるが、typeの種類が増えると、obj.typeで判定している部分をかたっぱしから直してまわらんといかん。 typeで分類する代わりにクラスで分類し、各処理をオーバーライドしたメソッドで定義すると、そもそもswitch等で分岐する必要がなくなる。 obj.処理(); だけでおk。種類が増えたときも、呼び出し側はほとんど変更する必要がない。 オブジェクト指向言語の最大の利点は、「お前は誰だ」と確認するためのifやswitchを書かなくて済むようになること。
537 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 21:35:29 ] Stringのswitchが有効なケースってあんまりなくね? enum使えば解決じゃない?
538 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 21:48:55 ] ジャバザハット
539 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 22:08:02 ] enum 導入のおかげでたまにはswitchを思い出すようになりました
540 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 22:16:19 ] 今Windows上で二つのシステムがあって、 C++クライアント −DCOM→ MTS(スレッド管理・トランザクション管理) → SQLServer or MSMQ と C#クライアント -.NETリモーティング→ 独自サーバ → SQLServer or MSMQ というシステムがあるのですが、これをクライアント以外Javaに置き換えたいです。 どのようなアプリケーションが代用になるのでしょうか?また、クライアントだけ Windows上のC++ or C#とした場合、サーバのJavaとの接続はできるのでしょうか?
541 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 22:25:09 ] String の switch は main() に渡されたオプションの解析とかに使えそう
542 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 22:45:34 ] そうそう。そんな感じで使いたい。 それってやるとしたらequalsの展開になるのかな? それとも個数によっちゃTreeMapかなんかで実装するのかな わくわくだわー
543 名前:481 [2008/08/22(金) 23:05:51 ] 返事遅くなってすみません。 >>483 >>486 >>489 みなさん、ありがとうございました。
544 名前:デフォルトの名無しさん [2008/08/22(金) 23:24:38 ] 皆さんに質問です。 ここにいらっしゃるのは殆どがJAVAをある程度学ばれている方だと思いますが、 これまで培ってきたJAVA関連の知識や技術が3日後には全て消え失せるとします。 もう一度初めから学び直さなければなりません。 あなたに与えられた期間は半年です。 半年経てばJAVAプログラマの新入社員として働いていかなければなりません。 ただ、今のあなたが3日後のあなたに一つだけ残せるものがあります。 それは今のあなたの考えるJAVA学習の方法論です。 どう勉強するべきかどの本で勉強するべきか・・・。 その半年間の予定表を立てて下さい。 では私はもうこれで寝ますので3日後くらいまでにはご回答をお願いします。
545 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 23:31:25 ] 言語仕様を確認して、ライブラリリファレンスを確認して、実際にモノを作ってみる 半年もあればだいたい大丈夫だろ やる気さえあれば ← これ1番重要