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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。

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

前スレッド
【初心者】Java質問・相談スレッド123【歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1232330798/

次スレは>>990あたりで。

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
2デフォルトの名無しさん:2009/02/22(日) 22:54:16
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 8
ttp://pc11.2ch.net/test/read.cgi/tech/1227234261/l50
■ SWT は --
Java 高速GUI SWT 3
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part19
http://pc11.2ch.net/test/read.cgi/tech/1233822965/l50
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 8
ttp://pc11.2ch.net/test/read.cgi/tech/1206017034/l50

■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 67 ★★
http://pc11.2ch.net/test/read.cgi/tech/1232627790/l50

**** 開発環境が必要の場合は ****
■ J2SE 1.4.0
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/index.html
■ J2SE 5.0 (1.5.0)
ttp://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
ttp://java.sun.com/javase/ja/6/

**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
ttp://www.java.com/ja/
3デフォルトの名無しさん:2009/02/22(日) 22:59:00
けけけっ勝手に立ててやったぜ
4デフォルトの名無しさん:2009/02/22(日) 22:59:27

これはひどいパクリ会社
http://www.nicovideo.jp/watch/sm6206533
5デフォルトの名無しさん:2009/02/22(日) 23:08:16
Object3つを1つのbyte[]に入れたいのです。
さらに、それをJMSで別サーバに送信し、byteの配列から
Objectを3つ取得したいのです。
どうすればよいのでしょうか?
6936:2009/02/22(日) 23:08:20
BoxRoomMainに
player.setEnemy(enemy);
を追加して
Playerには
public void setEnemy(){
}
でいいんでしょうか?
で、そこからEnemyにPlayer内の数値を渡して受け取るには何がいりますか?
7デフォルトの名無しさん:2009/02/22(日) 23:10:16
>>6
プレイヤーにエネミー渡せば、今までどおりのエネミー.セットターゲットで値渡せるじゃん
8デフォルトの名無しさん:2009/02/22(日) 23:21:18
BoxRoomMainに
player.setEnemy(enemy);
と記述した後
具体的にどうすればいいのか教えていただけないでしょうか・・・
9デフォルトの名無しさん:2009/02/22(日) 23:25:46
>>8
今までプレイヤーの中でnewしてたエネミーはもうnewしない。
その代わり、セットエネミーで貰ったエネミーを、プレイヤーのクラス変数エネミーにセットする。

セットターゲットとやってることは同じだろ!

プレイヤーからエネミーに値渡すのは、もう書いてあるから、そのまま動く筈だぜ
※セットディレクトの中でやってるセットターゲットな
10デフォルトの名無しさん:2009/02/22(日) 23:34:30
ん〜
2日寝てないせいか頭が回らない・・・
>セットエネミーで貰ったエネミーを、プレイヤーのクラス変数エネミーにセットする
ってのはどう記述するんでしょうか?
Player内で
enemy = new Enemy();
を消して
public void setEnemy(enemy){
}
と追加したけど
型 Player のメソッド setEnemy() は引数 (Enemy) に適用できません
とのエラーが・・・
メソッドとかセッターとかの用語とJavaの記述で頭の中で関連付けできてないから
いまいち理解ができなくて・・・
11デフォルトの名無しさん:2009/02/22(日) 23:36:02
>>10
セットターゲットとやってることは同じって言ってんだろw

変数の型がイントかエネミーかの違いだよ
12デフォルトの名無しさん:2009/02/22(日) 23:40:39
最近もこみちの名前みなくなったけど、何やってるか分かります?
13デフォルトの名無しさん:2009/02/22(日) 23:43:00
同じといわれてもあまり理解できてないので・・・
public void setTarget(int tx){
cx = tx;
}
見たいに書いてもらえないでしょうか・・・
intかエネミーの違いといわれても
intは型だけどenemyは型じゃないし
enemyだけだと>>10に書いたようなエラーが出てしまうので・・・
14デフォルトの名無しさん:2009/02/22(日) 23:50:25
セッターゲッターでぐぐって調べてみればいいじゃん

intもEnemyも型じゃん
15デフォルトの名無しさん:2009/02/23(月) 00:02:27
セッターとかメソッドとかコンストラクタとかいう用語がどれがどれにあたるのかを
昔習った以来でもう覚えてなくて今はどれがどれなのか理解していなくて
そういう用語でごちゃごちゃ説明されても頭が回らない今理解できないので
そういう遠まわしなのじゃなくて
直接プログラムで教えてもらえないでしょうか
16デフォルトの名無しさん:2009/02/23(月) 00:04:41
しかたないなセットエネミーはこうすりゃ直るんじゃねえかな

public void setEnemy(enemy){
}



public void setEnemy(Enemy enemy){
this.enemy = enemy;
}
17デフォルトの名無しさん:2009/02/23(月) 00:08:42
>>13
あんな、よくわからんが、長さ4の配列を用意して 1-3 だけ使うようなのはやめい。
長さ3を用意して 0-2 を使いなさい。

クラスEnemy について
メンバ int cx; は初期化されていない。よってオブジェクト生成時には0が入る。
cx は paint が呼び出されたときに muki に代入されている。

muki の有効値は 1-4 。
setTarget が呼ばれる場合には 1-4 のいずれかが muki 入る呼ばれ方をしている。

しかし、setTarget が呼ばれないうちに paint が呼ばれて、再度 paint が呼ばれる場合には
pan[0] が呼ばれる。この要素値には null が入ってる。
引数に使われている drawImage の先で NullPointer例外が発生する可能性がある。
18デフォルトの名無しさん:2009/02/23(月) 00:11:02
>>936
正解以外に興味がないなら帰れ
19デフォルトの名無しさん:2009/02/23(月) 00:13:05
まだやってたのかよw
甘いな
20デフォルトの名無しさん:2009/02/23(月) 00:24:39
>>16
ありがとうございますできました
(Enemy enemy)と並んでるのがなんとなくしか理解できてませんが
そうすればいけるってことですね
これであとは時間との戦い・・・
あと8時間・・・眠い・・・orz

>>17
確かにそうですね
キー入力の判定のサンプルのところで1〜4でやられてたのでそのまま使ってました
いろいろなサンプル見ながら突貫で作ってましたが
やはりそういう細かいところから考えてやらないとマズイですよね
時間があればいろいろ基礎からやり直して練って作りたいんですが
今はとりあえずしょうがないですね

>>18
テスト勉強でもテスト直前に今まで勉強してなかった教科を
公式だけから勉強していくよりも公式+答えであぁこういう風になってるんだぁって勉強するでしょ?
時間があればじっくり勉強したいんだけどね・・・
いろいろできて面白そうだし

とりあえず皆さんご迷惑おかけしてすいませんでした
21デフォルトの名無しさん:2009/02/23(月) 00:26:06
>>20
>テスト勉強でもテスト直前に今まで勉強してなかった教科を
>公式だけから勉強していくよりも公式+答えであぁこういう風になってるんだぁって勉強するでしょ?

そんなもんに人を巻き込むな
22デフォルトの名無しさん:2009/02/23(月) 00:30:00
>>21
思考力が身につかないのに、よく出来た気がする最悪のパターンだよな。
失敗と言うことが無いし。
23デフォルトの名無しさん:2009/02/23(月) 00:33:03
初心者歓迎の質問スレで質問に答えずに文句と基礎から勉強しろとしか行ってないヤツが
巻き込むなとか言ってもしょうがなくねぇか?
教えてあげたらちゃんとお礼も言ってるし
状況が状況だし答え聞いて理解するのもいいんじゃねぇの?
>>20見るとまだ理解できてはいないみたいだけど
24デフォルトの名無しさん:2009/02/23(月) 00:33:23
>(Enemy enemy)と並んでるのがなんとなくしか理解できてませんが

(int tx)

意味はこれと同じようなもんだボケ

25デフォルトの名無しさん:2009/02/23(月) 00:36:40
>>23
じゃあがんばって教えてやってくれ。
26936:2009/02/23(月) 00:37:19
>>21
ごめんなさい
期限が明日なもんで焦ってたんです

>>22
そうなりそうですね・・・
とりあえず明日ある程度の形にしたものを提出できたら
次回完成させて提出するまでには基礎から勉強したいです

>>24
それと同じようなものだなぁとは理解してますよ
ただそれそんな感じなんだろうなぁって思ってるだけだからなんとなくってことです
2717:2009/02/23(月) 01:07:04
>>20
最初の段落は無視して良いから、他の段落を読んでくれ

やるかやらないかは勝手だが
そんな切羽詰まってる時点で設計に手を付けることを強いたりはしないよ
2817:2009/02/23(月) 01:15:42
手っ取り早い解決法が書いてないから無視しただけなら、

private int cx; の行を
private int cx = muki; にでも換えて下さい。
29936:2009/02/23(月) 01:44:03
>>17さん
いえ、ちゃんと全部読みましたし
書いてある内容もちゃんと理解してますよ
ただ製作過程では突貫でサンプルのツギハギレベルで作ってたので
そこに気づかなかった感じです
今はちゃんと0から始まるように記入しなおしました
指摘していただきありがとうございます
30デフォルトの名無しさん:2009/02/23(月) 13:58:48
新しいクラスを作る時にクラス内にコンストラクターって作りますか?
作らなくても、new()出来ますよね?
何故コンストラクターを定義しなくてもnew()出来るのでしょうか?
31デフォルトの名無しさん:2009/02/23(月) 14:16:58
>>30
明示的にコンストラクタ一つも定義しないと、
言語仕様により引数一つも取らないデフォルトコンストラクタが生成される。
32デフォルトの名無しさん:2009/02/23(月) 14:29:12
>>30
まぁnewされたくなかたらprivateのコンストラクタ作ればおk
33デフォルトの名無しさん:2009/02/23(月) 15:16:27
>>30
クラスの継承にて。
サブクラスのコンストラクタで、親クラスのコンストラクタを明示的に呼び出さない場合、
引数を一つも取らないコンストラクタが呼ばれます。
記述が簡略にでき、便利です。

親クラスで、引数を取るコンストラクタだけを作成した場合、
サブクラスでは、コンストラクタを作成する必要があります。
さらに、親クラスで定義されているコンストラクタの何れかを呼び出す必要があります。
オブジェクト生成に必須なパラメータを明示でき、不用意な生成を抑制できます。
34デフォルトの名無しさん:2009/02/23(月) 15:37:54
>>31≫32≫33
さるでもわかる教え方で大変判りやすかったです。
ありがとうございました。
35デフォルトの名無しさん:2009/02/24(火) 01:27:39
シンボルを解決できませんってなに?
柴田先生の明解javaでScannerクラスをインポート?しようとしてもScannerが書いてある文全部にシンボルエラーが出ますたsけて
36デフォルトの名無しさん:2009/02/24(火) 01:44:03
jdk1.4だとか・・?
Scannerは1.5からだよ
37デフォルトの名無しさん:2009/02/24(火) 01:48:54
>>36
な、なんだってー!1?
ちょっと調べたら確かに1.4でしたご指摘ありがとうございます。
38デフォルトの名無しさん:2009/02/24(火) 02:06:25
可変長引数が忘れ去られてるんだろうなw
5.0の変更点として。
曖昧になるから俺は使ってないし。
39デフォルトの名無しさん:2009/02/24(火) 03:04:30
Integer.valueOf()のような、インスタンスからではなく型から呼び出すような関数はどのようにして作るのでしょうか?
また、そういった関数に特別な名前があれば教えてください。
40デフォルトの名無しさん:2009/02/24(火) 03:24:46
>>39
/* ソースは、適切に設定した Eclipse で F3キーを押しましょう。*/

静的メソッド (static method) と呼ばれる物です。
静的メソッドの修飾子には static が付与されています。

あとは適当にぐぐってください。
41デフォルトの名無しさん:2009/02/24(火) 03:32:20
>>40
おお、ありがとうございます、これでぐぐれます。
42デフォルトの名無しさん:2009/02/24(火) 16:14:17
iframeの表示領域は、あらかじめwidthとheight属性で規定しておく必要がありますが、
表示内容が想定より大きくなったり、小さくなったりすると、表示が崩れてしまいます。

javascriptを使って他のページをフレームに合わせて表示するにはどうしたらいいのでしょうか?

例えば、こんな感じにしたいのです。

http://www.w-index.com/main1.htm
43デフォルトの名無しさん:2009/02/24(火) 17:07:06
>>42
>>1
>プログラミング言語Javaに関する質問スレです。
>JavaScript, Ajaxの質問は、ここでは受け付けていません。
>Web製作管理    http://pc11.2ch.net/hp/
>Webプログラミング http://pc11.2ch.net/php/
>をご利用下さい。
44デフォルトの名無しさん:2009/02/24(火) 19:05:28
javaインストールの時の
コアファイルの解凍に失敗しましたってなんだろう・・・
45デフォルトの名無しさん:2009/02/24(火) 20:12:44
>>44
ダウンロードしてきたファイルが壊れてた、とかじゃね?
46デフォルトの名無しさん:2009/02/24(火) 20:14:47
ObjectOutputStreamを使ってファイル出力しているのですが、
Stringを複数含んだクラスにおいて、文字列に漢字が入っている時

NotSerializableException: javax.swing.text.GapContent$StickyPosition

が出てしまいます。
出力するクラスのすべてStringインスタンスというわけではなく、
特定のインスタンスに漢字が含まれると例外が発生するという状況です。

原因や対処策は分かりますでしょうか。
47デフォルトの名無しさん:2009/02/24(火) 21:26:22
まんまだよ
javax.swing.text.GapContent$StickyPosition
どういうクラスか知らんけどとりあえず直列化されてないからってのが理由ね。
対策は、それにかわるものでSerializableなやつを自作するしかないなぁ
見てないけど結構骨が折れそうだね

具体的にどういうオブジェクトの保存?
48デフォルトの名無しさん:2009/02/24(火) 21:28:32
staticなメソッドからは、staticなフィールドにしかアクセスできないの?
初歩的な質問でごめんね
49デフォルトの名無しさん:2009/02/24(火) 21:30:37
new でインスタンス作ってやればアクセスできる

staticなメソッドはnewしなくても使えるだけと思えばいいっす
50デフォルトの名無しさん:2009/02/24(火) 21:42:33
>>49
thx
51デフォルトの名無しさん:2009/02/24(火) 21:49:45
なんか日本語がおかしい

newでインスタンス作れば、staticじゃないフィールドメソッドもアクセスできる
インスタンス作らない場合は、staticなメソッドフィールドしかアクセスできない

伝わってたと思うけど訂正
52デフォルトの名無しさん:2009/02/24(火) 22:25:01
>>51
紛らわしい。
単にyesでOK
5346:2009/02/24(火) 22:30:07
>>47
GapContentは自作クラスではないのでライブラリのクラスと思われます。

イメージとしては
public class Item extends SuperItem {
String stra;
String strb;
・・・
}
※SuperItemにおいてSerializableを実装。

ObjectOutputStreamのインスタンスoosにおいて、
oos.writeObject(Itemクラスのインスタンス);
として書き出しています。
このとき例えば strb = "漢字";
となっている場合に、前述の例外が発生します。
strb = "alphabet";
の場合には発生しません。
54デフォルトの名無しさん:2009/02/24(火) 22:49:57
今日からというかさっきから始めた超初心者で申し訳ないんですが・・・

流儀の問題なんですけど、エラー処理はtry catchで受けるものですか?
それとも自力でチェックするものなんでしょうか。

たとえば引数の未定義をチェックするのに
perlで言えばif( !defined($hoge)){ みたいにするよりも
catchで場合分けして受けるのが正解?
55デフォルトの名無しさん:2009/02/24(火) 22:57:42
>>53
それは本当に漢字のせいですか?

javax.swing.text.Position を実装したクラスのインスタンスをどこかで直列化してませんか?
56デフォルトの名無しさん:2009/02/24(火) 23:19:25
>>54
未定義、、Javaで言えばnullチェックぐらいなら普通にif文で良いよ
基本的に自分でチェックできるものはしますよ
5746:2009/02/24(火) 23:23:17
>>55
そう言われると自信が持てなくなってしまいますが・・・
あくまで現象としてはアルファベット・ひらがなでは問題なく、
漢字の時に例外が出ているということです。

>javax.swing.text.Position を実装したクラスのインスタンスをどこかで直列化してませんか?

すみません。
理解力不足でどのようなことか分かりませんでした。
javax.swing.text.GapContentクラスのインスタンスということでしょうか?
5855:2009/02/24(火) 23:34:47
>>57
NotSerializableException: javax.swing.text.GapContent$StickyPosition の解説をします。

NotSerializableException は直列化可能インタフェースを持つ必要があることを示す例外です。
出力文字列のコロン以降はその対象クラス名で、ドル記号の後ろはクラス内クラス名です。
GapContent$StickyPosition は Position インタフェースを実装しています。

ここで 55 の話に繋がります。
本当に漢字のせいですか? と。
5946:2009/02/25(水) 00:43:31
>>58
ありがとうございます。
ドル記号の後ろはクラス内クラス名なのですね。メソッド名かと勘違いしていました。
(GapContentのソースも確認してみました。)

ここまでのご回答から、被疑のクラスを見直していったところ、
直列化しているクラスのフィールドにJDialogクラスを継承した自作のクラスを
含んでいることが分かりました。

そのフィールドに対してtransientを修飾することで問題が解決しました。
原因の根本はおっしゃる通り漢字うんぬんでは無かったということになります。
本当にありがとうございました。
60デフォルトの名無しさん:2009/02/25(水) 02:10:28
学生レベルでJAVAの中級者以上ってどんなレベル?
61デフォルトの名無しさん:2009/02/25(水) 02:14:56
学生レベル
62デフォルトの名無しさん:2009/02/25(水) 02:21:14
>>54
その辺は実は深い問題なので、あんまり「こうしとけばOK」というやり方はない。
おおまかな指針なら「Effective Java」って本に載ってるので、Javaに一通り慣れたら読んどけ。
63デフォルトの名無しさん:2009/02/25(水) 02:26:58
高校生なら将来は情報系に進学するんだろうけど、大学生なら別にどうってことない。
それよりも英語が出来ないと次の技術に追いつけないから中級か初級かの違いはあまりない。
中級者というならランタイムのソースぐらい読んでないと恥ずかしいが。
64デフォルトの名無しさん:2009/02/25(水) 02:30:23
サンは教育に力入れてるから小学生だとしてもジャバなら積み木のように何でも作れるって外人は多い。(ジャバだけしかつかえないけど)
C#と比べても実際そんなに複雑じゃないし。
65デフォルトの名無しさん:2009/02/25(水) 02:50:34
>>63
今の学生は情報系よりプログラム教える専門学校の方が上だと
信じ切っててそのまま専門入って洗脳されるパターンがあるんだな。これが。
んで底辺同士で変な潰し合いやってメンヘラ化。

ITドカタ以下だからねぇ。食えるんだろうか。エロゲの外注マくらいしか思い付かん。
66デフォルトの名無しさん:2009/02/25(水) 03:23:05
そういうと視点なら実際は底辺大学入っても同じ。エロゲを作るのか、半エロのオンラインゲームの受注を受けるのかの違いはあったとしても。
MARCH以上じゃないと、専門でも大学でもそんなに差があるとはいえないんじゃないか。

少しお花畑の話をすれば、情報の技術者を医療系のように国が保護して補償してないからこういう事態になるんだろうけど(携帯業界とかIT派遣とかで顕著でしょ)
67デフォルトの名無しさん:2009/02/25(水) 03:55:02
医者よりは芸術家とか職人のような扱いの方がいいのではないかと思う。

他の匠と違って朝すげー遅いが他は似たようなものだろう。
68デフォルトの名無しさん:2009/02/25(水) 03:57:07
ぶっちゃげ六帝大でも実践的なプログラミング技術を教える体制や
カリキュラムが出来ているかというと、正直かなり微妙だと思う。

教科書レベルの例題や、きちんと正解が出るように仕込み十分な
プログラミング演習の課題は一通りなぞっていても、課題だけを
ボンと投げられてそこから自分で設計したり必要な要素技術を
探し出したりしながらちゃんと動くものをゼロから作れる、そういう
学生は本当に希。

そういう実践力は現状のカリキュラムで教えるのはとうてい無理で、
むしろ課外時間に趣味とかバイトとかで実践的なプログラミングに
取り組んだ学生は研究室配属直後などは本当に強い。

他方で下手に経験があるだけに変に自信を持ってしまい、我流に
しがみついて体系的に学ぶことを拒否する学生もいる。
そう言う学生が後から来た素人に抜かされるのも時々見る光景。
69デフォルトの名無しさん:2009/02/25(水) 04:02:08
>>68
その実践的なプログラミングってどの程度の話?
70デフォルトの名無しさん:2009/02/25(水) 04:19:10
>>68
まあ言いたいことは分かるけどね。
しかし大事なところが抜けてるから一応補足しとくと、君は自分の能力と同等なものをその学生やらなんやらにも求めてないか?
どの分野でも何もないところから自分で設計したり実践したりすることなど出来ない。
小さいときに君は学習塾で先生に手取り足取り「解法」を学んで今やっとそのように「やる気があれば何でもできるだろ」ようなことを言ってるんじゃないかな。

どうでもいいけど、君に実力があるというなら、得意な分野でいいから誰にでも理解できる本を書いてみたらどうだろう。
プログラミング関係の書籍はほとんどが粗大ゴミだけど、君が書くプログラミングの記事もまたそのゴミの一つかもしれない。
71デフォルトの名無しさん:2009/02/25(水) 04:28:13
>>68
我流にしがみつくような学生の方が、率先してゼロからでも課題をこなしていくタイプじゃないのか?
その長文で主張したいことは、どうも矛盾してるようだけど・・・

我流の学生なら、変な癖のところを指摘してやれば充分じゃないかと思うけどね。
海外だと学生のときに作ったプログラムで成功してるのが多いでしょ。(GIMPとかYAHOO.COMとか)
情報というかプログラムの世界は、工芸職人みたいだけど、課題をこなすような人材よりも我流でアクが強い方がいいもの(道具)を作る世界なのかも。
72デフォルトの名無しさん:2009/02/25(水) 04:45:12
>>69
自分が関わっているところはどっちかというと理屈系の比重も
大きいから規模も複雑度も企業内でのプログラミングに比べ
たら全然大きくないと思います。

ただ痛切に感じるのは「実践力」のある使える学生というのは
量的というより質的に違っていて、明確な答えのない課題に
対して自分で答えを見つけたり、類型の問題に対する既存の
アプローチを色々組み合わせて自分で解決策をほじくり出して
しまうスキルがある。情報の探し方と探しどころを経験で学んで
いるんですね。で、こういう無形のスキルを伝達するのが実際
一番大変で難しいので、色々なところで苦労していると思います。

>>70
能力を求めてはいないし自分も実力があるわけでは無いですが、
カリキュラムで学べるプログラミング技術と研究の現場や企業で
求められるものとでは質的に大きなギャップがあるのは間違い
無いです。プログラミング技術が必要となる研究室では多かれ
少なかれ内部指導の体制を試行錯誤していると思います。
プログラミングは手段であって目的では無いのも悩みどころです。

>>71
そう。まさに我々の周りでも「変なクセがある」と呼んでいます。
クセを指摘して聞いてくれる学生だと良いんですが、時には妙に
固執する頑固な人もいて・・・。掲示板みたいに規模はともかく
前例やベストプラクティスが存在する対象をクリアして自信を
つけてものの、そういうものがない対象を扱うようになって途端に
はまる人を何度か見かけました。
73デフォルトの名無しさん:2009/02/25(水) 04:59:19
むしろ学生のうちは、
どうして01の足し算だけでコンピュータが動くのか?とか
基本的なアルゴリズムとかその他学術的なことを
しっかりやってほしい。
会社に入ったらそういったことを勉強する機会は少ないし、
実践的なことしか勉強できなくなるから。
現場にいない大学の先生に現場で必要な実践的なことを教えるのには限界があるしね。
74デフォルトの名無しさん:2009/02/25(水) 07:02:23
真夜中から長文ご苦労。
引き続き質問スレに貢献してくれ。
75デフォルトの名無しさん:2009/02/25(水) 13:09:40
どうして01の足し算だけでコンピュータが動くの?
76デフォルトの名無しさん:2009/02/25(水) 13:36:33
01の足し算だけでコンピュータが動くじゃなくて
コンピュータは01の足し算だけで動いているの方が若干正しい気がする
77デフォルトの名無しさん:2009/02/25(水) 13:45:03
>>76
それならどうして01の足し算だけでコンピュータが動くのか教えて
78デフォルトの名無しさん:2009/02/25(水) 14:00:08
01の足し算だけでは動かないと思うぞw
79デフォルトの名無しさん:2009/02/25(水) 14:10:28
足し算だけじゃどう頑張っても無理ではなかろうか
80デフォルトの名無しさん:2009/02/25(水) 14:12:03
少なくとも条件分岐は必要だな。
81デフォルトの名無しさん:2009/02/25(水) 14:12:31
http://book.mycom.co.jp/book/4-8399-0986-5/4-8399-0986-5.shtml
洒落ではなく、ビット演算からスタートして最終的にCPUがどうやって
動くのか、興味がわいた人のとっかかりとしてはマジでお薦め。

http://journal.mycom.co.jp/column/architecture/index.html
内容が心持ち順不同だけど、良い連載だと思う。
82デフォルトの名無しさん:2009/02/25(水) 14:19:08
Javaと関係ねーよー
おかーちゃーーん
83デフォルトの名無しさん:2009/02/25(水) 14:19:31
学生さんにはしっかりと足し算だけでコンピュータが動くしくみを
勉強していただきたい
84デフォルトの名無しさん:2009/02/25(水) 16:51:16
javaできる奴ってどれくらいいるのかな?
85デフォルトの名無しさん:2009/02/25(水) 17:20:59
クラスでjavaできる奴何人いたって意味↑
86デフォルトの名無しさん:2009/02/25(水) 17:31:53
>>85
そろそろ病院行ったほうがいいんじゃない?
心療内科は結構いいよ
87デフォルトの名無しさん:2009/02/25(水) 18:03:53
>>78-79
釣り?だよね?
88デフォルトの名無しさん:2009/02/25(水) 20:12:41
ジャンプってプログラムカウンタの足し算だよな
89デフォルトの名無しさん:2009/02/25(水) 20:29:23
「だけ」をいうのであれば足し算というより排他的論理和だな。
90デフォルトの名無しさん:2009/02/26(木) 00:05:50
1 - 1 = 1 + -1
2の補数
91デフォルトの名無しさん:2009/02/26(木) 00:46:45
スレチだけども、学問と実践、研究者と技術者の区別がついていないんだと。。。
92デフォルトの名無しさん:2009/02/26(木) 00:58:12
Linux(CENTOS)でアパッチがインストールされていれば
Java(サーブレット)を動かせますか
93デフォルトの名無しさん:2009/02/26(木) 01:12:32
>>92
無理。サーブレットの実行にはTomcatなどのサーブレットコンテナが必要。
Apacheとサーブレットコンテナを連携させることはできる。
94デフォルトの名無しさん:2009/02/26(木) 02:11:43
javaでcgiすりゃいい
95デフォルトの名無しさん:2009/02/26(木) 04:43:15
>>94
それだとセッション管理が大変になるだろ。
96デフォルトの名無しさん:2009/02/26(木) 16:21:30
すみません
OutputStreamの中身をbyte[]型で出す方法ってありますか?
97デフォルトの名無しさん:2009/02/26(木) 16:24:01
java.io.ByteArrayOutputStream
98デフォルトの名無しさん:2009/02/26(木) 21:53:35
>>95
マジリアクションするなよwwwwwwww
99デフォルトの名無しさん:2009/02/27(金) 00:05:07
MQを使って別プロセスと通信を動機的にすることは可能ですか?
MQを使った時点で非同期になるのでしょうか?
100デフォルトの名無しさん:2009/02/27(金) 03:30:51
>>98
相手初心者なんだから嘘教えるなよw
101デフォルトの名無しさん:2009/02/27(金) 12:40:29
家でjavaをはじめようと思ってます。
まず何をしたいかと言うと、
Realtekのカニさんマークの用に
画面の真ん中にウインドウ枠を消した状態で
カに以外を表示したいです。
段取りを教えてください。
102デフォルトの名無しさん:2009/02/27(金) 13:39:04
>>101
SWTスレへいけ
103デフォルトの名無しさん:2009/02/27(金) 16:34:35
Realtek のことはよく知らないけど
スプラッシュスクリーンのこと?
104デフォルトの名無しさん:2009/02/27(金) 16:39:25
(1)jspのページを直接表示させた場合
(2)サーブレットからリダイレクトによってjspのページに遷移させた場合
(3)サーブレットからフォワードによってjspのページに遷移させた場合

何で(1)と(2)では文字化けしなかったのに(3)は文字化けするんでしょうか
105デフォルトの名無しさん:2009/02/27(金) 17:37:38
>>103
スプラッシュスクリーンがまず最初ですかね。
僕としては、今後そのスクリーン上で、フォルダを指定して、
画像データとかを表示したいなと思っています。
まったく別物ですか?
106デフォルトの名無しさん:2009/02/27(金) 17:45:26
別物

java スプラッシュスクリーンでまずぐぐれ
107デフォルトの名無しさん:2009/02/27(金) 20:56:42
起動処理中のサーバに接続したい場合、
サーバの起動に時間を要するので、起動確認してからtelnetしたいです。
手入力のコマンドですとpingで確認するところですが、
Javaのプログラムだとどういう方法で確認するのがよいでしょうか?やはりpingを実行するのでしょうか?
108デフォルトの名無しさん:2009/02/27(金) 22:48:56
要求を、適当な時間間隔で適当な回数、リトライするんじゃ駄目?
109デフォルトの名無しさん:2009/02/27(金) 23:22:40
Telnetメソッドを数回リトライということですか?
110デフォルトの名無しさん:2009/02/28(土) 00:54:49
そもそも、pingが通ればtelnetも通る?
telnetそのものでトライするのが確実だと思うよ。
111デフォルトの名無しさん:2009/02/28(土) 00:59:28
なるほど。納得しました。
ありがとうございます。
112デフォルトの名無しさん:2009/02/28(土) 13:59:30
WebページにあるフォームにGetで送信したいんだけれども、どうしたらいい?
ヒントくれ
113デフォルトの名無しさん:2009/02/28(土) 14:47:42
HttpClient
114デフォルトの名無しさん:2009/02/28(土) 15:53:31
>>113
thx
115デフォルトの名無しさん:2009/02/28(土) 17:07:03
わざわざ外部のライブラリ使わんでも標準でHttpURLConnectionあたり使ってできるよ
まぁ使い勝手は最悪だが。
116デフォルトの名無しさん:2009/02/28(土) 20:32:26
public static void main(String[] args) throws IOException {
BufferedReader reader = null;
BufferedWriter writer = null;

reader = new BufferedReader(
new FileReader("F:\\temp\\Test.txt"));
writer = new BufferedWriter(
new FileWriter("F:\\temp\\Test.txt"));

writer.write("Test");
String str = reader.readLine();

System.out.println(str);

writer.write("Test");
str = reader.readLine();

System.out.println(str);

reader.close();
writer.close();
}

これ実行するとnullnullって表示されるんですけど何故ですか?
ファイルにはちゃんと出るのに。
117デフォルトの名無しさん:2009/02/28(土) 20:36:28
書き込みながら読み込みとかやってる事が高度すぎる

書き込み終わってから、読み込みの順番ならちゃんと表示されるよ
118デフォルトの名無しさん:2009/02/28(土) 20:46:14
System.out.println("Test");
とすればちゃんと表示されますよ
119デフォルトの名無しさん:2009/02/28(土) 20:49:32
>>116
writer.write("Test"); の後に writer.flush(); してみれば?
120116:2009/02/28(土) 21:50:36
>>118
ありがとうございます。解決しました
121デフォルトの名無しさん:2009/02/28(土) 21:56:40
!?('A`
122デフォルトの名無しさん:2009/02/28(土) 22:00:33
ストリームっていのがよく理解できてなくて・・・
深い話が聞けるかなと。
>>119
ありがとうございます。
123デフォルトの名無しさん:2009/02/28(土) 23:46:16
windowsで言うところの.exeファイルってどうやって作成するんですか?
.javaから.classは作成できましたが、classをダブルクリックしても実行できません。
124デフォルトの名無しさん:2009/02/28(土) 23:47:29
ArrayListに「obj連番の数字」という名前のオブジェクトを、効率よく格納したいのですが

obj1、obj2、obj3・・・・・objNとなっているのを
ArrayList<*> test = new ArrayList<*>();
test.add(obj1);
test.add(obj2);
test.add(obj3);
   ・
   ・
test.add(objN);
と書いています。これをfor文を使って綺麗に書くことができますか?
できるのならば、おしえてください
125デフォルトの名無しさん:2009/02/28(土) 23:52:02
そもそも何でそんな名前のオブジェクトがあるんだ。
126デフォルトの名無しさん:2009/02/28(土) 23:53:17
>>123
JAR (Java Archive) というファイルを作る。
Windows 限定なら
Java アプリケーションを EXE に変換するソフトもある。
127デフォルトの名無しさん:2009/02/28(土) 23:56:34
>>124
フィールドにそんな名前をつけること自体
設計がよくないと思う。

強いて言うならリフレクション使う。
128デフォルトの名無しさん:2009/02/28(土) 23:59:22
>>127
感謝します
129デフォルトの名無しさん:2009/03/01(日) 00:18:32
>>126
jarファイルを作成し、実行できるようになりました。
有難うございました。
130デフォルトの名無しさん:2009/03/01(日) 01:07:45
基礎を勉強した後に読む本でおすすめはありますか?
131デフォルトの名無しさん:2009/03/01(日) 01:24:12
スレチかも知れないけど
メモ帳でtabインデントを8→3にするのってどこで設定するんですか?
132デフォルトの名無しさん:2009/03/01(日) 01:48:40
>>131
しらん。
エクリプス突っ込むか、フリーのテキストエディタを
使った方が幸せになれると思うのだが、
顧客が馬鹿でメモ帳以外使わせないとかなのか?
133デフォルトの名無しさん:2009/03/01(日) 11:37:45
改行コードって\r や \n そしてこれらの組み合わせがあるようですが
ファイルに書かれている改行コードが何か判別するにはどうしたらいいのでしょうかm(__)m
134デフォルトの名無しさん:2009/03/01(日) 11:45:59
バイナリエディタで開く
135デフォルトの名無しさん:2009/03/01(日) 12:56:32
Javaのプロセスが急に落ちるときの原因は何が考えられますか?
その際、アプリログを見ても、何も吐き出されていないのです。
環境はTomcat+Apatch+Sunで動かしているWebアプリです。
136デフォルトの名無しさん:2009/03/01(日) 13:15:10
>>135
サーバのログは読んでみたの?
137デフォルトの名無しさん:2009/03/01(日) 13:59:58
>>136
サーバーのログとは何ですか?
Javaのプロセスが突然落ちたのです。
コアダンプもエラーも何も出ずに、落ちてました。
138デフォルトの名無しさん:2009/03/01(日) 14:07:10
>>133
先頭から1文字ずつ読んでみればよい
139デフォルトの名無しさん:2009/03/01(日) 14:12:15
>>137
/var/log/httpd/error_log とか。
140デフォルトの名無しさん:2009/03/01(日) 17:46:51
ファイルの指定行への書き込みや、
指定行からの読み出しは、
ループを回さなければならないんでしょうか?
141デフォルトの名無しさん:2009/03/01(日) 17:53:29
org.apache.commons.io.FileUtils の readLines とか writeLines とか使えば?
142デフォルトの名無しさん:2009/03/01(日) 18:07:03
各行のオフセットをどこかに記録しておけばループは不要
143デフォルトの名無しさん:2009/03/01(日) 18:08:45
そんなクラスないみたいなんですけど・・・
orgはietfからみたいです。
そう言えば、java以外まだ使ったことないですけど。
144デフォルトの名無しさん:2009/03/01(日) 18:15:56
145デフォルトの名無しさん:2009/03/01(日) 19:58:30
>>144
親切だな
146デフォルトの名無しさん:2009/03/01(日) 22:11:41
標準クラスライブラリ以外使用不可ならどうすればいいんでしょうか?

問題
 テキストファイルの指定行に文字列を書き込むメソッドを作れ。

147デフォルトの名無しさん:2009/03/01(日) 22:30:35
"128hoge" が 128 になるような寛容な変換メソッドはありますか?
Integer.parseIntだと例外が飛んでしまいます。
なければおとなしく切り出そうと思います。
148デフォルトの名無しさん:2009/03/01(日) 22:45:13
int i = Integer.parseInt("128hoge".replaceAll("\\D", ""));
149デフォルトの名無しさん:2009/03/01(日) 22:59:48
>>146
指定行までを読み込んで
文字列を追加して
ファイルの残りを読み込んで

まとめて書き出せばいい
150147:2009/03/01(日) 23:12:36
>>148
このほうが短いですね。ありがとうございました。
151デフォルトの名無しさん:2009/03/02(月) 00:00:06
いや、普通はこうだろ (Cのatoiとか)

replaceFirst("\\D.*","")

何れにしても、空になると例外出るから、初期値0にするのにもう一手間いるけど
152デフォルトの名無しさん:2009/03/02(月) 00:05:44
\DってCで反応するの?
153147:2009/03/02(月) 00:15:53
"123hoge456".replaceAll("\\D", "")が"123456"になってしまいますね。

>>151
ありがとうございます。こちらも試してみます。
String s = "128hoge".replaceFirst("\\D.*", "");
int i = foo.isEmpty() ? 0 : Integer.parseInt(s);
154デフォルトの名無しさん:2009/03/02(月) 13:19:17
ScheduledFuture<?> s = ほげほげ
s.cancel(true);

の cancel() の引数なんですが、true と false の違いがよくわかりません。

セツメーショにはこう書いてありますが...
>このタスクを実行しているスレッドに割り込む必要がある場合は true
>そうでない場合は、実行中のタスクを完了できる

これ読んでも意味がわかりません。
「割り込む必要がある」って???
実行中のメソッドを*処理の途中*で強制停止してしまうってこと?
「そうでない場合」の「そう」はどの「そう」?
true でない場合はタスクを完了できないってこと???
じゃ false の存在価値は?

ちんぷんかんぷんです。おしえてくだしあ
155デフォルトの名無しさん:2009/03/02(月) 14:18:58
 if (obj != null && obj instanceof クラス)
っていう文をよくみかけますが、どんな意図があるんでしょう。
外人が書いたフリーソフトのソースコードなので本人に直接は聞けません。

 if (obj instanceof クラス)
よりも
 if (obj != null && obj instanceof クラス)
の方がパフォーマンスが高いとか?
サーバアプリなんですが、
CPUの負荷にやさしいのは、どっちの書き方でしょうか?
156デフォルトの名無しさん:2009/03/02(月) 14:30:38
>>155
場合分けとしてはどちらの場合も同じ。
null instanceof Hoge の場合は必ず false

勘違いしているか、null チェックだけでもやっておいた方が早く動くと思ってるか。
他にも何か理由があるのかね...
157デフォルトの名無しさん:2009/03/02(月) 14:42:18
>>155
演算子の優先順位は明らかなのに わざわざ括弧つけたりするのと同じで
冗長でも意図が明確に書いてあるってだけでは?
158デフォルトの名無しさん:2009/03/02(月) 14:48:50
ループで時間計ってみたら先にnullチェックで落とした方が半分以下の時間で済んだ。

nullチェックで落としたら、後のinstanceofが評価されないのは分かってたけど、
どれくらい時間かかるかわからんかったから、コード書いてみた。
159デフォルトの名無しさん:2009/03/02(月) 15:02:29
>>154
実行中に割り込み食らうとキャンセルされるように作ってあれば、
true 渡してやればタスクが既に実行中の場合タスクを実行しているスレッドに割り込みかけてキャンセルできる。
false の場合はタスクが既に実行中なら諦める。

実行中に割り込まれても無視するように作ってある場合は
true にしようが false にしようが同じ。
160デフォルトの名無しさん:2009/03/02(月) 15:18:12
すみません、質問です。

javaでロックのかかったエクセルファイルのロックを解除して
セルを取り込んだ後、またロックをかける。
といったことは可能でしょうか?

エクセルのロックのパスワードはわかっています。
161デフォルトの名無しさん:2009/03/02(月) 15:28:38
正確に言うとシートがロックされていて、
javaのプログラムでシートのロックを解除して、もう一度ロックをかける。
ということがしたいのですが・・・無理でしょうか?
162デフォルトの名無しさん:2009/03/02(月) 15:33:12
おすすめ本あるでしょうか?
163デフォルトの名無しさん:2009/03/02(月) 17:32:24
swingのJColorChooserで指定した色のrgb値を取得するにはどのように
すれば良いのでしょうか、いま指定した色と調和する色を表示するアプリケーションを
作っているので、ご教授願います。
164デフォルトの名無しさん:2009/03/02(月) 18:52:11
String.format("%.1f", hoge) // 注意: % と 1 の間に小数点があります
で小数点以下2桁で四捨五入するのですが
hoge = 1 のときは「1.0」ではなく「1」と出したいのです。
おしりの0を省く方法ありますか?
165デフォルトの名無しさん:2009/03/02(月) 18:58:17
クラスライブラリを使うとき、ヘッダファイルは、いらないの?
コンパイルされたクラスファイルがあればいい?
ソースコードもいらないの?
166デフォルトの名無しさん:2009/03/02(月) 19:06:18
>>165


167デフォルトの名無しさん:2009/03/02(月) 19:13:19
log4jってクライアント側のアプリに使うと下手したら
デバッグログまで丸見えになってしまいますか?
168デフォルトの名無しさん:2009/03/02(月) 19:19:48
>>167
log4jって、吐き出すログのレベルを簡単に切り替えれたのじゃなかった?
169デフォルトの名無しさん:2009/03/02(月) 19:20:14
public class クラス名<E>{
の、<E>って何よ?
170デフォルトの名無しさん:2009/03/02(月) 19:26:28
人に聞いてばかりで自分で出来ないようなら、いつまでたっても上達しませんよ。
171デフォルトの名無しさん:2009/03/02(月) 19:27:50
>>168
はい、だから設定ファイル変えられたらトレースされて丸見えになってしまうなーと。
ググッっても向いてる用途が書いてないので、ここで聞いてみました。
172デフォルトの名無しさん:2009/03/02(月) 19:29:15
>>167
知っているユーザーが設定ファイルを書き換えたらそうなるかも。
気になるならユーザー配布物にはダミーパッケージでも
つっこんどきゃいい気がするけど、どうなんだろう?
173デフォルトの名無しさん:2009/03/02(月) 19:32:21
ばっちり見えまくり

あと、javaはjadっつーので逆コンパイルすると、
ばっちり読めるソースが出てくる。

そこは.netも同じらしいけど
174デフォルトの名無しさん:2009/03/02(月) 19:32:37
>>171
複数人が関わったり、テスト工程をちゃんとやるような
大規模・中規模開発や統合開発環境やユニットテスタで
テスト回せないような開発では必須。

少人数で回せる様なものなら、エクリプスとかでのデバッガや
Junitだけで使わなくても十分だと思われ。
175デフォルトの名無しさん:2009/03/02(月) 19:33:58
設定ファイルなしで、設定の情報をプログラムコードで設定できるのじゃね?
log4jは、設定ファイル必須なの?
176デフォルトの名無しさん:2009/03/02(月) 19:46:10
設定ファイルでログレベルが変えられるのが売りなので、埋め込みだとあまり使う意味が無いかなと思います。
あと、Apacheライセンスなので、使っていることはばっちりバレバレですね。
クライアント側で使うべきではないようですね。
177デフォルトの名無しさん:2009/03/02(月) 19:49:41
>>174
そういう用途はぐぐると出てくるのですが、クライアントサイド等のアプリ種別につい
て知りたかったのでした。
設定ファイルが暗号化されてたりで簡単には変えられない仕組みとかあるのかと思った
のですが、なさそうだし、クライアントサイドの用途は想定されていないのかなと。
使いたかったのに。
178デフォルトの名無しさん:2009/03/02(月) 19:52:22
>>177
まあ、お客さんがログ見たかったら見ればいいってのはありじゃね?

デバッグログ見られたって困ることはないだろ
179デフォルトの名無しさん:2009/03/02(月) 20:27:00
>>173
jadをダウンロードしようと
http://www.kpdus.com/jad.html
へ行って
Jad 1.5.8g for Windows 9x/NT/2000 on Intel platform (238600 bytes).
http://www.kpdus.com/jad/winnt/jadnt158.zip
を選ぶと
Go Duddy.com とかいう変なページしか表示されません。
どこでダウンロードできるのでしょうか?
180デフォルトの名無しさん:2009/03/02(月) 20:28:12
デバッグログを暗号化して出力すればいい
181163:2009/03/02(月) 21:04:10
>>163
もよろしくおねがいします。
182デフォルトの名無しさん:2009/03/02(月) 21:21:29
>>179
ありゃりゃ・・・サーバが落ちてるのかな・・・
一時的なものなら、しばらく時間をおいてから再度ためしてみるといい。

いちおう "jadnt158.zip" でググってみたら、ミラーが見つかったので
どうしても本家からダウンロードできないときのために書いておく。

http://www.esnips.com/doc/340341bb-8e3b-44c4-97fd-1394b0894143/jadnt158

File Name: jadnt158.zip
MD5: FC4CB644F4783AEF5EFA8C9EBEC1EB05
Bytes: 238,600
183デフォルトの名無しさん:2009/03/02(月) 21:22:52
>>182
たぶん一時的じゃない。数日前ダウンロードしたときも同じ状態だった。
184デフォルトの名無しさん:2009/03/02(月) 23:23:12
CやC++でもリバースエンジニアリングやヒープをダンプされたら暗号化しようが中身丸見えだよ
185デフォルトの名無しさん:2009/03/02(月) 23:28:52
隠すほど凄いモノを持っておるまいに……
186デフォルトの名無しさん:2009/03/03(火) 00:01:59
市販アプリがダラダラとデバッグログをはいてたらその会社のレベルを疑うだろ普通。
チンコまるだし、ブリーフ、トランクス、ズボンはいてるのじゃ大違い。
187デフォルトの名無しさん:2009/03/03(火) 00:03:29
客がチンコまるだしを望むならそれもありだろ

ズボン、トランクス、ブリーフを脱がす権利は客にあるんだから
188デフォルトの名無しさん:2009/03/03(火) 00:11:46
ちんこ丸出しの男はキチ外じゃん。
ズボンとパンツを脱がそうとするやつは変態じゃん。
そういうこと。
189デフォルトの名無しさん:2009/03/03(火) 00:14:02
客がズボンとパンツを脱がそうとする変態ならそれもいいじゃないか
納品するのは、最初からちんこ丸出しの変態じゃない、ちゃんとズボンとパンツ履いてる紳士だ。

客(変態)の要求で紳士にもキチ外にもなる、俺はそんなクマ吉になりたい。
190デフォルトの名無しさん:2009/03/03(火) 00:18:35
ログだだ漏れ=ちんこ丸出し
log4jの設定いじりでログ漏れ=ブリーフ一丁
リバースエンジニアリング=ズボン脱がし
191デフォルトの名無しさん:2009/03/03(火) 00:21:11
露出狂がいるスレはここですか?
192デフォルトの名無しさん:2009/03/03(火) 00:39:15
そんなことより超々初心者の質問を聞いてくれあんちゃんたち

スーパークラスにprivateメンバ変数とセッタゲッタがあって、それをextendsしたサブクラスにはprivateメンバ変数は継承されないんだよね?
なのになんでサブクラスをインスタンスしたら継承していないはずのメンバがセッタゲッタでやりとりできるんでしょう?
ちょっと理屈がわからない
193デフォルトの名無しさん:2009/03/03(火) 00:49:08
>>182
ご親切にありがとうございました!無事にダウンロードできました。
感謝です。
194デフォルトの名無しさん:2009/03/03(火) 00:52:32
>>192
privateメンバ変数は、継承されてる。
195192:2009/03/03(火) 00:56:50
>>193
てことは、直接参照できないだけでインスタンスには含まれてるってことなんでしょうか?
196192:2009/03/03(火) 00:57:25
安価ミス>>194
197デフォルトの名無しさん:2009/03/03(火) 01:07:17
初心者な質問ですいませんが教えてください。

ImageLabel に、画像(Image)を繰り返し貼り付ける方法を教えてください。

Panel上にImgeLabel(240x240ピクセル)を配置しています。これにImage(10x10ピクセル)を
連続で貼り付けて背景にしたいのです。
ちなみにこれはpaintメソッドではなく class mPanel extends Panel ・・・ 内です。
198デフォルトの名無しさん:2009/03/03(火) 01:17:29
ディレクトリの中のファイルの総数を返してくれるメソッドってありますか?
199デフォルトの名無しさん:2009/03/03(火) 01:33:18
>>198
listFiles()でとって、.length?
200デフォルトの名無しさん:2009/03/03(火) 01:46:15
なにかおすすめな書籍はあるでしょうか?
201197:2009/03/03(火) 02:08:44
自己解決しました。
ImageLabelからGraphics g をどうにかして取得できないかと思っていたのですが、
ImageLabelでなく、Imageで、Image.getGraphicsで取得できました。

ありがとうございました。
202デフォルトの名無しさん:2009/03/03(火) 10:00:28
Javaにおけるデザインパターンについて質問です。
Prototypeパターンでインスタンスをコピーする際にclone()を用いますが、ある本で
「自分のクラス(およびサブクラス)からしか呼び出せないのでほかクラスからの養成で複製を行う場合には、createCloneのような別メソッドでcloneをくるんでやる必要があります」
とありました。単純にcloneのアクセス修飾子を変えてpublicにして実装しないのは、Objectクラスでのclone実装を残しておきたいからなのでしょうか?
203デフォルトの名無しさん:2009/03/03(火) 11:38:29
なんじゃそりゃ
204>>202:2009/03/03(火) 12:27:52
>>203
質問の意味が分からないということでしょうか?
Hogeというクラスと、それを拡張したHogeExがあったとします。
HogeはPrototypeパターンで、createClone()というメソッドをもっており、その中でObject#clone()を呼び出しクローンを作成します。
HogeExではcreateCloneをオーバーライドします。
ここでもしcreateCloneというメソッド名ではなく、public修飾子のclone()とすると、HogeExではObjectクラスの純粋なcloneを呼び出すことはできなくなってしまいます(たぶん)。
この事が、私が読んだ本(>>202の引用部分)で敢えてclone()と別にcreateClone()を作成した理由なのでしょうか?

という質問です。
205192:2009/03/03(火) 12:35:46
割り込み失礼

継承理解しました
extendの認識を誤っていました
>>194氏ありがとうございました!!感謝
206デフォルトの名無しさん:2009/03/03(火) 14:45:50
練習問題でも

ランダムに設定した数を当てるプログラムを作りなさい
なお、10回までに当たらなければ、正解を表示して終了すること。
207デフォルトの名無しさん:2009/03/03(火) 20:23:52
>>206
宿題ですか?

・設定するのがプログラム、当てるのがユーザの場合
1.ランダムに値を設定し、その値を格納する
2.ユーザに入力を求める
3.入力された値を数値に変換する
4.1で格納した値と比較し、一致したら(fatal error : 問題に定義されていません)
5.10回繰り返していない場合は2へ
6.1で格納した値を表示する
7.終了する

・設定するのがプログラム、当てるのもプログラムの場合
1.ランダムな値を取得し、その値を格納する
2.ランダムな値を取得し、1で格納した値と比較し、一致したら(fatal error : 問題に定義されていません)
3.10回繰り返していない場合は2へ
4.1で格納した値を表示する
5.終了する
208デフォルトの名無しさん:2009/03/04(水) 00:50:36
ヒットアンドブローってやつだな。
新しい言語を覚える時、必ず作ってみるわ。
209デフォルトの名無しさん:2009/03/04(水) 01:05:32
勉強になるな
210デフォルトの名無しさん:2009/03/04(水) 01:07:17
>>207
久々にフローチャートを見た
211デフォルトの名無しさん:2009/03/04(水) 01:18:29
もっと大雑把なのは今でも書くな
212デフォルトの名無しさん:2009/03/04(水) 02:08:02
間違えたときにヒントは出ないのか?
ゲームとしては問題があるな
213デフォルトの名無しさん:2009/03/04(水) 10:39:43
ヒント:誰もゲームとは言ってない
214デフォルトの名無しさん:2009/03/04(水) 21:12:06
継承とオーバーライドで悩んでいます。
BクラスでAクラスのinitをオーバーライドしています、
Bクラス内でもAクラスのinitを実行したいのですが
「static でない メソッド init() を static コンテキストから参照することはできません。」と出てコンパイル出来ません。

class A{
int a = 0;
void init(){ a = 66;}
}
class B extends A{
int b = 0;
void init(){
A.init();       <---コンパイルエラー
b = 67;
System.out.println(""+a+":"+b);
}
}
void exe() {
B c = new B();
c.init();

--------------
実行結果
66:67
となるようにしたいです。

どうすればいいでしょうか?
215デフォルトの名無しさん:2009/03/04(水) 21:17:40
super.init();
216デフォルトの名無しさん:2009/03/04(水) 21:31:23
>>215
ありがとうございます。
217デフォルトの名無しさん:2009/03/04(水) 21:34:55
java製のwebアプリ経由で別サーバのファイルをダウンロードしたいのですが
実現方法が思いつきません。

操作手順は以下の通りです。
(1)ユーザがブラウザでwebアプリ(サーバAに設置)にアクセスしたら、サーバBのファイル一覧を表示する。
(2)ユーザはファイル一覧からファイル名をクリックし、ダウンロードを行う。

複数のサーバに点在しているログをブラウザ経由で簡単に取れるようにしたいというのが
趣旨なのですが、一般的にどういう感じで実現されているんでしょうか?
218デフォルトの名無しさん:2009/03/04(水) 21:39:40
>>217
各サーバのファイルにリンク張れば、クリックで開いたりダウンロードしてくれるべ

この回答だとjavaの質問と回答になんねーけど
219デフォルトの名無しさん:2009/03/04(水) 21:48:55
>>218
後だしで申し訳ないんですがユーザPCからサーバBは見れないようになっているんです。
リンクというと、「\\「IPアドレス\フォルダ名\ファイル名」という感じでファイル一覧で表示させるんですよね?

このパスをエクスプローラに貼ってアクセスしようとすると、アクセスが拒否られるんです。。
220デフォルトの名無しさん:2009/03/04(水) 21:58:51
>>219
そっちじゃなくね?
221デフォルトの名無しさん:2009/03/04(水) 22:03:32
>>291
俺が想定したのはこんなの
http://IPADDRESS/hogehoge/hagehage.log

サーバAからサーバBが>>219の形式で見れるのなら、普通にjavaからファイルとして扱えるんで、
ボタンクリックなりリンククリックでサーバにリクエストが来たら、
レスポンスにファイルをぶち込んでやればいい。
222デフォルトの名無しさん:2009/03/04(水) 22:04:18
サーバーBのディレクトリを、NFSやsambaなんか使ってサーバーAで
マウントすればええやん。という意味だと>>218は思われる。
223デフォルトの名無しさん:2009/03/04(水) 22:29:39
>>221
なるほど、なんとなくイメージが湧きました。
この場合、ファイルはサーバB→サーバA→ユーザという風に
サーバAを介してダウンロードされますよね?
速度的にはダウンロード*2の時間が掛かってしまいますか?
224デフォルトの名無しさん:2009/03/04(水) 22:34:39
>>221
すいません、>>223ですが当然2倍時間掛かってしまいますね。。
100Mほどのファイルもあるので難しいかもしれません。

>>222
なんとなくしか理解出来ていないのですがこれも同じような時間が掛かってしまいますか?

というより、普通にDLさせたいんならサーバBから直接取る方法を考えなければならないんでしょうか。。
225デフォルトの名無しさん:2009/03/04(水) 22:42:00
>>224
うん、2倍かかっちゃう。

>>222の方式も同じく、結局ファイルはネットワーク上を流れるんで、
100Mのファイルが2回ネットワークを流れることになる。
226デフォルトの名無しさん:2009/03/04(水) 22:51:11
>>225
そうですか〜。となると
(1)ユーザからサーバBのDL対象フォルダだけを見れるようにする。
(2)webアプリで表示する一覧では「サーバBのIP+ファイルパス」をリンク表示する。
(3)ユーザが(2)をクリックして直接サーバBからダウンロード。

という形がベストなのでしょうか。
(1)が可能かどうか確認してみます。

皆さんご回答頂きありがとうございました。
227デフォルトの名無しさん:2009/03/04(水) 22:51:11
サーバ、サーバ言ってるけど、何サーバなの?
228デフォルトの名無しさん:2009/03/04(水) 22:52:59
>>227
実はサーバは6個くらいあるんですが、それぞれwebサーバだったりDBサーバだったりします。
ちなみにwindowsserverです。
229デフォルトの名無しさん:2009/03/05(木) 04:10:27
Tomcat6環境でデータソースを利用したサーブレットを書いています。
データソースを取得すると、Tomcatから次の警告がでます。(エラーにはならず動作は予定通り)
Invalid value {1} for server variable named {0}, falling back to sane default of {2}.

ですが警告内の{1}や{0}が何をさすのかわからず、意味がわかりません。
web.xmlなど各設定の記述順の違いかと思い見てみましたが、影響してそうな部分は見つかりませんでした。
printなどで確認すると、
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/Hoge");
db = ds.getConnection(); //ここで警告がでる模様。取得したデータソースが×?

原因を推測できる方いたらお願いします。
230デフォルトの名無しさん:2009/03/05(木) 04:32:26
java.util.concurrent.locks.ReentrantLockの使用方法についてです。
ReentrantLockのAPIリファレンス※1に書かれている使用方法のサンプルソースに
 private final ReentrantLock lock = new ReentrantLock();
と、書かれています。
※1…http://java.sun.com/javase/ja/6/docs/ja/api/java/util/concurrent/locks/ReentrantLock.html
どうして、「final」が必要なのでしょうか?
これは、いわゆる「初期化の安全性」から寄与することなのでしょうか?
ご教授の程よろしくお願いいたします。
231デフォルトの名無しさん:2009/03/05(木) 10:47:47
ファイルを読み込むクラスA
ファイルに書き込むクラスB
javascriptからの値を受けとるクラスCを作成したのですが
クラスCからクラスA、Bの機能を使うにはどうすればいいのでしょうか?
232デフォルトの名無しさん:2009/03/05(木) 14:17:34
<%@ page language="java"%>
<%@ page contentType = "text/html; charset = Windows-31J" pageEncoding = "Windows-31J"%>

<html>

<head>
<title>テスト</title>
</head>

<body>

<form method="post" action="Test">
<input type="submit" name="test" value="確認">
</form>
</body>
</html>

これで実行したところエラーになるのはなぜでしょうか
233デフォルトの名無しさん:2009/03/05(木) 15:40:23
どこかが間違ってるからじゃないでしょうか
234デフォルトの名無しさん:2009/03/05(木) 15:56:13
あげ
235デフォルトの名無しさん:2009/03/05(木) 16:57:15
禿げだとぉ?
236デフォルトの名無しさん:2009/03/05(木) 18:03:29
>エラーになるのはなぜでしょうか

病院に行ってお医者さんに
「どこか具合が悪いので診てください」
って言ってるようなもん。
頭が痛いのか、チンコが痛いのか、なにか症状を言えよ。

なに?お医者さんだったら体のあちこちを押さえて
「ボク、ここがいたいでちゅかぁ?じゃ〜こっちでちゅか?」
って聞いてくれるだって?
じゃぁ、おまいも
「ボク、何てエラーがでたんでちゅか〜?コンソールやログにメッセージが出てまちぇんかぁ?」
っていちいちこっちから尋ねんと答えられんのか?
237デフォルトの名無しさん:2009/03/05(木) 18:13:54
実は・・・・チンコが痛いんです(アハ
238デフォルトの名無しさん:2009/03/05(木) 18:21:26
>>236
初心者の頃、自分の場合は質問を丁寧にまとめようとすると自己解決してしまった経験よくあった。
だが、それがいいのかもしれない。。
239デフォルトの名無しさん:2009/03/05(木) 18:59:15
今GUIで色々作ってみて遊んでるんですが、
ボタン(b1)を押すとフォーカスがボタンについちゃって
その後、そのウィンドウでキー入力を受け付けてくれなくなってしまいます。
this.remove(b1);としてもキー入力ができなくて困っています。

フォーカスの外し方があるのなら、ご教授ください。
240デフォルトの名無しさん:2009/03/05(木) 19:11:33
>>238
「告白デバック」でググってみ
241デフォルトの名無しさん:2009/03/05(木) 19:38:00
何が分からないか分からないと言った人が
何が分からないかを調べる責任があるらしい
242デフォルトの名無しさん:2009/03/05(木) 19:47:20
すかしっぺの法則だな
243デフォルトの名無しさん:2009/03/06(金) 01:25:58
>>239

(1)
requestFoucs() を呼んでフォーカスを移動する

(2)
ボタンの setFocusable(false) を呼んで
ボタンがフォーカスを持てないようにする

(3)
ボタンにも KeyListener を追加して
ボタンがフォーカスを持ってるときキーが押されても
キーイベントが発生するようにする
244デフォルトの名無しさん:2009/03/06(金) 23:07:39
Javaで、スタンダードなPHP実装アップローダにファイルをアップロードしたいのですがパケットキャプチャしてほとんど同じ内容を送るようにしたのに失敗します。
○対象アップローダ
http://www.standpower.com/php_up.html
○作成したプログラム
http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/613.java
※プログラム内の******はブラウザで送った場合と同じ内容になるように指定しています。(実際に確認済み)

唯一大きく異なる点はTCPのSource Portが「passwrd-policy」でなく「intersan」となっているところですが、HttpURLConnectionを使う限りこのレベルの変更は難しそうです。
どこかまずい点を指摘、もしくは良い方法を教えてください。
245デフォルトの名無しさん:2009/03/07(土) 00:03:18
>失敗します。

病院に行ってお医者さんに
「どこか具合が悪いので診てください」
って言ってるようなもん。
頭が痛いのか、チンコが痛いのか、なにか症状を言えよ。

なに?お医者さんだったら体のあちこちを押さえて
「ボク、ここがいたいでちゅかぁ?じゃ〜こっちでちゅか?」
って聞いてくれるだって?
じゃぁ、おまいも
「ボク、何てエラーがでたんでちゅか〜?コンソールやログにメッセージが出てまちぇんかぁ?」
っていちいちこっちから尋ねんと答えられんのか?
246デフォルトの名無しさん:2009/03/07(土) 00:06:07
テンプレに載せたいぐらい的確な罵倒だ。
247デフォルトの名無しさん:2009/03/07(土) 00:27:56
>>245
そうですね。表現が悪かったです。
例外が起こったりは全くありません。
申し訳ありませんが、対象アップローダのPHPの方のソースをご覧ください。
そちらのUpload failedのメッセージが出ます。つまりformデータが適切に送られていません。
症状としてはこれだけですが、バイナリレベルでやりとりされてるデータを見ると、MIME Multipart Media Encapsulationの内容は同じであるにも関わらず、WireShark(パケット解析ソフト)ではまずboundaryが認識されていないのです。
そこでそれまでのデータに問題があると考え、上のレベルで比較したところ>>244で書いたようなTCPのSource Portに違いがありました。

私が調べられたのはここまでで、もし問題点などが思いついたら教えていただきたいのです。
248デフォルトの名無しさん:2009/03/07(土) 00:44:36
パケットキャプチャするとね・・・ばれちゃうんだよね・・・
249デフォルトの名無しさん:2009/03/07(土) 01:47:09
250239:2009/03/07(土) 01:56:28
>>243
ありがとうございます。
(1)を使って無事解決しました。
ボタン(b1)とテキストエリア(t1)がある場合、
this.requestFocus();
this.remove(b1);
this.remove(t1);
の2行目と3行目を入れ替えるとうまくいかないのですが、、
とりあえず解決したので、これはこれ!それはそれ!としておきます。
251デフォルトの名無しさん:2009/03/07(土) 02:51:25
http://pc11.2ch.net/test/read.cgi/tech/1086238859/
Java ネットワークプログラミング 【教えて!】
252sage:2009/03/07(土) 06:08:35
>>247
えらい小難しいく考えてますが…
boundaryの意味をもう一度しらべてみましょう

http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/616.java
253>>247:2009/03/07(土) 07:50:04
>>251
スレッドが適切ではなかったですね。すみませんでした。
>>242
--バウンダリ文字列  →開始
--バウンダリ文字列-- →終了
だったんですね。私の知識不足でした。
わざわざソースまで提示していただき、本当にありがとうございました。
254デフォルトの名無しさん:2009/03/08(日) 19:08:28
findbugsのeffortオプションいじったら何が変わるんですか?
公式のドキュメントにはメモリ使用量なんかが変わるとしか書いてなくて困ってます。
findgubsのソースを読んだらbugをfindする際のオプションの切り替えをしている所は見つけたんですけど
それぞれどんな意味があるのか分かりまあせんでした。
255デフォルトの名無しさん:2009/03/08(日) 20:40:30
現在javaを勉強中ですが、文字のエンコードはUTF8が良いですか?それともEUCの方が良いですか?
256デフォルトの名無しさん:2009/03/08(日) 20:49:37
UTF-8
257デフォルトの名無しさん:2009/03/08(日) 21:32:41
ソースコード中に機種依存文字の、全角マイナス(0x817c)を含めた文字列を記述した場合、
コンパイルのエンコードオプションによって、2種類のUnicodeに変換されるということですが、
これはコンパイルする環境には依存しないのでしょうか?

例えば、Windows付属の文字コード一覧表には、Unicodeの「0xff0d」は存在するが、「0x2212」は存在しないため、
Windows環境で「CP943c」のエンコードオプションでコンパイルした場合、出力されたクラスファイルの中では、
0x2212に変換されていないのでは?(文字化けが発生している?)と疑問をもっています。

258デフォルトの名無しさん:2009/03/08(日) 22:29:38
>>257
MS 製の環境でプログラム作ったことがないから良くわからんが
心配なら UTF-8 のソース書くか実験すれば済む話だと思うが…
259デフォルトの名無しさん:2009/03/08(日) 22:35:11
知らないならレスしないでください
260258:2009/03/08(日) 22:54:34
>>257
仕様的には外部エンコーディングを UTF-8 に変換する手法までは決められていないので
どこの度のバージョンの処理系を使用しているか書かないと答えは得られない
261デフォルトの名無しさん:2009/03/08(日) 23:54:58
>>258
判りにくい質問で申し訳ないです。

今回疑問に思っていることは、ソース中に「全角?」(0x817c)文字列が含まれている場合、
コンパイル時に、コンパイルを実行する機種に依存せず、1対1の変換(シフトJIS→Unicode)
を変換を行うのか?ということです(変換後のUnicodeはどの機種でも同じ)。

しかし、実際に、2通りのエンコーディングでコンパイルしたところ、変換後のUnicodeは、

 MS932:  全角マイナス(0x817c) → 全角マイナス(0xff0d)
 CP943c: 全角マイナス(0x817c) → 半角?(0x3f)

となり、MS932は意図した通りで、CP943cは、0x2122に変換されるはずが、そうではなかったので、
もしかしたらWindowsには、Unicodeの0x2122(全角?)が存在しないので、0x2122に変換してくれる
ないのでは?と思っています。

>>260

環境は、
 
 OS:WindowsXP
 Java:JDK1.5

です。

「UTF-8 に変換する手法」とは、エンコードの仕組み(エンコーディングごとのUnicodeへの
変換マップ)は、コンパイラの実装次第ということでしょうか?
262デフォルトの名無しさん:2009/03/09(月) 00:00:40
>>260
なんどもすみません。
エンコーディングにお詳しいようですが、どのようにして知識を得られたのですか?
一応、今回の疑問で、私なりにSunのサイトや、書籍など調べたのですが、解決には
至りませんでした。

Javaのコンパイル時のエンコーディングの仕組みについて何かお勧めの書籍やサイトなど
よろしければ教えて頂けないでしょうか?
263デフォルトの名無しさん:2009/03/09(月) 00:18:09
未熟者ってことだろ
264デフォルトの名無しさん:2009/03/09(月) 00:30:49
>>262
教えてgooのjavaカテゴリで聞けば
凄腕のお姉さんが教えてくれるよ
265デフォルトの名無しさん:2009/03/09(月) 00:50:38
>>264
ありがとうございました。
このようなサイトがあるとは知りませんでした。
専門的な事柄についての質問も多いですね。

もう一度自身で整理してから利用したいと思います。

みなさんありがとうございました。
266デフォルトの名無しさん:2009/03/09(月) 01:56:28
Stream でソースコードと異なるディレクトリのファイルを指定するにはどうしたらいいのでしょうか?
267デフォルトの名無しさん:2009/03/09(月) 01:59:41
このスレには凄腕はおりません
268デフォルトの名無しさん:2009/03/09(月) 02:19:54
>>265
C:/ほにゃらら

って感じでフルパス指定しる
269デフォルトの名無しさん:2009/03/09(月) 02:20:54
レス番号間違えたw

あと、../ほにゃらら
って感じで..つけると一つ上のディレクトリを指定できる
270デフォルトの名無しさん:2009/03/09(月) 02:30:21
すいません
ソースコードからの相対パスを使う場合にはどうすればいいのでしょうか
InputStream is = new InputStream("Documents/Text/目的のファイル");
のような感じで
271デフォルトの名無しさん:2009/03/09(月) 05:17:10
普通は実行時のカレントディレクトリからの相対パスしか取れない。
ソースコードからの相対パスは無理。

ただ何らかのIDEを使っていて、IDEの実行メニューから実行した
場合はプロジェクトのルートフォルダがカレントディレクトリになって
いるんじゃないのかな(もちろん変更も可能だけど)。
なのでIDE上で実行する分にはある程度相対パスを決め打ちに
出来るはずです。
272デフォルトの名無しさん:2009/03/09(月) 10:27:28
コンパイルされたクラスファイルから
ソースコードの位置を特定することは無理でしょ
クラスファイルからの相対パスなら取得できないこともない
273デフォルトの名無しさん:2009/03/09(月) 16:58:32
Runtime#exec()
で実行したシェルスクリプトがさらに子プロセスを起動するとき、
シェルスクリプトは終了していてもproc.waitFor()では子プロセスが終了するまで
帰ってきません。シェルスクリプトの終了で戻ってくるようにする方法は
ありますでしょうか?&をつけて起動しても駄目でした。

やりたいのはtomcatの実行(catalina.sh start)を叩きたいだけなので、数秒まって
proc.destroy()しても実害はないのですがなんか気持ち悪くて。
よろしくお願いします。
274デフォルトの名無しさん:2009/03/09(月) 21:41:09
J2SE 1.4.2 のAPIリファレンスをダウンロードしようとSUNの公式ページにアクセスしたら、
「もう配布は終了したの、ごめんね」と言われてしまいました。
どこかのミラーサイトか、アップローダにないでしょうか?
275デフォルトの名無しさん:2009/03/09(月) 21:58:21
276デフォルトの名無しさん:2009/03/09(月) 22:17:52
>>275
ありがとうございます。
emoneの狭い画面でちまちま見ていて、下の方を見逃してました。
277デフォルトの名無しさん:2009/03/10(火) 19:01:59
みなさんGUI関係でお勧めの書籍はありますか?
278デフォルトの名無しさん:2009/03/11(水) 02:17:16
279デフォルトの名無しさん:2009/03/11(水) 20:07:45
教えてください

GUIプログラムにおいて、
JTextFieldクラスのオブジェクトを複数設置した場合、
タブキーで移動できますよね?

その際にテキストフィールド内のテキストが
選択された状態にしたいんですが、
どのようにやればいいんでしょう?

JTextFieldクラス内のメソッドでは無いんですかね?
280デフォルトの名無しさん:2009/03/11(水) 20:36:02
>>279
FocusEvent?
281デフォルトの名無しさん:2009/03/11(水) 21:54:05
int i1=100;
String s1="00000";
とあるんですが、このi1を、Stringのs1に入れて文字列で"00100"としたいんですが、
具体的にどう記述すればいいですか?
ちなみにs1の桁数はいつも5ケタで変わらず、i1は0-99999まで変動します。
int i1=20;だったらString s1="00020"、
int i1=120;だったらString s1="00120"・・・って風にしたいんです。
282デフォルトの名無しさん:2009/03/11(水) 22:04:12
String good = "" + i1;
String s1 = "00000";

s1 = s1.substring(0,s1.length - good.length) + good;

動かしてないから間違ってるかもしんないけど、サブストリーングで00000をgoodの文字数だけ削ればいくね?
283デフォルトの名無しさん:2009/03/11(水) 22:20:48
s1 = String.format("%05d", i1);
284デフォルトの名無しさん:2009/03/11(水) 22:28:19
s1 = new DecimalFormat("00000").format(i1);
285デフォルトの名無しさん:2009/03/11(水) 22:34:15
s1 = "";
while (s1.length <= 4) {
s1 = (i1 % 10) + s1;
i %= 10;
}
286デフォルトの名無しさん:2009/03/11(水) 22:42:19
if(i1==20){
  s1="00020"
}
else if(i1=120){
.....
287デフォルトの名無しさん:2009/03/11(水) 23:25:15
ttp://www.kpdus.com/jad.html
jad.exeのサイトがドメイン切れになってるみたいだけど、
どこか他に落とせるところ知ってる人いない?
もしくは、Eclipseでjarからソースを読みたいだけなので
jad.exeがなくても同等のことができるプラグインみたいなのがあればいいんだけど…
288デフォルトの名無しさん:2009/03/12(木) 00:08:41
MergeDoc Project (Eclipse 日本語化)
http://mergedoc.sourceforge.jp/

これにセットで入ってるらしい
289デフォルトの名無しさん:2009/03/12(木) 00:52:26
>>288
わぁ、ありがとうありがとう!
290デフォルトの名無しさん:2009/03/12(木) 13:18:01
OutputStreamをByteArrayInputStreamに変換する方法はありますか?
具体的には、
1.XML+XSLをJAXPに通し、解析して吐いたOutputStreamを
2.zipに圧縮したOutputStreamを吐き出す仕組みを作りたいです。

1で出来たモノを2でZipOutputStreamに渡すために、ByteArrayInputStreamの形でないとダメなようで。
291279:2009/03/12(木) 14:06:19
>>280
ありがとうございます。
なんかややこしいですが調べてみます。
292デフォルトの名無しさん:2009/03/12(木) 14:09:55
少し教えて欲しいのですが…

現在、jcom.jarでサーバ側でEXCELのテンプレートを開いて帳票作成を行なっているのですが
繁忙期にどうやらEXCELの競合が発生してwebサーバが落ちる現象が発生しています。
このような状況を避ける為にはどのようにすればよろしいでしょうか?

j-Integraのようなcomを扱う正規商品を買う以外方法は無いのでしょうか?
また、買うとすればお勧めはありますか?

すいませんが、アドバイスお願いします。
293デフォルトの名無しさん:2009/03/12(木) 14:28:17
POIでがんばる。
OpenOfficeのテンプレートに変えて、OpenOfficeSDKから操作でがんばる。

どっちともやったことあるけど、どっちも面倒だよ。

金はないけど時間があるなら、がんばってみても良いと思う。
294デフォルトの名無しさん:2009/03/12(木) 14:30:35
>>290
やったことないな。
java.io.PipedInputStream
でなんとかするんじゃね?
295デフォルトの名無しさん:2009/03/12(木) 14:45:43
>>290
ByteArrayOutputStream に出力させて
出力後に toByteArray() で得た byte[] を
ByteArrayInputStream のコンストラクタに突っ込む
296デフォルトの名無しさん:2009/03/12(木) 14:48:36
VBSのバッチでExcel作らせてそれキックならやったことあるぜ
297デフォルトの名無しさん:2009/03/12(木) 15:00:08
String name = obujekuto.getClass().getName();
とすると、フルで長〜いクラス名が帰ってくるのですが
末端の短い名前だけ取得する方法はありますか?
例: "jp.co.uncoproject.hoge.fuga.Unko" → "Unko"
298デフォルトの名無しさん:2009/03/12(木) 15:08:19
>>297
おれなら、そんな無駄なメンバまで用意しない。
自分でちょん切るしかないんだろ
299デフォルトの名無しさん:2009/03/12(木) 15:13:59
>>297
Class#getSimpleName()
300297:2009/03/12(木) 15:16:24
>>298
バカは黙っててください><
301デフォルトの名無しさん:2009/03/12(木) 16:36:32
>>299
ありがとうございました。もっとよくマニュアルを読むべきでしたね。

>>298
豆腐の角におちんちんぶつけて氏ね
302デフォルトの名無しさん:2009/03/12(木) 16:41:19
JTable + JScrollPane でプログラムで選択した行を表示範囲に含めるには
どうしたらいいですか?
行選択は SelectionModel を取得すれば出来るんですが。
303デフォルトの名無しさん:2009/03/13(金) 01:36:24
>>302
表示したい行のセルを含む矩形をJtable#getCellRectで取得して、
JScrollPaneのビューポートに対してJViewport#setViewPositionを使って
その矩形が表示されるようにビューの座標を設定する。
手っ取り早くRectangle#getLocationで得られる位置をsetViewPositionで設定すれば、
ビューポートの左上にそのセルが表示される。
セルがビューの下端近辺とかなら左上にはならないかもしれないが少なくとも表示範囲内のはず。
できるだけビューポートの中央に表示したいとかなら、
ビューポートの大きさとセルの座標からビューポートの左上に位置付けるべきビューの座標を計算できる。
304デフォルトの名無しさん:2009/03/13(金) 07:12:45
豆腐の角におチンチンあてがうと気持ちいいよね〜
砕け散った豆腐のカスがおチンチンにこびり付くし・・・
305デフォルトの名無しさん:2009/03/13(金) 07:41:33
javaでインストール時にファイルが開かないと出たエラーだけど

je6?のフォルダ内を削除したらインストール出来るようになりました!

レジストリのjavaにもっとも関係するのを削除して
マイコンピューターの環境変数の設定(削除など)して
やったら直りました。

ただ、レジストリをいじくるとPCが起動しなくなったり
壊れて使え物にならなくなったりするから注意

java 環境変数 などグーグル検索してよく調べてからインストールした方が良いよ
306デフォルトの名無しさん:2009/03/13(金) 08:08:20
>>302
テーブルのgetCellRectでとってきた範囲をnullチェック後
テーブルのscrollRectToVisibleで設定する
307デフォルトの名無しさん:2009/03/13(金) 08:36:20
>>303,306
thank you, guys
308デフォルトの名無しさん:2009/03/13(金) 09:18:51
appletから同胞してるJarの中のbinaryファイルを
InputStreamで読み込めない。アクセス違反。
txtは読み込める。appletviewerだと読み込める。
こんなもんかな?
309デフォルトの名無しさん:2009/03/13(金) 12:03:14
javaのフリーソフトを落としたのですが
jarダブルクリックしても
Could not find the class:Program will exit
というエラーが出てしまいます。
どうしたらいいのでしょうか?
自分はプログラムのことは全く分かりません。
javaランタイムは6-12入れています
スレ違いならすみませんがどなたか教えて下さい
よろしくお願いします。m(__)m
310デフォルトの名無しさん:2009/03/13(金) 12:13:35
そのフリーソフトの説明書を読んでよ。
311デフォルトの名無しさん:2009/03/13(金) 12:26:28
>>309
作者に聞くしかないんじゃね?
312デフォルトの名無しさん:2009/03/13(金) 12:47:12
>>310
ソフトの説明にはjavaランタイムが入っていればjarファイルをダブルクリックで起動出来ますとしか書いてありません。m(__)m
>>311
他のjar起動のソフトもエラー出るので、自分のPC環境がおかしいと思われますm(__)m
313デフォルトの名無しさん:2009/03/13(金) 14:58:54
java.lang.Stringにannotationを付与したいんだけど、リフレクションでは付与できず
javaassist等でもjava.lang.Stringには手を出せない。
どうするのが一番簡単だろうか?
314デフォルトの名無しさん:2009/03/13(金) 15:58:50
素直にあきらめろ
315デフォルトの名無しさん:2009/03/13(金) 16:00:25
無理なんじゃね?
JDKのライセンスで「java.*とjavax.*はいじるなゴラァ」となってたような。
316デフォルトの名無しさん:2009/03/13(金) 23:42:57
>>312
Java入れなおしてみるとか
317デフォルトの名無しさん:2009/03/14(土) 01:03:14
>>312
それ、何でか知らねーけどいつの間にかなってるんだよな。
とりあえずコマンドプロンプトで起動する方法をぐぐれ。

java -jar "JARファイル"
318デフォルトの名無しさん:2009/03/14(土) 01:22:35
Swing (AWT) のイベントディスパッチスレッド内のアプリケーション処理で例外が発生した時、
デフォルトだと標準エラーにスタックトレース出すだけですよね? これを一括でハンドリングしたい
んだけど何か良い方法ないですかね? 膨大なイベントハンドラ全てに try-catch 仕掛けるのは
現実的ではないし、ThreadGroup#uncaughtException() みたいな機能があれば良いんですけど。
319デフォルトの名無しさん:2009/03/14(土) 01:56:24
sunのコンソールがみれなくなった
320デフォルトの名無しさん:2009/03/14(土) 02:30:15
>>316
入れ直してみたけど駄目でした(/--)/
>>317
もう一度ググってみますm(__)m
321デフォルトの名無しさん:2009/03/14(土) 23:02:55
コレクションのHashMapは全要素を取り出す〔表示〕できないんでしょうか?

ArrayListなどだと要素番号が0から規則正しく始まるのでfor(int i=0;i<a.length;i++)
などと要素全部取り出せますが、HashMapはキーの型が不規則なので
全表示できませんでした

322デフォルトの名無しさん:2009/03/14(土) 23:07:13
コレクションから値取り出すときってiterator+whileじゃないか普通
323デフォルトの名無しさん:2009/03/14(土) 23:11:14
キーワードは「Java Map Iterator Map.Entry(必要なら)」だ。検索を。
まず゜SetをとってきてあとはIteratorで全要素をとってくるイメージ。
324デフォルトの名無しさん:2009/03/14(土) 23:21:07
インナークラスを外側のクラスの別の場所で継承したいんだけど
下記みたいなへんなコンストラクタ作んないとコンパイルが通らないっす。
もうちっと簡単スマートな書き方ないっすか?
外クラスのオブジェクトを引数にとらなきゃいけない宿命なんすか?

あとインナークラスの無名派生クラスを生成するときは
o.new Inner(){}; ってかけるのに
名前つきの派生クラスだと
o.new ExInner(); ってかけないの?

public class Outer {
    public class Inner{
    }
}

class ExInner extends Outer.Inner{
    /*
     * ココ!
     */
    public ExInner(Outer o){
        o.super();
    }
}
325デフォルトの名無しさん:2009/03/14(土) 23:32:28
>>321
HashMap<String,String> map = new HashMap<String,String>();
map.put("a", "ほげ");
map.put("b", "もげ");
map.put("c", "ふが");
for (Object key: map.keySet()) {
  System.out.println(key + ":" + map.get(key));
}
326デフォルトの名無しさん:2009/03/14(土) 23:56:15
>>324
> 外クラスのオブジェクトを引数にとらなきゃいけない宿命なんすか?
別に引数に取らなくてもいいけど、
コンストラクタを明示的に呼ばないといけないから
new Outer().super(); とかしないと駄目。

> o.new ExInner(); ってかけないの?
無理。
327デフォルトの名無しさん:2009/03/15(日) 00:01:51
>>324
public class Outer{
public static class Inner{
}
}
328デフォルトの名無しさん:2009/03/15(日) 00:49:45
バイト列を対象にしたReaderについて教えてください。

テキストファイルを読み込んで解析するプログラムを作っているのですが、
ファイルが巨大であるためBufferedReaderで直接読み込むとアクセスランプが付きっ放しになって
エライ時間がかかってしまいます。
傍目に見ても効率がよさそうではないため、いったんメモリに読み込んでbyte[]にしてから解析をしようと思うのですが、
InputStreamのソースをbyte[]にする方法が分からずに悩んでいます。
329デフォルトの名無しさん:2009/03/15(日) 00:54:02
>>328
java.nio.ByteBuffer 使った方がいいんじゃね?
330デフォルトの名無しさん:2009/03/15(日) 00:55:09
BufferedInputStream bis = new BufferedInputStream(new InputStream(new File("ファイル名")));

int c;
byte[] b = byte[1024];

while((c=bis.read(b))!=-1)
 /* 処理とか */


のようにすればいいと思われ。
1024は適当に値いじればいいと思うよ
331デフォルトの名無しさん:2009/03/15(日) 00:56:25
あー、対象が文字列なら、CharBuffer の方がいいかな。
332デフォルトの名無しさん:2009/03/15(日) 01:06:43
>>329-331
早速のお返事ありがとうございます。
APIリファレンス確認するとByteBufferでうまくいきそうな気がしてきました。
トライしてみます。
333デフォルトの名無しさん:2009/03/15(日) 01:57:22
>>326
ありがとう
設計みなおすよ、、、
334デフォルトの名無しさん:2009/03/15(日) 16:38:57
サイトのトップに幾つかの画像をランダム表示させることはできたのですが
幾つかのフラッシュファイルをランダムに表示させることができません。
どのように記述すればよいの教えていただけないでしょうか
よろしくお願いします。
335デフォルトの名無しさん:2009/03/15(日) 17:39:54
336デフォルトの名無しさん:2009/03/15(日) 19:02:51
JSPの表記で <%, <%!, <%=, がありますよね。
このタグに名称はあるのでしょうか?

基本的なことだと思うのですが使い所がわからなかったので
定義を調べようとしたところ
名称さえわからず ぐぐる事さえできず困っています。
337デフォルトの名無しさん:2009/03/15(日) 19:39:55
JSPタグ
338デフォルトの名無しさん:2009/03/15(日) 21:13:19
スクリプトレット
宣言(declaration)
実行時式(Runtime Expression)
339デフォルトの名無しさん:2009/03/15(日) 21:32:11
>>337-338
ありがとうございます。
340デフォルトの名無しさん:2009/03/16(月) 00:51:47
Javaを本格的に勉強しようと思うのですが
独学でやる場合に適した入門書でお勧めの
ものを教えていただけないでしょうか。
始めようにも路頭に迷ってるって感じで・・・・
御指南よろしくお願いします。
341デフォルトの名無しさん:2009/03/16(月) 02:48:07
目標レベルと現在のレベルでも書いたほうがいいと思う。
342334:2009/03/16(月) 04:10:22
誰か教えてください。急ぎなんです。
先払いで10000wm払いますのでお願いします。
343デフォルトの名無しさん:2009/03/16(月) 08:33:48
344デフォルトの名無しさん:2009/03/16(月) 14:22:15
>>341
現段階は少し前に高田美樹著のJavaスタートブック
を一通りやってみたといったところです。
ただ詳しい説明が乏しく感じられほとんど
理解に至ることなく丸暗記という状態です。
そこで改めて別に入門書を購入して勉強し直そうと
思っています。
目標としてはとりあえず既にJavaで組まれたソフトの
ソースコードを読んで理解できる程度になりたいと思っています。
345デフォルトの名無しさん:2009/03/16(月) 16:23:04
キー入力待ちの仕組みについて教えてください。
どの処理が「入力待ち」になっている処理かわかりません。

下記の二行は一連の流れです。
1-BufferedReader keyIn = new BufferedReader(new InputStreamReader(System.in));
2-while (true) { System.out.println(keyin.readLine()); }

1のキー入力では、BufferedReaderがリターンキーを感知するまで返さないという原理で「入力待ち」ができていると考えています。
しかし、2の場合においても「入力待ち」ができます。
考えでは、whileし続けた場合はkeyin = nullとなると思うのですが(ファイルを読み込んだとき、ファイルの終わりがnullになるため)、なぜ「入力待ち」処理ができるんでしょうか?
2はkeyin.readLine()→1の処理で待ちという流れになるにしても理解不能です。
346デフォルトの名無しさん:2009/03/16(月) 17:43:40
>>345

while (true) {
BufferedReader keyIn = new BufferedReader(new InputStreamReader(System.in));
System.out.println(keyin.readLine());
}

これなら納得するってこと?
347デフォルトの名無しさん:2009/03/16(月) 17:56:46
>>345
>1のキー入力では、BufferedReaderがリターンキーを感知するまで返さないという原理で「入力待ち」ができていると考えています。
何を返さないって?
348345:2009/03/16(月) 18:24:08
>>346
それは理解できます。
BufferedReaderで待ち状態を作って、リターンキーが帰ってきたらprintlnで表示されますよね。

>>347
返さないというか返ってこないというほうが表現が正しかったです。
BufferedReaderが\nか\rを感知sるうまではプログラムはその先に進まず「入力待ち」になるという考えです。
349デフォルトの名無しさん:2009/03/16(月) 21:04:40
なんか勘違いしてるっぽいな・・
BufferedReader keyIn = new BufferedReader(new InputStreamReader(System.in));
これは入力待ちじゃなくて標準入力のリーダーを生成しただけだよ。
インスタンス生成して入力待ちとか無い無い
350345:2009/03/16(月) 21:27:32
ちょっと勘違いしてたようです。
いろいろ試したところ、System.inは標準入力からのバイト配列でした。
あくまでBufferedReaderはまとめて表示するのを手伝ってるだけで、System.inが「入力待ち」を作ってるわけですね。
ということは、readLine()も仕様上、「入力待ち」という考えなんでしょうか
1回目は、最初のSystem.inから得られた1行を取得できますが、
whileで2週目が回ってきたときはあらたにSystem.inを取り込む処理を書いてないので普通に考えればnullとかになるはずですよね?
この“見えない”System.in取り込みの処理はどういう内部構造になっているのかなと。
351345:2009/03/16(月) 21:36:27
納得しました。
keyinはSystem.inを取り込むインスタンスである以上、必要があれば常にSystem.inからの入力を求めるわけですね。
keyinがSystem.inとひもづけられているという考えをするとスッキリしました。

ありがとうございました。
352デフォルトの名無しさん:2009/03/16(月) 23:21:46
StreamTokenizerの挙動について教えてください。ダブルクォーテーションに囲まれたテキストを引用符として扱いたいのですが、quoteCharの使い方が分からず、困っています。
下記のようなコード例で、ダブルクォーテーションの中身が無視されてしまいます。解決策をご教示頂ければ幸いです。

import java.io.StreamTokenizer;
import java.io.StringReader;

public class StringTakenizerTest {

public static void main(String args[]){
String test="1 \"aaa\" 2 \"bbb\" 3 \"bbb\"";
int kind;

System.out.println(test);

StreamTokenizer st=new StreamTokenizer(new StringReader(test));
st.quoteChar('\"'); // ダブルクォーテーションを引用符として扱って欲しい
try{
while((kind = st.nextToken()) != StreamTokenizer.TT_EOF ){
switch ( kind ) {
case StreamTokenizer.TT_WORD :
System.out.println("文字列: " + st.sval);
break;
case StreamTokenizer.TT_NUMBER :
System.out.println("数字: " + st.nval);
break;
}
}
}catch (Exception e) {
e.printStackTrace();
}
}
}
353352:2009/03/16(月) 23:22:36
期待している出力は

1 "aaa" 2 "bbb" 3 "bbb"
文字列: aaa
数字: 1.0
文字列: bbb
数字: 2.0
文字列: ccc
数字: 3.0

というものなのですが、このコードを実行すると

1 "aaa" 2 "bbb" 3 "bbb"
数字: 1.0
数字: 2.0
数字: 3.0

となってしまいます。
354デフォルトの名無しさん:2009/03/16(月) 23:37:04
>>352
case '\"': System.out.println("文字列: " + st.sval); break;
すれば?もっとも >>353 のと数字と文字列の順番逆になるけど。

http://java.sun.com/javase/ja/6/docs/ja/api/java/io/StreamTokenizer.html#quoteChar(int)
> nextToken メソッドが文字列定数を検出すると、
> ttype フィールドには文字列区切り文字が設定され、
> sval フィールドには文字列の本体が設定されます。
355352:2009/03/16(月) 23:46:36
>>354
ありがとうございます。
失礼しました、公式に記載があったのですね。

…なるほど、そういう挙動だったのか…
356デフォルトの名無しさん:2009/03/17(火) 15:17:08
文字コードについての質問です。
Strnig str = "あいうえお"; // UTF-16
という文字列があったとして、これを他の文字コードに変換するにはどうすればいいんでしょうか?

String str2 = new String(str.getBytes("ISO2022JP"));
などとすると、中の日本語表示がおかしくなってしまいます。
同様に、OutpuStreamでの文字コード指定でも表示がおかしくなるようです。

なにかいい解決方法はないでしょうか?
357デフォルトの名無しさん:2009/03/17(火) 15:37:13
nio.charset.CharEncorderをつかう。
358デフォルトの名無しさん:2009/03/17(火) 16:21:23
>>356
byte[] iso2022jp_string = "あいうえお".getBytes("ISO2022JP");

ソースコードがShift_JISだろうがUTF-8だろうが、
Stringは全部UTF-16でしか扱わない。
UTF-16以外の文字コード扱う場合は
基本的にバイナリデータ扱いになる。
java.io とか java.lang では 主に byte[] で
java.nio では主に ByteBuffer で扱う。
359デフォルトの名無しさん:2009/03/17(火) 18:12:08
Graphics2D.drawString( ) を使ってマルチバイト文字を描画すると
文字化けします ( □□□□ になる)
正しく描画するにはどうすればよいでしょうか



目的としてはイメージファイルを生成したいだけです。
appletなどではありません。コマンドラインから実行するだけです。

描画したい文字列を
new String(str.getBytes("UTF-8"),"UTF-8")
など変換したり、入力の時点でさまざまな文字コードを試してもすべてダメのようでした。


バージョンは 1.6.0_02 で
その実行環境はlinuxです。

あまり関係ないと思いますが、
実行前に
export LANG=ja_JP.UTF-8
としています
360デフォルトの名無しさん:2009/03/17(火) 19:27:27
>>359
フォントの設定見直せ。
361デフォルトの名無しさん:2009/03/17(火) 20:21:40
クラス配列についての質問なのですが、例えばPointクラスで

Point[] p = new Point[3];

として、pのすべての要素を初期化したい場合

for( int i =0; i<p.length; i++){
p[i]=new Point();
}

と書くのと

Arrays.fill( p, new Point());

と書くのとでは、なにか大きな違いはあるのでしょうか?
362デフォルトの名無しさん:2009/03/17(火) 20:34:02
下の方はp[0] == p[1] == p[2]になる
363356:2009/03/17(火) 20:44:29
>>357-358
回答ありがとうございます。
文字コードの変換についてもCharsetEncoderを使ってもうまくいかなかったのですが、
テストと処理周りの見直しを行った結果、仕様の見落としが原因でした。

申し訳ないです、ありがとうございました。
364h.t ◆S5hjT7ruak :2009/03/18(水) 10:35:58
先週も質問させていただいた292です。>>293の意見を受けて、現在POIでテスト中です。
で、また疑問が出てしまいましたので質問させてもらいます。
POIのver2.5で以下の記述を行いました。
001 FileInputStream in = null;
002 HSSFWorkbook workbook = null;
003 //エクセルオープン
004 in = new FileInputStream(fname);
005 try{ in = new FileInputStream(fname);
006   POIFSFileSystem fs = new POIFSFileSystem(in);
007   workbook = new HSSFWorkbook(fs);
008 }catch(IOException e){ System.out.println(e.toString());
009 }finally{ try{ in.close();
010      }catch (IOException e){ System.out.println(e.toString());}
011 } }
012 //シート取得
013 HSSFSheet sheet = workbook.getSheetAt(0);
014 //行取得
015 HSSFRow row1 = sheet.getRow(1);
016 //CELL番号
017 short cell_no = 0;
018 //CELL取得
019 HSSFCell cell1 = row1.getCell(cell_no);
020 if (cell1 == null){ cell1 = row1.createCell(cell_no); }
021 // 日本語対応
022 cell1.setEncoding(HSSFCell.ENCODING_UTF_16);
023 // 事業所名セット
024 cell1.setCellValue(INdatas[0].Jigyoseg_name.trim() );
これを、最新のPOI ver3.2にする為、017行目のcell_noをintに、022行目を削除したのですが
019行目に「メソッドgetCell(int)は型HSSFCellで使用すべきではありません」
024行目に「メソッドsetCellValue(string)は型HSSFCellで使用すべきではありません」
のワーニングが表示され、実行すると015行目で落ちてしまいます。
POIのver2.5では問題なく動くのですが…だれかご教授お願いします。
365デフォルトの名無しさん:2009/03/18(水) 13:34:28
スイマセン。落ちるのは019行目でした…

ちなみに開発にはEclipse3.0を利用して外部jarで
poi-3.2-FINAL-20081019.jar
poi-contrib-3.2-FINAL-20081019.jar
poi-scratchpad-3.2-FINAL-20081019.jar
を追加しています。
上記ワーニングはEclipseで表示されます。
366デフォルトの名無しさん:2009/03/18(水) 16:23:18
行番号付いてるけどBASICのプログラム?
367デフォルトの名無しさん:2009/03/18(水) 16:38:27
>>366
馬鹿、代入に LET が付いてないだろ。
368デフォルトの名無しさん:2009/03/18(水) 16:44:52
N88 なら 10 番飛ばしがデフォ
369デフォルトの名無しさん:2009/03/18(水) 17:41:05
LETは省略可
370デフォルトの名無しさん:2009/03/18(水) 17:42:00
>>366
説明するのにくっつけただけです。
3桁なのはなんとなくですw
371デフォルトの名無しさん:2009/03/18(水) 18:12:16
コンパイルはできるのですが
ちゃんと出力できませんorz

class practive1 {
public static void main(String args[]) {

int a;
int b;
int c;

a = 2;
b = 5;

System.out.println("a = " + a );
System.out.println("b = " + b );
System.out.println("値の入れ替え");


c = a;
a = b;
b = c;

System.out.println("a = " + a );
System.out.println("b = " + b );
}
}
372デフォルトの名無しさん:2009/03/18(水) 18:33:06
>>370
OpenOfficeだったらわかるんだけどなー
373デフォルトの名無しさん:2009/03/18(水) 18:40:43
>>370
javadoc見たらいい。
http://www.docjar.org/docs/api/org/apache/poi/hssf/usermodel/HSSFCell.html#setCellValue(String)

Deprecated! Use - setCellValue(HSSFRichTextString) instead.

って書いてあるジャン。
374デフォルトの名無しさん:2009/03/18(水) 19:01:03
>>373
了解しました。ありがとうございます。
375デフォルトの名無しさん:2009/03/18(水) 20:34:49
iアプリの勉強をしてるのですが
ClassSample1.java

import com.nttdocomo.ui.*;

public class ClassSample1 extends IApplication
{
     public void start(){
          int Kekka1, Kekka2;
          Menseki Zukei;//クラスの参照を宣言
          Zukei = new Menseki();//クラスのインスタンスを生成
          //@フィールドの利用
          Zukei.x=30;
          Zukei.y=20;
          //Aメソッドの利用
          Kekka1 = Zukei.Sikaku();
          Kekka2 = Zukei.Sankaku();
          //B出力
          System.out.println("フィールドxの値:"+Integer.toString(Zukei.x));
          System.out.println("フィールドyの値:"+Integer.toString(Zukei.y));
          System.out.println("変数Kekka1の値:"+Integer.toString(Kekka1));
          System.out.println("変数Kekka2の値:"+Integer.toString(Kekka2));
     }
}

行番号5 \12288は不正な文字です。と表示されます どこが可笑しいのでしょうか?
376デフォルトの名無しさん:2009/03/18(水) 20:44:06
>>375
俺には 5 行目に全角スペースが見える。
377デフォルトの名無しさん:2009/03/18(水) 20:59:36
>>376
ありがとうございます。ご指摘通りスペースの部分を削除したら動きました
感謝です
378デフォルトの名無しさん:2009/03/18(水) 22:06:46
すいません、Java初心者です。
配列の領域値が1040KBに設定されている理由ってわかりますか?私は1024KBだったら納得いくのですが・・・
わかる方、教えてください。
よろしくお願いします。
379デフォルトの名無しさん:2009/03/19(木) 00:41:37
IBMがSUNを買収するかもってニュースを見たのですが、
Java使いの立場からすると喜んでいいのか悲しむべきか・・
380デフォルトの名無しさん:2009/03/19(木) 00:53:49
安心しろ、すでに Java は親元 Sun を離れて JCP で輪姦中だ。
381デフォルトの名無しさん:2009/03/19(木) 03:06:15
サンのハード売れてないしなあ。
レッドハットのポジションを、自社ハードとソラリスで囲い込めば成功もしたかもしれないが。
コバルトキューブとか買収したのにうまく逝かせないのはもったいなかった。
382デフォルトの名無しさん:2009/03/19(木) 11:43:04
おまいらに Sun が救えるのか
383デフォルトの名無しさん:2009/03/19(木) 12:01:34
俺達がSunだ!
384デフォルトの名無しさん:2009/03/19(木) 16:52:20
またまた、スイマセン。また、POIの質問です。申し訳ありません。

>>373さんの意見を受けてやったのですが、やはり旨く動きません。
コンパイルは通るのですが…

で、間違ってるのかと思い以下の記述をしてみました。
HSSFRichTextString s_VAL = null;
s_VAL = new HSSFRichTextString( "TEST" );

そうすると、2行目で落ちます。
で、HSSFRichTextStringのソースを見ると
  47    public HSSFRichTextString( String string )
  48    {
  49      if (string == null)
  50       string = "";
  51      this.string = new UnicodeString(string);
  52    }
の51行目のUnicodeStringで落ちてましたので、テストソースにUnicodeStringを以下のように書いて見ると、
import org.apache.poi.hssf.record.*;
import java.util.*;

UnicodeString uni_T = UnicodeString("TEST");

の箇所でjava.lang.NoSuchMethodErrorで落ちました。
java.lang.NoSuchMethodError: org.apache.poi.hssf.record.UnicodeString.<init>(Ljava/lang/String;)V
これは、J2SDKのバージョンの問題なんでしょうか?
現在J2SDK Ver1.4.2を使用していますが…
385デフォルトの名無しさん:2009/03/19(木) 17:50:12
>>384
POI全く使ったことないけど、そのエラーはJ2SDKの問題じゃないよ
UnicodeStringのStringを引数としたコンストラクタが見つからない、もしくはアクセス不可能であると考えるのが普通だろうね
386デフォルトの名無しさん:2009/03/19(木) 20:38:50
<form method="post" action="http://w1m.docomo.ne.jp/cp/iarea">
<input type="hidden" name="ecode" value="OPENAREACODE">
<input type="hidden" name="msn" value="OPENAREAKEY">
<input type="hidden" name="nl" value="URL">
<input type="hidden" name="posinfo" value="1">
<input type="submit" name="ok" value="Open i Area">
</form>

パラメータ不正のため接続できませんでした。
となってしまいました。
どうすればいいでしょうか?
387デフォルトの名無しさん:2009/03/19(木) 20:42:12
スレタイと >>1 を 100 回読み直すと良いと思うよ
388デフォルトの名無しさん:2009/03/19(木) 22:57:07
>>384
とりあえずうちの環境1.6では特に問題なし。
389デフォルトの名無しさん:2009/03/20(金) 02:03:27
JOptionPane の OK_CANCEL_OPTION でキャンセルボタンに初期フォーカスを
合わせるにはどうしたら良いですか? 自分でボタン指定するしかない?
390デフォルトの名無しさん:2009/03/20(金) 09:14:24
>>389
JOptionPaneのフォーカスに関連した話題がswingスレでやられているからあっちへ池
391デフォルトの名無しさん:2009/03/20(金) 10:09:23
DocumentBuilderでHTMLのDOMオブジェクトを作りたいのですが、方法はあるのでしょうか?
392デフォルトの名無しさん:2009/03/20(金) 12:01:51
>>391
HTMLはXMLではないのでHTMLからXMLに適合していない部分を補って無理矢理DOMを構築できるような
DocumentBuilderの実装を自作するかどこかから持ってこない限り無理。
XHTMLとして書かれているならそのままXMLとしてDocumentBuilderで扱える。
393デフォルトの名無しさん:2009/03/20(金) 12:08:57
やはり標準ではできないんですね。
ありがとうございます。
394デフォルトの名無しさん:2009/03/20(金) 13:06:52
>>393
HTMLを解析することが目的ならDOMではないけれど、
javax.swing.text.html.HTMLEditorKit.ParserCallbackのサブクラスを作って、
javax.swing.text.html.parser.ParserDelegatorに渡してやれば、
Readerから読み込まれるHTMLをSAXっぽい感じで扱える。
ParserCallbackの各ハンドルメソッドでツリーを構築してやるようにすれば
DOM的なデータ構造にもできると思う。
395デフォルトの名無しさん:2009/03/20(金) 13:58:02
>>394
ありがとうございます。実装することになればその方法を用いてみようと思います。
396デフォルトの名無しさん:2009/03/20(金) 18:35:07
Imageの中にpngから部分的に切り取った画像を入れたいのですが

切り取る矩形を引数にとって
切り取った画像をImageで返してくれる関数って有りませんか?
397デフォルトの名無しさん:2009/03/20(金) 19:18:22
>>396
java.awt.image.BufferedImage#getSubimage(int, int, int, int)
398デフォルトの名無しさん:2009/03/20(金) 20:00:37
>>397
ありがとうございます!
やってみます!
399デフォルトの名無しさん:2009/03/20(金) 22:51:10
Javaで.NETでいうFile.ReadAllTextみたいなメソッドって無いんでしょうか。
BufferedReaderで全行読みつつ改行コード付け直す作業が不毛で仕方ないです。
400デフォルトの名無しさん:2009/03/20(金) 23:09:44
>>399
標準APIにはない。
commons IO にはorg.apache.commons.io.FileUtils#readFileToString(File, String) とかあるよ。
401デフォルトの名無しさん:2009/03/21(土) 23:21:04
クラスの中に複数のメソッドが入る
これが基本ですね。

402デフォルトの名無しさん:2009/03/22(日) 01:23:50
プレイヤーにコードを書き換えられたのを察知してゲームを強制終了やフリーズさせるのは何て仕組み?
403デフォルトの名無しさん:2009/03/22(日) 02:33:56
必殺チート殺し
404デフォルトの名無しさん:2009/03/22(日) 04:36:34
まあ通信エラーでも誤判定される諸刃の剣だけどな。
405デフォルトの名無しさん:2009/03/22(日) 11:02:03
あるクラスにはフィールドを書き換えるAメソッドと
フィールドを読み込んでなにかするBメソッドがあって、
AメソッドとBメソッドは別のスレッドから呼び出されるとします。
そのとき、Aメソッドで書き換えている途中に、Bメソッドがよびだされり
しても大丈夫ですか?
それとそれがおこらないようにするにはどうしたらいいですか?
どうしても分かりません。よろしくお願いします。
406デフォルトの名無しさん:2009/03/22(日) 11:25:28
>>405をお願いします。
本当に困ってます。
407デフォルトの名無しさん:2009/03/22(日) 11:30:36
>>405
syncronized
408デフォルトの名無しさん:2009/03/22(日) 11:34:03
>>407
syncronizedは一つのメソッドを同時に他のメソッドから呼び出せないことで、
syncronizedのついた別々のメソッドは同時に呼び出せるんじゃないんですか?
409デフォルトの名無しさん:2009/03/22(日) 11:36:14
×syncronized
○synchronized
410デフォルトの名無しさん:2009/03/22(日) 11:36:18
しらべたらあってました。
有難うございました。
さようなら。
411デフォルトの名無しさん:2009/03/22(日) 14:14:44
入門書くらい読めよ
412デフォルトの名無しさん:2009/03/22(日) 15:12:50
まぁ俺様が Java 始めた頃は入門書すらなかったけどな。
413デフォルトの名無しさん:2009/03/22(日) 16:58:33
*7がどうのこうの言ってた時代が懐かしいw
414デフォルトの名無しさん:2009/03/22(日) 17:02:59
*7ってなに?
415デフォルトの名無しさん:2009/03/22(日) 17:04:33
俺様が始めたころはJavaす

いや、なんでもない。
416デフォルトの名無しさん:2009/03/22(日) 18:20:25
真空か
いや何でもない
417デフォルトの名無しさん:2009/03/22(日) 21:31:35
tibiaってゲームしってます?
これはjavaで作られてるんですか?
418デフォルトの名無しさん:2009/03/22(日) 23:10:11
よく解らんけど公式のトップページの拡張子は思いっきりphpだが
419デフォルトの名無しさん:2009/03/22(日) 23:13:33
>>417
よくわからないが、クライアントは違うと思う
420デフォルトの名無しさん:2009/03/23(月) 09:26:29
クラスのメンバとしての定数宣言で、以下のように書くと・・・

private static String REPLACE_ID

Eclipseの警告メッセで、

>名前 'REPLACE_ID' はパターン '^[a-z][a-zA-Z0-9]*$' に一致しなければなりません。

というのが出ます。
ビルドして実行するのには問題無いですが、何か定数に名前付けるルールみたいなのあるんですか?
これはそれに違反しているという警告ですか?
421デフォルトの名無しさん:2009/03/23(月) 10:33:34
オブジェクトがいまいちわからない>_<
422デフォルトの名無しさん:2009/03/23(月) 11:40:42
>>420
;
423420:2009/03/23(月) 13:37:18
正確には
private static String REPLACE_ID = "文字列";

と記述したときにその警告が出ます。
424デフォルトの名無しさん:2009/03/23(月) 13:44:52
SunとかのJavaの命名カルチャーだと思われる
先頭単語はすべて小文字、続く単語は先頭のみ大文字
ってどうですか?
425デフォルトの名無しさん:2009/03/23(月) 13:45:22
final 付けたらOKとかない?
426デフォルトの名無しさん:2009/03/23(月) 13:48:40
'^[a-z][a-zA-Z0-9]*$' に一致しなければなりません。

を素直に読むと、
一文字目は英小文字(aからzまで)で、
それ以降は英数文字(aからz、AからZ、0から9)が最後まで何個か(ゼロ個含む)続く文字列。
427デフォルトの名無しさん:2009/03/23(月) 13:53:52
>>423
final 宣言がされていない変数だからキャメル表記 (replaceId 等) で書けという意味。
それが定数なら public static final String REPLACE_ID = "文字列" と書け。
428デフォルトの名無しさん:2009/03/23(月) 13:54:15
http://eclipsewiki.net/eclipse/?CheckStyle%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3
>CheckStyleプラグイン
これか?使ったこと無い。
429デフォルトの名無しさん:2009/03/23(月) 15:28:06
// Sample.java
import a.OtherPackageClass;

class Sample extends OtherPackageClass
{
public static void main(String[] args)
{
OtherPackageClass opc = new OtherPackageClass();
opc.protectedInstanceMethod(); ←コンパイル時エラー
opc.protectedStaticMethod(); ←こっちは実行できる
}
}

// a/OtherPackageClass.java
package a;
public class OtherPackageClass
{
protected void protectedInstanceMethod()
{
System.out.println("protectedなインスタンスメソッド実行");
}
protected static void protectedStaticMethod()
{
System.out.println("protectedなクラスメソッド実行");
}
}
430デフォルトの名無しさん:2009/03/23(月) 15:29:13
上記のソースコードの "opc.protectedInstanceMethod();" の部分で、
「protectedInstanceMethod()は a.OtherPackageClassでprotectedアクセスされます」
と表示され、コンパイルエラーになってしまいます。
一方、"opc.protectedStaticMethod();" の部分は、エラーは出ず、普通に実行できます。

記述した2つのメソッドは両方とも、スーパークラスのメンバにアクセスしようとしているし、
protectedは「全てのサブクラスからアクセス可能」という性質を持っているから、
2つともアクセスできると思うのですが・・・

なんでインスタンスメソッドの方だけアクセス出来ないのでしょうか??
431デフォルトの名無しさん:2009/03/23(月) 16:59:59
>>429
protected を付けたインスタンスメソッドは同一インスタンスのスーパークラス (つまり super)
に対して呼び出せる。その例だと ocp.protectedInstanceMethod() は別インスタンスの
protected メソッドなので NG。一方で protected なクラスメソッドはそもそも特定のインスタンスと
結びついているわけではないのでサブクラス内からであればどこでも呼び出せる。

同一パッケージ内でも呼び出せるが話がややこしくなるので省略。
432デフォルトの名無しさん:2009/03/23(月) 18:02:09
>>430
protectedアクセスでは同一パッケージまたはサブクラスからアクセスできるというものの、
同一パッケージの場合とサブクラスの場合では同一パッケージの方がアクセス性が緩くなっている。
ttp://java.sun.com/docs/books/jls/third_edition/html/names.html#6.6.1 (総則)
ttp://java.sun.com/docs/books/jls/third_edition/html/names.html#6.6.2 (詳細規則)
ttp://java.sun.com/docs/books/jls/third_edition/html/names.html#6.6.7 (例)
つまり6.6.2.1節の二つ目の項の規則に従って、
C=OtherPackageClass、E=opc、Id=protectedInstanceMethod、S=Sampleとすると、
opc.protectedInstanceMethod()でアクセスできるのはopcがSampleまたはそのサブクラスの場合になる。
だからOtherPackageClass opc = new OtherPackageClass();でなくSample opc = new Sample();なら、
opc.protectedInstanceMethod()は問題なくコンパイルを通る。

クラスメソッドの場合は、
ttp://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.4.8
なのでサブクラスのSampleからでもアクセスできる。
ところでopc.protectedStaticMethod()はOtherPackageClass.protectedStaticMethod()と書いた方がいいかも。
433デフォルトの名無しさん:2009/03/23(月) 18:18:59
継承に関するアクセス権って、基本、

・private
・protected
・public

の三つで、
friendとかパッケージプライベートとかは
オブジェクトやクラス間の横のつながりの不便さを補う為のもんだから、
分けてせつめいしたり理解させた方が誤解がないと思う。
434デフォルトの名無しさん:2009/03/23(月) 18:21:57
friend?
435デフォルトの名無しさん:2009/03/23(月) 19:14:12
You are my friend.
436デフォルトの名無しさん:2009/03/23(月) 19:44:27
protected static void protectedStaticMethod();

opc.protectedStaticMethod(); ←こっちは実行できる

ほんとに?
437デフォルトの名無しさん:2009/03/23(月) 19:51:34
>>434
Javaにはないけど、概念だけ教えとくと
パッケージプライベートの便利さがみえてくる。
438デフォルトの名無しさん:2009/03/23(月) 20:15:05
>>430
大体答えは書かれていると思うけど、付け加えるとprotectedは
スーパークラスのメソッドを呼び出すための道具だとはあまり
「考えない方が」良いと思う。
この用途にはまずパッケージプライベートを使う方が良い。

何でもかんでもprotectedにしてしまうとそのクラスを利用する
他の開発者にとってはpublicと殆ど大差ないので。
protectedなメソッドはパッケージの開発者自身ではない第三者
がそのクラスを継承して使う際に、一部の実装を変更するため
に提供するもの、程度に考えた方が良い。

なのでprotectedなメソッドを実装する際は第三者に変更される
可能性を考慮して内容は最小限に、注意深く行う必要がある。
439デフォルトの名無しさん:2009/03/23(月) 20:29:22
package test;
public class Hoge {
  protected void funcM() { System.out.println("funcM"); }
  protected static void funcS() { System.out.println("funcS"); }
}
//++
import test.*;
class Foo extends Hoge {
 void f1(Hoge other) {
   funcM(); // 継承してるのだからOK
   this.funcM(); // 継承してるのだからOK
   other.funcM(); // 他のインスタンスは×
   funcS(); // 継承してるのだからOK
   this.funcS(); // 継承してるのだからOK
   Hoge.funcS(); // 継承してるのだからOK
   other.funcS(); // staticなのだからインスタンスの確認は不要でOK!!!
 }
}
最後のがちと特殊に見えるのかな。
440デフォルトの名無しさん:2009/03/23(月) 20:44:45
>>436
よく見ると main() を持ってる Sample が OtherPackageClass のサブクラスになってる。
441デフォルトの名無しさん:2009/03/23(月) 21:16:03
単に static だからじゃね?protected はカンケー無い
442デフォルトの名無しさん:2009/03/23(月) 21:20:35
protected my friend
443デフォルトの名無しさん:2009/03/23(月) 21:21:04
>継承に関するアクセス権って、基本、
>・private
>・protected
>・public
>の三つで、

「なし」 を忘れてるよ。全部で4つだろ。java 入門書を最初から読み直せ。
444デフォルトの名無しさん:2009/03/23(月) 21:37:15
なし=パッケージプライベート
勉強になったね^^
445デフォルトの名無しさん:2009/03/23(月) 21:37:40
「基本」て言ってるしその直後にパッケージプライベートを挙げてるし (「なし」って何だよ)。
仕様書の最初の1ページ読んで実装始めるタイプだな。
446デフォルトの名無しさん:2009/03/23(月) 21:58:09
「基本」って何だよwww
447デフォルトの名無しさん:2009/03/23(月) 21:59:03
「アクセス権が3つ」は、誰が見ても明らかに間違いだろ。
448デフォルトの名無しさん:2009/03/23(月) 22:04:12
パッケージプライベートや friend は OO の派生継承に絡むスコープの制限じゃないから
別扱いって意味じゃね。
449デフォルトの名無しさん:2009/03/23(月) 22:08:00
どうでも良い知識をひけらかすためにいちいち煽るなよ ハズカシイ
450デフォルトの名無しさん:2009/03/23(月) 22:08:17
OO全体を見てる奴とJavaしか視野に入ってない奴の齟齬だろ。
451デフォルトの名無しさん:2009/03/23(月) 22:13:31
継承に関するアクセス権って、基本、

・private
・protected
・public

の三つで、
friendとかパッケージプライベートとかは
オブジェクトやクラス間の横のつながりの不便さを補う為のもんだから、
分けてせつめいしたり理解させた方が誤解がないと思う。

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
どうでも良い知識をひけらかして大恥かいちゃったひと
452デフォルトの名無しさん:2009/03/23(月) 22:28:58
パッケージプライベート=なしだと気付かず蘊蓄の御披露目しちゃった アフォ 赤面www
453デフォルトの名無しさん:2009/03/23(月) 22:36:46
private protected てアクセス制御がどっかの言語にあったような、と思って調べたら
JDK 1.0 だった。初版の虎本で見たんだったかな。あの本も今思えば、特に AWT あたりで
試行錯誤の結果と思われるむちゃくちゃな知識が書いてあったが。
454429:2009/03/23(月) 22:36:51
たくさんのレスありがとうございました。

なるほど、つまり、スーパークラスのオブジェクトを使って、
アクセスしようとしたことが原因なんですね。

cloneメソッドを調べる→あれ?protectedってなんだ?
→そもそもメソッドを継承するってどゆこと?
って感じでズブズブと深みにハマってしまいましたOTL

--補足--
いろいろ調べてみたらcoreJAVAの225ページに、
「サブクラスから、スーパークラスのオブジェクトのprotectedなメンバにはアクセス出来ない。
 なぜならprotected修飾子の性質を利用し、スーパークラスのprotectedなメンバにアクセスする目的で、
 サブクラスを作成するのを防ぐためである」
みたいな事が書いてありました。
455デフォルトの名無しさん:2009/03/23(月) 22:37:44
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
ほうほうほう。
それじゃ何でスカイ?

>friendとかパッケージプライベートとかは

も入れて、全部で5つだとでも言うんでスカイ?
456デフォルトの名無しさん:2009/03/23(月) 22:41:50
矢印って失敗すると恥ずかしいよな。
457デフォルトの名無しさん:2009/03/23(月) 22:56:09
このスレの常識が決定いたしました!

javaのアクセス権

・private
・protected
・public
・friend
・パッケージプライベート

の計三つです。

ギャハハハハハハハハ腹痛い〜〜〜
458デフォルトの名無しさん:2009/03/23(月) 23:04:57
>>457
もうとっくに気付いてて、振り上げた拳をおろせなくなってるだけだとおもうけど、
>>433 では OO 的に意味のあるスコープ制約って Java でいう private, protected, public の
3 つだと言ってるところに、>>443 で「Java のスコープ制約は『なし』も入れて 4 つだ」なんて
ズレた事言い始めるからおかしくなってんじゃねぇの。そうやってバカのふりしてあがくと
余計に無様を晒すだけだよ。
459デフォルトの名無しさん:2009/03/23(月) 23:08:48
>>458
馬鹿にかまうと余計暴れるぞ。
460デフォルトの名無しさん:2009/03/23(月) 23:11:20
そんじゃ、「パッケージプライベート」 は 「OO 的に意味のあるスコープ制約」 ではありませ〜〜ん

てか?
461デフォルトの名無しさん:2009/03/23(月) 23:12:35
だったら private も 「OO 的に意味のあるスコープ制約」 に入らないよな・・・
462デフォルトの名無しさん:2009/03/23(月) 23:13:50
で、結局、friend は
Java の OO 的に意味のあるスコープ制約って
なのか?

ギャハハハハハハハ
463デフォルトの名無しさん:2009/03/23(月) 23:28:49
パッケージという概念に OO は関係ないし、private なかったら OO のブラックボックス化が不可能だし。
という所まで理解は進んでいないのか。まぁ初心者質問スレだから良いけど…
Java のスコープ制限 4 つってのもどっかの本で読んだ知識でしたって感じだな。
464デフォルトの名無しさん:2009/03/23(月) 23:30:54
>>463
「パッケージ」
「パッケージプライベート」
この違いがわかっとらんの?
465デフォルトの名無しさん:2009/03/23(月) 23:32:21
>パッケージという概念に OO は関係ないし、

それだたら、private も public も protected も OO とは関係ないじゃんw
466デフォルトの名無しさん:2009/03/23(月) 23:33:16
>>464
パッケージプライベートがパッケージという概念の上に成り立っている事も理解できてないのか…
467デフォルトの名無しさん:2009/03/23(月) 23:33:40
で、結局、friend は
>Java の OO 的に意味のあるスコープ制約
なのかよ?

ギャハハハハハハハ 笑い死にしそう〜
468デフォルトの名無しさん:2009/03/23(月) 23:40:48
いきなり伸びてると思ったら馬鹿が発狂してるだけか
469デフォルトの名無しさん:2009/03/23(月) 23:41:56
この人は侮辱を受けても、その場で言い返すことすらできないタイプだろう
だから匿名のネットでうさを晴らす
そんなことをしても、現実での自分の立場は変わらないのに
470デフォルトの名無しさん:2009/03/23(月) 23:44:11
こうみるとJAVA忠のひとって、C++にいるカルトとはまた違った意味でカルトだよな。
VIPぐらいだとカルトとは言われないで「VIP発狂wwww」のかもしれないけどねぇ

言語設計者の定義でしかないし、アクセス権は3つってことでいいんじゃないの?
たぶんカルトで発狂してる厨房よりははるかにOO思想に慣れてるしアクセス権について分かってると思うよ。

そういえばこの発狂カルトは、たぶんprotectedの質問した本人だろう。IP抜かれてんぞ。ばれてんだよw
471デフォルトの名無しさん:2009/03/23(月) 23:44:22
ああ、こんなことをしても、

javaのアクセス権は

・private
・protected
・public
・friend
・パッケージプライベート

の計三つです。

という現実は変わらないよ〜〜〜w
472デフォルトの名無しさん:2009/03/23(月) 23:46:06
>言語設計者の定義でしかないし、アクセス権は3つってことでいいんじゃないの?

まだ言ってるよw
java のアクセス権は 3つ だってよ〜〜〜w
473デフォルトの名無しさん:2009/03/23(月) 23:49:57
必死に複数レスに分けたりして、余程「なし」発言を流したいみたいだなこの人。
技術知識が無いのはもうバレバレなのに何顔真っ赤にしてんだか。
474デフォルトの名無しさん:2009/03/23(月) 23:55:07
バカが自爆しているのを見ながら飲む酒はうまい。
475デフォルトの名無しさん:2009/03/23(月) 23:55:29
なんだこの鬱陶しい流れは
476デフォルトの名無しさん:2009/03/23(月) 23:56:46

          ____
       / \  /\ キリッ   「なし」 を忘れてるよ
.     / (ー)  (ー)\     全部で4つだろ
    /   ⌒(__人__)⌒ \    java 入門書を最初から読み直せ
    |      |r┬-|    |
     \     `ー’´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一””””~~``’ー?、   -一”””’ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ   <なしって何だおwwww
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)   
| / / /     |r┬-|    | (⌒)/ / / //       
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/      
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー’´      ヽ /    /
 |    |   l||l 从人 l||l      l||l 从人 l||l  バンバン
 ヽ    -一””””~~``’ー?、   -一”””’ー-、
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))
477デフォルトの名無しさん:2009/03/23(月) 23:57:06
final class Unko {
 protected void hoge() {
  System.out.println("うんこ:");
 }
}
  ↑
よくいるよね、こういうの。
final クラスのメソッドに protected 付けるバカ。
478デフォルトの名無しさん:2009/03/24(火) 00:17:43
>>477
コーディング規約が古いところだとそもそも「なし(笑)」の考慮が抜けてる所が多いから
protected で代用されているとか、あと何かスコープ修飾子を付けとかないと気持ちの悪い
潔癖症とか (ないか)。
private final なインスタンスメソッドのように役割上無意味になってしまう修飾子の
組み合わせが出るのは仕方がない。だがこういうのは危険人物を見分ける指標になる。
479デフォルトの名無しさん:2009/03/24(火) 00:23:10
スレが伸びてると思って期待してみたけど、鼻糞小僧が発狂しただけかw
恥ずかしい奴だったな。もう消えてなくなっちゃたんだろうけど
480デフォルトの名無しさん:2009/03/24(火) 00:28:22
>>469

そうは言うけど>>467の知能じゃ無理だろ。
プログラム言語のパラダイムで考えてやっても無理だな。
たぶん、こいつの脳味噌にはクギでも突き刺さってんじゃないのか?
481デフォルトの名無しさん:2009/03/24(火) 00:31:20
危険人物というよりも、クロージャとか次のパラダイムが入ってくるそうともいえなくなる。
482デフォルトの名無しさん:2009/03/24(火) 00:32:17
ひさびさに鼻糞君が自爆したスレはここですか?
483デフォルトの名無しさん:2009/03/24(火) 00:32:53
int型の数値を文字列Stringに変換できますか?

int a=100を文字列として扱いたいのですが、
キャスト変換したらエラーでてしまいました
484デフォルトの名無しさん:2009/03/24(火) 00:35:05
a.toString
485デフォルトの名無しさん:2009/03/24(火) 00:36:27
>>481
去年のうちには出る出るとか言ってgdgdになってたから追うの止めてしまったけど
今どうなってんのさ 7 は。
486デフォルトの名無しさん:2009/03/24(火) 00:38:00
>>483
int → String は Integer.toString(a) または String.valueOf(a)
String → int は Integer.parseInt(str)
487デフォルトの名無しさん:2009/03/24(火) 00:38:51
scalaでいいじゃん、楽しいよscala
クロージャまじ便利
488483:2009/03/24(火) 00:40:08
>>484
>>486
ありがとうございます
助かりました
489デフォルトの名無しさん:2009/03/24(火) 01:03:30
う〜ん・・・パッケージプライベート なんて言葉が出てきたから、ちょっと???と思った。
たとえば、hoge ディレクトリに Unko.java と Manko.java がある。

■hoge/Unko.java
package hoge;
class Unko {
 int a = 999; //(あ)
}

■hoge/Manko.java
package hoge;
class Manko {
 void hoge()
 {
  System.out.println( a ); //(い)
 }
}

(あ) の int a は private も protected も public も、何も付けていないから
「パッケージプライベート」である。
したがって (い) は正しく実行され 999 と表示される。

これは正しい?
490デフォルトの名無しさん:2009/03/24(火) 01:06:34
>>489
Unko unko = new Unko();
System.out.println(unko.a);

なら 999 と表示される。パッケージプライベートは相手が同一パッケージに所属するか
どうか以外は public と同じ。
491デフォルトの名無しさん:2009/03/24(火) 01:24:15
鼻糞君はまだいるのか?
492デフォルトの名無しさん:2009/03/24(火) 01:34:45
>>490
つまり、間違ってるってこと?

>パッケージプライベートは相手が同一パッケージに所属するか
>どうか以外は public と同じ。

は?よくわかりません。
2つのソースファイルとも、package hoge; で「同一パッケージに所属する」から
Manko.java から Unko.java の a は「public と同じ」ようにアクセスできるんじゃないの?
493デフォルトの名無しさん:2009/03/24(火) 01:35:36
そもそも java の パッケージプライベート って何?
494デフォルトの名無しさん:2009/03/24(火) 01:38:27
■hoge/Unko.java
package hoge;
class Unko {
 int a = 999; //(あ)
}

■hoge/Manko.java
package hoge;
class Manko {
 int a = 888; //(い)
}

こういった場合、(あ) と (い) の int a が重複してエラーになるの?
パッケージプライベートだから。
495デフォルトの名無しさん:2009/03/24(火) 01:44:25
>>492,494
a はパッケージ内のどこからでも参照できるが、特定の Unko インスタンスに
結びつけられた変数であって、C のグローバール変数みたいなものではない。
というかこれはスコープ以前の問題。
496デフォルトの名無しさん:2009/03/24(火) 01:52:55
>>494
publicでも参照できないものが参照できるはずないだろ。
497デフォルトの名無しさん:2009/03/24(火) 01:54:02
いやスコープか、スコープ修飾子以前の問題な。めんどくさいな。
498デフォルトの名無しさん:2009/03/24(火) 03:10:09
なんかすげぇスレ伸びてると思ったらバカが出ただけか。
499デフォルトの名無しさん:2009/03/24(火) 03:50:01
どこの開発現場か知らないが、勝手にネーミングするなって感じだな。
500デフォルトの名無しさん:2009/03/24(火) 05:02:33
>パッケージ内のどこからでも参照できる

はぁ?
501デフォルトの名無しさん:2009/03/24(火) 05:03:45
hoge/Unko.java と hoge/Manko.java は同じパッケージなんですが・・・
502デフォルトの名無しさん:2009/03/24(火) 05:04:26
パッケージ内のどこからでも参照できるワケないお!
503384:2009/03/24(火) 10:43:52
たびたびで申し訳ありません。

先週お聞きして、色々やって見たのですがやはり以下の場所で同じエラーが出て進みません。

import org.apache.poi.hssf.record.*;
import java.util.*;

UnicodeString uni_T = UnicodeString("TEST");

エラー
java.lang.NoSuchMethodError: org.apache.poi.hssf.record.UnicodeString(Ljava/lang/String;)V

J2SDKを1.6にしたりもしたのですが上記エラーから脱出できません。

>>385さんの言葉を元にコンストラクタを見たのですが、
org.apache.poi.hssf.record.UnicodeString.UnicodeString(String arg0)
は存在しているもようです。
後、考えられる要因はなんでしょうか?

ひょっとして、Apache1.3やTomcat3.2のバージョンの問題でしょうか?
504デフォルトの名無しさん:2009/03/24(火) 11:39:55
new UnicodeString("TEST");
505デフォルトの名無しさん:2009/03/24(火) 12:09:27
入門書くらい読めよ
506デフォルトの名無しさん:2009/03/24(火) 12:59:14
>>500,502
パッケージ内からなら private のようなアクセス制限はないだろ。
何を勘違いしてる?
507デフォルトの名無しさん:2009/03/24(火) 13:02:59
すいません。
上の間違いをそのままコピーしたようで…

UnicodeString uni_T = New UnicodeString("TEST");

です。この状態でエラーとなっています。
508デフォルトの名無しさん:2009/03/24(火) 13:04:05
UnicodeString uni_T = new UnicodeString("TEST");

でした…orz
509デフォルトの名無しさん:2009/03/24(火) 13:34:52
>>504-505
m9(^Д^)ぷぎゃー
510デフォルトの名無しさん:2009/03/24(火) 13:42:34
>>472-475
この鼻糞君なんだけど、自分の愚かさに気がつくのが怖くて3ヵ月後には自爆したくなるんじゃね?
511デフォルトの名無しさん:2009/03/24(火) 13:49:50
確か次の目玉は、
swing
nio2
annotation
だったかな。moduleとかも入るような気がした。
クロジャーは時期尚早の結論になってやめたそうな。
512デフォルトの名無しさん:2009/03/24(火) 13:52:52
何じゃクロージャー止めたんかい。なら去年のうちに確定できたろうに。
513デフォルトの名無しさん:2009/03/24(火) 14:03:02
クロージャは去年の12月頃に一応の最終的な結論が出たみたい。
開発者向けの情報サイトでビデオ討論してた。
7の「これが目玉!」のスライドを見てみると、アノテーションについては言語サポートが強化されるから、次は多分アノテーションだけになると思うよ。
514デフォルトの名無しさん:2009/03/24(火) 14:15:58
次は多分アノテーションだらけになると思うよ。
515デフォルトの名無しさん:2009/03/24(火) 17:09:15
アノテーションて下手くそが設計すると C/C++ のプリプロセッサ並に意味不明な事になるよな。
言語体系変えないだけマシだけど。
516デフォルトの名無しさん:2009/03/24(火) 18:22:56
>>503
の件ですが、自己解決しました。

ひょっとしてと思い、ApacheやTomcatもバージョンを上げるとなぜか問題なく動きます。

…Apache1.3やTomcat3.2,J2SDK1.4の環境ではPOIは2.5までしかまともに動かないようです…
517デフォルトの名無しさん:2009/03/24(火) 23:08:36
プログラミングのスタイルについて皆さんの意見を下さい。
お聞きしたいのは「変数を、その変数が作られた意図とは異なる用途で使用するのはおk?」という点です。
以下に例題を記述します。

boolean execFlg = false;

if (rs.next()) {
execFlg = true;
}

//1件以上検索結果があればメソッド実行
if (execFlg) hoge.exec();

rsはありがちなresultSetと考えてください。検索結果の有無によりhoge.exec()の実行を制御する為にexecFlgというフラグを使用しています。
このソースの後ろに「検索結果の有無を出力する」という処理を追加する時、私の場合次のように書きます。

518デフォルトの名無しさん:2009/03/24(火) 23:12:30
boolean execFlg = false;
boolean rFlg = false;
if (rs.next()) {
execFlg = true;
rFlg = true;
}

//1件以上検索結果があればメソッド実行
if (execFlg) hoge.exec();

if (rFlg) {
System.out.println("データあり");
} else {
System.out.println("データなし");
}

この場合、「execFlgがあるんだからそれを使え」という方もいらっしゃいますが、
execFlgはあくまで「hoge.exec()を実行するか」を制御する為のフラグであり、
「検索結果の有無」を見る為のものではないという観点からここは多少冗長であっても
上のような書き方をするのがベストだと思うのですが、皆さんはこういうケースではどのようなスタイルで記述しますか?
519デフォルトの名無しさん:2009/03/24(火) 23:17:23
フラグなどという名称はエロゲーだけでいい
520デフォルトの名無しさん:2009/03/24(火) 23:24:37
変数の意味を「一件以上あるか」あるいは int にして件数を設定するだけの話。

boolean recordsExists = false;
while(rs.next()){
  …
  recordsExists = true;
}
if(recoredExists)
  hoge.exec();
  System.out.println("データ有り");
} else {
  System.out.println("データなし");
}
521デフォルトの名無しさん:2009/03/24(火) 23:31:16
「isナントカ」 だな。「フラグ」ってあまり使わない。
522デフォルトの名無しさん:2009/03/24(火) 23:32:28
>>518
リファクタリングしろ
523デフォルトの名無しさん:2009/03/24(火) 23:47:50
rsの行サイズ見て判断は駄目なのか
524デフォルトの名無しさん:2009/03/25(水) 02:44:44
いろいろ他のつっこみどころに意見殺到してるけど
変数の再利用については、一般的に、避けるべし、となっているな
バグの温床です
525デフォルトの名無しさん:2009/03/25(水) 14:56:49
どこが「変数の再利用」?
526デフォルトの名無しさん:2009/03/25(水) 15:02:35
>>517
ローカル変数ならばんばんやっちゃう
グローバル変数だと、頭がおかしくならない方を優先する
527デフォルトの名無しさん:2009/03/25(水) 15:42:37
グローバル変数を検討した結果導入したのであれば
書き換えられたりするのが前提となるだろうから、
もうがんばって管理するしかないよな。
528デフォルトの名無しさん:2009/03/25(水) 17:09:47
>>518
ケースバイケース。

当然、私見だけど、
その場合に関しては、将来、仕様修正やバージョンアップで
hoge.exec()の結果によって表示の有無が変化する可能性が
高い場合は分離しておく。

そうでなく、実行も表示もrsの結果の有無にのみ依存する
(=本質的な状態は一つしかない)ならば一つしか定義しない。


>>524
逆に同じ役割を持つ変数が複数あるのもバグの温床になるよ。
この場合、何方の変数もrsの有無しか表してない。


まあ、ぶっちゃければ>>526が正解だと思う。
529デフォルトの名無しさん:2009/03/25(水) 21:33:08
自分はグローバル変数を使いたいけど、他人には書き換えられたくないと。
530517:2009/03/25(水) 23:49:24
皆さんありがとうございます。
自分では意味合い重視で上のようなやり方でやってるんですが、
それでかえって変わりにくくなるのは本意でないので
状況によって柔軟に使い分けたいと思います。
531デフォルトの名無しさん:2009/03/26(木) 10:22:54
iCalendar形式のデータを読み取りたいのですが、パーサーは標準では
ないのでしょうか?
532名無し募集中。。。:2009/03/26(木) 11:01:36
パーサ標準ってのが何を指してるのか解らんけどiCal4jじゃダメなの?
533デフォルトの名無しさん:2009/03/26(木) 14:02:26
iCalendarなんてしょせんはRFC止まりだからなぁ。
標準化されてて普及してて幅広く使われなきゃ標準ライブラリには入れんだろう。
icalはアプリケーションレベルで使うもんだし。
ライブラリ層でも使うxmlとはちがうから。
534デフォルトの名無しさん:2009/03/26(木) 23:30:50
MacOS X の URL (URLConnection) クラスって setInstanceFollowRedirect(true) でリダイレクトを
有効にしても自動にリダイレクトしないし、Cookie の受け渡しも自動でやってくれないようだが
そういうもん?

java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06-153)
Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_07-b06-57, mixed mode)
535デフォルトの名無しさん:2009/03/27(金) 00:23:41
>>535
Windows環境ではとりあえずデフォルト値でされたよ
Locationヘッダ読んで自前したらいいかもね
536デフォルトの名無しさん:2009/03/27(金) 00:26:34
本来の用途とは少しずれますが、ネットワーク関連ソフトの状況表示(***へ接続,レスポンス***などなど)にLogger+自前Handlerを使うのはありでしょうか?
537デフォルトの名無しさん:2009/03/27(金) 02:57:56
>>535
http: から https: へとその逆のリダイレクトが自動で行わないみたいだった。
Cookie 管理も (ちょっと危険だが) 自分で実装したら HttpCookie の有効期限が
JP ロケールで機能しない JDK のバグにはまった orz
538デフォルトの名無しさん:2009/03/28(土) 01:43:32
Swingを勉強しはじめたばかりなので、理解がしっかりとできていないので、
教えて欲しいんだけどMVCをSwingでやるとした場合に、
クラスの構成を中心にどういった感じで作っているのか、
活用しているデザインパターン等を教えて欲しいです。
今の自分の理解だと一つのクラスにVとCが一体化しているような感じの作り方をしていて、
一般的な作り方がわかっていないので不安に・・
そういった内容がある参考にしたらいいサイトとか本があれば教えて下さい。
身近にSwingわかる人がいないのでお願いします。
539デフォルトの名無しさん:2009/03/28(土) 02:16:26
M: Documenet, XxxModel → データの管理と操作
V: JXxx (JComponent のサブクラス) → GUI 関係
C: XxxListener → イベントによるM操作、V調整を取り持つ

だが、単純なアプリなら Swing のモデルは大げさだし、複雑になれば Swing のモデルでも
不足する。別にこれでやれば全て OK という黄金律はない。まぁ勉強なら自分なりに
試行錯誤で役割分担を分けてみて、これ以上は手間に合わない趣味の領域だと
理解できたところでゴールだろう。程度問題の結論を出すには経験しかない。
540デフォルトの名無しさん:2009/03/28(土) 03:28:46
スレ違い気味だけど、INS キーのない MacBook で KeyEvent.VK_INSERT 相当の
キーイベント発生させるキーストロークの組み合わせって何?
541デフォルトの名無しさん:2009/03/28(土) 03:35:01
みんなマクなんて持ってないので分かりませんwww
PCでも買いましょう。
542デフォルトの名無しさん:2009/03/28(土) 04:06:55
マカーだけどそもそもMacOSはOSの機能としてインサートが無い
543デフォルトの名無しさん:2009/03/28(土) 04:14:03
じゃイベント発生しないのかな。Command+I とかに変更するか。
544デフォルトの名無しさん:2009/03/28(土) 04:54:53
Command+Iは普通情報ウインドウ開いちゃわないか
ブラウザだと左側にブックマーク出ちゃったりとか
545デフォルトの名無しさん:2009/03/28(土) 05:45:50
Java アプリだから動き的には問題ないけど。
じゃ Mac で JTable に行挿入とかのキーストロークの組み合わせはどうすべき?
546デフォルトの名無しさん:2009/03/28(土) 10:44:21
携帯で動作させるアプリの質問です。
板・スレ違いだったらすみません。
どの機種にも互換性のあるものを作りたいのですが、
IphoneやPCに近い携帯が出てくると、携帯で実行ファイル(exe)
を動作できたりする可能性もあるのではと思った経緯もあり、
DoJa(ドコモ)などは死滅する恐れがあるのではないかと考えました。
今から携帯用のアプリ開発を始めるなら、何がいいのでしょうか。
主観でも結構ですが、何かアドバイスを頂けませんか?
547デフォルトの名無しさん:2009/03/28(土) 11:05:58
Starプロファイルって使えないの?Dojaはいずれ死ぬだろうね。

>PCに近い携帯が出てくると、携帯で実行ファイル
これはすでにスマートフォンなら可能。
だから特にjavaでやらなきゃいけない理由はないよ。
まあ、WMのAPIをじかに叩きたいかは別にしてね。
iPhoneならobj-C触ったことない人がマスターするのにどれだけ時間かかるかってのもある。

まあ、携帯そのもので実行形式吐けるようにはならないからあくまでも携帯で動かしたいならJava MEやってればいい。

いってることが分からんならググるよろし。
548546:2009/03/28(土) 11:27:37
>>547
dです。携帯の事情はあまり詳しくなかったので、
とても参考になります。
549538:2009/03/28(土) 11:57:36
>>539さん
ありがとうございます。
>M: Documenet, XxxModel → データの管理と操作
>V: JXxx (JComponent のサブクラス) → GUI 関係
>C: XxxListener → イベントによるM操作、V調整を取り持つ
これはわかりやすいです。
JButtonなどのコンポーネントを置くクラスの中で、例えばボタンを置いていた場合、
そのボタンにaddActionListenerで対応するイベント処理を書いていても問題なさそうかも・・
ちょっとWEBのJSPやservletでするMVCとは考え方を変えた方がうまく行きそうな気がする。
少し気楽に役割分担を変えたりしながら自分で納得できるものを探してみます。
550デフォルトの名無しさん:2009/03/28(土) 13:25:19
>>546
つ JavaFX Mobile
551デフォルトの名無しさん:2009/03/28(土) 16:25:59
androidのスレはどこですか?
552デフォルトの名無しさん:2009/03/28(土) 22:42:41
落ちたよ
553デフォルトの名無しさん:2009/03/28(土) 23:25:22
java -server って、jdk 入れないと動かないの?
ふつうのランタイムじゃダメ?
java で作ったアプリを配布するとき、
説明書に 「jdk をインスコ汁」って書かなきゃダメなの?
554デフォルトの名無しさん:2009/03/28(土) 23:50:17
駄目
555デフォルトの名無しさん:2009/03/29(日) 00:11:31
嘘つくな
556デフォルトの名無しさん:2009/03/29(日) 00:26:43
後者は駄目だろ
前者は元々入ってるJDK/JREによる
557デフォルトの名無しさん:2009/03/29(日) 00:28:08
ああそういうことか
後者の質問は前者と繋がってるのね
JREじゃなくてJDKの方をって話か

Java自体をインスコしろよって言わないと駄目って意味かと思ってた
558デフォルトの名無しさん:2009/03/29(日) 00:30:55
サーバーVMってJREにはいってるのか
559デフォルトの名無しさん:2009/03/29(日) 00:45:52
自分のJava-VM(J2SE1.6)だと、メモリ2G積んでるマシンでも
newで確保出来る byte[]のサイズは高々60Mバイト弱みたい
だけどこんなものなの?
560デフォルトの名無しさん:2009/03/29(日) 01:18:40
>>558
SunのJREは入ってない
ってかServer VMじゃないと動かない実装って何?
561デフォルトの名無しさん:2009/03/29(日) 01:37:21
>>559
-Xmx で最大ヒープサイズ指定しろ
562559:2009/03/29(日) 01:54:32
>>561
java -Xで調べてみたら確かにあった。
ちょっと指定にはカンめいたものがいるが
256Mバイト取れるようになった。ありがとう
563デフォルトの名無しさん:2009/03/29(日) 12:19:31
>>562
http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/windows/java.html
マニュアルに普通に書かれている
564デフォルトの名無しさん:2009/03/29(日) 13:35:04
>>560
誰も 「Server VMじゃないと動かない」 とは言って無い。夢でも見たんか?
565デフォルトの名無しさん:2009/03/31(火) 17:47:21
Math.max(), Math.min() とかの引数に ... 版あればいいのに。
Math.max(int i1, int i2, int... other) みたいな。

とかいうチラ裏。
(↑これ書いとかないと超イラネー、理解できねー、ここで書いても云々、BugParade 逝けと
必ず荒れるんだよなー)
566デフォルトの名無しさん:2009/03/31(火) 17:57:50
それ書いても...版の使い道が思い浮かばない。
まぁ、何がしたいのかってのが確実にわかるという点ではめりっとかのう。
567デフォルトの名無しさん:2009/03/31(火) 18:11:34
Math.max(a, Math.max(b, Math.max(c, d)));

まぁ確かにインラインで書くと汚いし、メソッドに分けるほどでもないしという微妙なラインだな。
568デフォルトの名無しさん:2009/03/31(火) 18:13:00
オーバーライドしたらいいだけだろ。
569デフォルトの名無しさん:2009/03/31(火) 18:24:20
static int max(int[] args)
// 入力値条件略
int a = Integer.MIN_VALUE;
for (int b : args) {
a = Math.max(a, b);
}
return a;
}

んー。確かに微妙ではあるけどなぁ
570デフォルトの名無しさん:2009/03/31(火) 18:31:01
>>569
いや、それが素直だとおも。
571デフォルトの名無しさん:2009/03/31(火) 18:40:31
>>569
引数なしの時に MIN_VALUE 返す挙動はおかしくね? というか引数は 2 つ以上を強制する
API でないと。

static int max(int a1, int a2, int... ao){
  int max = (a1 > a2)? a1: a2;
  for(int i=0; i<ao.length; i++){
    max = (ao[i] > max)? ao[i]: max;
  }
  return max;
}
572デフォルトの名無しさん:2009/03/31(火) 18:45:15
static int max(int a1, int a2, int... ao)とstatic int max(int a1, int a2, int.[] ao)
って違うの?
573デフォルトの名無しさん:2009/03/31(火) 18:51:50
>>572
前者は max(a, b), max(a, b, c), max(a, b, c, d), max(a, b, c, d, e) と呼び側の構文上で
引数の数を増やせる。後者は必ず引数 3 つだから max(a, b, new int[]{c, d, e}); みたいな
書き方をしないといけない。
574デフォルトの名無しさん:2009/03/31(火) 19:09:12
>>571
static int max(int a1, int... ao){ 
    int max = a1;
    for(int i = 0; i < ao.length; ++i) { 
        if (max < ao[i]) {
            max = ao[i];
        }
    } 
    return max; 
}
575デフォルトの名無しさん:2009/03/31(火) 19:14:50
びみょーにもりあがっとるなw
576デフォルトの名無しさん:2009/03/31(火) 19:22:11
>>565
>(↑これ書いとかないと超イラネー、理解できねー、ここで書いても云々、BugParade 逝けと
>必ず荒れるんだよなー)

これを書くとあれるということも学習しとけ
577デフォルトの名無しさん:2009/03/31(火) 19:23:47
>>574
何が言いたいのか分かりかねるが、それだと max(a) という意味のない書き方ができるが
そういうのはケアレスミスの元になるからコンパイル時に除外出来る API 設計の方が良いだろう。

集合理論に忠実な方が美しいんだ〜と理想を追い求める数学畑の人なら、まぁ気持ちは
分からなくはないので好きにしてくれという感じだが。

>>575
まぁ次の質問が来るまでスレ遊ばせておくのも何だし。
578デフォルトの名無しさん:2009/03/31(火) 19:30:13
> そういうのはケアレスミスの元になるから
int max(int a1, int... ao) を int max(int a1, int a2, int a3, int... ao)
にすりゃいいだけじゃね?
579デフォルトの名無しさん:2009/03/31(火) 19:35:18
>>578
うん。そう。
580デフォルトの名無しさん:2009/03/31(火) 19:39:11
Arrays.sort(list);
int min = list[0];
int max = list[list.length - 1];
581デフォルトの名無しさん:2009/03/31(火) 23:05:17
HTML 用のルーズ SAX パーサなんてもんはないかね?
582デフォルトの名無しさん:2009/03/31(火) 23:55:13
NekoHTML?
583デフォルトの名無しさん:2009/04/01(水) 01:08:13
何だかアホな質問ですみませんが
なぜjava.lang.Mathクラスはfinalなんでしょうか?
finalよりabstractにした方が、例えば特定の演算に特化したサブクラスを作れるといった
メリットがあるように思えるのですが…
584デフォルトの名無しさん:2009/04/01(水) 01:46:50
>>583
そうやってみんながサブクラスを作りまくったら
もうMathクラスの実装変えられなくなるから
585デフォルトの名無しさん:2009/04/01(水) 01:47:05
ヒント:速度
586デフォルトの名無しさん:2009/04/01(水) 08:34:23
>>583
sin() とか min() とか、実装を多態化させる必要のない機能 (C や FORTRAN の関数
に近い物) だからユーティリティとして提供されている。final 修飾子が付くとサブ
クラス化やオーバーライドが行われない事が保証されるためコンパイラや JVM が
インライン展開などの最適化を行うヒントになる。

クラス内で Math の修飾子付けないで static メソッドを簡易記述したいだけなら
import static を使え。

import static java.lang.Math.*;

System.out.printf("%d%n", min(100, 200));
587デフォルトの名無しさん:2009/04/01(水) 08:38:28
補足: import static は Java SE 6 からなのでそれ以前の本やサイトには載ってないかもしれない。
588デフォルトの名無しさん:2009/04/01(水) 08:56:26
嘘を吐いてはいかん
5からある
589デフォルトの名無しさん:2009/04/01(水) 09:02:30
しつれいw
590デフォルトの名無しさん:2009/04/01(水) 09:17:28
591デフォルトの名無しさん:2009/04/01(水) 12:36:50
この前友達からもらったCDが、XPの5月30日問題のやつでインストしようとしたらMSの罠にはまるところだった。
この罠のことはもうだいぶ経ったから忘れかけてたけど、つくづくMSは信用してはいけないと思った。
C#とか使ってるやつはズルズルとMSの罠にはまってアップデートするために次のOSを買う羽目になるんだけどね・・
592デフォルトの名無しさん:2009/04/01(水) 12:51:30
「ダイエーで万引きしたバナナが腐ってた。つくづくダイエーってのは使えねぇなと思った。」
593デフォルトの名無しさん:2009/04/01(水) 16:49:44
>>592
本当に通報されるぞ
ネタでもそんなことを書くな
594デフォルトの名無しさん:2009/04/01(水) 17:49:01
>>592>>591が盗品の瑕疵に文句をつける馬鹿ではないのかという可能性を指摘しようとして
下手な例え話をしようとしたが>>593には通じなかったもしくは通じなかった振りをされた
ただそれだけだ
気にするな
595デフォルトの名無しさん:2009/04/01(水) 17:55:29
相手の言ってる事が気に入らない、詰まらない時、通じなかった振りはよくやる
596デフォルトの名無しさん:2009/04/01(水) 18:14:13
>>593
通報しました
597デフォルトの名無しさん:2009/04/01(水) 18:22:46
通風になりました
598デフォルトの名無しさん:2009/04/01(水) 18:28:15
UFO見えました
599デフォルトの名無しさん:2009/04/01(水) 19:39:22
ドンペリ入りました
600デフォルトの名無しさん:2009/04/01(水) 21:31:51
KeyがStringで、Valueは色んなクラスのオブジェクトが入る、
HashMapを作りたいんですが、ジェネリックの<>の中はどう書けばいいんでしょうか?
それとも、そういうものは作れないんでしょうか?
601デフォルトの名無しさん:2009/04/01(水) 21:36:37
Map<String,Object> map = new HashMap<String,Object>();

当然ながら get() 時にはキャストが必要。
602600:2009/04/01(水) 21:50:50
>>601
なるほど。
どうもありがとうございます。
603デフォルトの名無しさん:2009/04/01(水) 21:58:09
AudioClipで効果音を再生してるのですが、
音が重なると鳴らなくなる場合があります
どうすれば回避できるでしょうか?
たくさんAudioClipを用意しても駄目でした
604デフォルトの名無しさん:2009/04/01(水) 22:21:25
つ Java Sound API
605603:2009/04/01(水) 22:32:43
>>604
「Javaでゲーム作りますが何か」ってサイトで紹介してあったので
調べて
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/guide/sound/programmer_guide/contents.html
に行き着いたのですが、書いてある事がよく解かりませんでした

すみませんが、入門サイトのようなものはありませんか?
606デフォルトの名無しさん:2009/04/01(水) 23:33:42
/**
* 入力バッファ1 と 入力バッファ2 の内容を xor した結果を out へ代入する。
* ※全バッファのサイズは同じとする
*
* @param out : 出力バッファ
* @param in1 : 入力バッファ1
* @param in2 : 入力バッファ2
*/
private static final void XOR( byte [] out, byte [] in1, byte [] in2) {
 int i;
 for(i = 0; i < outBuf.length; i++) {
  out[i] = (byte) in1[i] ^ in2[i];
 }
}

これ以上にパフォーマンスが良くなる手段を思案中。
何か、案は無い?
607デフォルトの名無しさん:2009/04/01(水) 23:52:48
int i; が for の外に出てるのはなんか意味があるのか?
608606:2009/04/01(水) 23:56:23
>607
特に無い。癖だわ。

それと…>>606
 誤: for(i = 0; i < outBuf.length; i++) {
 正: for(i = 0; i < out.length; i++) {
だった。。
609デフォルトの名無しさん:2009/04/01(水) 23:57:43
>>606
int で 4 バイトごとに実行。
610606:2009/04/02(木) 00:05:15
>>609
やっぱり、その位かな?

便利なAPIとか埋もれてて、自分が探し出せてないのかなぁと期待したんだけどねぇ。。
611デフォルトの名無しさん:2009/04/02(木) 01:15:42
z
612デフォルトの名無しさん:2009/04/02(木) 01:33:21
intは処理系依存だから、ちょっと嫌な感じ。
バイナリで扱うのが素直じゃないか。
613デフォルトの名無しさん:2009/04/02(木) 01:51:52
javaのintは固定じゃなかったけ
614デフォルトの名無しさん:2009/04/02(木) 02:03:03
パフォーマンスを求められている時に素直だなんて何の意味もない。
615デフォルトの名無しさん:2009/04/02(木) 02:39:06
噴いたw
JavaとApache JMeterを田代砲代わりにしているVIPPERに笑ったw

韓国に攻撃されてるぞwwww8
http://jfk.2ch.net/test/read.cgi/news4vip/1229334625/11

11 名前:以下、名無しにかわりましてVIPがお送りします[sage] 投稿日:2008/12/15(月) 18:51:45.95 ID:jWfPCVPh0
田代は使うなよアパッチの攻撃力が半減する・攻撃開始19:00〜
ゲイツも同時に使うと攻撃力半減使うな

まずはJavaが入ってるか確認しましょう
入ってなかった場合
→JavaDL http://www.java.com/ja/

次にアパッチ砲をダウンロードしましょう
→Apache砲本体DLページから2.3.2 zipを http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi

次は弾込めです下のリンクから砲弾をダウンロードしましょう
http://www.shotapro.net/vsDC.zip(自動保守 ◆KAWORUKOFI thx!)

次は設定です
アパッチ砲と砲弾を解凍してアパッチ砲のフォルダの
【bin】ってフォルダをクリック
       ↓
【jmeter.bat】をクリック
       ↓
途中で黒いウィンドウ(コマンドプロンプト)が出てくるけど絶対に消さないこと
       ↓
そして、ファイルから砲弾を指定
       ↓
実行から開始を選択→砲撃開始
616デフォルトの名無しさん:2009/04/02(木) 03:44:50
ここの先生方!誰か教えてください!!

class Foo{
int x;
Foo(int x) {this.x=x;}
void setX(int x) {this.x=x;}
int getX() {return x;}
}

class Test{
public static void main(String[] args){
Foo f1=new Foo(500);
System.out.println(" 1 : "+ f1.getX());
Test t=new Test();
Foo f2=t.toObj(f1);
System.out.println(" 2 : "+ f2.getX());
}
Foo toObj(Foo f1){
Foo f2=new Foo(100);
System.out.println(" 3 : "+f1.getX());
return f2;
}
}


Foo f2=t.toObj(f1);の引数のf1はなにを示しているのか、いまいちわかりません。
f1はインスタンス化してFooのコンストラクタに500を渡しているので、
f1は500の値を持っている、ということですか?
617デフォルトの名無しさん:2009/04/02(木) 03:54:19
f1 → Foo のオブジェクトでその x には 500 の値。
t.toObj(f1) → その f1 を toObj() という処理に渡している。
Foo f2 = t.toObj(f1) → その toObj() の結果 (つまり new Foo(100) したオブジェクト) を f2 に設定。
618デフォルトの名無しさん:2009/04/02(木) 04:04:56
>>617
ありがとう先生!

つまりf1=500
f2=100

ということですか?

もしFoo f1=new Foo(); と、コンストラクタに引数がない場合は
Foo f2=t.toObj(f1); のf1の値はどうなってしまうんですかね
619デフォルトの名無しさん:2009/04/02(木) 04:19:33
Foo のコンストラクタは int を一つ指定するとコードに書いてあるので
new Foo() のように書いてもコンパイルエラーになるだけ。言い換えれば
実行時にそのような状況は発生し得ない。
620デフォルトの名無しさん:2009/04/02(木) 13:30:47
JUnit 3 の頃のテストスイートって 4 だとどうなるの?
アノテーションベースになったし イクリープス だとテストケースが選択出来ないから
多分やり方が変わったんだよねこれ。
621デフォルトの名無しさん:2009/04/02(木) 14:33:08
自己レス。テストスイートに対応するクラスに
@RunWith(Suite.class)
@SuiteClasses({ A.class, B.class, ...})
を付ければ良いのは分かったんだけど、スイートの実行前/後にどうやって処理を追加すれば
良いんだろう。とりあえず初期化/終了処理用に個別のテストケースを作って実行対象に入れたが。
622デフォルトの名無しさん:2009/04/03(金) 04:43:09
スピーカから出る音をJavaを用いて取得することはできないでしょうか?
よろしくお願いします。
623デフォルトの名無しさん:2009/04/03(金) 09:50:42
>>622
java sound apiのサービスプロバイダが対応している録音機能を持つサウンドカードかM/Bと
それに接続できるマイクがあればできる
624デフォルトの名無しさん:2009/04/03(金) 11:40:47
ja.jakartaってもう機能停止してるの?
servletのjavadocアーカイブ欲しいのにみんななくなってる
625デフォルトの名無しさん:2009/04/03(金) 17:45:34
android のスレってある?
626デフォルトの名無しさん:2009/04/03(金) 17:57:25
以前あったが落ちた
627デフォルトの名無しさん:2009/04/03(金) 18:49:20
何だこの既視感は
628デフォルトの名無しさん:2009/04/03(金) 19:47:41
>>623
ありがとうございます。
マイクが必須なのですか?
パソコン上でなっている音をすべて録音したいと考えています。
その場合はマイクはいらないと思うのですが、どうなのでしょう?
629デフォルトの名無しさん:2009/04/03(金) 22:14:41
>>620-621
@BeforeClass、@AfterClassのスィート単位のやつ?

>>624
MargeDoc(Pleiades)にJavadocアーカイブがあるよ

>>628
「スピーカーから出る音」っていったから>623はマイクを使えって答えたんだと思うよ。
スピーカーから出す前のおとをファイルに保存することなら
もっと簡単にできるよ。
AudioOutputStreamだったかな。もう忘れたよ。Java Sound Resourcesというサイトに
サンプルコードがあるから見てみるといいよ。
630デフォルトの名無しさん:2009/04/03(金) 22:46:55
>>629
すっかり忘れていたがそうスイート単位の奴。
631デフォルトの名無しさん:2009/04/04(土) 03:03:54
>>628
もしかして、他のアプリが出してる音を
Javaのプログラムから拾おうって話?
632デフォルトの名無しさん:2009/04/04(土) 03:11:13
>ご飯よー!
                ;;-、
                /ヽ;;)
        ∧_∧ /
  ∧_∧_(・∀・◎∩
 (・∀・|[__|o|_∧つ      ___
  | つ ∩(・∀・ ))     | i \ \
 と_)_)( つ|三|O     | i  l =l
       と_) ̄)        | |__ノ  ノ
           ̄       | ̄ ̄| ̄ ̄|
633デフォルトの名無しさん:2009/04/04(土) 13:30:48
XPathAPI.selectSingleNode は戻り値がNodeインターフェースになってるのですが、
Element elem = (Element) XPathAPI.selectSingleNode(root, xpath);
こうやって勝手にElementにキャストしても、Elementのメソッドが使えます。
戻り値の中身に実は、Elementインターフェースが実装されているということなんでしょうか?
634デフォルトの名無しさん:2009/04/04(土) 13:43:12
XPath の示すノードが要素 (Element) だから Element が返ってくるだけのこと。
これが属性を指していれば Attr が返ってくるしテキストを指していれば Text が返ってくる。
Element も Attr も Text も Node のサブクラス。
635633:2009/04/04(土) 13:48:36
Nodeは色んな種類があるわけですね。
NodeイコールElementで考えてました。
どうもありがとうございます。
636デフォルトの名無しさん:2009/04/04(土) 16:14:15
スレッドの勉強をしています。
下記のコードで service のスレッドを shutdownNow() で終了させたいのですが、思い通りに行きません。
どなたかご教授ください。
import java.util.concurrent.*;
public class Test
{
public static void main(String[] args) {
new Test().serviceTester();
}

public void serviceTester() {
service = Executors.newFixedThreadPool(4);

System.out.println("Stopper start");
new Stopper().start();

System.out.println("Count1000 start");
service.execute(new Count1000());
}

private class Stopper extends Thread {
public void run() {
try {
System.out.println("in Stopper()");
TimeUnit.MILLISECONDS.sleep(10);
System.out.println("Call stopService()");
stopService();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
637636:2009/04/04(土) 16:15:15
上のコードの続きです。
public void stopService() {
System.out.println("in stopService()");
service.shutdownNow();
}
private ExecutorService service;
}

class Count1000 implements Runnable {
public void run() {
for (int i = 0; i <= 1000; i++)
System.out.println(i);
}
}
638デフォルトの名無しさん:2009/04/04(土) 16:22:17
>>636
Thread#interrupted() Thread#isInterrupt() を使って割り込みステータス確認して、
割り込まれたら終了するように Count1000#run を書き直す。
639デフォルトの名無しさん:2009/04/04(土) 17:00:23
>>636
public void run(){
  for(int i=0; i<=1000 && ! Thread.isInterrupted(); i++){
    System.out.println(i);
  }
}
640デフォルトの名無しさん:2009/04/04(土) 17:57:22
MacOS X の JDK ソースってどこかで手に入らない?
Eclipse に Win 用ソースを指定しているんだけどたまに行がずれて不便なんだが。
641デフォルトの名無しさん:2009/04/04(土) 18:50:22
マカウザイ。PC使えば?
642デフォルトの名無しさん:2009/04/04(土) 18:53:28
ああここでもアフォ信者連中のせいで虐げられるか orz
643636:2009/04/04(土) 19:06:36
>>638
>>639
Count1000 を以下のように書き換えて思い通りの結果になりました。
ExecutorService の shutdownNow() が全部面倒見てくれると期待していたのですが、ちゃんと割り込みの処理も書かないといけなかったんですね。
ありがとうございました。
class Count1000 implements Runnable {
public void run() {
int i;
for (i = 0; i <= 1000; i++) {
if (Thread.interrupted())
break;
System.out.println(i);
}
if (i <= 1000) {
System.out.println("shutdownNow()によって終了された。");
}
}
}
644デフォルトの名無しさん:2009/04/04(土) 19:47:59
オブジェクトの状態更新中やファイルロックしてる最中に勝手に外から
スレッドが中断されたら困るので、終了判定/終了処理は手動で行わ
なければならないようになっている。プロセスごと止めるならある程度
OS が面倒見てくれるが、スレッドではそういうわけには行かないし。

JDK 1.0 の頃から一応 Thread#stop() 呼べばスレッド側で ThreadDeath
が発生して中断はするが、どこで中断するか分からない (=不整合状態を
残す可能性がある) ので 1.1 から推奨されなくなった。
645デフォルトの名無しさん:2009/04/04(土) 20:46:20
http://java.sun.com/javase/ja/6/download.html
の「Java SE 6 ドキュメント」から日本語のドキュメントは
落とせませんが、まだ6の日本語は無いのでしょうか?
646デフォルトの名無しさん:2009/04/04(土) 21:43:36
647デフォルトの名無しさん:2009/04/04(土) 22:02:21
>>646
自己解決したけどそこからは英語版しか落とせなくないですか?
648デフォルトの名無しさん:2009/04/04(土) 22:49:48
ものすごい初歩の質問なんだけど
public static void main(String [] args)
の()の中って何の意味があるの?
これないと system.out.println とかが使えないんだけどなんでだろ。
649デフォルトの名無しさん:2009/04/04(土) 22:57:51
>ものすごい初歩の質問

入門書ぐらい嫁よ
650デフォルトの名無しさん:2009/04/04(土) 22:58:32
println の呼び出しで何の情報を渡すか示すため。
あるいは main を呼び出す時に何の情報が必要か示すため。
言ってる意味分かる?

「なぜ括弧なのか」という話なら、そりゃ目的成就だけなら [] だろうが <> だろうが
何でも良いけど、言語仕様で丸括弧と決まっているから。
651デフォルトの名無しさん:2009/04/04(土) 23:26:33
返レスどうも
> println の呼び出しで何の情報を渡すか示すため。
printlnに文字列の配列を渡してるってこと?
System.out.println(a+b+"オバマ"); ってaとかbはintのときでも文字扱いされてるってことかな?

>main を呼び出す時に何の情報が必要か示すため。
ということはmain を呼び出すときに必要な情報が変わるということもあるってこと?
たとえば int とかでもいいってこと?
652デフォルトの名無しさん:2009/04/04(土) 23:36:39
>>651
前半はメソッドの括弧とは別の話。単に

String text = a + b + "オバマ";
System.out.println(text);

を簡略的に表記したにすぎない。+ 演算子は片方のオペランドが文字列なら
文字列連結と解釈される。つまり

String text = new StringBuilder().append(a).append(b).append("オバマ").toString();

として実行される。

後半は、呼び出される側がどんな情報を必要とするか (=呼び出し側が何を渡さなければ
ならないか) でメソッドの括弧の中身が決定するという意味。つまり括弧の中は
呼び出し側と呼び出される側で受け渡される情報の取り決め。
653デフォルトの名無しさん:2009/04/04(土) 23:39:19
間違えた。演算の優先順位考えたら

String text = new StringBuilder().append(a + b).append("オバマ").toString();

だな。
654デフォルトの名無しさん:2009/04/04(土) 23:46:56
なんとなくつかめてきたようなw
とりあえず┏O)) アザ━━━━━━━ス!
655デフォルトの名無しさん:2009/04/04(土) 23:58:12
>>648
> public static void main(String [] args)
> の()の中って何の意味があるの?

mainメソッドが受け取るパラメータの型はString[]で変数名はargsだってことだろ
656デフォルトの名無しさん:2009/04/05(日) 00:03:38
>>655
だったらvoidでいいじゃん! ってことだろ。
657デフォルトの名無しさん:2009/04/05(日) 00:12:26
public static void main(String [] args)
public static void main(void)

この2つはまったく別の関数。
名前は同じでもパラメータが違うと、別の関数になる。

・・・これもjavaの入門書に書いてある、超超超初歩の初歩だから
とにかくいっぺん、入門書を嫁!
658デフォルトの名無しさん:2009/04/05(日) 00:18:42
ああそういう意味か。
まぁそれはそれで Java の仕様で「static な void main(String[]) というメソッドを
エントリポインタとする」と決まってるだけのこと。C/C++ だと int main(void) でも
OK になってるけど。

しかしそれなら引数の String[] を省略したから System.out.println() が使えなくなった
というのは何かの間違い。
659デフォルトの名無しさん:2009/04/05(日) 01:06:38
>しかしそれなら引数の String[] を省略したから System.out.println() が使えなくなった
>というのは何かの間違い。

おそらく、

public static void main(String [] args)

が別に存在するような状況で、

public static void main(void)

に書いた System.out.println() の出力がコンソールに出ない
(public static void main(void) が呼ばれず実行されないため)
のを見てそう思い込んだのでなかろうか。
もっと単純に「mainがねえぞゴルァ」というエラーメッセージの意味が分からず、
「System.out.println() が使えなくなった 」という表現をしてるのかもしれんけど。
660デフォルトの名無しさん:2009/04/05(日) 08:11:34
アプレットで、あるコンポーネントを使う画面がDualCORE機で遅くなる。
セレロンの方が圧倒的に早いという事象に困っているんだが、VMって
DualCORE対応なんだよね。コンポーネントが糞なのかな?
661デフォルトの名無しさん:2009/04/05(日) 08:25:49
たぶんマザボが糞なんじゃね?
どらいばかくにんsたか?
662デフォルトの名無しさん:2009/04/05(日) 10:46:41
>>660
OSがバカなんじゃね?
663648:2009/04/05(日) 13:11:42
>>655
意味があったんですね。
この質問はクローズさせて頂きます。
ありがとうございました。
664デフォルトの名無しさん:2009/04/05(日) 14:40:33
今時の OS で動くものが 1CPU (1Core) しか活用できないなんて事はないだろう。
コンポーネントがどういうものかによるけど、とりあえず遅い方のマシンの JRE と
ドライバ類を確認。あと別の処理に片系 Core が食われてないか (JavaScriptとか)。
665デフォルトの名無しさん:2009/04/05(日) 14:40:49
ActiveMQ5.2でJMS使ってみているんだけど、質問するのに
ここ以外に適したスレってあります?
666デフォルトの名無しさん:2009/04/05(日) 16:02:39
Tomcat起動時にjava.net.SocketException: select failedが大量に出て起動できません…。
5.5、6.0ともに同様でした。
8080が使用中かと思い、変更してみましたがやはりダメでした。

仕方なくglassfishを入れてみましたが同じエラーが出て起動に失敗しました。

ちなみにWeblogicだと起動しましたが無茶苦茶重くて使い物になりません。

java.net.SocketException: select failed
これについて原因は何なのか、分かる方いたら教えていただきたいです…。
667デフォルトの名無しさん:2009/04/05(日) 16:12:00
>>666
select に失敗だけじゃ何とも分からないが、ありがちな所でパーソナルファイアウォール切ってる?
netstat -a の結果は?
668デフォルトの名無しさん:2009/04/05(日) 16:29:43
>>665
ここでも良いけど EE 系の質問は平日の方が回答を得られる可能性が高い。
669デフォルトの名無しさん:2009/04/05(日) 16:51:31
別に質問投げておけば答えたい人が答えたい時間に答えてくれるだろ
670デフォルトの名無しさん:2009/04/05(日) 17:26:04
APIとして、あるインタフェースHogeのデフォルト実装(不変)を用意しようと思うんだけど、

(1)ユーティリティクラスHogesを作って、Hoges.DEFAULTを使ってもらうようにするのと、
(2)Hogeを継承したクラスDefaultHogeを作って、
シングルトンDefaultHoge.INSTANCEを使ってもらうようにするのと

使い分けの基準とかある?ぱっと考えたところ、

(1)は、Hogeに関する他の実装やユーティリティメソッドを後に追加するときに
追加する場所がまとまっていて、使い勝手が良いかもしれない。
(2)は、Javadocを追加する場所があるので、それぞれのメソッドに
どのような規定値を使っているかの説明をするのに便利かもしれない。
671デフォルトの名無しさん:2009/04/05(日) 17:30:57
>>667
さっそくありがとうございます。

エラーについては、
「致命的: エンドポイント ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=8080]
は例外を無視しました: java.net.SocketException: select failured」
このようなものです。

Windowsファイアウォール、ノートンを切って実行しました。

netstat -aで8080をLISTENしているプロセスはありません。

すいません、ネットワーク関係は疎いので恐縮なんですが、
telnet localhost 8080してみたところ、
「ホストへ接続できませんでした。 ポート番号 8080: 接続に失敗しました」
と表示されます。
これが原因なんでしょうか。切っていないセキュリティソフトがあるとか…。
672665:2009/04/05(日) 17:47:13
>>668>>669
thx
それではここで質問します。
環境はActiveMQ5.2.0です。

1. local transaction中で一旦read()してrollback()したメッセージを別のsessionから
再度読み込む方法がわかりません。QueueBrowserで一覧を取得すると含まれては
いるのですが、read()では結果が返ってきません。
RedeliveryPolicyの設定が関係してそうな気がするんですが、ドキュメントがほとんど
空でよくわかりませんでした。

2. IBM MQのようにファイル転送にも使いたいと思い、ActiveMQ独自機能のBlobMessageを
試してみたいのですが、uploaderをどのように準備するのかがわかりません。
デフォルトのURLはhttp://localhost:8080/upload/になっているようなんですが、サーバー
プロセスがこのポートを空けている様子もなく、activemq.xmlにもそれらしい設定も
見当たらず。別にhttpdを用意するにしても、なにをどう設定すればいいのか...
673デフォルトの名無しさん:2009/04/05(日) 17:54:15
>>670
設計上の万人向け指針はないが、DefaultHoge を公開する必要がないなら (1)、
利用側でサブクラス化のための簡易実装版として使えるよう公開するなら (2) かな。
(1) なら Hoge の public static final DEFAULT に直接定義すれば良い。Hoges は不用。
(2) でも Hoge の public static final DEFAULT に直接定義すれば良いような気がする。
まぁそこは好きなように。

もちろん実行時に動的に実装を切り替える必要が将来的に発生しそうなら
定数じゃなくて getInstance() とかにしといた方が良い。定数的意味合いの強い
不変オブジェクトならそんな要件は無いと思うが。
674デフォルトの名無しさん:2009/04/05(日) 18:03:34
>>671
LISTEN していないプロセスが居ないなら telnet で 8080 への接続に失敗するのは当然。
ようわからんので、他に悪さしそうなアプリが起動してないか、Windows の
イベントログに何か出てないか、再起動しても同じか、ipconfig (だっけ?) でちゃんと
NIC にアドレス割り当てられてるか確認。
675670:2009/04/05(日) 18:48:33
>>673
とりあえず、インタフェースHogeは、あるシステムに対する複数の設定値を
Hogeのメソッドで返すような感じで使っているんだけど、

したがって、Hogeの既定値を用意したとき、それを使用する側にとっては
それがどのような値なのかを知らずして採用はできないし、
そして、その既定値に依存したアプリケーションに対する互換性を考えると
一度、公開してしまったら、既定値を変更することはできない。
そういう意味では、実質的に実装を公開してしまっているのと同じであり、
今さら、(1)を使ってDefaultHogeを隠蔽する意味がない気がする。

また、(2)についてはDefaultHogeは、具象クラスだしサブクラス化はさせたくない。
だって、文法的にはメソッドの引数にDefaultHogeを使うことができて、
でも、サブクラス化でデフォルトじゃないものが設定できたりするのは気持ち悪い。
Javadocも、DefualtHogeのサブクラスでは
オーバライドしたメソッドのコメントまで上書きすることをユーザに要求しないと、
DefaultHogeから記述が継承されて間違った記述が生成されるし。

インタフェース内にそのデフォルトとなるものを埋め込む方法に関しては、
そのインタフェースを使うシステムの側からすると、そんな情報はいらないのに
形式的に依存することになるのがちょっと嫌かな。
676デフォルトの名無しさん:2009/04/05(日) 18:57:08
>>675
>したがって、Hogeの既定値を用意したとき、それを使用する側にとっては
>それがどのような値なのかを知らずして採用はできないし、

このあたりの問題はこういう処理のしかたもあるんでは。

1.プロパティファイルでなんらかの指定をする(なんなら具象クラスのフルパッケージ名を指定)
  ユーティリティクラスHoges はプロパティの値を解釈して生成する具象クラスを決める。
2. DIフレームワークを使い、使う側では setHoge( Hoge hoge ) メソッドを用意して、
  具象クラスは設定ファイルで指定する。
677デフォルトの名無しさん:2009/04/05(日) 19:21:26
>>675
呼び出し側が規定値を知ってる事が実装を公開している事にはならないだろう。
「規定値」そのものに意味がないならその具体値を示さなければ良いだけの話。
前半は何を言っているのか分からん。

(2) に関してはサブクラス化させたくないなら final 宣言しておけば良い。文法的に
メソッドの引数に DefaultHoge を使われたくないならパッケージプライベートか
インターフェース内の private な Inner クラスにでもしておけば良い。
678デフォルトの名無しさん:2009/04/05(日) 19:24:04
>>674
ありがとうございます。
ipconfig /allで調べたところ、IPv6ですがアドレスは割り当てられているようです。

ローカルのTomcatにアクセスするのでネットワークは関係ないと思っていましたが、
どうもこの辺の知識が足りていないので
もうちょっと勉強してから分からなければ質問してみたいと思います。
ありがとうございました。

679デフォルトの名無しさん:2009/04/05(日) 19:31:57
古い記憶なのでアレだが LAN やインターネットにつながっていない (172.0.0.1 しか
持っていない) 環境でのサーバソケットのオープンは失敗したような気がする。
最近は常時どこかしらのネットワークにつながってるので見たことないが。
680670:2009/04/05(日) 19:41:08
>>676
ユーザが1から設定値を指定したい場合に対応するのは、
インタフェースHogeを用意して、これで十分と考えている。

設定値をどのプロパティファイルから読み込んだりする云々は、
ユーザが自分の都合に合わせてプログラミングする。
または、後で、それ用の拡張パッケージを、別途、用意してあげるとか。
(もう疲れたからやらないと思うけど)
681デフォルトの名無しさん:2009/04/05(日) 20:02:27
public static Properties getProperty()
public static Properties getProperty(String resourceName)

あんたの要件てこの 2 つのメソッドで十分なんじゃないの。
682670:2009/04/05(日) 20:06:19
>>677
>呼び出し側が規定値を知ってる事が実装を公開している事にはならないだろう。

実装を隠蔽することによって利点が得られるので、それで(1)を採用すべきだ、
という理由にはならないということ。
実装を隠蔽したとしても、そのシングルトンの説明(javadoc)に、
「このメソッドはこのような値を返すようになっています」一覧を作らないとたぶん困る。

隠蔽することによって、将来的に互換性を保ったまま何かしらの修正をする余地があるなら、
隠蔽することに価値があるんだけど、
(後だしで悪いんだけど)そのような複雑なクラスは含んでいないので(intを返すとか、InetAddressを返すとか)、
そのようなことは結構考えられないことになってることにして下さい。

>「規定値」そのものに意味がないならその具体値を示さなければ良いだけの話。

ちょっと良く分からない。とりあえず、
インタフェースHogeは、ユーザが設定できるものを抽出したものと考えてください。

>(2) に関してはサブクラス化させたくないなら final 宣言しておけば良い。文法的に

これは、
サブクラス化が便利だから(2)を採用すべきだ、
ということは理由にならないということ。
683670:2009/04/05(日) 20:22:48
>>681
しばらく考えてみたけど、良く分からない。
Hoges.DEFAULTやDefaultHoge.INSTANCEなどを追加してAPIを汚す
なんてことをするなってことかな
684デフォルトの名無しさん:2009/04/05(日) 20:26:17
>>682
規定の具体値まで明かさないと使う側が組めないなら明かす以外に選択肢はないじゃん。
将来的にそれが変更になるリスクを使う側に追わせたくないなら、具体値を明かさなくても
良いように設計を見直すべき。デザパタで言うなら Adapter や Facade、Bridge といった
所だろう。インターフェースによる実装の差し替えだけでは考慮不足。

あと難しい説明しようとしないで何が分かればゴールなのか簡潔にしてくれないかな。
685670:2009/04/05(日) 20:38:26
>>684
ゴールは、(1)と(2)のどちらを採用すべきかを決める判断基準が何であるかを知りたい。

インタフェースHogeはユーザが決めることのできるパラメータを抽出したものであり、
既定値は明かす以外に他に選択肢はない。
「実装」なんて言葉使っちゃったけど、
決めたパラメータを列挙するだけの簡単なものです。
686648:2009/04/05(日) 20:46:03
>>672
メッセージをDBに書いとけ
687デフォルトの名無しさん:2009/04/05(日) 21:14:40
>>685
その程度の事に凝ったことする必要はないってのが正解かな。Properties のようなのが
気にくわないなら項目ごとに getter/setter 用意すれば良いし、不変を保証した
「規定値オブジェクト」を提供したいなら Collections#unmodifiableMap() みたいな
設計を用意すればいい。

「実装」の隠蔽や差し替えが不用なら無理にインターフェースを使う必要はない。
特に構成パラメータを保持するだけならコンクリートクラスで十分。
688デフォルトの名無しさん:2009/04/05(日) 21:23:52
689670:2009/04/05(日) 21:49:25
>>687
悩んでて言うのもなんだけど、
既定値のクラスまたはシングルトンを用意するのがそんなに凝ったことには思えない。

またシステムが要求するのは特定のインタフェースを持ったもの
というだけなので、あえて具象クラスを選択するのもなんだかなぁ。

不変はこだわりたい。ただし、Hogeに必要なパラメータ数は、
コンストラクタで列挙するには少なくないので、ビルダパターンを使います。
さて、このビルダーはどこに置けばいいのやら。
実装の公開を嫌って、インタフェース化して
Hogesの静的内部クラスとして実装してファクトリメソッドを用意する、
はやりすぎだな。
690670:2009/04/05(日) 21:59:42
>>689
の後半はチラシの裏です、無視して下さい
691デフォルトの名無しさん:2009/04/05(日) 22:04:04
まぁどこまでが必要性でどこまでが趣味か注意だけすれば好きなようにすればいい。
692670:2009/04/06(月) 00:50:13
HogeをAPIにしたからには、これは、システムの所有物というよりは、むしろユーザ側の所有物であり、
システムの必要性の観点からHogeをインタフェースにするか具象クラスにするかを考えるのは、
システムの実装上の都合がAPIに漏れていることになること、

Hogeをインタフェースにすることでユーザが得られる利点は、おおよそアダプタを作れることであるが、
不変という条件を付けるとすると、結局、防御的コピーが必要になる可能性があること、
そしてアダプタを作ることとビルダを使うことに関する手間とパフォーマンスの優劣が微妙であること、

互換性に関していえば、インタフェースを使うと後からメソッドを追加することが不可能だが、
具象クラスならそれが可能であることから、むしろ、具象クラスを使う方が拡張性が高くなること

を考えたら、Hogeを具象クラスにした方がいい気がしてきました。
Hogeを不変の具象クラスにして、public/protectedなコンストラクタは用意しない、
静的インスタンスDEFAULTを用意して、また、静的内部クラスにそのBuilderを用意する、
という方向性で検討してみたいと思います。
どうもありがとうございました。
693660:2009/04/06(月) 01:23:42
>>661-662
グラボはノートなんでよく分からん。
OSはXPもVISTAもNG。

jconsoleで見てみるとCPU使用率が50を超えないのが臭いんだが・・・
694デフォルトの名無しさん:2009/04/06(月) 02:24:25
>>693
プロファイルを使え。JProfiler とか、アプレットでもコンパネの Java 設定で
起動オプション指定すればちゃんと使える。
695デフォルトの名無しさん:2009/04/06(月) 04:21:45
というか Java の仕様上、同期化実装がヘボいとマルチプロセッサ環境で不整合を起こす
可能性は一応ある。実際にそれが原因とおぼしき事象にはあったことはないし、起きても
再現性もないだろうが。
696デフォルトの名無しさん:2009/04/06(月) 05:25:42
HTとかだと詰まり易いけど、どうなんだろうね。
javavmがよしなに計らってくれるのだろうか。
697デフォルトの名無しさん:2009/04/06(月) 07:54:48
・・・と雑魚が申しております
698デフォルトの名無しさん:2009/04/06(月) 13:19:18
javaからndbm/gdbm/sdbmって扱えたっけ?
ググったり、本眺めてみたけど見つからない。orz

Cでライブラリ作って、JNIでぐりぐりやるべき?
699デフォルトの名無しさん:2009/04/06(月) 13:50:50
700デフォルトの名無しさん:2009/04/06(月) 14:05:10
質問です。
これまでVBなどをやっていて、javaをやり始めている状況です。
javaは、DB接続の際は、JDBCとかO/Rマッピングとかいろいろと技術が
あるようですが、javaの場合、DB接続は、その方法が
確立されていないということなのでしょうか?
http://www.atmarkit.co.jp/fjava/channel/javadb.html

VB.NETの場合は、ADO.NETを使う。O/Rマッピングのようなスタイルで
やりたい場合はLINQで。というように方法が決まっているような
ところがありますが。
701デフォルトの名無しさん:2009/04/06(月) 14:50:35
「確立されてない」とかいう単語をこのスレで使うと恐ろしいことになるぞw

あまりに選択肢がありすぎて困るぐらいだなぁ。

とりあえず接続はJDBCで確立されているし、
O/RマッパーはHibernateがメジャー。日本ではSeasar2のS2DaoやらS2JDBCやら。
Oracle使いだとToplinkとか。
DB・規模によって柔軟に構成できる、と思ってれば良いんではないかなぁ。
702デフォルトの名無しさん:2009/04/06(月) 15:12:27
>>701
レスありがとうございます。
なるほど。システムの仕様にあわせて柔軟な対応ができるという
解釈をするのですね。
703デフォルトの名無しさん:2009/04/06(月) 15:23:45
すみません、続けて質問させてください。
O/Rマッピングは、ストアドプロシージャと併用するのでしょうか?
併用する場合、役割をどう分けて考えるのかがいまいちわかりません。
そのあたりのことが解説されてるページの案内でもいいので
お願い致します。
704デフォルトの名無しさん:2009/04/06(月) 15:49:47
ストアドプロシージャをどういうときに使うかって事が知りたいとなると
Javaあんまり関係ないとおもうんだよなー。

DB中のデータを集計してDBに突っ込むような処理はストアドで処理
ってのが基本方針かな。

わざわざコスト払ってデータをローカルに持ってこないといけない処理かどうかを
考えればいいんじゃないかとおもう。
705703:2009/04/06(月) 16:50:08
自己解決しました。
706デフォルトの名無しさん:2009/04/06(月) 17:06:52

勝手に書き込むな。
俺が>>703だぞ。
707デフォルトの名無しさん:2009/04/06(月) 17:15:15
>>706
オレこそ7O3だ
708デフォルトの名無しさん:2009/04/06(月) 17:16:48
VBでやることにしました。お騒せしました。
709デフォルトの名無しさん:2009/04/06(月) 17:19:39
>>705-707
この俺こそが703だぞ。他の奴はみんな偽者。
710703:2009/04/06(月) 17:27:33
このスレ初めて書き込んだけど、いつもこんな調子なの?
711デフォルトの名無しさん:2009/04/06(月) 17:28:14
>>709
どうぞ、どうぞ。
712デフォルトの名無しさん:2009/04/06(月) 17:39:38
DBとOOPはデータの管理方法に差があるから、その間に橋渡しをする
クラスを設計するという考え方はわかるし、同意する部分もあるが、
現状のマッパーは、その使い方を学ぶのに労力を要する部分が
多いので、さほどメリットが感じられないと思うのは俺だけ?
713デフォルトの名無しさん:2009/04/06(月) 17:55:15
あんなもんコードで書くべきものを XML で書かせてるだけだから労力は変わらないよ。
むしろ増える。ただ目的に特化しているから好き勝手に書かれない (バカコーダー防止) のと、
DB に流れる SQL がそこに集約されてるからチューニング時に楽なのと、「設定ファイルに
外出しておきましました!」というと矢鱈と安心する無知な管理者 (例え実質的にコードが
書かれていようと) の為。
714デフォルトの名無しさん:2009/04/06(月) 17:59:22
というか、マッパーのためのコードや設定ファイルって、
最終的には、ツールで自動生成するもんじゃないの。
例えば、Excel でテーブルデザインしたら、 VBA 使って自動生成するとか。
715デフォルトの名無しさん:2009/04/06(月) 18:38:23
そんな単純なアクセスパターンで済むなら良いけどな。
716デフォルトの名無しさん:2009/04/06(月) 18:54:34
class Test01 {
public static void main(String[] args) {
int[] itutu = new int[5];
int[] toh = new int[10];
for (int i = 0; i < itutu.length; i++) {
itutu[i] = i;
}

こういうときに、itutu.lengthの、lengthというメゾットを
いきなり使っているのですけど、どうして使えるのでしょうか。
このlengthというメゾットは、Test01クラスに、どのように紐ついて
いるんでしょうか。java5日目です。
717デフォルトの名無しさん:2009/04/06(月) 18:57:29
>>716
配列型は暗黙的に length というプロパティを持ってる (かのように振る舞ってくれる)。
718デフォルトの名無しさん:2009/04/06(月) 19:00:00
>>717
ありがとうございます。
そのような暗黙的な一覧のようなものは、どこかで見れるのですか。
719デフォルトの名無しさん:2009/04/06(月) 19:07:32
>>718
「Java 言語仕様 配列」でぐぐれ。
まぁ length と clone() に Object 型で定義されているメソッドだけだ。
720デフォルトの名無しさん:2009/04/06(月) 19:13:32
>>719
調べてみます。わざわざ、ありがとうございました。
721デフォルトの名無しさん:2009/04/06(月) 19:48:54
質問です。
javaには、ADOやADO.NETみたいに、DBサーバに接続し、
SELECTして取得したローカルデータを変更し、
update()するだけっていうものは無いのでしょうか?
いわゆる、SQL文のUPDATEは書かずに済むっていうやつ
722デフォルトの名無しさん:2009/04/06(月) 19:52:04
>>721
ResultSet のカーソルが当たっている行は更新できる。
723デフォルトの名無しさん:2009/04/06(月) 20:04:32
>>722
kwsk

俺が探した範囲ではここまでだった。
ttp://www.atmarkit.co.jp/fjava/rensai/jdbc02/jdbc02.html
724デフォルトの名無しさん:2009/04/06(月) 20:15:37
ResultSet の API リファレンスくらい見ろ
725デフォルトの名無しさん:2009/04/06(月) 20:20:55
>>724
見ました。ありがとうございます。
APIを読むようにする習慣も身につけるようにしたいと思います。
726デフォルトの名無しさん:2009/04/06(月) 22:26:51
XML の Document に DocumentType 設定できねいの?
727630:2009/04/07(火) 01:20:02
>>631
なる。早速明日使ってみる。

客にどう説明すりゃ良いんだろう orz...
728660:2009/04/07(火) 01:21:49
名前を間違えた 番号だけどな(笑)
729デフォルトの名無しさん:2009/04/07(火) 01:39:35
>>716
メソッド(method)な。
730デフォルトの名無しさん:2009/04/07(火) 01:59:05
パエリアみたいな奴だっけ。
731デフォルトの名無しさん:2009/04/07(火) 02:23:08
おじや風くらいの事は言えと。
732デフォルトの名無しさん:2009/04/07(火) 03:34:54
抽象クラスや抽象メソッド作ってわざわざオーバーライドする意味が
よくわからない

どうせ抽象メソッドの内容カラなら、わざわざ親クラスに意味のないメソッド
作らなければいいのに
733デフォルトの名無しさん:2009/04/07(火) 03:56:37
使う方が抽象クラスまでの型しか見なかったら、サブクラスで実装されているメソッドに何が
あるか知りようがないじゃん? 抽象メソッドは「インスタンス化した時点でこのメソッドが
使える事を保証するけど実装はサブクラスにまかせてます」というもの。

abstract class AbstractFoo{
  public abstract void foo();
}
class Foo extends AbstractFoo{
  public void foo(){ System.out.println("hello, world"); }
  public void bar(){ System.out.println("boo"); }
}
AbstractFoo hoge = new Foo();
hoge.foo(); // AbstractFoo インスタンスなら foo() が実装されているからこれはOK
hoge.bar(); // hoge が bar() を実装しているかは AbstractFoo 型だけじゃ分からないから NG
734デフォルトの名無しさん:2009/04/07(火) 05:06:09
>>699
JNIまんどくさなので、とりあえずjdbm使ってみる。ありがとう。
735デフォルトの名無しさん:2009/04/07(火) 07:46:03
>>732
それは、複数のメンバーで開発をする場合に威力を発揮する。
仕様で決めたメソッド名を、末端の人たち(クラスを継承してつくる
担当の人たち)が勝手に変更できないようにするためだ。
「仕様の固定」みたいなことが目的。
無論、そういった必要性が無い状況であれば、意味のない機能だ。
736デフォルトの名無しさん:2009/04/07(火) 09:26:22
補足
ComboBoxに項目追加する場合のメソッドは、AddItem
ListBoxに項目追加する場合のメソッドは、AddItem
という形にしておくと、使い方が統一されている
クラスライブラリの提供が可能になる。
737デフォルトの名無しさん:2009/04/07(火) 09:30:05
>>732
抽象クラスを作ることは必須では無いので、状況によっては
「意味のないメソッド」もあることでしょう

有用なメソッドであれば、APIを見るだけで意図が理解できると思います。
738デフォルトの名無しさん:2009/04/07(火) 09:57:22
よく「初心者はPanelをつかっておけばいいよ」と聞きますが、PanelとContainerは具体的にどう違うんですか?
739デフォルトの名無しさん:2009/04/07(火) 10:02:22
>>738
java.lang.Object
 |
 +--java.awt.Component
    |
    +--java.awt.Container
       |
       +--java.awt.Panel

クラスライブラリのAPI仕様はドキュメントとしてあるので、
それをダウンロードしてじっくり眺めなされ。
740デフォルトの名無しさん:2009/04/07(火) 10:13:53
そのAPIを読んでもあまり違いが見えないのですが・・・
Panelは実装しているメソッドは特になくContainerそのままでですし。
Panelを使わないでコンポネントを追加するときは文字通りContainerを使ったらいけないのですか?
741デフォルトの名無しさん:2009/04/07(火) 10:15:11
Panel って AWT だろ。使うなら JPanel にしておき。

で Panel の API リファレンスを見れば分かるだろうがはっきり言って違いはほとんど無い。
だが Container を Panel と統合した場合、Window を Panel から派生させなければならなくなる。
Panel と Window は似て非なるもの。だから双方に共通する特徴を Container という形で
抽象化して共通のスーパークラスにしたと思われる。コンポジットでツリー化するなら
抽象化した方が良いし。

new でインスタンス化するなら Panel、その他、コンポーネントの親をたどったり、
GridBagLayout のユーティリティメソッドを作るような場合は Window のような非 Panel
でも大丈夫なように Container として参照する。
742デフォルトの名無しさん:2009/04/07(火) 10:28:10
だめだこりゃ
743デフォルトの名無しさん:2009/04/07(火) 10:33:54
データベース接続についての質問です。
JDBCライブラリで接続してテーブルを読む時は、処理が終わるまで、
データベースとの接続を維持する必要がありますが、SELECTで
指定したテーブルをクラスにまとめてローカルのメモリなどに
保存するライブラリはないのでしょうか。
744デフォルトの名無しさん:2009/04/07(火) 10:42:57
>>743
O/R マッピングとかでぐぐれ
745デフォルトの名無しさん:2009/04/07(火) 10:50:04
>>741のようによく「初心者はPanelを使えばいいよ」といわれますが・・・
JPanelというのはlight weightであってContainerと実質同じなんですが、それも踏まえてPanelとどう違うかをお聞きしているんですけどやっぱり難しいんですか?
746デフォルトの名無しさん:2009/04/07(火) 11:08:28
「Java謎+落とし穴」って本で「Swingはかなり重い」って書いてあったんですが
実際どうなんでしょうね
747デフォルトの名無しさん:2009/04/07(火) 11:18:46
1.4で普通に使えるようになって、1.5以降ではかなり軽くなった。
今時のマシンだったら違いはわからんと思う。
748デフォルトの名無しさん:2009/04/07(火) 11:21:44
>>746
実際は、そのシステムの種類によるでしょ。
ハードウェアとかプログラムの内容とか。
君が想定している範囲でテストをしないと
結論は出ないと思うよ。
749デフォルトの名無しさん:2009/04/07(火) 11:38:13
>>746
今時の、というか一〜二世代前の環境でも問題はない。
750デフォルトの名無しさん:2009/04/07(火) 12:48:52
先生方、インターフェースについて教えてください

interface cc{
public static final int mp=210;
public abstract void sum();
}

public class a{
public static void main(String args[]){
sub asd=new sub();

asd.sum();
asd.sum1();
}
}

class superr{
public void sum1(){
System.out.println(mp);
}
}

class sub extends superr implements cc{
public void sum(){
System.out.print("勇者のMP:");
}
}
インターフェースを実装したクラスsubの親クラスsuperrクラスでは
インターフェースで設定した変数(int mp)は使用できないんでしょうか?
751デフォルトの名無しさん:2009/04/07(火) 12:59:08
>>750
public なフィールドは継承関係にかかわらず参照できるんじゃね?
インターフェイスではもともと public static なフィールドしか宣言できないが。
752デフォルトの名無しさん:2009/04/07(火) 13:01:16
superrはccを実装していないじゃん
その場合に限ればsuperrの中でもcc.mpで参照できるけど
753デフォルトの名無しさん:2009/04/07(火) 13:07:11
>>744
レスありがとうございます。
私がイメージしていたものは、O/Rマッピングというよりも、
テーブルのデータが配列(のような)形式で格納されている
ものです。

テーブルを読む際、レコードを進むだけでなく、戻ったりも出来て、
且つ、接続を切っててもデータにアクセスできるResultsetという
イメージなのですが。(帳票など参照系にはこういうのがあると
便利なので)
754デフォルトの名無しさん:2009/04/07(火) 13:19:18
>>753
そんなツールを自分で作ってもたいした苦労なく作れる物だと思うが?

だいたいResultSetがそういう風になってないのには理由があると想像できない?
1000件程度のデータしか管理されていないのであれば、メモリ上に保持できるだろうけど、
これが10万件とかなったとき、どうするの?

自分の場合は1000件程度なんで大丈夫ですというのであれば、
LinkedListに値をHashMapで突っ込んだ奴でも返せば、足りるんじゃないかなぁ。
755デフォルトの名無しさん:2009/04/07(火) 13:26:01
自分で作れとか書いたけど、DBUtilsは調べてみたほうが良いかもしれない。
756デフォルトの名無しさん:2009/04/07(火) 13:53:21
>>754
レスありがとうございます。
ResultSetの設計理由も分かるのですが、M$製品の話ですが、
ADO.NETでは、テーブルのデータを丸ごとメモリに保存する機能が
あるのですよ。(DataTableクラスにデータが格納される)
それで、JDBC(広く言うとjava)の世界にもそういったもの
がないのかなと思って聞いてみたのです。
LinkedListやHashMapあたりを使って自作という結論に落ち着く
のでしょうかね。


>>755
調べてみます。ヒントとなるキーワードありがとうございます。
757デフォルトの名無しさん:2009/04/07(火) 15:30:01
Fileクラスのlength()でファイルのサイズを取れるのはいいんだけど、バイト単位で扱いづらいです。
バイト単位の数値をキロバイト、メガバイトに変換してくれたり、適当な位置にカンマを入れて見やすくしてくれるクラスとかメソッドって無いですか?
自分で書くのは面倒くさいです。
758デフォルトの名無しさん:2009/04/07(火) 15:36:22
これはまた大きな釣り針が・・・・
759デフォルトの名無しさん:2009/04/07(火) 15:50:02
たぶんJavaじゃなくてVBかC+のスレの誤爆だと思いますよw
760デフォルトの名無しさん:2009/04/07(火) 15:58:27
いやマジで
いちいち割り算したり文字列にしてカンマ入れたりしてるの?
761デフォルトの名無しさん:2009/04/07(火) 16:11:54
いちいち割り算って・・・。

カンマなら、NumberFormatとかDecimalFormatとか使えばいいじゃん。
たった2,3行書くのもいやなの?
762デフォルトの名無しさん:2009/04/07(火) 16:16:28
いやです。
763デフォルトの名無しさん:2009/04/07(火) 16:21:38
息をするのも面倒くせえとか言ってるとケンシロウに秘孔を突かれるぞ
764デフォルトの名無しさん:2009/04/07(火) 16:31:14
息をするのもー
面倒くせえーよー
765デフォルトの名無しさん:2009/04/07(火) 16:49:58
import java.text.DecimalFormat;
public class test {
  public static void main(String[] args) {
    int i, n=10;
    DecimalFormat exFormat1 = new DecimalFormat("###,###,###");
    for(i=1;i<=5;i++) {
      System.out.print(exFormat1.format(n)+", ");
      System.out.print(exFormat1.format(n/1024)+"K, ");
      System.out.print(exFormat1.format(n/1024/1024)+"M, ");
      System.out.println(exFormat1.format(n/1024/1024/1024)+"G");
      n *= n;
    }
  }
}
766757:2009/04/07(火) 17:14:13
>>758-760
バカは黙っててください
767757:2009/04/07(火) 17:16:32
>>761
>NumberFormatとかDecimalFormat
そういえばそんなクラスがあった・・・
しょうがないから割り算するクラス作ることにしたよ
と思ったけど>>765にすごいクラスがあるからやめた
1000で割るとこだったよ。勉強になるな
768757:2009/04/07(火) 17:18:25
>>766
ちょwwwwwwwww
誰か知らんが俺自重wwwwwwwwwwwwwwwwwwwww
769デフォルトの名無しさん:2009/04/07(火) 17:30:36
public interface SaicoroIF {
public int nageru(); }

public class Chouhan implements SaicoroIF {
int[] deme = new int[] { 3, 4, 2, 1, 5, 6 };
int jj = 0;
public int nageru() {
jj++;
if (jj == 6)
jj = 0;
return deme[jj]; }
}
public class Yogozansuka {
public static void main(String[] args) {
Yogozansuka syoubu = new Yogozansuka();
syoubu.nageru1(new Chouhan()); }
public void nageru1(SaicoroIF saicoro) {
for (int i = 0; i < 6; i++) {
System.out.println(saicoro.nageru()); } } }

こういう3つのファイルがあってYogozansukaを実行すると動くのですけど、
syoubu.nageru1(new chouhan());とpublic void nageru1(SaicoroIF saicoro)
の関連がしっくりと理解できません。
Chouhanwoをオブジェクト化して、nageru1に渡していると思うのですけど、
nageru1では引数がSaicoroIFというインターフェイスになっています。
連動がイメージできないのですけど、教えてください。java6日目です。
770デフォルトの名無しさん:2009/04/07(火) 18:23:22
>>769
SaicoroIF s = new Chouhan()
と書いて、s.bar()を呼び出すことができる。
違和感があると思う。
しかし、これがオブジェクト指向の入り口。

インタフェースのメソッドを呼ぶことでプログラミングする。
実際にどれがインスタンス化しているのかに想定を置かず、
どんどん書いていく。

一方、どこでどう使われいるかを考えたりせず、
インタフェースを満たすことだけを考えて、
どんどんサブクラス化させていく。

インタフェースで一旦区切って、
実装と仕様を切り離そうという戦略。
771ミス:2009/04/07(火) 18:25:11
×と書いて、s.bar()を呼び出すことができる。
○と書いて、s.nageru()を呼び出すことができる。
772デフォルトの名無しさん:2009/04/07(火) 19:56:05
>>770
どうもです。
>SaicoroIF s = new Chouhan()
>と書いて、s.nageru()を呼び出すことができる。
上記のようにして、さらにChouhanクラスにダミーのメソッドを
追加してやってみたけど、うまく行きました。
ChouhanクラスにSaicoroIFというインターフェイスをimplementsしてますけど、
書物によると、全てのメソッドをオーバライドしないといけないと書いてあります。
全てをオーバライドすることで、Chouhanクラス独自のメソッドが存在しても、
SaicoroIFインターフェースのメソッドは全てimplementsしているから、
Chouhanクラスの型はSaicoroIFの型と一致するということでしょうか。
public void nageru1(SaicoroIF saicoro) というのは、
型がSaicoroIFのsを、単にsaicoroという任意の名前で渡しているのであって、
SaicoroIFのnageruメソッドをimplementsするクラスでは、
どのように振舞おうとも、【 nageru1(SaicoroIF saicoro)】のように汎用的に
呼び出せるから便利ですよということなんでしょうか。どうでしょうか。
773デフォルトの名無しさん:2009/04/07(火) 22:43:36
誰かこのJAVA初心者に「EJB」を分かり易く説明してもらっていいですか?
ネットで検索して調べても専門用語ばかりでよく理解できません・・・
774デフォルトの名無しさん:2009/04/07(火) 22:55:07
>>773
オープン化バブル期の壮大なネタ。
775デフォルトの名無しさん:2009/04/08(水) 00:21:25
Clipクラスでwaveファイルを再生しているのですが、
十数回以上鳴らすと、たまに音が出なくなってしまいます。

public void play(String name){
 Clip clip = (Clip)clipMap.get(name);
 if(clip != null){
  //再生位置を最初戻す
  clip.stop();
  clip.setFramePosition(0);

  clip.start();
 }
}

とやっているのですが、やり方が間違っているんでしょうか?
776デフォルトの名無しさん:2009/04/08(水) 00:27:45
VBしか触ったことないんですが、VBユーザのためのJAVAの本ってありますか?
777デフォルトの名無しさん:2009/04/08(水) 00:41:16
>776
VBは知らんが、ここらで調べて気に入ったのを購入すれば?
ttp://www.google.co.jp/search?q=Java+%E6%9C%AC&sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_jaJP257JP258
778デフォルトの名無しさん:2009/04/08(水) 01:00:38
今日も馬鹿が多くてワロタwww
779デフォルトの名無しさん:2009/04/08(水) 01:17:26
表明せずにはいられなかったんですね。
780776:2009/04/08(水) 01:33:24
>>777
とりあえず、一番上に出てきた「やさしいJava: 高橋 麻奈」を購入しようと思います。
ありがとうございました。
781775:2009/04/08(水) 02:48:18
自己解決させました
782775:2009/04/08(水) 02:53:33
自決しました。
783デフォルトの名無しさん:2009/04/08(水) 05:15:34
あなたの魂もらっていいですか?
784デフォルトの名無しさん:2009/04/08(水) 10:24:52
>>753
遅レスだが、
CachedRowSet は?Java5SE標準だけど。
785デフォルトの名無しさん:2009/04/08(水) 10:51:28
>>772
> Chouhanクラスの型はSaicoroIFの型と一致するということでしょうか。

型が一致する、という言い方をするのかどうか知りませんが、
ただ、物事にはいろんな面があり、それを特性と呼んだり、
インタフェースと呼んだりするような感じで受け取っていて、
Chouhanクラスは少なくともSaicoroIFを満たす、少なくともSaicoroIFとして扱える、
という風なイメージで個人的には勝手に捉えています。

で、SaicoroIFに着目して少なくともSaicoroIFとして扱う分には、
Chouhanクラスの独自メソッドがどうの、などを気にせず済みます。
どのクラスで実装されているかも知らなくて済みます。

> public void nageru1(SaicoroIF saicoro) というのは、
> 型がSaicoroIFのsを、単にsaicoroという任意の名前で渡しているのであって、

その通りです。ただ、Chouhan c = new Chouhan();とした c であったり、
元のもののように単にnageru1(new Chouhan())とした場合も、
メソッドの中では、saicoroという名前でSaicoroIF型のオブジェクトを扱います。

> SaicoroIFのnageruメソッドをimplementsするクラスでは、
> どのように振舞おうとも、【 nageru1(SaicoroIF saicoro)】のように汎用的に
> 呼び出せるから便利ですよということなんでしょうか。どうでしょうか。

そうだと思います。オブジェクト郡に共通のインタフェースがあるとき、
それを通して色んなサブクラスのインスタンスを画一的に扱える、
もしくは、インタフェースの仕様だけを介して扱える、
実装がどうのこうのを考えなくていいのは少なくとも便利ですよね。
786デフォルトの名無しさん:2009/04/08(水) 11:15:21
>>785
interfaceという英単語の意味を理解するべき
http://dictionary.reference.com/browse/interface
787デフォルトの名無しさん:2009/04/08(水) 14:50:33
あれだろ
長門の一種みたいな
そんな感じだろ?
788デフォルトの名無しさん:2009/04/08(水) 20:24:29
>>735
思いっきり間違ってるぞ
789デフォルトの名無しさん:2009/04/08(水) 23:23:21
外部コマンド(rm)実行について質問です。

下記(1)(2)はどちらも削除確認なしでtest.txtが削除されます。
execメソッドを使うと-fがあってもなくても強制削除になるのでしょうか。

(1)rmをオプション指定なしで実行
String command1 = "rm test.txt";
Process process = Runtime.getRuntime().exec(command);

(2)rmを-fオプションで実行
String command2 = "rm -f test.txt";
Process process = Runtime.getRuntime().exec(command);
790デフォルトの名無しさん:2009/04/08(水) 23:38:39
麻奈タソって昭和の女だっけ?
791デフォルトの名無しさん:2009/04/08(水) 23:38:59
もともと rm ってデフォルトで確認無しの削除じゃなかったっけ?
間違ってたらすまん。
792デフォルトの名無しさん:2009/04/08(水) 23:46:33
>>791
マジかと思って試したじゃないかw
ないないw
793デフォルトの名無しさん:2009/04/08(水) 23:51:41
すまん、rootで実行していたw
rootだと-iがつくね
794デフォルトの名無しさん:2009/04/08(水) 23:52:58
>>791
rmは対象が書込み禁止だったりする場合は確認が入る。
そうでない時は-iオプションをつけない限り確認なし削除。

>>789
標準出力がttyに結びついていなければ確認なしに削除だった気がする。
確認のメッセージを出力することに意味がないので。
795デフォルトの名無しさん:2009/04/08(水) 23:57:35
OSにもよるけどLinuxはたいていのディストリで-iにalias切ってある
796デフォルトの名無しさん:2009/04/09(木) 00:14:53
何を切ったって?
797デフォルトの名無しさん:2009/04/09(木) 00:17:09
>>789
Processクラスの説明には、
 作成されたサブプロセスは、自身の端末またはコンソールを持ちません。
 サブプロセスの標準入出力処理は...親プロセスにリダイレクトされます。
とあり、man rmによれば、
 (-iが指定されている || ファイルが書き込み不可) && 標準入力が端末 && -fが指定されていない
 の場合に標準エラーに問い合わせが出力され標準入力から返答を読み込む。
とあるので、Processのように標準入出力が親プロセスにリダイレクトされている場合は問い合わせしない。
798デフォルトの名無しさん:2009/04/09(木) 00:18:04
Javaユーザーに足りないのはDRY(Don't Repeat Yourself)精神
799デフォルトの名無しさん:2009/04/09(木) 00:39:35
>>796
「pathを切る」と同様に「aliasを切る」って言わない?
800デフォルトの名無しさん:2009/04/09(木) 01:01:36
>>799
言うが、よく考えると謎が表現だよな……。
801デフォルトの名無しさん:2009/04/09(木) 01:02:22
俺は「pathを通す」って言うな
802デフォルトの名無しさん:2009/04/09(木) 01:04:27
>>800
×謎が
○謎な
orz
803デフォルトの名無しさん:2009/04/09(木) 01:09:56
ホントかどうか知らないが聞いた話。
トランプやカードは切ると言うよね。
コマンドがパンチされた穿孔カードを切る・・・ということらしい。
804デフォルトの名無しさん:2009/04/09(木) 01:12:58
「使う」「決定する」というようなニュアンスで「切る」という表現も使う。
カードを切る、伝票を切る、ハンドルを切る、とか。
805デフォルトの名無しさん:2009/04/09(木) 01:15:45
方向を切り開くって意味だと思う
806デフォルトの名無しさん:2009/04/09(木) 01:39:19
トランプに関してはcutからだろうけど。
aliasに関してはcreateだろうし。
807デフォルトの名無しさん:2009/04/09(木) 02:07:30
昔っから「れいがいがはっせい」で変換すると大抵の IME は文脈読んで
「冷害が発生」を優先するんだけど、何か対策できねえ?
808デフォルトの名無しさん:2009/04/09(木) 02:18:58
2回目以降は一発で例外が発生になるだろ
809デフォルトの名無しさん:2009/04/09(木) 06:06:15
トランプを切るのに相当する表現を英語ではcutを使うのか?
810デフォルトの名無しさん:2009/04/09(木) 07:06:40
多分普通にトランプを切るというのに相当するは shuffle だけど
cut は cut で2山に分けて上下入れ替えるという操作を指して普通に使われるようだ。
811デフォルトの名無しさん:2009/04/09(木) 07:16:03
aliasを切るとは言わないってことだな。
そんな脳みそはできるだけ早く矯正しといたほうがいいだろう。
812デフォルトの名無しさん:2009/04/09(木) 08:12:21
javaにはvbのbyrefみたいなものはないのでしょうか?
813デフォルトの名無しさん:2009/04/09(木) 08:15:33
そうかbyrefクラスとか作ってnewしてから渡せばいいのか
814デフォルトの名無しさん:2009/04/09(木) 08:29:48
マンドクセ 時は長さ 1 の配列でやっちゃう。
private でクラス内に閉じてる時限定だけど。
815デフォルトの名無しさん:2009/04/09(木) 09:20:03
java はすべて byref で byval は無い、という理解なんだけど、間違ってる?
816デフォルトの名無しさん:2009/04/09(木) 09:22:45
>>815
逆。
817デフォルトの名無しさん:2009/04/09(木) 09:35:34
↓ここでエロい方による「参照の値渡し」についての説法が!
818デフォルトの名無しさん:2009/04/09(木) 09:48:40
│     _、_
│   ヽ( ,_ノ`)ノ 残念、私のおいなりさんだ
│  へノ   /
└→  ω ノ
        >
819デフォルトの名無しさん:2009/04/09(木) 11:57:55
ちょっと swing で悩んでいるんだが、知恵を貸してください。

JFrame でウィンドウを作って、その右下をドラッグしてリサイズしようとすると、
普通は(WindowsのLookAndFeelの場合)、マウスを離すまで再描画しないですよね。

それを、マウスが移動するたび( mouseDragged 的なタイミング) に再描画させたいのですよ。

LookAndFeel を Metal に変えるとなぜか出来るんだけど、Windows の見た目が必要なので
それも出来ず。

誰か助けて−。
820デフォルトの名無しさん:2009/04/09(木) 12:20:31
ウィンドウズのオプションでサイズ変更中の描画をONにすりゃいいんじゃね?
821デフォルトの名無しさん:2009/04/09(木) 12:34:24
どのメソッドでしょう?
java.awt.Window, java.awt.Frame, javax.swing.JFrame を探しても
それらしきメソッドが見つからないんですけど・・・。
コンストラクタの引数にもそれらしきものがないし・・・。

Frame.setResizable() は、ただリサイズ可能にするだけで、
リサイズ時の再描画の挙動までは設定できないし。
822デフォルトの名無しさん:2009/04/09(木) 12:36:19
Mac に乗り換える
823819:2009/04/09(木) 12:41:12
( ´∀`) そんなこと言われても・・・
824デフォルトの名無しさん:2009/04/09(木) 12:44:37
>>821
コントロールパネル>システム>以下略
825819:2009/04/09(木) 12:47:38
うーん、確かにそれで出来そうだけど・・・。
ソフトウェアだけでやりたいんすよ。LookAndFeel を metal にしたら出来たから
ソフト的に不可能ってことは無いはず。

こりゃ LookAndFeel を自作する必要があるかな・・・。
826デフォルトの名無しさん:2009/04/09(木) 12:52:03
試してないけど AWT の Toolkit#setDynamicLayout() の API リファレンス見れ。
827デフォルトの名無しさん:2009/04/09(木) 13:03:07
ウィンドウズの設定無視して動くのは気持ち悪いが
オプションで設定できるようにしてあればいいか
828819:2009/04/09(木) 13:04:09
ありがとうございます!

試したところ、
Toolkit.getDefaultToolkit().getDesktopProperty("awt.dynamicLayoutSupported")
が false を返してきたため、Toolkit.setDynamicLayout() を実行しても何も変わりませんでした。
がっくし。

おっかしーなーと思って、
「コントロールパネル>システム>詳細設定>パフォーマンスを開いて
「ドラッグ中にウィンドウの内容を表示する」をONにしたら、上のプログラムもtrueを
返すようになり、意図したとおりに動くようになりました。

皆さん、ありがとうございましたー!うひょー!
829デフォルトの名無しさん:2009/04/09(木) 13:55:50
結局それかよ!
830デフォルトの名無しさん:2009/04/09(木) 14:17:21
つーかウィンドウズの設定に合わせて動くようになってんだなw
831デフォルトの名無しさん:2009/04/09(木) 14:41:36
まあ、妥当な仕様だ。
開発者が合理的にものを考えてると信じてれば、
当然そういう仕様になってるだろうと思うべきところだが、
なぜか、そうでないと思い込んでしまってる俺ら。
832デフォルトの名無しさん:2009/04/09(木) 15:24:44
俺ら → 俺
833デフォルトの名無しさん:2009/04/09(木) 20:03:02
次のようなコンパイルエラーが出るのですがどうしたらよいでしょうか?
final class MyMap extends Properties
で、HashtableのときだけputAllで専用の処理をしたいのですが…

: putAll の参照はあいまいです。
java.util.Hashtable<java.lang.Object,java.lang.Object> の メソッド
putAll(java.util.Map<? extends K,? extends V>) と
MyMap の メソッド putAll(java.util.Hashtable) が両方適合します。
if (ah!=null) ret[k].putAll((Hashtable) ah[k]);
834デフォルトの名無しさん:2009/04/09(木) 20:24:34
質問させてもらいます。
「ねずみと象」というタイトルでTurtle classを使ったプログラムを作れという宿題が出ました。詳細は以下です。
・象は群れをなす動物です。個々にランダムに動いている間に他の象に近づいたら一緒に行動します。
・もし迷子の象が群れからかなり距離がある場合はランダムに行動し続けます。
・もし1匹でも群れのメンバーが逃げたら全員ばらばらになります。(たぶん外壁にぶつかった時に分散します)
・ねずみは象の群れにつかまったら押しつぶされて消えます。
最初の1歩はスタート地点が一緒なのでランダムでおkです。
少し長くなりますがお願いします。

インターフェイス
public interface Animal
{
public void act();
}
835834:2009/04/09(木) 20:25:36
Animal Worldクラス

public class AnimalWorld extends World
{
///////////////////fields/////////////////////
/////////////////////constructors//////////////////////
public AnimalWorld()
{
//call the default constructor for World
super();
//a private method to set the background, etc.
Picture backgroundPic = new Picture(640,480);
backgroundPic.setAllPixelsToAColor(Color.black);
this.setPicture(backgroundPic);
this.repaint();
}
////////////////////methods/////////////////////
public void run() throws Exception
{
List animalList = this.getTurtleList();
while(true)
{
for(int i=0;i<animalList.size();i++)
{
((Animal)animalList.get(i)).act();
}//end for
repaint();
Thread.sleep(200);
}
}
}
836834:2009/04/09(木) 20:26:17
象クラス
public class Elephant extends Turtle implements Animal
{
///////////////////fields/////////////////////
/////////////////////constructors//////////////////////
/**
* A constructor
*/
public Elephant(ModelDisplay modelDisplay)
{
//use parent constructor
super(modelDisplay);
this.setShellColor(Color.gray);
setHeight(30);
setWidth(30);
penUp();
}
////////////////////methods/////////////////////

public void act()
{
turn((int)(Math.random()*360));
forward((int)(Math.random()*100));
}
}
837834:2009/04/09(木) 20:26:58
ねずみクラス
public class Mouse extends Turtle implements Animal
{
///////////////////fields/////////////////////
/////////////////////constructors//////////////////////
/**
* A constructor
*/
public Mouse(ModelDisplay modelDisplay)
{
//use parent constructor
super(modelDisplay);
this.setShellColor(Color.white);
setHeight(10);
setWidth(10);
penUp();
}
////////////////////methods/////////////////////
public void act()
{
turn((int)(Math.random()*360));
forward((int)(Math.random()*100));
}
}

ループによって毎回オブジェクトの距離を測って動作を制御すればいいと思うのですが始めたばかりなのでやり方がわかりません・・・。
お願いします。
838デフォルトの名無しさん:2009/04/09(木) 20:30:32
特定した
839デフォルトの名無しさん:2009/04/09(木) 20:35:25
関係ないけど
ねずみと象なのに、Turtleクラスなんだ・・・
840デフォルトの名無しさん:2009/04/09(木) 20:47:53
>>839
because he taught us.
841デフォルトの名無しさん:2009/04/09(木) 21:17:40
>>840
それ、トータスや
842デフォルトの名無しさん:2009/04/09(木) 22:26:07
Javaって存在意義あるの?
843デフォルトの名無しさん:2009/04/09(木) 22:32:39
MS嫌いで、でもc++は理解できない人に
844デフォルトの名無しさん:2009/04/09(木) 23:02:06
c++でwebアプリ作るの面倒くさいから
845デフォルトの名無しさん:2009/04/09(木) 23:11:24
webアプリならJavaよりC#のがいいね
846デフォルトの名無しさん:2009/04/09(木) 23:11:59
なんでその3言語に限定すんのさ                           
847デフォルトの名無しさん:2009/04/09(木) 23:45:34
C#ってどれくらい勉強すれば身に付くんだ?
848デフォルトの名無しさん:2009/04/09(木) 23:50:12
少なからずCpurapuraよりは楽
849デフォルトの名無しさん:2009/04/09(木) 23:51:07
VBとそうかわらないよ。。C#っていう名前に押されてる人が多いよね。
850デフォルトの名無しさん:2009/04/09(木) 23:54:33
でも、結局は、phpやsqlも勉強しないといけないんでしょ。結局は!!
851デフォルトの名無しさん:2009/04/09(木) 23:56:15
>>850
SQL はともかく PHP はいらないな
852デフォルトの名無しさん:2009/04/10(金) 00:02:41
レベル低いなここ
ゆとりガキの溜まり場か
853デフォルトの名無しさん:2009/04/10(金) 00:07:18
JavaとSQLだけで、大抵のこと出来る?
854デフォルトの名無しさん:2009/04/10(金) 06:32:41
次のようなコンパイルエラーが出るのですがどうしたらよいでしょうか?

final class MyMap extends Properties
public void putAlll(Hashtable h);

で、MayMapではHashtableのときだけputAllで専用の処理をしたいのですが…

: putAll の参照はあいまいです。
java.util.Hashtable<java.lang.Object,java.lang.Object> の メソッド
putAll(java.util.Map<? extends K,? extends V>) と
MyMap の メソッド putAll(java.util.Hashtable) が両方適合します。

if (ah!=null) ret[k].putAll((Hashtable) ah[k]);
855デフォルトの名無しさん:2009/04/10(金) 08:38:44
>>854
public <K,V> void putAll(Hashtable<K,V> h)
ただしputAlに渡すものの型をジェネリクスできちんと限定しないと警告が出る
856デフォルトの名無しさん:2009/04/10(金) 08:48:57
例えば
public class A extends Properties {
public <K,V> void putAll(Hashtable<K,V> h) {
System.out.println("hoge!");
}
private void method() {
Hashtable<Object, Object> t = new Hashtable<Object, Object>();
//Hashtable t = new Hashtable();
putAll(t);//AのputAll呼び出し
HashMap<Object, Object> x = new HashMap<Object, Object>();
putAll(x);//Hashtableの方のputAll呼び出し
}
public static void main(String[] args) {
new A().method();
}
}
Hashtable t = new Hashtable();の方でもputAll(Hashtable<K,V> h)を呼び出すけど
コンパイル時に無検査であると警告が出る
857デフォルトの名無しさん:2009/04/10(金) 11:28:38
警告じゃなくてエラーなので修正しないと先に進めないんです。
一応
public void putAlll(Properties h);
もしくは
-source 1.4
で回避できるんですけど。

このソースはjdk1.1縛りでapplet専用なんですが、ret.putAll( (Hashtable<O,O>) h)みたく
ジェネリクス表記をつかわないとコール出来ないんでしょうか?
858デフォルトの名無しさん:2009/04/10(金) 13:32:20
JDK1.1縛りなら、どっちにしろ
-source 1.2 -target 1.1 とか
使わないといけないんじゃない?
859デフォルトの名無しさん:2009/04/10(金) 14:47:59
そこは public void putAll( (Hashtable<?,?>) h); で回避できますが、
ジャヴァの(ソースコード)下位互換が保障されなかったところです。
よってすべてのソースに<?,?>を追加するためにソースにいちいち手を入れる必要があります。
860デフォルトの名無しさん:2009/04/10(金) 16:25:17
なんだか後付けで情報が出てくるな
1.1用ソースだと言いつつ-source 1.4とかとも言ってるし
>>854ではコンパイルは5のソースとしてコンパイルしようとしてるし
釣りか?
861デフォルトの名無しさん:2009/04/10(金) 16:27:31
× 5のソース
○ 5以降のソース
862デフォルトの名無しさん:2009/04/10(金) 16:45:02
854がエラーになるからとりあえず警告レベルで済むように855は引数の型をパラメータ化したんじゃないのか。
と思ったら古いソースか。
バージョン1.1なんだから1.1のコンパイラを使えば余計なオプションはいらねえぞww
863デフォルトの名無しさん:2009/04/10(金) 17:04:41
古いコンパイラは使ってないんですが、ソースはjdk1.1互換としておきたくて古いソースに手を加えたくないってことです。
-source 1.4とかでジェネリクスを無効するのもいいのですが、やはりソース(の引数を)を修正しないとだめでしょうか?

一応netscape4.7とかはjdk 1.1のインタプリタなんですけど、1.1は別に時代遅れって言う代物でもなく、
内部クラスが作れるのでjavascriptなんかよりも優秀ですよ。
864デフォルトの名無しさん:2009/04/10(金) 17:58:02
はぁ?
865デフォルトの名無しさん:2009/04/10(金) 18:18:35
互換オプションでコンパイルしたとしても 1.2 以降で追加されたクラスや
メソッド使ってていざ 1.1 で動かしても動きませんでした、なんて事も
あるから 1.1 がターゲットなら 1.1 でコンパイルしておけ。
866デフォルトの名無しさん:2009/04/10(金) 18:22:15
>>864
君のスキルじゃまだ早いし、話題についてこれないんだろ?w
背伸びして無理しないほうがいいよ
867デフォルトの名無しさん:2009/04/10(金) 18:24:22
なんでいきなり内部クラスが出てくるのかわからない
JavaScriptみたいな言語では非常に簡単にできることを無理やり実現するための機能だろ
868デフォルトの名無しさん:2009/04/10(金) 19:12:57
他のスレでも書いたんだけど、androidのアプリ作りたいんだけど、eclipseは何をインストールすればいいの?

WinVista32bit

869デフォルトの名無しさん:2009/04/10(金) 19:20:45
ググレカス
870デフォルトの名無しさん:2009/04/10(金) 21:31:17
そこで詰まってる時点で無理だろうな。

http://pc11.2ch.net/test/read.cgi/os/1194362278/
Android -Googleケータイ登場へ-
871デフォルトの名無しさん:2009/04/11(土) 00:02:48
Mac OSXでリアルタイムJavaのプログラムを作るor実行することは出来ますか?
872デフォルトの名無しさん:2009/04/11(土) 00:25:24
>868
最新のeclipse3.4も対応してる。
873デフォルトの名無しさん:2009/04/11(土) 09:26:39
>>872 サンクス
874デフォルトの名無しさん:2009/04/11(土) 10:59:38
eclipseで作成しているのですが
Java1.4で作成しているプロジェクトに対して
Java1.5で動作するTestNGを使用することは可能なのでしょうか?
可能な場合、どのような構成にすればいいのですか?
875デフォルトの名無しさん:2009/04/11(土) 12:18:47
Scripting FrameworkでJRubyを使っているのですが、
JavaからRubyに文字列をバインドすると日本語が化けてしまいます。
どのように渡せば正しく処理されるのでしょうか。

なお、RubyからJavaでも化けますが、こちらはkconvのtoutf8で解決します。
876デフォルトの名無しさん:2009/04/11(土) 12:43:42
まずは、rubyとjavaでそれぞれ日本語の扱いに付いて勉強するべき。
近道は無いよ。
877デフォルトの名無しさん:2009/04/11(土) 13:54:59
知らないなら(ry
878java2日目:2009/04/11(土) 16:31:26
ttp://www29.atwiki.jp/android/pages/21.html

>>After the plugin runs, you'll have a class named HelloAndroid that looks like this: プラグインを実行すると、下記のような、HelloAndroidクラスが出来上がっているがわかるだろう。

ってどこ見ればいいの?
879デフォルトの名無しさん:2009/04/11(土) 16:38:34
>>878
自己解決です。srcディレクトリたどったらありました。
880875:2009/04/11(土) 19:54:41
自己解決しました。
Ruby側でバインド変数を引数にorg.jruby.RubyStringを生成するだけでした。
これを空文字列と結合するとRubyのStringとして認識されるようになります。

どうもJRuby本体とScripting Framework経由では文字列の扱いが異なるみたいですね。
JRubyはUTF-8前提だから、ScriptEngine.evalと相性が悪いんでしょうか。素直にReaderで実装しろよと。
881デフォルトの名無しさん:2009/04/11(土) 21:01:04
まずは、rubyとjavaでそれぞれ日本語の扱いに付いて勉強するべき。
近道は無いよ。
882デフォルトの名無しさん:2009/04/11(土) 21:02:29
沸いてんのか?
883デフォルトの名無しさん:2009/04/11(土) 21:28:55
浮いてんのか?
884デフォルトの名無しさん:2009/04/11(土) 22:11:09
このスレで解決した質問ってほとんどないよね
885デフォルトの名無しさん:2009/04/11(土) 22:15:04
上で続々自己解決してるじゃん
その顔に付いてるのは節穴?
886デフォルトの名無しさん:2009/04/11(土) 22:17:12
どの板でも初心者スレというのは半可通が知ったかするためのものですが何か。
887デフォルトの名無しさん:2009/04/11(土) 23:45:39
import javax.swing.*;
import java.awt.event.*;
public class JFC extends JFrame implements ActionListener{
public static void main(String[] args){
JFC frame = new JFC();
frame.setSize(200,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
JFC(){
JButton button = new JButton("Open JFileChooser");
button.addActionListener(this);
getContentPane().add(button);
}
public void actionPerformed(ActionEvent e){
System.out.println("actionPerformed");
JFileChooser fc = new JFileChooser();
int openDialog = fc.showOpenDialog(this);
}
}

フレームのボタンを押すとJFileChooserが開く、という物なのですが、ボタンを押すと
An unexpected error has been detected by HotSpot Virtual Machine:
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x77299207, pid=4580, tid=3364
と表示されることがあります。
これはプラットフォームに原因があるのでしょうか?
888デフォルトの名無しさん:2009/04/11(土) 23:48:23
まず JDK の最新版を入れ直す。
889デフォルトの名無しさん:2009/04/12(日) 00:20:26
>>888
最新版を入れていたものの、環境変数を更新するのを忘れていました…
更新後のテストではエラーが確認されず、どうやら成功のようです。
ご回答ありがとうございました。
890デフォルトの名無しさん:2009/04/12(日) 00:53:58
入力された文字列に英字が入っているかどうかを判別したいのです
教えてください
891デフォルトの名無しさん:2009/04/12(日) 01:26:40
まずは、rubyでそれぞれ英字の扱いに付いて勉強するべき。
近道は無いよ。
892デフォルトの名無しさん:2009/04/12(日) 01:33:57
>>891
教えてください。
893デフォルトの名無しさん:2009/04/12(日) 01:42:22
>>889
パス通してないって事はsystem以下にあるJREが壊れてるって事じゃないの?
OS大丈夫?
894デフォルトの名無しさん:2009/04/12(日) 02:08:12
>>892
まずは正規表現を勉強するべき。
近道は無いよ。
895デフォルトの名無しさん:2009/04/12(日) 02:58:02
2点程教えてくださいm(__)m

javaのバグフィックスのリリースノートを見てて
あるバグがどのような修正でなおったのかが知りたいのですが
特定のビルドをsvnやcvs等で取得することって可能でしょうか?

もう一点の方は、
javaのパッケージの中に含まれるクラスを拡張したいと思ってるのですが、
extendsするのではなく、ソースコードを丸々コピーして使い易いように拡張しようと思ってます。
人の書いたソースを使いまわす形になってしまうのですが法的には問題あるものなのでしょうか?

技術的な質問ではありませんがお願いしますm(__)m
896デフォルトの名無しさん:2009/04/12(日) 03:13:42
とりあえず著作権法とGPL勉強しような。
あとjava.*は改変禁止だったような
897java3日目:2009/04/12(日) 06:04:18
javaって簡単じゃなかったの?
なんでクラスばっか使うの?
java全く分かんない人がandroid app作れるようになる本は?
なんでこのスレ盛り上がってないの?
エラー出るけど何行目かおしえてくれないの?>>eclipse
898デフォルトの名無しさん:2009/04/12(日) 09:15:43
質問があります.通常,ポップアップメニューは
@フォーム(JFrameやJPanel)を右クリックしてポップアップメニューを表示して
Aフォームのどこかクリックしたら(非アクティブになったら)自動的にポップアップメニュー消える
ようになっていると思うんですが
JPopupMenuにJPanelのせたらフォームをクリックしても(非アクティブにしても)自動的に消えないようになりました.
フォームをクリックしたらJPopupMenuからフォーカスが消えるみたいにする方法はないでしょうか?
ちなみにこのフォームはJFrame上にJPanelがエクセルのセルの様に並んでいます.
899898:2009/04/12(日) 09:47:49
自己解決しました.
900デフォルトの名無しさん:2009/04/12(日) 11:54:45
簡単なことですがわからないことがあるので教えてください


Appletで1枚の画像をただ横に動かすプログラムを作っているんですが、
画像が横に動く際に「チラつき」が出ます。

調べたところダブルバッファリングを使えば描画処理をすべて終了した状態で
Appletの更新を行うから「チラつき」がなくなるそうですが、
それならMediaTrackerでもよさそうな気がします。

Mediatrackerではチラつきはなくなりませんかね
901デフォルトの名無しさん:2009/04/12(日) 12:04:15
MediaTracker てのは画像のダウンロードが完全に済んだら通知してくれたり
済むまで待たせたりするためのテレホマン時代の遺物だと思たが。違ったっけ?
902デフォルトの名無しさん:2009/04/12(日) 14:00:00
中3でjavaは難しい?
903デフォルトの名無しさん:2009/04/12(日) 14:02:26
まぁ、10歳で大学入学できるからなぁ。外国では。
先生によるかな
904デフォルトの名無しさん:2009/04/12(日) 14:03:35
大丈夫じゃね
俺の頃は中学生でマシン語とかやってたし
905デフォルトの名無しさん:2009/04/12(日) 14:06:27
中三でC++よりは何倍もマシ。
906デフォルトの名無しさん:2009/04/12(日) 14:06:42
中3で苦しいのは、カネが無いこと。
親父をどう説得して金ださせるか・・・のほうが大変だとw
907デフォルトの名無しさん:2009/04/12(日) 14:07:25
10歳で大学だと・・・!

日本人の学力低下はどうにかならないものか
908デフォルトの名無しさん:2009/04/12(日) 14:28:32
他の言語もじゃなくて、javaだけやるなら中3なら大丈夫だろう
909デフォルトの名無しさん:2009/04/12(日) 14:39:38
10歳なら、C言語から入ったほうがいいかもよ?
何せJavaって日本みたいな感じだもん。

レールに乗って、ちょっとでも外れたらダメという・・・
910デフォルトの名無しさん:2009/04/12(日) 14:40:38
まずメモリイメージをたたき込め。BrainFuck にしろ。
911デフォルトの名無しさん:2009/04/12(日) 14:42:56
>>908
プログラム言語だけやるなら、小学校低学年でも可能。
昔は、>>904 みたいなのがゴロゴロいたし。
もちろん、それしかなかったわけだけどw。
本当に難しいのは、解決すべき問題に関する知識。
中三だと、後々役に立つのは学校とか受験の勉強。
何より基礎学力が大事だよね。
912デフォルトの名無しさん:2009/04/12(日) 14:48:51
小さい時は、ちょっとヤンチャして、ちょっと痛い思いをするのがちょうどいいんだよな
はじめから情報持っていて、リスクを避ける行動はどうだろうか。

ポイントをちょっと間違えて頭を抱えるくらいがちょうどいいw
913デフォルトの名無しさん:2009/04/12(日) 15:07:22
ソフトの世界は、「基礎大事!小さいときは!」みたくそういう「歴史を繰り返すような価値観」は必要とされてない感じがするんですけどね…
工芸職人みたいなハードの世界だと一子相伝の美徳とかなんとかで、ソフトと逆なのかもしれませんけど。
914デフォルトの名無しさん:2009/04/12(日) 15:43:20
その年齢じゃなければできないことをすべきでは。
女子中高生をナンパして犯罪にならないのは
一生のうち中高生の間だけだぞ、全て忘れてナンパに没頭すべし
915デフォルトの名無しさん:2009/04/12(日) 16:02:55
Log4j の開発って死滅しちゃったの?
916デフォルトの名無しさん:2009/04/12(日) 16:05:45
女子高生と遣りまくれるのは若いうちだけだしな。
917デフォルトの名無しさん:2009/04/12(日) 16:14:48
>>915
Log4J 2.0がJava5向けに作られてるらしいが互換性はどうなんだろうね。
あとLogbackと検索ヒット数をGoogleで1年内更新で絞って比較しても、Log4Jのが10倍ヒットしてる。
少なくとも開発者からの需要は健在のようで。

個人的には標準のLogging APIを使ってるので、組み込まれてると逆に迷惑だったりw
918デフォルトの名無しさん:2009/04/12(日) 18:21:00
>>913
残念ながら基礎は大事だ
919デフォルトの名無しさん:2009/04/12(日) 18:34:11
てっとり早くコピペプログラマになるならJavaで十分
設計からやろうと思ったらオブジェクト指向云々を理解してないとちと辛いが
一番ダメなのはVB系でそこそこできるようになって「うはwww俺すげーwww」になること
まー若いうちは急がば回れでCから始めたらいいと思うんだがな
920デフォルトの名無しさん:2009/04/12(日) 19:32:15
VBでもさすがにコード書くだろw

ツクールで厨が俺スゲー
これが危険。
921デフォルトの名無しさん:2009/04/12(日) 20:22:49
>>920
そりゃ自分でもコードは書くが、他の言語に比べて少ないコーディング量で同じことができてしまうのが
勘違いプログラマを生む一つの要因であってだな。確かに生産能力の高さはものすごいと思うが
922デフォルトの名無しさん:2009/04/12(日) 20:25:08
今のツクールは確かRubyだろ?Web屋で働く*はめ*になった人にとってはよい学習教材だ。
923デフォルトの名無しさん:2009/04/12(日) 21:10:30
エンジンがrubyってだけで使ってる人間は他人のソースコピペしてるだけだから。
924デフォルトの名無しさん:2009/04/12(日) 21:12:48
それが出来るのがJavaの特徴でもあるしね。

他の言語でも出来るけど、あまり信用できねーもん。
925デフォルトの名無しさん:2009/04/12(日) 21:15:23
とはいってもジャバだって、大先生が作ったパッケージに頼ってるだけでしょw
自分が書くコードはnewばっかりのくせにww
926デフォルトの名無しさん:2009/04/12(日) 21:20:22
>>925
>大先生が作ったパッケージに頼ってるだけでしょ
もしそうなら、クラスとか継承とかいらないから。
927デフォルトの名無しさん:2009/04/12(日) 21:21:38
基礎できてる方が、コピペプログラミングも早いべ
928デフォルトの名無しさん:2009/04/12(日) 22:06:52
エラーメッセージ読んでバグ修正できるからなw
929デフォルトの名無しさん:2009/04/12(日) 22:20:40
XHTML 1.1 の DTD を付けた HTML (XML) を DocumentBuilder で読み込むと xml:space="preserved"
だとか xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" だとか余計な属性が大量に
付いてくるんですけど回避出来ませんか? 1.0 の DTD なら書いたままで読み込めるんですけど。
JDK 1.6 の Linux/Win/OSX のどれでも出ます。

[XHTML1.1] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
[XHTML1.0] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
930デフォルトの名無しさん:2009/04/12(日) 22:26:19
プログラムなんてやったことないんだが、C言語入門をザッと読んで
JAVA言語を必死でいま勉強している
オブジェクト指向が半分程度しか理解できない

やっぱ最初は簡単だと言われているPHPかVBにしておくべきだったかな
JAVAけっこう難しいです
931デフォルトの名無しさん:2009/04/12(日) 22:26:59
なんかJavaとC#で全然挙動が違って、戸惑ってます・・・。
C#(結果は50とtestが表示される)
class test
{
public test(){
a();
}
void a(){
Console.WriteLine( 50 );
}
}
class test2 : test{
public test2(){
a();
}
void a(){
Console.WriteLine( "test" );
}
}

public class Hogehoge {
public static void Main(String[] args) {
// TODO Auto-generated method
test2 t = new test2();
}
}
932デフォルトの名無しさん:2009/04/12(日) 22:28:25
Java(結果はtestと二回表示)
class test
{
public test(){
a();
}
void a(){
System.out.println( 50 );
}
}

class test2 extends test
{
public test2(){
a();
}
String str;
void a(){
System.out.println( "test" );
}
}
public class Hogehoge {
public static void main(String[] args) {
// TODO Auto-generated method
test2 t = new test2();
}
}
933デフォルトの名無しさん:2009/04/12(日) 22:29:07
>>932の挙動は、C#をやっていた自分からすると、全く想定外なのですが、
どう理解すればいいのでしょうか?
934デフォルトの名無しさん:2009/04/12(日) 22:41:37
javaのデフォルトアクセスレベルはC#でいうinternal相当なのでtest2からtest1のaが見える
javaではオーバーライドは暗黙的に行われるのでtest1のaはtest2のaによってオーバーライドされる
C#のデフォルトアクセスレベルはprivateなのでtest1のaとtest2のaは互いに全く影響しない
同じ名前でも警告すら出ない
935デフォルトの名無しさん:2009/04/12(日) 22:44:49
>>933
C++ や C# ではスーパークラスのコンストラクタが動作している時はまだメソッドの
オーバーライドが利いていない (仮想関数テーブルが変更されていない) ので、サブクラスが
オーバーライドしているかどうかに関わらずスーパークラスのメソッドが実行される。

Java では、スーパークラスのコンストラクタが呼ばれた時点で既にメソッドのオーバーライドが
利いている。

OO 言語的には Java のが異端。
936デフォルトの名無しさん:2009/04/12(日) 22:49:42
>>934
その辺はわかっていますが、スーパークラスの
コンストラクタ内すらオーバーライドされているのが予想外でした・・・。

>>935
納得のいく解説thxです!

チラウラ:
現在、SJC-Pの解説書に挑戦中ですが、構文が似ているのに、
こんな感じで細かい動作や仕様の違いが多くて大変ですorz

937デフォルトの名無しさん:2009/04/12(日) 22:49:42
>>935
違う。C#でもオーバーライドされていればオーバーライドされたメソッドの方が呼ばれる。
>>932ではオーバーライド自体が行われてない。C#ではメソッドをオーバーライドするときには
スーパークラスのメソッドにvirtualを付けてサブクラスのメソッドにoverrideを付ける必要がある。
しかも>>932の例ではtest2からtest1のaはそもそも見えない。理由は>>934参照。
938デフォルトの名無しさん:2009/04/12(日) 22:51:22
>>937
詳しい解説ありがとうございます!
なんだか頭の中が混乱してきたorz
939937:2009/04/12(日) 22:52:08
アンカミス
932は>>931の間違い
>>937はC#の例についての話ね
940デフォルトの名無しさん:2009/04/12(日) 22:52:37
>>929
xhtml1.1のDTDにそういうデフォルト値が定義されてるんじゃないの?
Factory側でsetValidatingをfalseにしてから、Builderを生成してみたら。
941デフォルトの名無しさん:2009/04/12(日) 23:21:50
>>930
現時点で半分程度理解できてるなら上出来。
最初はオブジェクト指向なんて理解できないし理解する必要もない。とりあえず基本構文を押さえるのが先決。
ある程度知識が深まったら実際に何かアプリケーションを設計してみて「こんなクラス設計で行こう」
「このクラス、拡張したら便利じゃね?」みたいな感じで覚えていくのがいいと思う。

また、オブジェクト指向の説明の例として、Javaがよく用いられるためよく勘違いされるが、
Java=オブジェクト指向言語ではない。設計次第でウンコにもなる。

PHPはWebサーバ立てるのがちと面倒だが、プログラミング入門にはいいと思う。
VBは確かにとっつきやすいが、.netになってからはクラスの概念が出てくるので、あとあとしんどいかも。

余談になるが、>>935の人がちょっと触れている通り「オブジェクト指向」と一口に言っても実装レベルで色々異なるから注意


まあ要するに未成年なら今のうち女子高生の乳もんどけって話だ。
成人になると逮捕というリスク満載。
942デフォルトの名無しさん:2009/04/12(日) 23:33:32
女子高生ってなんであんなにエロいんだろ
943デフォルトの名無しさん:2009/04/12(日) 23:41:22
自分がエロいと思っていないから。

隙がある人ほど惚れられやすい
944941:2009/04/12(日) 23:49:10
×ある程度知識が深まったら実際に何かアプリケーションを設計してみて
○ある程度知識が深まったら実際に何かアプリケーションを設計&コーディングしてみて

>>942
今にもめくれあがりそうなスカート+生足だからじゃねえか
945デフォルトの名無しさん:2009/04/13(月) 00:47:10
>>940
読み込み前にログで出していますが validating は false になっています (ただし SYSTEM ID から
DTD 自体は見に行っている様子)。名前空間と XInclude は有効になっていますが関係ないですよね。
全ての <td> 要素に colspan="1" rowspan="1" とか付けられてしまって、親切なんだかおせっかいなんだか。
946デフォルトの名無しさん:2009/04/13(月) 00:51:49
System.out.print("ほげほげ");
とすると標準出力(通常はコンソール画面)に文字が出ますが
記録を取りたいので
テキストファイルとコンソール画面の両方に
出力するような方法はありませんか?

System.out.print("ほげほげ");
という部分はソースコードのあちこちに大量に散らばっているから
それは変更したくありません。
main 関数の1箇所に手を加えるなど最小限の変更だけで
行なえる方法があればご教授願います。
(tee 使え、とかいうのは無しで)
947デフォルトの名無しさん:2009/04/13(月) 01:37:40
>>921
VBの生産性高いか?
スクリプト的に使い捨てのもん作るならいいが、
バージョンアップやライブラリの再利用考えると
途端に生産性が落ちる最悪の言語だぞ。
948デフォルトの名無しさん:2009/04/13(月) 01:57:26
>>946
・標準出力とファイルとに出力する OutputStream を自作して System.setOut()。
・Logger を使用して ConsoleHandler と FileHandler を使う。
・出力をファイルへリダイレクトして tail -f で眺める。
949デフォルトの名無しさん:2009/04/13(月) 03:06:39
>>946
デッドロックが起こったり例外が投げられるような目に合わないこと前提の簡単な実装なら
public class MultipleOutputStream extends OutputStream {
private OutputStream[] output;
public MultipleOutputStream(OutputStream... output) { this.output = output; }
public void write(int b) throws IOException { for (OutputStream o : output) o.write(b); }
public void close() throws IOException { for (OutputStream o : output) o.close(); }
}

OutputStream out1 = new FileOutputStream("hoge");
OutputStream out2 = new FileOutputStream("huga");
PrintStream out = new PrintStream(new MultipleOutputStream(System.out, out1, out2));
System.setOut(out);
System.out.println("ほげほげ");
System.out.println("ふがふが");
out.close();
みたいな感じで
でも情報の確認はSystem.outに出力するのでなく
最初からロギングAPI等を使うようにしておいた方がそういう変更を簡単にできて楽だと思う
ログ出力に余計なヘッダとか不要ならヘッダを出力しないようなフォーマッタを設定すればいいし
950デフォルトの名無しさん:2009/04/13(月) 03:14:32
>>949
それ MulipleOutputStream が System.out に書こうとした時点で System.out の出力先が
自分になってるから StackOverflow になるよ。
951デフォルトの名無しさん:2009/04/13(月) 03:21:26
StackOverflow www
952デフォルトの名無しさん:2009/04/13(月) 03:25:47
>>950
setOutで新しく設定したoutとそのoutがwriteを委譲しているSystem.outとは別物だよ
953デフォルトの名無しさん:2009/04/13(月) 03:42:17
>>952
System.out は static final 宣言されているから委託も何も同じ参照だよ。
954デフォルトの名無しさん:2009/04/13(月) 04:17:00
System.outはpublic final static で宣言されてるけど、setOutしたら違う参照になるよ。

public static void main(String[] args) {
PrintStream o1 = System.out;
PrintStream o2 = new PrintStream(System.out);

System.out.println(System.out == o1); // true
System.out.println(System.out == o2); // false

System.setOut(o2);
System.out.println(System.out == o1); // false
System.out.println(System.out == o2); // true
}
955デフォルトの名無しさん:2009/04/13(月) 04:21:04
じっさいやってみたらStackOverflowは投げられませんでした
956デフォルトの名無しさん:2009/04/13(月) 04:39:42
JDK のソース読んでみたら JNI 側 (か VM 自体が) final 破りやってるみたいだな。
final 宣言されてるから今まで Wrapper のような構成かと思っていた。くやしいビクンビクン
957デフォルトの名無しさん:2009/04/13(月) 09:13:34
>>929
DTDが読めたらそうなっちゃうのは仕方ない。
DTDが読めないように工夫するか、Attribute.isSpecified()で区別すれ
ばいい。
958デフォルトの名無しさん:2009/04/13(月) 09:18:06
1.2互換のために宣言上finalになってるだけだぞ。

>>945
>全ての <td> 要素に colspan="1" rowspan="1"
xhtmlなんだから要素省略しないのは当たり前。
sunの実装だと足りないものは付けたしてエラー投げない実装だからそうなる。
とはいってもxml:spaceはこういう場合defaultでもいい気がするが。
959デフォルトの名無しさん:2009/04/13(月) 09:33:56
>>949
ありがとうございます。それを参考にしてガンバッテみます。

ロギングAPI等はもちろん使ってるんですが、すれはロギングAPIを使って出力したメッセージしか
ロギングされませんよね。だから困ってるんです。
ガイジンが作成してネットで広く流通している汎用のライブラリを書き換えるわけにもいかないし。
(ソースコードの入手できないものもあるし、ライセンスの問題もあるだろうし)
960デフォルトの名無しさん:2009/04/13(月) 20:03:35
×○○○○○○○○×
○×○○○○○○×○
○○×○○○○×○○
○○○×○○×○○○
○○○○××○○○○
○○○○××○○○○
○○○×○○×○○○
○○×○○○○×○○
○×○○○○○○×○
×○○○○○○○○×
このような出力をしたくて、以下のプログラムを書きました。
class test1{
public static void main(String args[]) {
char test[] = new char[5];
for(int i=0;i<=4;i++) test[i] = '○';
for(int i=0;i<=4;i++){
test[i] = '×';
for(int j=0;j<=4;j++)System.out.print(test[j]);
for(int j=4;j>=0;j--)System.out.print(test[j]);
System.out.print("\n");
test[i] = '○';
}
for(int i=4;i>=0;i--){
test[i] = '×';
for(int j=0;j<=4;j++)System.out.print(test[j]);
for(int j=4;j>=0;j--)System.out.print(test[j]);
System.out.print("\n");
test[i] = '○';
}
}
}
961960:2009/04/13(月) 20:04:42
前半部分の
×○○○○○○○○×
○×○○○○○○×○
○○×○○○○×○○
○○○×○○×○○○
○○○○××○○○○を出力する際に、これをどこかに一時待避して
待避した物を逆から出力する という形に出来ませんか?
962デフォルトの名無しさん:2009/04/13(月) 20:25:03
メモリかファイルに書きだせばいい
963デフォルトの名無しさん:2009/04/13(月) 20:32:47
プログラム内で処理を終わらせたいのでファイルに書き出しは・・・

メモリに書き出すってのは、各行を例えば配列内突っ込むってコトでしょうか?
具体的にどうしたらよいか教えてください。
964デフォルトの名無しさん:2009/04/13(月) 20:36:37
1. System.out.print() の代わりに StringBuilder に append()
2. 改行出力の代わりに toString() で文字列化して配列に格納
3. 配列の前から System.out.println() で出力
4. 配列の後ろから System.out.println() で出力
965デフォルトの名無しさん:2009/04/13(月) 20:57:27
>>964
色々調べてみたのですが、まだ理解は出来ません。
今後、勉強していきます
966デフォルトの名無しさん:2009/04/13(月) 21:37:45
>>961
java.util.Stackにpushしてpopすればいい
967デフォルトの名無しさん:2009/04/13(月) 21:54:21
PrintStreemのラッパー書いちゃえよ。
setOut()すればいいだけだぜ
968デフォルトの名無しさん:2009/04/13(月) 23:50:56
hello worldはできたのですが、PATHを変更したままだと、私が使用している一部のソフトウェアが動作しません。
プログラミングとソフトウェアの使用が同時に出来る方法はありませんか?
969デフォルトの名無しさん:2009/04/13(月) 23:52:51
set path=%path%;%java_home%\bin
970デフォルトの名無しさん:2009/04/13(月) 23:54:19
>>968
PATH の指定は「%PATH%;C:¥java¥bin」みたいに書け。
971デフォルトの名無しさん:2009/04/14(火) 00:09:18
確か、System.out, int err は言語仕様で特別に記述されているはず
http://java.sun.com/docs/books/jls/third_edition/html/memory.html#17.5.4
972デフォルトの名無しさん:2009/04/14(火) 00:18:39
汚い仕様だな…
973デフォルトの名無しさん:2009/04/14(火) 00:33:02
>>969-972
ありがとう。
試しにアカウント別に作ってやり直してみます。
974デフォルトの名無しさん:2009/04/14(火) 00:44:44
Eclipseが今年の夏、日本で見られるらしいですね
これを見逃すと後二十数年見られないとか・・・

皆さんはjavaプログラマーとして、
絶対見に行きますよね?
975デフォルトの名無しさん:2009/04/14(火) 01:04:22
NetBeansユーザに喧嘩売ってるのか
976デフォルトの名無しさん:2009/04/14(火) 01:50:08
だからPleiadesはやめとけ、ってあれほど言ったのに・・・
977デフォルトの名無しさん:2009/04/14(火) 04:24:36
標準で使われている JAXP 実装が何でどのバージョンだって情報はどこかから取れませんか?
(どのプラットフォームでも大抵は Xerces ベースだと思うんですが)
978デフォルトの名無しさん:2009/04/14(火) 07:22:05
>>974
詳細教えて
979デフォルトの名無しさん:2009/04/14(火) 07:28:12
>>978
2009年7月22日。場所は奄美大島。
世界のEclipseマニアが一堂に会する20年に一度規模の
ビッグイベントだ。
ググれカスw。
980デフォルトの名無しさん:2009/04/14(火) 09:01:51
いや、範囲が世界ならほぼ毎年あるイベントだろ。
981デフォルトの名無しさん:2009/04/14(火) 09:24:57
人類滅亡ですね、わかります
982デフォルトの名無しさん:2009/04/14(火) 09:28:45
>>979
しまった。
起動してみろw。
で、終了だったのにorz。
983デフォルトの名無しさん:2009/04/14(火) 10:16:48
tomcatでJspでweb制作の練習をしたいのですが
環境の整え方についてどなたかお願い致します
入門サイトなどでjreやらsdkやらをインストールしろと書かれてるのですが
サイトによってURLが違ったりjreだったりsdkだったり説明が違うのですが
どれをインストールしたらよろしいのでしょうか?
ピンポイントでURLまたはどこどこのここをクリックと誘導して頂けると助かります
984デフォルトの名無しさん:2009/04/14(火) 10:26:56
ここで「JDK 6 Update 13」ってのを落とすがよい。
ttp://java.sun.com/javase/ja/6/download.html

その後の手順も不明なら最初から素からの構築は諦めて↓で環境一式を丸ごと入れると良い。
http://ja.netbeans.org/
985デフォルトの名無しさん:2009/04/14(火) 10:34:37
失敗も勉強なんだからどんどん適当にやってみればいいのに
最近の若者は用意されたレールの上をスムーズに
行くことしか考えていない。
986デフォルトの名無しさん:2009/04/14(火) 11:35:52
失敗したらどんな目にあうか上の世代を見て学習してるからだろ。
987983:2009/04/14(火) 11:56:13
余計なものインストールしすぎ?てHDDが満タンナンスよ
988デフォルトの名無しさん:2009/04/14(火) 11:58:57
ちらねーよ
989デフォルトの名無しさん:2009/04/14(火) 12:53:34
Java と全然関係なくてすみませんけど、文字化けって英語で何て言います?
990デフォルトの名無しさん:2009/04/14(火) 13:14:48
wrongly encoded
991デフォルトの名無しさん:2009/04/14(火) 13:34:55
thank you
992taguti:2009/04/14(火) 16:21:14
6個のreal型変数x1、y1、x2、y2、x3、y3を定義しそれぞれに実数つを読み込んで、xy平面上の3点
(x1、y1)(x2、y2)(x3、y3)を頂点に持つ三角形の面積を計算して、その値を表示するプログラムを作成してください。
・公式:底辺x高さ÷2を使って計算してください。
お願いします!!
993デフォルトの名無しさん:2009/04/14(火) 16:26:15
マルチいい加減にしろよ
994デフォルトの名無しさん:2009/04/14(火) 16:34:08
995デフォルトの名無しさん:2009/04/14(火) 16:37:05
5
996デフォルトの名無しさん:2009/04/14(火) 17:46:12
>>992
宿題頑張れ
997デフォルトの名無しさん:2009/04/14(火) 18:14:47
3
998デフォルトの名無しさん:2009/04/14(火) 18:35:25
2
999デフォルトの名無しさん:2009/04/14(火) 18:50:27
だからPleiadesはやめとけ、ってあれほど言ったのに・・・
1000デフォルトの名無しさん:2009/04/14(火) 18:55:10
ばんざーい、おれが1000だ( ^ω^)
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。