【初心者】Java質問・相談スレッド103【大歓迎】
at TECH
[前50を表示]
500:デフォルトの名無しさん
07/07/10 03:10:10
>>499
java.awt.geom.Point2D method(java.awt.geom.Point2D p, 斜辺の型 a, 傾きの型 b) {
return new java.awt.geom.Point2D(p,a,bから求めたx, p,a,bから求めたy);
}
実際にはjava.awt.geom.Point2Dは抽象クラスなんでnewでインスタンスを作れないから、
必要な精度に合わせてjava.awt.Pointとかjava.awt.geom.Point2D.Doubleとかを生成して返す。
引数の方はjava.awt.geom.Point2Dでなく問いのようにx,yを別々に指定するようにしても。
両方のメソッドを作ってオーバーロードしておいてもいいかと。
501:デフォルトの名無しさん
07/07/10 08:28:03
メール受信のためのプロキシーを作りたいのですが…。
パソコンのバックグラウンドで待機して、メール受信時にまずプロキシがメールデータ
を取得し、迷惑メールでなければそのままメールクライアントにメールデータを渡したい
です。
サーバーソケットを作って待機しているのですが、メール受信時にローカルにバインド
されるポート番号を検出できず悩んでいます。当然、110番で待機してはダメですよね?
メールクライアント側でプロキシサーバーアドレス、ポートを指定できれば早いのですが…。
(IEのように)
アンチウィルスソフトは、ローカルにプロキシサーバーを置いているように見受けられる
のですが、どうやって実現しているのでしょう?
どなたか、アドバイスをお願いいたします。
502:デフォルトの名無しさん
07/07/10 10:33:56
JTableなんだけど、他のコンポーネントからTABでフォーカス移動してくると、
まだ一度もセルにフォーカス取得してない状態だとフォーカスが消えたようになる。
もう一度TABを押すとようやくセルが選択状態になるのだが・・・・・。
一度セルにフォーカスを取得すると他のコンポーネントから一発で移動できるように
なるんだがな・・。
ちなみにScrollPaneは使っても使わなくても同じでした。
JDKは1.5す。
どなた原因&回避策おながいします。
503:デフォルトの名無しさん
07/07/10 10:43:18
>>501
あれはシステムに食い込んでるからこそできること。
Java では原理的に無理。
メーラーではメールサーバーに localhost を指定して、
設定その他は自分のプログラムでやるしかないと思う。
504:501
07/07/10 11:35:41
>>503
レスありがとうございます。
メーラーのメールサーバーに localhost を指定して、通信をパイプする
ような感じで実装してみようと思います。
この場合、メールアカウントごとの設定がめんどくさいっすねー・・・。
どうやって保持しようかしら。
505:デフォルトの名無しさん
07/07/10 14:25:52
そもそも、メーラー側が優秀なフィルタを持ってるこのご時世に自分で作っても意味はないよ。
屑メーラーを捨てれば良いだけ。
それとも、まともなスパムフィルタを作れるほどの
技術があるならメーラーそのものから作るって方法もある。
506:デフォルトの名無しさん
07/07/10 14:44:29
>>505
既にあるから作る意味ないって?
つまらない考え方だな。
507:デフォルトの名無しさん
07/07/10 14:44:52
業務ロジッククラスXでDB接続とBEGIN
↓
DBクラスYで振込情報をINSERT
↓
DBクラスZで入金情報をINSERT
↓
業務ロジッククラスXでCOMMITとDB切断
をする際にDBクラスY,Zでconnection.commit()をさせない、
コンパイルエラーにする方法ってありますか?
INSERTをさせるためにはDBクラスY,Zにconnectionを渡さなければならず
connectionを渡せばcommit()が可能になってしまいます。
commit()やrollback()が不可能なDB接続を渡すとかできないでしょうか?
テストでバグ潰せばいいじゃんというのもわかりますができればコンパイル時にはじきたいです。
508:デフォルトの名無しさん
07/07/10 15:22:18
メーラーの(優秀な)フィルタと自分のフィルタを置き換えなくちゃ
いけないならともかく、上乗せできるなら悪いことじゃないでしょ、
普通に考えても
509:デフォルトの名無しさん
07/07/10 16:25:27
>>507
java.sql.Connectionをラップしたクラスを作れば?
ほとんど全てのメソッドはスルーするけど、
commit()やrollback()が呼ばれたらIllegalStateExceptionを投げるようなの。
510:509
07/07/10 16:28:05
コンパイルではじきたいのね。スマン。
それならAspectJという手も。
URLリンク(www.kronos-jp.net)
511:デフォルトの名無しさん
07/07/10 16:49:20
commit()やrollback()が無いインターフェイスNewConnectionを新しく作る。
DBクラスY,ZにはNewConnectionを渡す。
NewConnectionのラッパークラスを作り、DBクラスY,Zからconnectionのアクセスが出来るようにする。
で、どうよ?
512:デフォルトの名無しさん
07/07/10 17:16:50
実行入力画面でアルファベットでなく日本語を入力するにはどうすればいいのですか?
513:デフォルトの名無しさん
07/07/10 17:40:48
てか、それはJavaの質問なのか?
WindowsマシンならALT+変換押せ
514:デフォルトの名無しさん
07/07/10 17:56:06
>>509-510
ありがとうございます。そうです、コンパイル時にはじきたいです。
>>511
その場合、
Connection connection = DriverManager.getConnection( 略 );
↓※
NewConnection newConnection = new NewConnectionWrapper();
※の部分の、実際のconnectionをnewConnectionにどうやって渡してあげればいいですか?
頭がこんがらがってきた・・・
515:デフォルトの名無しさん
07/07/10 18:02:00
>>514
まずは落ち着け。
516:デフォルトの名無しさん
07/07/10 18:06:05
変数の型を調べる方法ってありますか?
517:デフォルトの名無しさん
07/07/10 18:07:04
これでよかろ。
NewConnection newConnection = new NewConnection(connection);
ただし、NewConnection は java.sql.Connection になれないので、
java.sql.Connectionを前提にしているプログラムが既にあるなら、
それを書き直さないといけなくなる。新規開発ならいいけどね。
あとは個人的な感覚だけど、独自規則のAPIを強制されるのはイヤダ。
APIは標準だが実装は(APIの範囲内で)独自、なら許せるが。
518:デフォルトの名無しさん
07/07/10 18:17:13
>>517
なるほど。newConnectionの中でconnectionをprivateで持っておいて
commit()とrollback()は作らず、それ以外はnewConnectionのpublicメソッドを通して
connectionに投げると。ありがとうございます。
>あとは個人的な感覚だけど、独自規則のAPIを強制されるのはイヤダ。
>APIは標準だが実装は(APIの範囲内で)独自、なら許せるが。
自分も独自APIを強制して自由度を奪うのは好きじゃないですが
DB関連クラスだけでcommit()とrollback()のみの制限ならギリギリ許容範囲内かなと思っています
519:デフォルトの名無しさん
07/07/10 18:20:17
>>516
判定したい型が決まっているなら
instanceof演算子
とりあえず型を知りたいだけなら
"不明オブジェクト".getClass().getName()
520:デフォルトの名無しさん
07/07/10 19:57:44
SPAMメールを受けたときに
逆に送信者に攻撃を仕掛けて
二度と送ってこないようにするには
Javaではどのような方法がありますか?
521:デフォルトの名無しさん
07/07/10 20:32:13
Javaを辞めるしかないです。
さようなら。
522:デフォルトの名無しさん
07/07/10 20:48:44
>>520
オーケー。いい方法を思いついた。
試してみたいので、お前のメールアドレスを教えてくれ。
523:デフォルトの名無しさん
07/07/10 21:41:06
root@localhost
524:デフォルトの名無しさん
07/07/10 21:58:09
javaのプログラムからコマンドプロントを使ってcdコマンドなどで自動的に特定のフォルダに移動して、特定のファイルを実行したいのですが、探しても方法が見つかりません。
よろしければ教えていただけないでしょうか?
525:デフォルトの名無しさん
07/07/10 22:05:35
フレームのサイズ変更についての質問です。
サイズを変更したことをリアルタイムに感知したいんですが、どのような方法があるでしょうか?
MouseMotionだとD&Dしてる間はメッセージが送られず、componentResizedも試しましたがマウスボタンを離した瞬間しか感知しません
(できればその移動距離か変更後のサイズも知りたいです)
JAVAではそういうのは想定してないんでしょうか。
>>524
Windowsなら、○○.batっていうファイルつくって右クリック編集
中に
------------
cd 移動先
java メインクラスの名前
-----------
の2行を書けばできるます。
詳しくはバッチファイルでしらべてくらはい
526:デフォルトの名無しさん
07/07/10 22:06:09
Excelのファイルがいくつかのフォルダに分かれて存在していて
それぞれのフォルダはさらにサブフォルダをいくつか持っています
全部のフォルダをたどって全部のExcelファイルから
特定のシートの特定のセルを抽出していきたいのですが
どのようにすればよいのか検討も付きません
527:524
07/07/10 22:12:30
バッチファイルをつかってjavaのクラスファイルを実行するのではなく、javaのプログラムからコマンドプロントのコマンドを入力して特定の処理をしたいのですが。
そのやり方を知っていたら教えて下さい。
528:デフォルトの名無しさん
07/07/10 22:14:57
>>527
そういうことね、勘違いしてた
529:デフォルトの名無しさん
07/07/10 22:57:20
>>524
Runtime.getRuntime().exec(☆DOSコマンド☆);
特定の処理がわからないのでここまで
530:デフォルトの名無しさん
07/07/10 23:06:56
>>527
jrunscriptつかえ。そういうときのためにわざわざ用意されたんだから
531:デフォルトの名無しさん
07/07/10 23:27:40
ワンランク上になりたいんだけどなにしたらいい
Java歴半年くらいでいまJSPとかデータベース使って小規模なシステム作ってる
532:デフォルトの名無しさん
07/07/10 23:42:01
>>524
java1.5ならProcessBuilderが熱い
533:デフォルトの名無しさん
07/07/10 23:49:44
>>531
EclipseのプラグインとかSwingなどのGUI
イベントドリブンなアプリケーションに慣れ、スレッドをある程度使いこなすと差は出来る
534:デフォルトの名無しさん
07/07/11 00:29:28
>イベントドリブン
そこで Visual C++ ですよ
535:デフォルトの名無しさん
07/07/11 00:40:07
>>533
EDTで時間かけてイベントキュー詰まらせてアーーーー!!とか・・・
VMのスレッド実装の差異やCPUの数が2以上あってアーーー−!!とか?
個人的にはJWSに触れとくのお勧め。
536:デフォルトの名無しさん
07/07/11 02:45:59
MouseListenerとMouseMotionListenerは同時に使えない?なんてことはないよな・・・
どっちかを消すと上手くいくのに、
どちらも宣言するとシンボルが見つかりませんといわれる・・・
537:デフォルトの名無しさん
07/07/11 02:51:48
自己解決。頭がおかしくなっていたようだった
538:デフォルトの名無しさん
07/07/11 13:28:05
Javaを用いて掲示板を作っています
形はそこそこ出来てきたので「同一人物(同IP)からの二重投稿を禁止する」機能をつけようとしているのですが
こういったものを作るのに便利なクラスはあるのでしょうか?
539:デフォルトの名無しさん
07/07/11 15:19:11
インデント不良って何ですか?
540:デフォルトの名無しさん
07/07/11 15:23:12
if (a > b)
b = a;
a = 1;
System.out.println(b);
みたいに書いてa > bでないときでもa = 1;が実行されるように錯覚させる悪い奴のこと
541:デフォルトの名無しさん
07/07/11 15:25:29
逆だ
a > bの時にしかa = 1;が実行されないように、だ
542:デフォルトの名無しさん
07/07/11 17:19:25
はじめからブロックにしとけば良いんだよ。
どうせ後から変更されるんだし。
if (a > b){
b = a;
}
a = 1;
System.out.println(b);
543:デフォルトの名無しさん
07/07/11 19:31:51
if (a>b) b=a;
a = 1;
System.out.println(b);
こう書けば短い。
544:デフォルトの名無しさん
07/07/11 23:26:19
1:JSPの画面での入力処理
2:javaでcsvファイル読んだりあれこれしてDBに書き込む
3:DB書き込み結果をJSPで表示、というのを作っています。
これに規定の時間を越したらエラーとしてタイムアウト画面へ遷移する機能を
追加しようと思っています。
で、Actionで
try{
Timer timer = new Timer();
timer.schedule(new myTimer(),3000);
色々
}catch(myTimeoutException e){
return (mapping.findForward("error"));
}
myTimer#run() ←TimerTask継承クラス
myTimeoutException e = new myTimeoutException ();
throw e;
みたいにやってみましたが
myTimer#run()までは来るけどActionの方にmyTimeoutException で飛んでこないです。
なんでException飛んでこないのでしょうか?
545:デフォルトの名無しさん
07/07/11 23:33:56
>>544
Threadに関して基本から学びなおして来い
簡単なサンプルをおいておくので実行してみてくれ
class ThreadA extends Thread {
public void run() {
throw new RuntimeException();
}
public static void main(String[] args) {
new ThreadA().start();
}
}
546:デフォルトの名無しさん
07/07/11 23:56:24
swingのフレームワークで定番なのは何なのでしょうか?
今注目されてるのがあれば教えてください。
547:デフォルトの名無しさん
07/07/12 00:12:42
swingの定番って意味ワカラネーよ
java3dとかその拡張ライブラリのことか?
548:デフォルトの名無しさん
07/07/12 00:21:01
たった2行正確に読めないのかよ。
"フレームワークの"定番って書いてあるだろ
549:デフォルトの名無しさん
07/07/12 00:21:57
Swing自体がフレームワークのような気もする。
550:デフォルトの名無しさん
07/07/12 00:31:47
そうだね
551:デフォルトの名無しさん
07/07/12 00:34:40
フレークワークの意味が解っていないに1票。
定番はBorderLayoutとGridBagLayoutだよ、で満足するのかな(=ω=.)
552:デフォルトの名無しさん
07/07/12 00:36:31
>>544
runメソッド内でThread.currentThread().getName()を出力してみれば?
あと、myTimeoutExceptionクラスのコンストラクタの中でもThread.currentThread().getName()を出力して
違いが分かれば無問題♪
553:デフォルトの名無しさん
07/07/12 00:43:35
>>544
Webサーバとクライアントのイベントのやり取りを調べてくれ、それじゃ実装できん
1.クライアントでタイムアウトを検知したい
⇒ JavaScriptなどで実装
2.サーバーでタイムアウトを検知したい
⇒ 最初のアクセス時間を記録していて差分を取ればいい
尚、2の場合、「せっかっく頑張って入力したのに><」ってなるので注意。
554:546
07/07/12 00:46:37
>>546です。
swing自体フレームワークなのですが、
URLリンク(journal.mycom.co.jp)
URLリンク(itpro.nikkeibp.co.jp)
をみて、只気になっただけです。
555:デフォルトの名無しさん
07/07/12 05:40:19
結局、どれもSwing作法の定型句を隠ぺいして楽する枠組みに落ち着く気がする。
javaでswing以上のGUI出しても高度なだけでどのOSでも通用するGUIが提供できなくなるんじゃないかな?
LnFがjavaなだけでwin/macユーザーは避けるし。
ポトペタ支援はJSRガンガン出すだろうね。
そんなところじゃない?
やっぱベクターベースのGUIツールキットはまだ早いだろうか?
556:デフォルトの名無しさん
07/07/12 06:50:33
java.lang.Mathクラスを使わずに、double型の変数を
小数点以下二桁まで残して切り捨てたいです。
第一感はこういう感じですが、もっと良い方法があれば教えてください。
double total = 1234.5678;
int tmp = (int)(total*100);
total = tmp/100.00;
557:デフォルトの名無しさん
07/07/12 07:00:49
>>556
表示の時にのみ切り捨てるべきと考えて、NumberFormat
小数点2桁と固定ならば、intで【全て】計算して、表示する時に100で割る。
558:デフォルトの名無しさん
07/07/12 07:13:07
>>556
total = new BigDecimal(total).setScale(2, BigDecimal.ROUND_DOWN).doubleValue();
559:あ
07/07/12 10:31:48
部分検索するプログラムを考えています。
String型のabcがあってabcともにnullならDBの内容を全部返し、bcだけnullならaの値を返すなど全8通りのif文をうまく考えられません。
どなたか1つでもいいのでお願いします。
560:デフォルトの名無しさん
07/07/12 10:36:26
aを返すとか全部返すとかどういう意味?
全部返すときはa列とb列とc列を連結して返すの?
561:デフォルトの名無しさん
07/07/12 10:42:08
SQLのWHERE句をStringのパラメータによって変更するってこと?
562:あ
07/07/12 10:55:29
559です。
値を取得するってことです。
いまアプリケーション作っててサーブレットに書く内容がうまく表現できなくて…
if (i == null && t == null && p == null) {
String sql = "select * from *****";
ResultSet rs = stmt.executeQuery(sql);
とか考えてたんですけど…
563:デフォルトの名無しさん
07/07/12 11:40:11
なにがしたいのかさっぱりわからない。説明足りなすぎ
564:デフォルトの名無しさん
07/07/12 11:45:05
String abcという書き方ではなく、a,b,cの3つのStringがあり、それぞれnullかnullでないかを判断する必要があるということなのでしょう。
565:デフォルトの名無しさん
07/07/12 11:56:27
質問というか、Javaの可変長引数の仕様で疑問に思ったのですが、
void test(int... vector) {
if (vector.length == 0)
System.out.println("vectorは空です.");
else
for (int i : vector)
System.out.print(i + " ");
}
こういうメソッドを書くと、可変長引数は引数なしでも実行できるので、
test();
と呼び出すと、"vectorは空です."と表示されます。
ですが、同名の以下のメソッドを同じクラスで定義すると、
オーバーロードされますので、引数が0のときの振る舞いが不定のように見えます。
void test() {
test(1);
}
実際にやってみたところ、下の関数が呼び出され、"1 "が表示されました。
可変長引数よりもオーバーロードのほうが優先されることがわかりましたが、
引数的にはどちらでも呼び出せるので、しっくりこません。
よければこのようになる理由を教えてもらえますか?
566:デフォルトの名無しさん
07/07/12 12:43:04
>>565
URLリンク(java.sun.com)
あたりだね。
567:デフォルトの名無しさん
07/07/12 12:52:47
>>566
もうちっと上だった。 15.12.2.3 の一番最後に
> If no method applicable by method invocation conversion is found,
> the search for applicable methods continues with phase 3 (§15.12.2.4).
> Otherwise, the most specific method (§15.12.2.5) is chosen among the methods that are applicable by method invocation conversion.
メソッド呼び出し変換で適用可能なメソッドが見つからなければ、
メソッド探索はフェイズ3(可変長引数で適用可能なメソッドを探すフェイズ)に移行。
そうでなければ、最適なメソッドはメソッド呼び出し変換で適用可能なメソッドから選ばれる。
568:565
07/07/12 13:09:21
>>566-567
こんな質問に、的確な返答をありがとうございます。
そうですか、文書で定義されているんですね。
以下チラ裏
Javaって言語の定義が明確なイメージがあるから、こういうどっちとも取れる構文を許容するのは少し以外。
C++なんかでも、オーバーロードには定義が重ならないように注意しているのに、なんか意図して許容してるのかなあ。
まあ、「実装するのがややこしいorパフォーマンスに問題が出る」っていう可能性が一番高い気もする。
569:デフォルトの名無しさん
07/07/12 13:15:48
>>568
printfがやりたかっただけ。
570:デフォルトの名無しさん
07/07/12 14:47:05
>>568
だからこそJLSで明確な定義があるんじゃないか
571:デフォルトの名無しさん
07/07/12 16:17:51
printfって要る派と要らん派でもめなかったけ?
swap要るか要らんかの話みたいだと思った記憶があるんだが。
572:sage
07/07/12 21:59:27
いまjaxb2.0を使って、xmlからjavaオブジェクトに変換するロジックを考えてるんだけど、
<hoges>
<hoge id="hoge1"><value>ほげでーた</value></hoge>
<hoge id="hoge2"><value>ほげでーた</value></hoge>
<hoge id="hoge3"><value>ほげでーた</value></hoge>
</hoges>
pubric class Hoges {
@XmlElement(name="hoge")
private List<Hoge> hogelist = new ArrayList<Hoge>();
・・・
}
@XmlRootElement
pubric class Hoge {
@XmlAttribute(name="id")
private String id;
@XmlValue
private String value;
・・・
}
このxmlの<value>タグが無駄に思えて仕方ない。
<hoges>
<hoge id="hoge1">ほげでーた</hoge>
<hoge id="hoge2">ほげでーた</hoge>
<hoge id="hoge3">ほげでーた</hoge>
</hoges>
ってな書き方で、"ほげでーた"をHoge.valueにセットする方法ない?
573:デフォルトの名無しさん
07/07/12 22:11:25
スレッドを指定して停止したり、再開させることってできますか?
574:デフォルトの名無しさん
07/07/12 22:13:14
>>573
できません。自分でフラグを用意してください。
575:556
07/07/12 23:15:53
>>557
レスありがとうございます。
doubleを使わないんですね。
intで計算すると、どんな良い事があるんでしょうか。
>>558
ごめんなさい
使えるのはjava.util.*だけでした。
576:デフォルトの名無しさん
07/07/12 23:48:21
すいません、質問させてください。
「UDTの通信で自分のIPアドレスと、通信している相手のIPアドレスを比較するプログラム」というプログラムを作っています。そこで、
相手のIPアドレスは、DatagramPacket.getAddress() で
「192.○.○.○」という様に普通に取れるんですが、
自分のIPアドレスを、InetAddress.getLocalHost().getHostAddress() で
「2001:0:4136:・・・・」という様に(ググってみるとIPv6のIPアドレスらしいんですが)比較できません。
IPv4で自分のIPアドレスを取得するにはどうすればいいんでしょうか?
よろしくお願いします。
577:デフォルトの名無しさん
07/07/13 00:04:31
>>572 うろ憶えだけどXmlMixed?だったかで出来たかも
578:デフォルトの名無しさん
07/07/13 00:52:58
>>576
UDT?
579:デフォルトの名無しさん
07/07/13 00:59:48
>>574>>573
たしか一時停止とかならできるのが有ったよ
580:デフォルトの名無しさん
07/07/13 01:01:46
>>579
どうやってやるのですか?
特別なライブラリを使用するとかでしょうか??
581:デフォルトの名無しさん
07/07/13 01:18:02
指定してってのは無理じゃねーの
582:デフォルトの名無しさん
07/07/13 01:22:08
対象の Thread が分かってるなら suspend も resume も可能だろが
583:デフォルトの名無しさん
07/07/13 04:25:34
イベント処理がGUIの例ばかりでよくわかりません。
どなたかGUIではないイベント処理のサンプルコードを教えてくださいませんでしょうか。
584:デフォルトの名無しさん
07/07/13 05:21:09
じゃあ、プッシュ型のxmlプログラミングでも・・・
まあ、それは良いとして単純なCUIだとループ中にキー入力拾うだけ。
それ以上のものはコンソール制御できないjavaには無関係で
どっちにしても例に出すようなサンプルコードはないよね。
イベントドリブンでググった方が良いと思う。
585:デフォルトの名無しさん
07/07/13 05:28:47
>>583
public class Clock implements java.awt.event.ActionListener {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println(new java.util.Date());
}
public static void main(String[] args) throws InterruptedException {
Clock c = new Clock();
new javax.swing.Timer(1000, c).start();
synchronized (c) {
c.wait();
}
}
}
586:デフォルトの名無しさん
07/07/13 08:15:59
>>585
それ結局はGUI+スレッドに関連したプログラミングなんじゃ・・・。
まあ、java.awt.*パッケージにイベント周り集中してるからjavaのイベント処理は
ヘッドレスじゃないだろって考え方もできるから>>583の質問も的を射てないかも知れんが。
587:デフォルトの名無しさん
07/07/13 11:16:43
java.io.File#listFiles や java.io.File#list は
> 結果の配列の名前文字列は特定の順序にはなりません。
> アルファベット順になるわけではありません。
とありますが、これは名前文字列以外の点においても
不定(少なくとも保証はしない)と言うことなのでしょうか?
588:デフォルトの名無しさん
07/07/13 11:21:40
>>587
実装的にはOSのAPIが返す順番そのものなので、たいていはディスク上の
ディレクトリに記録されている順番になる。だから、意味のある順番で
はない。
589:デフォルトの名無しさん
07/07/13 11:42:40
>>587
そゆ事。
原文みりゃ分かると思うけど
> There is no guarantee that the name strings in the resulting array
> will appear in any specific order; they are not,
> in particular, guaranteed to appear in alphabetical order.
日本語訳では in particular の部分がスッポリぬけてるのね。
もちろん、>>588がいう「OSのAPIが返す順番そのもの」ってのも一切保証されてない。
590:デフォルトの名無しさん
07/07/13 11:46:45
Tomcatのコネクションプーリングについて以下でOK?
server.xmlのJNDI(ResourceParams)の設定でfactoryにBasicDataSourceFactoryなどの
コネクションプーリングに対応した、データソース実装クラスのfactoryを
指定する事で行われる。
factoryの指定がない場合は、driverClassNameで指定したJDBCドライバの
DataSource実装クラスが使用される。
よって、factoryなしで、JNDIの記述だけでは、プールが行われるとは限らない。
PostgreSQLの場合、付属のJDBCドライバでは、プールはされない。
591:デフォルトの名無しさん
07/07/13 11:57:10
>>588-589
ありがとうございます。やはり、と言うところですが
訳抜けと言う点は驚きました。
592:デフォルトの名無しさん
07/07/13 14:14:10
JFreeChartで描画したグラフの上にかぶせるようにShapeを描画する事は可能でしょうか
593:デフォルトの名無しさん
07/07/13 14:40:21
>>592
可能
594:592
07/07/13 15:02:09
JFreeChartについてもう一点
axisを共有した異種チャートの混合表示も可能でしょうか
595:デフォルトの名無しさん
07/07/13 15:25:30
>>591
javadocでは普通、原文とサイトのチュートリアルよく読むのオヌヌメ
596:デフォルトの名無しさん
07/07/13 15:44:35
>>594
異種で共有ってのがよく分からないけど、それも出来たと思う
前使った時に5,6種類のグラフを重ねてプロットしてたはず
597:デフォルトの名無しさん
07/07/13 15:45:43
>>1
てsと
598:デフォルトの名無しさん
07/07/13 17:02:50
計算についての質問です
double test = 17.56;
というのがあって、これの100倍の答え(1756)を出したいのですが、
計算すると、1755.9999999999998などという答えがでてきます。
どのようにすれば期待した答えがでてくるのでしょうか。
試したことは下記の2つでどちらも変な結果になりました
System.out.println(test * 100.0);
System.out.println(test * 100.0f);
599:デフォルトの名無しさん
07/07/13 17:19:33
>>598
BigDecimal test = new BigDecimal("17.56");
System.out.println(test.multiply(new BigDecimal(100)));
600:デフォルトの名無しさん
07/07/13 17:20:37
>598
System.out.println(Math.round(test*100));
601:598
07/07/13 17:39:48
>>599-600
ありがとうございました
期待通りの答えをだすことができました。
単純に100倍するというのは難しいことなんですね・・・勉強になりました。
602:デフォルトの名無しさん
07/07/13 19:22:03
>>593>>596
有難うございました、早速使ってみました
なかなか優れものですねこれは
603:デフォルトの名無しさん
07/07/13 19:51:42
>>601
誤差がね
あるから
604:デフォルトの名無しさん
07/07/13 19:52:03
>>598
Javaに限ったことじゃないけど、プログラムで小数を扱うのは難しい
605:デフォルトの名無しさん
07/07/13 19:55:11
電卓でもいえるけどね
606:デフォルトの名無しさん
07/07/13 20:26:47
量子コンピューターになればいいんじゃないかな?
607:デフォルトの名無しさん
07/07/13 20:31:58
量子コンピュータは二進数使わないのか?
608:デフォルトの名無しさん
07/07/13 20:46:13
アナログコンピューターでOK
609:デフォルトの名無しさん
07/07/13 22:42:44
>>576
試したこと無いけど
DatagramPacket.getSocketAddress().getAddress() って何が帰ってくるの?
610:デフォルトの名無しさん
07/07/14 00:04:40
>>600
適当すぎw 答えが2.6とかだったら3になるなw
611:デフォルトの名無しさん
07/07/14 16:47:50
switch文で○○以上の場合はこの処理をするっていうのはできますか?
612:デフォルトの名無しさん
07/07/14 17:40:17
>>611
とりうる値がかなり限られているなら○○以上の値を複数のcaseで羅列して挙げておけばいいが、
そういう条件判断は普通はif文で処理したほうがいいと思う。
613:デフォルトの名無しさん
07/07/14 18:39:38
>>611
int flag = 0;
if( 10 <= x) flag = 1;
switch flag
case flag:
// 処理
break;
default:
// 何もしない?
でどうだ?
switch文は使わないのがベター
大雑把な書き方は覚えているけど、詳細忘れたんで、テキトー
xが10以上の時、switch文で処理を分岐できるぞ。
業務で書いたならばぶち殺すけどなwwww
614:デフォルトの名無しさん
07/07/14 18:55:18
>>611
できません
615:デフォルトの名無しさん
07/07/14 21:07:48
>>613
case 1:
616:デフォルトの名無しさん
07/07/14 22:37:48
>>613
caseに変数は使えない。リテラルのみ。
自信ない時は試してから書こうぜ。
617:デフォルトの名無しさん
07/07/14 22:38:21
あ、定数もいけたか。
618:611
07/07/14 23:28:12
レスさんくす
619:デフォルトの名無しさん
07/07/14 23:30:16
Rubyならできる
620:デフォルトの名無しさん
07/07/15 01:21:06
rubyもgroovyもいらない子
621:デフォルトの名無しさん
07/07/15 12:13:26
データの読み込みについて質問です。
一度ByteにしてArrayListに格納して、取り出してbyteに変換しています。
もっとスマートな方法(このクラスを使った方が良い等)があれば教えて頂けないでしょうか。
ArrayList byteArray = new ArrayList();
int readByte = 0;
while (readByte != -1) {
readByte = stream.read();
if (readByte != -1) {
byteArray.add(new Byte((byte) readByte));
}
}
Byte[] byteBig = (Byte[]) byteArray.toArray(new Byte[0]);
byte[] byteTmp = new byte[byteBig.length];
for (int i = 0; i < byteBig.length; i++) {
byteTmp[i] = byteBig[i].byteValue();
}
622:デフォルトの名無しさん
07/07/15 12:49:22
>>621
スマートとかじゃなくて、それじゃ落第です。動くだけ。性能でなさ杉。
1.もし読み込み対象データのサイズは先にわかるのであれば、1発バルクリ
ードしておしまいのはず。そんな遅そうな処理をする必要はないです。
多分こんな感じで。
File target = new File("...");
byte[] buffer = new byte[target.length()];
FileInputStream in = new FileInputStream(target);
in.read(buffer);
I/O-CPU間のスイッチが発生しないので、速いですよ。
2.サイズがわからないにしても、1バイトずつ読むのはやめなさい。
たとえば100バイトずつ読めば、I/O-CPUスイッチの回数は1/100です。
623:デフォルトの名無しさん
07/07/15 13:41:28
JDBC4.0に対応しているDBってどのくらいある?
PostgreSQLが完全対応で、Derbyがβって感じ?
624:デフォルトの名無しさん
07/07/15 13:56:15
>>622
new byte[target.length()] してから new FileInputStream(target) するまでの間に、
ファイルが書き換えられて長さが変わる可能性がある。
in.read(buffer); は確実にbuffer.lengthバイトを読み込む事を保証してないので、
実装依存にしたくなければ明示的にループ使って全部読み込まないとダメ。
I/O-CPU間のスイッチがどのタイミングで入るかは実装依存なので
100バイトずつ読んでもスイッチ回数が本当に1/100になるかは不明。
625:デフォルトの名無しさん
07/07/15 14:05:13
RandomAcceccFileの方を使えば100%保障じゃね?
626:デフォルトの名無しさん
07/07/15 14:13:09
ByteBuffer
627:デフォルトの名無しさん
07/07/15 14:16:47
>>621
ByteArrayOutputStream out = ByteArrayOutputStream();
byte[] buf = new byte[1024];
int len;
while(-1 != (len = stream.read(buf))){
out.write(buf, 0, len);
}
byte[] contents = out.toByteArray();
628:デフォルトの名無しさん
07/07/15 14:17:20
>I/O-CPU間のスイッチが発生しないので、速いですよ。
>2.サイズがわからないにしても、1バイトずつ読むのはやめなさい。
>たとえば100バイトずつ読めば、I/O-CPUスイッチの回数は1/100です。
おいおい、実装依存だぜそこは・・・って言おうとしたのにorz
ち、ちゃんと気づいてたんだからね!?
629:デフォルトの名無しさん
07/07/15 14:36:36
様々な回答ありがとうございます。
一通り試して各メリットデメリットを整理し、理解を深めたいと思います。
このスレは優しい方が多いですね。
もっと叩かれると思っていました。
630:デフォルトの名無しさん
07/07/15 21:22:44
javaのlexとyaccどこ?
631:デフォルトの名無しさん
07/07/15 23:03:47
Calendarクラスって使いづらくない?
632:デフォルトの名無しさん
07/07/16 00:39:43
古いのはそうだね
633:デフォルトの名無しさん
07/07/16 01:19:29
上司から、1つのJavaプログラムソースの流れを追えるように、と指示が出されました。
このページの作成ボタンを押したらデータはどう飛ぶかとか…。
ヒントを求めてもこれといった答えをくれないので、Eclipceを前にして苦悩しています。
ど素人&抽象的な質問で申し訳ないですが、ソースを追う際のコツみたいなのはありますでしょうか?
634:デフォルトの名無しさん
07/07/16 01:22:31
メソッドの頭にブレークポイントを挿入してみたら?
635:デフォルトの名無しさん
07/07/16 01:35:42
>> 634
ありがとうございます。なるほど、それが簡単かもしれませんね。
でも、jspやらjavaやらが全部で何千と存在しているので、できればそれ以外の方法で検証したいのです。
変数が定義されてないかを調べるために変数を検索してみるといい、とは上司に言われたのですが、
あまり自分の中でピンとは来ません。
とんちんかんなことを言ってるかもしれませんが、ブレークポイント以外でもう一声いただけると助かります!
636:デフォルトの名無しさん
07/07/16 01:40:27
Eclipseなら右クリックで変数の宣言に飛ぶとかメソッドの定義に飛ぶとかできる
637:デフォルトの名無しさん
07/07/16 01:44:16
そうなんですか?!
明日、日付明けて今日ですが、会社行って試してみようと思います。
12時間後ぐらいに撃沈してるかもしれませんが、その時はまたご教授願いします…。
素人の質問に回答いただきありがとうございました!
638:デフォルトの名無しさん
07/07/16 05:08:20
C++からJavaに引っ越してきたばかりの初心者です。
class A {
private int data; //外部からは見えない
private setter(int data) { this.data = data; } //外部からは使えない
public int getter() { return data; }
}
というクラスがあったとき、data は int 型なので、この値が外部からは
絶対に変更されないことは保証されていると思います(C++と同じ)。
しかし、これが基本型の int ではなく、一般的なクラスだった場合、
例えば StringBuffer だったりしたら、外部からでも
StringBuffer str = getter();
str.append("hoge");
みたいにして操作することは可能です(ここはC++と違う)。
これを防ぐために思いつくのは、getter() で data そのものではなく
data のコピーを返すことですが、
public String getter() { return data.toString(); }
1. これは標準的な方法ですか?
2. ざっと見たところ、StringBuffer と違って String には
インスタンスそのものが保持している値を直接書き換える
関数はないようですが、int と同じように扱っても安全ですか?
3. StringBuffer.clone() って使えるのが自然なような気がするんですが、
なんで使えないんですか?
639:デフォルトの名無しさん
07/07/16 05:32:15
public StringBuffer getter() { return new StringBuffer(data); }
Stringはimmutable
StringBufferのclone()はObjectのclone()をオーバーライドしていないのでprotectedアクセスになりAからはアクセスできない
640:デフォルトの名無しさん
07/07/16 05:41:17
こんな時間にレスありがとうございます!
3点ともしっかり理解しました。
C++についても「分かったつもり」になっていただけの部分が
だいぶありそうですので、これを機にもう一度見直してみようと思います。
色々と。
641:デフォルトの名無しさん
07/07/16 07:00:07
がんがれ
642:デフォルトの名無しさん
07/07/16 08:05:31
>>638
こういう方法もよくやる
class A {
// 外部から直接アクセス禁止
private StringBuffer buf = new StringBuffer();
// 許可するメソッドだけを間接的に公開
public append(String str) {
buf.append(str);
}
}
あわせて。>639のようにGetterはコピーして返せばOK
643:デフォルトの名無しさん
07/07/16 09:21:56
>>633 Eclipseがある今では古風なやり方だが、各所にSystem.out.println("..");
を配置すると今どこら辺の過程やってるのか分かるよ。
644:デフォルトの名無しさん
07/07/16 10:29:57
lnないほうがいいよ
645:デフォルトの名無しさん
07/07/16 10:31:48
二重ループで外を●内を・にすると
●・・・・・・・●・・・●・・・・●・・・・・●・・・
みたいに楽しめる
646:デフォルトの名無しさん
07/07/16 11:21:11
>>638
javaはcall by referenceが無くていわばreferenceをcall by valueしてる。
ていうのをとっとと覚えた方が良いと思う。
むかし、MSにプリミティブのラッパークラスが
保持してるvalueを書き換える手段がないのは欠陥と非難されたことがあるよ。
647:デフォルトの名無しさん
07/07/16 11:24:16
FlashからJavaに入った奴です、よろしくお願いします。
例えば、Flashでは、あるFlash(swfファイル)に、後から、別ファイルのFlashを、
ロードして実行/表示することができるんですが、
Javaアプレットの場合、後から、別archiveをロードして、その中のクラスを
利用したりすることは出来るんでしょうか。。
648:デフォルトの名無しさん
07/07/16 11:25:37
BASIC作ってた会社に言われたくない罠
649:デフォルトの名無しさん
07/07/16 11:26:17
できるよ
650:デフォルトの名無しさん
07/07/16 11:42:08
>>648
作ってないよ。あれは買い取っただけ。
651:デフォルトの名無しさん
07/07/16 12:07:30
>>650
ビルゲイツキタ━━━(゚∀゚)━━━ !!
652:デフォルトの名無しさん
07/07/16 12:47:53
mainスレッドとmainスレッドからstartされるThread-0があって、GUIのボタンでThread-0の停止・開始を
制御するサンプルとかないですか?
653:デフォルトの名無しさん
07/07/16 13:30:04
>>652
一度止めた(止まった)スレッドを再開することはできない。
Threadの中でループを使って実行・一時停止を制御するか、ボタンのイベント毎にスレッドを作れ(止めろ)
654:647
07/07/16 14:21:16
>>649
ありがとうございました。この方向で、勉強してみます。
また、つまづいたら、よろしくお願いします。
655:デフォルトの名無しさん
07/07/16 15:06:05
>>653
ありがとうございます
wait/notify使えば出来るかなと思ったのですがダメなんですね
656:デフォルトの名無しさん
07/07/16 17:52:30
JDBCでMySQLを使ってるんですが、setAutoCommitをfalseして
commitとrollbackを使えば排他制御はできてるんですか?
657:デフォルトの名無しさん
07/07/16 17:54:16
commit/rollbackは排他制御じゃなくてトランザクションの仕組み
それを使って排他制御ができるかどうかは>656次第
658:デフォルトの名無しさん
07/07/16 17:55:04
cから来たんですけど「final」って何ですか?馬鹿にしてるんですか?
659:デフォルトの名無しさん
07/07/16 17:57:41
>>658
constと同義
660:デフォルトの名無しさん
07/07/16 17:58:34
>658
includeってなんですか?馬鹿にしているんですか?
661:デフォルトの名無しさん
07/07/16 18:01:07
>>658 処理系側が安心して定数であると判断しているのです
大文字、小文字の判別が出来るものと出来ないものが有る為 どうしても定数宣言で必要になるのです
662:デフォルトの名無しさん
07/07/16 18:01:55
ん、もしかしてCしか知らないのかw
663:656
07/07/16 18:41:04
トランザクションと排他制御の違いがよくわかってませんでした。
URLリンク(dev.mysql.com)
MYSQLでは、このページにあるようにロックテーブルすれば排他制御はOKですか?
664:デフォルトの名無しさん
07/07/16 18:46:16
今のjavaのfinalは定数じゃなくて一度しか代入(初期化しか)できない変数だろ。
blank finalがあるから。
665:デフォルトの名無しさん
07/07/16 18:49:06
>>663
それはJavaの話ではないのでMySQLスレで聞いた方がいい
排他制御がシビアであるのでない限り、TimeStampを使って簡単な排他制御を行うことが一般的。
つまり、更新するレコードを取得した時にLAST_UPDATE_TIMESTAMPなどを取得しておき、UPDATE時はWHERE条件に含めてしまう(排他で引っかかれば更新結果0件)など。
666:デフォルトの名無しさん
07/07/16 18:50:42
>>664
むしろ、変数に代入された値(参照先も含む)の不変性を保証
釣りにマジレスはここまで。
667:デフォルトの名無しさん
07/07/16 18:52:46
何が「むしろ」なんだ?>>664のが的を射ているし。
668:デフォルトの名無しさん
07/07/16 19:24:02
>>665
timestampはそういうときに使えるんですね
LAST_UPDATE_TIMESTAMPっていうのはMySQLの関数ですか?
探したんですが見つからないです。
あとこの方法だとテーブルにtimestamp型のカラムを持たせないとできないんですよね?
もうMySQLの質問になってますね。すいません。これで最後にします。
669:デフォルトの名無しさん
07/07/16 19:27:31
>>667
JLS3以降(Java5以降)でfinalの役割が重くなって、
666のようになったはず。
670:デフォルトの名無しさん
07/07/16 19:31:13
>>668
いや各テーブルに定義するカラム
最終更新日時ってカラムは何かと便利だから全てのテーブルに含めてテーブル設計することが多い(この辺もMySQLスレかDB総合スレ)
671:デフォルトの名無しさん
07/07/16 19:31:19
>>669
finalの役割が重くなったって、具体的にchapterいくつよ
672:デフォルトの名無しさん
07/07/16 19:45:43
>>670
あーカラム名ですか。
たしかにあったら便利ですね。
勉強になりました。ありがとうございました。
673:デフォルトの名無しさん
07/07/16 19:59:01
>>658
final = 再代入不可
変更不可ではない(参照先が変更されれば変更可能)
逆にすべての参照先をfinalにすれば変更不可(immutable)にできる
再代入の意図がなければなるたけつけておくのが良策
Cのconstとは違うので注意
674:デフォルトの名無しさん
07/07/16 20:08:24
>>673
Cのconstはダブルポインタ先も固定のままだっけか?
675:デフォルトの名無しさん
07/07/16 20:14:56
>>671
666はマジレスパワーが足りず言葉不足
chapterは 17.5 Final Field Semantics あたりか?
あとは自分で調べるか、やさしいエロイ人待ちなさい
676:デフォルトの名無しさん
07/07/16 20:30:43
一度しか代入(初期化しか)できない変数 と
変数に代入された値(参照先も含む)の不変性を保証 の差が解らない…
一度しか代入できないって事は代入された値が不変って事じゃないの?
677:デフォルトの名無しさん
07/07/16 21:09:36
>>676
final StringBuffer buf = new StringBuffer();
buf = null; //これはエラーになる=一度しか代入できない。
buf.append("hoge"); //これはエラーにならない。参照先の不変性は保証されない。
678:デフォルトの名無しさん
07/07/16 21:09:38
>>676
finalでStringBuffer持ってたら?
679:デフォルトの名無しさん
07/07/16 21:19:04
>>677,678
Java5から重くなって参照先の不変性を保証ということは、
buf.append("hoge");
でエラーになるということ?
680:デフォルトの名無しさん
07/07/16 21:21:12
>>679
それ嘘だから。エラーにはならないよ。
681:デフォルトの名無しさん
07/07/16 21:35:16
気分、こんな感じ
1. あるスレッドにおける代入結果は、他のスレッドからすぐには見えない
2. ファイナルフィールドとはいえ、一回は代入される
3. 不変と称しているのに、代入される前のファイナルフィールドが見えたらいやん
4. final の意味を強化
682:デフォルトの名無しさん
07/07/16 22:12:43
>>679
5.0の同期周りで後付けされた仕様を拡大解釈でもしてるんじゃない?
でもあれだ、static finalでプリミティブだと吐くバイトコードにリテラル埋め込んでるから定数と言えるかも。
あと、finalじゃなきゃinner classから参照できないんじゃなかったけ?
683:デフォルトの名無しさん
07/07/16 22:21:43
>>682
static final int a = Integer.getInteger("system.property");
みたいな事もできるから、「static final でプリミティブ」なだけじゃ定数とはいえない。
final でなければ参照できないってのは匿名クラスの話じゃないか?
684:デフォルトの名無しさん
07/07/16 22:52:09
付箋を作成したいのですが、コンパイルができません。
C:\sample>javac FusenExec.java
FusenExec.java:6: シンボルを見つけられません。
シンボル: クラス Dodai
場所 : FusenExec の クラス
Dodai fusen;
^
FusenExec.java:7: シンボルを見つけられません。
シンボル: クラス Dodai
場所 : FusenExec の クラス
fusen = new Dodai();
^
エラー 2 個
因みに、ソースはこれです。どこがおかしいかを指摘ください。
class FusenExec{
public static void main(String[] args){
Dodai fusen;
fusen = new Dodai();
fusen.setSize(300,50);
fusen.setVisible(true);
}
}
685:デフォルトの名無しさん
07/07/16 22:55:04
クラスパス上にDodai.classが存在しない
686:デフォルトの名無しさん
07/07/16 22:55:33
>>684
Dodaiクラスがないんだって。
コンパイルしてないんじゃねーの?
おかしいところ?
ソースコード→コンパイル→実行の流れ理解しているか怪しい
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5055日前に更新/271 KB
担当:undef