1 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 01:09:54 ] プログラミング言語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質問・相談スレッド120【歓迎】 pc11.2ch.net/test/read.cgi/tech/1223603727/ 次スレは>>990 あたりで。 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/
513 名前:デフォルトの名無しさん [2008/11/30(日) 09:16:51 ] ランダムにリンクが飛ぶスクリプトを拾ったんですが、 新ウィンドウでリンクを開く場合はどうしたらいいでしょうか。 アドレスのあとにtarget="_blank"と入れてもだめでした・・・。 <form> <input type=button onClick="jump()" value="ランダムリンク"> </form> <script> url = new Array(); /* リンク先のURLを好きなだけ記述 */ url[0] = "test0.html"; url[1] = "test1.html"; function jump() { p = Math.round(Math.random() * (url.length - 1)); parent.top.document.location = url[p]; } </script>
514 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 09:30:01 ] >>513 それJavaScriptじゃ。。。 該当スレで聞いて下さい
515 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 09:32:08 ] すれ違いでしたか、すみませんでした。
516 名前:デフォルトの名無しさん [2008/11/30(日) 12:22:00 ] >>509 スレが汚れるだけだからこういうの止めてくれないか?
517 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 16:21:25 ] 汚れるといってもあなたの陰金には負けます
518 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 17:13:56 ] Unix環境などX Windowがない環境でグラフィック処理を行うと エラーになるため、以下の環境変数を指定して実行すると正常に動作するというのを見つけました。 java -Djava.awt.headless=true hogehoge そこで質問させてください。 awtの処理でOSに依存するネイティブな処理が走るけど、 グラフィックをサポートしていないOSではエラーとなるため 上記の設定が必要だと思ってます。 では、上記設定を行うとネイティブで行ってた処理を誰が行ってくれるのでしょうか? Java側にネイティブのグラフィック処理に変わる実装があり、 そちらで処理してくれるのでしょうか? それでしたら、そもそもネイティブな処理を呼び出す必要がないですよね? java.awt.headless=true を指定すると 正常に処理される内部のメカニズムを教えてくださいm(__)m
519 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 18:04:54 ] 内部の実装に興味持つならJAVAやる意味はないな。 SUNの方針だと、一度ソフト上で実装(レファレンス実装)してからshippingするからなんかあるんじゃないか? しかしもともとハードであるものをソフトでやる(エミュレーション)だから速度は遅くても、一応どこでも動くってこと。
520 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 18:13:08 ] java.sun.com/javase/ja/6/docs/ja/technotes/guides/awt/AWTChanges.html#headless
521 名前:デフォルトの名無しさん [2008/11/30(日) 19:37:07 ] すみません。自分自身の限界が来たので質問させてください。 Javaで非常にシンプルなボタンの作成をしてみました。 なぜだか、5番目のボタンだけキャプションが表示されません。 環境はWin+eclipseです。 トラブルシュート、ログはたくさん見たのでその他のなにか考えなければならないヒントなどいただけると た す か り ま す public class Test { public void method(){ int i; Button h[]=new Button [9]; int dx[]={1,2,3,4,5,6,7,8,9}; int dy[]={1,1,1,1,1,1,1,1,1}; String st[]={"aa","ii","uu","ee","oo","か","き","く","け"}; Display display = new Display(); Shell shell=new Shell(display); shell.open(); for(i=0; i<9; i++){ h[i]=new Button(shell,SWT.BORDER); h[i].setBounds(dx[i]*50,dy[i]*30,50,30); if(i!=4){h[i].setText(st[i]);}} while(!shell.isDisposed()){if(!display.readAndDispatch()){display.sleep();}} display.dispose();} public static void main(String[] args){ Test test = new Test(); test.method();}}
522 名前:デフォルトの名無しさん [2008/11/30(日) 19:40:31 ] >>521 追加です。 これは、問題があったコードを非常にシンプルにしたもので、 元のコードは1000行位あるものです。 特段お金儲け関係ではないので(ただの勉強)必死でいつまで、とかの要望はありませんが、 あまりにもシンプルすぎて調べようも無くなったのでお力拝借したいと。 ちなみにC# のスレに誤爆&非礼をわびておきました。 よろしくお願いします。 #てか、どこに問題があるんだろ。Javaのバージョンかなぁ。
523 名前:デフォルトの名無しさん [2008/11/30(日) 19:45:42 ] をっと。利用しているのはSWTです。以下importを import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell;
524 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 19:52:26 ] >>521 > if(i!=4){h[i].setText(st[i]);} これじゃね?
525 名前:デフォルトの名無しさん [2008/11/30(日) 21:32:11 ] >>524 www
526 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 21:56:05 ] >>524 激しくわろたw 自分自身の限界が来たって大げさ過ぎw
527 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 21:59:28 ] こんな時代もあったよね と懐かしい気持ちになりました
528 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 01:11:18 ] >>486 ありがとうございます。 どうやらswingWorkerを使用する必要があるそうです。 ここでもうひとつ疑問なんですが、swingWorker<T, V>の、 <>の中身は一体なにを表しているのでしょうか。 swingWorker以外にもどこかで見たことがあるんですけど・・・。
529 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 03:17:25 ] 「Java ジェネリックス」で調べてみて下さい。JDK5からの新文法です。
530 名前:デフォルトの名無しさん [2008/12/01(月) 09:58:16 ] 再帰呼び出しで static int f(int n) if n==0 return 1 else return n*f(n-1) というのを作ってn=3のとき最後の returnに1、2,3と返すと思うんですけど 2や3はf(2)やf(1)の値がコンピュータに記憶されてるの?
531 名前:デフォルトの名無しさん [2008/12/01(月) 12:34:42 ] 俺のコンピュータは意地でも改行しないつもりかwww.... ort final Display display = new Display(); final Shell shell = new Shell(display); String separator = System.getProperty("line.separator"); shell.open(); Text t = new Text(shell, SWT.BORDER); t.setBounds(10, 10, 100, 100); t.append("Hello world\n" + separator + '\n'); t.append("Hello world\n" + separator + '\n');
532 名前:デフォルトの名無しさん [2008/12/01(月) 13:36:37 ] 質問です。 StringクラスのreplaceAll()メソッドに関してなんですが、 正規表現で、特定の文字集合にマッチした場合、 マッチした文字の後ろに特殊な記号を加えたいのです。 replaceAll(pattern, "特殊な記号"); とすると、元の文字を完全に消してしまうので これはどのようにすればいいのでしょうか? 具体的には replaceAll("[abcd]","特殊な記号") で 文字列が、"apple"だった場合 "a特殊な記号pple" となるようにしたいのです。
533 名前:デフォルトの名無しさん [2008/12/01(月) 13:38:12 ] replaceAll("([abcd])", "\\1特殊な記号");
534 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 14:10:36 ] 正規表現はどこに行けばマスターできますか?
535 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 14:17:36 ] JDK5.0のWindows版しか使えない状態なのですが、Windowsサービスとして 起動しているアプリケーションに、外部からスレッドダンプを取得する 方法はあるでしょうか。以下の方法までは思いついたのですが、いずれも トレードオフが現在取れない状態になってしまっています。 1. jstack を使う → JDK5.0 では、Linux 版しか無い様でした。 2. jmxremote オプションを付けて jconsole でアタッチ → 取得できるのですが、jconsole の UI の仕様上、全部のスレッドダンプを 取りづらい(左のスレッドを選ぶとその情報が取れる)ので、一度に特定 プロセスのダンプが取れる方法を探しています。 3. StackTrace と言うアプリケーションを使う → adaptj と言う会社の StackTrace を使うと、まさに希望したものが取れるの ですが、実行したい環境がインターネットに繋がらない環境であるため、 使用できないでいます。 できる範囲は、VM の起動引数に変更を加えるまでは可能です。
536 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 14:21:23 ] ありません。
537 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 14:33:21 ] VMの起動引数を変えれるんなら、メインクラスを変えられるということだ 自前のメインクラスから専用のスレッドを起動しておき、 何かのトリガに反応して Thread#getAllStackTraces() を出力するようにしておけばいいのではないか
538 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 14:48:08 ] >>536 そうですか...Linuxだと簡単なのに意外に苦戦して参っています。 >>537 ありがとうございます。 Thread#getAllStackTraces を出力する案は、 別途サーバに手を入れてしまうのが許される場合の案として 次善策にしていました。 この場合はどうせ手が入るからってことで、 サーバアプリなのでそのまま口を設けて出力する案で検討していま
539 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 14:49:51 ] いまどきLinuxはねーよw
540 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 15:31:49 ] linuxが許されるのは年金もらうまでだよね
541 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 15:58:42 ] なら、おまえらはなに使ってんだよ?
542 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 16:17:43 ] もちろんWindows
543 名前:デフォルトの名無しさん [2008/12/01(月) 16:33:03 ] >>534 www.hellohiro.com/regex.htm
544 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 16:38:18 ] そのサイト、おおお!〜ましたね!っていうのがイヤだ
545 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 18:06:01 ] >>544 てか、 Java初心者向けサイトのほとんどがそんな感じじゃね?
546 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 18:15:56 ] 念願の、Genericとアノテーションとenumに対応したEffective Java第2版が 出たそうですが、おぬしらの中の読んだ方で、感想はいかがですかな? 前書きに書いてある通りの内容ですかな? すでに第1版をenumあたりまで読んでいるのじゃが、 これは第2版に鞍替えして読み直したほうがよろしいかな?
547 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 18:45:16 ] >>545 そんなバナナ
548 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 20:14:44 ] struts2って結構使われてるんでしょうか? 今、一番安定しているフレームワークって何?
549 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 21:17:35 ] ところでおまいらEclipseとか使いこなせてるの? おれは全然わかんねぇ、普通にプロジェクト作ってコード書いて実行ならできるんだが 全然使いこなしてる感じがしない、というかしてないが。 開発環境って多機能すぎる
550 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 21:22:04 ] お前らSE、PG?????? やっていけてんの??????
551 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 22:19:57 ] 俺は>>550 が一番心配だ。
552 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 22:20:01 ] >>546 すれ違い?
553 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 23:23:34 ] >>535 とにかく Ctrl+Break を送ればスレッドダンプするらしいので、Win32 SDK の GenerateConsoleCtrlEvent 関数 で CTRL_BREAK_EVENT を送ればいいはず。 ただしサービスとして起動している java プログラムの標準出力に出ちゃうから、標準出力をファイルか何かに リダイレクトする必要がある。 ここまで書いたけど、そこまでするなら JDK6 にしてもらえるように説得したほうが楽そうだな。
554 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 23:51:37 ] 式言語の意義とは何なんでしょうか? seacer2の勉強してたらOGNLという言語が出てきました。 調べてみるとJavaEEに出てくるEL式などの仲間で式言語というらしいのですが、 文法見ても目的が理解できません。 web開発において式言語を使う意味というのは JSPでアクションやサーブレットから受け取ったオブジェクトの情報を出力しやすくするため に限ったことですか?
555 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 23:51:48 ] 以下のオブジェクトをシリアライズしてネットワークで他のパソコンに転送、計算を行い結果を返送させるプログラムを作成しています。 public class Element implements Serializable { double start; double end; int cut; double d; int sigma; int mode; }
556 名前:555 mailto:sage [2008/12/01(月) 23:54:35 ] 続き 送信メソッド try { sock = new Socket(host, Integer.parseInt(port)); } catch (NumberFormatException e) { e.printStackTrace(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } ObjectOutputStream out = null; try { out = new ObjectOutputStream(sock.getOutputStream()); out.writeObject(element); out.flush(); } catch (IOException e) { e.printStackTrace(); } finally { try { out.close(); sock.close(); } catch (Exception e) { e.printStackTrace(); }
557 名前:555 mailto:sage [2008/12/01(月) 23:58:02 ] 以下のメソッドで受信を行っているのですが、EOFExceptionが発生してしまいます。 理由がさっぱりわからず困っています。どのようにすればよいのでしょうか。 try { ois = new ObjectInputStream(sock.getInputStream()); if(ois.readObject() instanceof Element) //計算する要素を受け取った場合 { Element element = (Element)ois.readObject(); element.apply(simu.getRects()); Receive.this.simu.calc(); //計算 } } catch(Exception e) { e.printStackTrace(); } finally { try { if(ois != null) ois.close(); } catch(IOException e) { e.printStackTrace(); } } }
558 名前:デフォルトの名無しさん [2008/12/02(火) 00:02:21 ] ここ if(ois.readObject() instanceof Element) //計算する要素を受け取った場合
559 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 00:03:04 ] >>555 ois.readObject() instanceof Element の行で オブジェクトを読み込んでるのに その下の行でさらに読み込もうとしてるから
560 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 00:12:18 ] public static final Object CONS=new Object(); でオブジェクトのインスタンスを定数のように使いたいのですが、 直列化するとインスタンスのメモリアドレスが変わってしまい if (arg==CONS);で比較しても上手くいきません。 古いjdkのためenumを使えずどうすれば良いでしょうか。
561 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 00:24:45 ] >>560 enumが欲しいならEffective Javaを読んでenumを実装する
562 名前:555 mailto:sage [2008/12/02(火) 00:26:58 ] >>558 >>559 出来ました、有難うございます。
563 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 00:31:48 ] >>561 その教科書は持ってないんですけど、enumなんてどうやれば実装できるんですか!
564 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 00:32:48 ] うざいなぁ
565 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 00:37:15 ] Enumでなくてもフィールドがオブジェクトで定数(final)で一意であればいいので 例えばStringでやってみようかと思ってるのですが難しいです(;ω;)
566 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 00:50:22 ] >>560 readResolve を実装しろ
567 名前:546 mailto:sage [2008/12/02(火) 02:05:41 ] >>552 なぜスレ違いなのじゃ? Eclipseの話をするほうがよっぽどスレ違いではないかい? うーむ、Effective Java第2版を実際に読んでみた者は まだこのスレに現れないか。
568 名前:546 mailto:sage [2008/12/02(火) 02:08:03 ] >>563 Effective Java第一版に実装する方法が載っているようじゃ。 Type Safe enumでもググって見るとよいぞ。Eclipseのプラグインでも そのようなものが存在するのじゃ。
569 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 02:10:06 ] 読んでる最中。Genericsの境界ワイルドカードは説明読んでもさっぱりだ。 <T extends Comparable<? super T>>って何ぞ……。
570 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 02:15:37 ] Tもしくはそのスーパークラスと比較可能なT Integer (Comparable<Integer>) とか java.sql.Date (Comparable<java.util.Date>) が該当する
571 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 02:24:39 ] <? super T>って if(foo instanceof Bar){ //hoge } みたいな条件分岐がいらなくなるくらいしか思いつかないんだが・・・
572 名前:569 mailto:sage [2008/12/02(火) 02:25:37 ] うーん、わかるようなわからんような。 interface I {} class A implements I, Comparable<I> {...} class B implements I, Comparable<I> {...} static <T extends Comparalbe<? super T>> int compare1(T a, T b) {...} static <T extends Comparalbe<T>> int compare2(T a, T b) {...} void func() { A a = new A(); B b = new B(); compare1(a, b); // OK compare2(a, b); // NG } 既存の定義はなんとか読み解けても、1から自分で定義できなさそーな気が……。
573 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 02:35:19 ] >>567 注文して、到着待ち。俺の国に届くのはいつの日だよorz >>571 実行時じゃなくてコンパイル時に怒られるから良いんじゃないのかな。 Generics使い始めると意地でもキャストを無くしたくなる。
574 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 12:16:35 ] >>570 片方がsqlでもう片方がutilであるぞ
575 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 12:20:06 ] >>572 ドキュメントをよく読むんだ。入門サイトもどこかにある。 Effective Javaを読む前に先にGenerics入門らしきサイトを先に 読んだほうがいいのでは。 たしかに、けっこう混乱するとは思う。 自分で作るの大変だ
576 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 17:22:44 ] >>566 あの〜 意味が分からないですけど
577 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 17:34:05 ] アプレットで六角形を描きたいのですが、drawPolygonメソッドがint型の配列しか引数に 取れないようなのでどうすればいいかわかりません。以下のコードをどう修正したらいいですか import java.applet.*; import java.awt.*; public class hexagon extends Applet { public void paint(Graphics g) { double sqr3 = Math.sqrt(3.0); double[] xPoints = {5, 15, 20, 15, 5, 0}; double[] yPoints = {0, 0, (5*sqr3), (10*sqr3), (10*sqr3), (5*sqr3)}; int nPoints = 6; g.drawPolygon(xPoints, yPoints, nPoints); } }
578 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 18:43:10 ] >>577 intにキャストすれば?
579 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 18:44:54 ] >>578 同一インスタンスを返すようにreadResolve()をオーバーライドすればいいということかと。 readResolve()を知らないなら、直列化について詳しく調べるといい。
580 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 19:07:11 ] 直列化のsrcとdstでインスタンスのアドレスが違うからstatic final intみたな定数として機能してないってことが問題なんですけど? 何が問題が良く分かってないじゃないですか。それにインタフェイスではそのAPIはありませんよ。 直列化するときは普通はクラスのほう使いますけど。
581 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 19:17:10 ] なんでintしか扱えないんだろうか
582 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 19:36:09 ] >>580 readResolve()はANY-ACCESS-MODIFIERなメソッドだけど、 デフォルトではprivateなメソッドだから、javadocにも載ってないし、 オーバーライドしろといわれてもピンとこないのは、非常によく分かる。 ただ、直列化を使用するなら、直列化の仕様ぐらい調べようぜ。 それより、"クラスのほう"って何?
583 名前:デフォルトの名無しさん [2008/12/02(火) 20:04:29 ] 当然class ObjectInputStreamですよ。 intなのは、swichの実装が32ビットだと容易だからです。 それと仕様は読んでるんですけど、参照をフィールド定数として使いたいことと直列化は関係ありません。 enumが使えるJDKならいいんでしょうが、なんか上手い方法はないでしょうか・・・・
584 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 20:16:50 ] >>580 java.sun.com/javase/ja/6/docs/ja/api/java/io/Serializable.html > 代替オブジェクトのインスタンスをストリームから読み込むときに > そのオブジェクトを指定する必要のあるクラスでは、 > 次のシグニチャーを正確に指定して、この特別なメソッドを実装する必要があります。 > > ANY-ACCESS-MODIFIER Object readResolve() throws ObjectStreamException; 1.1 だと使えないんだっけ?
585 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 20:22:14 ] readResolveが一つの解決法なのは分かりますが、あなた、ちょっとしつこい
586 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 20:23:31 ] もうジャバはめんどい! C#とマイクロソフトだけで俺はしあわせ!
587 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 20:23:53 ] >>585 readResolve での解決では、何か不満が?
588 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 20:27:48 ] >>583 何この場か
589 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 20:29:09 ] >>585 >readResolveが一つの解決法なのは分かりますが、あなた、ちょっとしつこい いや、別人ですから。
590 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 20:32:05 ] ここまで全部俺の書き込み
591 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 20:37:57 ] どれがだれのだれへの発言なのか
592 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 20:41:19 ] >>それにインタフェイスではそのAPIはありませんよ。 >>直列化するときは普通はクラスのほう使いますけど。 横道にそれるけど、インタフェイスとクラスの理解があやふやじゃないか。 普通はクラスのほうを直列化って、インタフェイスも直列化可能と?
593 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 20:46:13 ] >>569 ワイルドカードは、 引数に対してコバリアントにしたい場合は、super を使い、 返り値に対してコバリアントにしたい場合は、extends を使う。 例えば、Comparator<T> は、T が出てくるのが、 int compare(T, T) しかないので、extends のワイルドカードを使っても全くの無意味。 逆に、Iterator<T> は、T が出てくるのが T next() しかないので、super のワイルドカードを使っても全くの無意味。 ところで、Effective Java 第2版の和訳はどうなん? 第1版は和訳が酷いとかいってた人が居たけど
594 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 20:50:23 ] javaでmysqlサーバに現在時刻を取得するためにクエリを発行して取得した結果が 2008-12-02 20:47:03.0 というように最後に余計な物がついてきます。これなんとかならないでしょうか? String query = "select now();"; try{ Class.forName("org.gjt.mm.mysql.Driver"); con = DriverManager.getConnection(url, user, pass); stmt = con.createStatement(); rs = stmt.executeQuery(query); rs.next(); TimeStamp = rs.getString("now()"); System.out.println(TimeStamp); }catch(Exception e){ System.err.println(e); } こんな感じのソースです 2008-12-02 20:47:03 これだけあればいいです
595 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 20:51:16 ] 5.0じゃないならreadResolveしかないだろ。なんでゴネてんだ?
596 名前:デフォルトの名無しさん [2008/12/02(火) 21:10:50 ] Swingで質問です… JScrollPaneのViewportViewにJTreeを二つ設置したJPanelを指定したのですが スクロールペインの中央にJTreeが並んでしまって困ってます BoxLayoutでJPanelにJTreeを設置するとテキストがまともに表示されない(後半が途切れる)ので GridBagLayoutで白紙のパネルをJTreeの下に設置し、JTreeを左上になんとか表示してます こんな無理矢理な方法を使わず、素直にJTreeを二つスクロールペインの左上に設置する方法は無いでしょうか? 何方かご教授下さい…
597 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:13:56 ] >>594 なんで getTimestamp しないの? java.text.SimpleDateFormat あたりを参照するよろし。
598 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:34:12 ] 鯖のシステム時刻とクライアントのシステム時刻が一致している 保証はあるけ?
599 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:35:47 ] >>597 >>598 ありがとうございます。結論から言うと、substring(0,19)で解決しました しかしなんで末尾にへんな.0がつくのかちょっと謎です
600 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:37:54 ] >>598 なるほどね。 ならそもそも SQL 上で整形して出力すべきだね。
601 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:39:37 ] ん?と思ったけど Timestamp で取得してりゃ問題ないんじゃないの? unix epoch time からの時間な訳だし…。 まぁどうでもいいや。ガンガってw
602 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:44:44 ] >>567 eclipse万歳〜 プランクトン万歳〜
603 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:53:54 ] eclipseなんて使ってると馬鹿になるぞ ってのが口癖のEmacs使いの先輩がRailsを理解できない 規約言う前に原理を説明しろとか言って怒鳴る 頭固くなってんのはどっちなんだろう
604 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:55:52 ] よく考えたら直列化で定数フィールドのアドレスが変わっても、equalsで解決できそうなのでそっちでやってみることにします。 実際はEnmuMapみたいなことが出来れば良いのですが、マップを使った配列アクセスみたいですけど m.put(ONE,val); m.put(TWO,val2); したあとに直列化しても m.get(ONE).equals(val)==true であることが条件です。こういうのは出来ないのでしょうか。
605 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 22:11:54 ] >>603 こんなところで先輩の悪口いってるおまえも相当アレだけどなw
606 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 22:46:37 ] >>596 sage忘れた上にSwingスレがありました…本当に申し訳ないです
607 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 23:01:39 ] >>603 「IDE? クソ使い難いエディタ付いてるだけのキッチンシンクが使いもんに なるわけねーだろ、JK」と思ってたら、リファクタリング機能のあまりの 素晴しさにEclipseに転んだEmacs歴15年の俺が通りますよ、と。 まぁ、ScalaはScala Pluginが現状役に立たないので、scala-mode.el一択 なんだがな……。
608 名前:デフォルトの名無しさん [2008/12/02(火) 23:24:18 ] emacsってそんなにいいんですか?ただのエディタじゃないですか。 しかも正規表現を使った検索・置換があれば最低現十分なのに、カスタマイズが多すぎて不要な機能が多いし。 実際私が論文書くときや役所に提出する書類なんかもms word 95と表機能程度で十分ですし、一体全体エディッタやIDEに何を望んでるんですか?といってみるテストw
609 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 23:29:42 ] >>603 IDE でしか coding したことないと馬鹿になるというか発想が 狭くなるという意味では先輩に合意する。けど、IDE を使って も良いと思うし、単純ではない GUI とかは IDE 使わない方が 時間の無駄だと思う。
610 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 23:43:13 ] エディタだとしてもコードのコピペで済むので、時間の無駄って感覚がわかんないんですけど。 GUIとか外見のテンプレートがあってあとはロジック書くだけってならJavaじゃなくても今の時代ならWebでいいかと。 Javaの良いところはコテコテの言語サポートや特定用途でしかつかない意味不明な機能があったりせず、 シンプルにエディタのみで、OO思考的に必要なクラスファイルを書いていくだけでいいってところだと思うんですけど。 でも数千以上のクラスファイルを管理できるぐらいに頭良くないとちょっと無理か。
611 名前:デフォルトの名無しさん [2008/12/02(火) 23:45:29 ] >>603 >先輩がRailsを理解できない >規約言う前に原理を説明しろとか言って怒鳴る 先輩と君との間には、だいぶ深い差があると感じる。
612 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 00:02:31 ] >>610 Java は色々な名前がやたら長いから通常のエディタじゃかったるくないか? Exception 名とか
613 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 00:20:21 ] 自分もXEmacsからEclipseに乗り換えたクチですが、便利だなと思える機能は 「それって文法的に自明だから、自動化できるよね」という物が殆どです。 例えばインターフェイス実装時のスケルトンの自動生成なんてのは典型ですし、 リファクタリング時の参照関係の追跡と参照元の書き換えなんかもそう。 手作業でも出来るけど、時間の無駄だしエラーの元なので今では「そこは自明 なので勝手にやっちゃって下さい」という感じです。 あとはエラーやプロジェクトの状況が視覚的に分かりやすいのも良いかな。 あまり関係ないですが、インターンの学生に課題としてクラスのスケルトンと JUnitのテスト一式を与えたら随分楽しそうに取り組んでいます。 メソッド実装してEclipse上でテストを実行する度にグリーンが増えていくのが 楽しいらしいです。