[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 05/09 10:16 / Filesize : 148 KB / Number-of Response : 540
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:50:53 ]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    pc11.2ch.net/hp/
Webプログラミング pc11.2ch.net/php/
をご利用下さい。

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

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

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

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/

2 名前:デフォルトの名無しさん mailto:sage [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
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 ★★
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 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:59:00 ]
けけけっ勝手に立ててやったぜ

4 名前:デフォルトの名無しさん [2009/02/22(日) 22:59:27 ]

これはひどいパクリ会社
www.nicovideo.jp/watch/sm6206533

5 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:08:16 ]
Object3つを1つのbyte[]に入れたいのです。
さらに、それをJMSで別サーバに送信し、byteの配列から
Objectを3つ取得したいのです。
どうすればよいのでしょうか?


6 名前:936 mailto:sage [2009/02/22(日) 23:08:20 ]
BoxRoomMainに
player.setEnemy(enemy);
を追加して
Playerには
public void setEnemy(){
}
でいいんでしょうか?
で、そこからEnemyにPlayer内の数値を渡して受け取るには何がいりますか?

7 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:10:16 ]
>>6
プレイヤーにエネミー渡せば、今までどおりのエネミー.セットターゲットで値渡せるじゃん

8 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:21:18 ]
BoxRoomMainに
player.setEnemy(enemy);
と記述した後
具体的にどうすればいいのか教えていただけないでしょうか・・・

9 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:25:46 ]
>>8
今までプレイヤーの中でnewしてたエネミーはもうnewしない。
その代わり、セットエネミーで貰ったエネミーを、プレイヤーのクラス変数エネミーにセットする。

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

プレイヤーからエネミーに値渡すのは、もう書いてあるから、そのまま動く筈だぜ
※セットディレクトの中でやってるセットターゲットな

10 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:34:30 ]
ん〜
2日寝てないせいか頭が回らない・・・
>セットエネミーで貰ったエネミーを、プレイヤーのクラス変数エネミーにセットする
ってのはどう記述するんでしょうか?
Player内で
enemy = new Enemy();
を消して
public void setEnemy(enemy){
}
と追加したけど
型 Player のメソッド setEnemy() は引数 (Enemy) に適用できません
とのエラーが・・・
メソッドとかセッターとかの用語とJavaの記述で頭の中で関連付けできてないから
いまいち理解ができなくて・・・



11 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:36:02 ]
>>10
セットターゲットとやってることは同じって言ってんだろw

変数の型がイントかエネミーかの違いだよ

12 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:40:39 ]
最近もこみちの名前みなくなったけど、何やってるか分かります?

13 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:43:00 ]
同じといわれてもあまり理解できてないので・・・
public void setTarget(int tx){
cx = tx;
}
見たいに書いてもらえないでしょうか・・・
intかエネミーの違いといわれても
intは型だけどenemyは型じゃないし
enemyだけだと>>10に書いたようなエラーが出てしまうので・・・

14 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:50:25 ]
セッターゲッターでぐぐって調べてみればいいじゃん

intもEnemyも型じゃん

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

16 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:04:41 ]
しかたないなセットエネミーはこうすりゃ直るんじゃねえかな

public void setEnemy(enemy){
}



public void setEnemy(Enemy enemy){
this.enemy = enemy;
}


17 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:11:02 ]
>>936
正解以外に興味がないなら帰れ

19 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:13:05 ]
まだやってたのかよw
甘いな

20 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:24:39 ]
>>16
ありがとうございますできました
(Enemy enemy)と並んでるのがなんとなくしか理解できてませんが
そうすればいけるってことですね
これであとは時間との戦い・・・
あと8時間・・・眠い・・・orz

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

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

とりあえず皆さんご迷惑おかけしてすいませんでした



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

そんなもんに人を巻き込むな

22 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:30:00 ]
>>21
思考力が身につかないのに、よく出来た気がする最悪のパターンだよな。
失敗と言うことが無いし。

23 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:33:03 ]
初心者歓迎の質問スレで質問に答えずに文句と基礎から勉強しろとしか行ってないヤツが
巻き込むなとか言ってもしょうがなくねぇか?
教えてあげたらちゃんとお礼も言ってるし
状況が状況だし答え聞いて理解するのもいいんじゃねぇの?
>>20見るとまだ理解できてはいないみたいだけど

24 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:33:23 ]
>(Enemy enemy)と並んでるのがなんとなくしか理解できてませんが

(int tx)

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



25 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:36:40 ]
>>23
じゃあがんばって教えてやってくれ。

26 名前:936 mailto:sage [2009/02/23(月) 00:37:19 ]
>>21
ごめんなさい
期限が明日なもんで焦ってたんです

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

>>24
それと同じようなものだなぁとは理解してますよ
ただそれそんな感じなんだろうなぁって思ってるだけだからなんとなくってことです

27 名前:17 mailto:sage [2009/02/23(月) 01:07:04 ]
>>20
最初の段落は無視して良いから、他の段落を読んでくれ

やるかやらないかは勝手だが
そんな切羽詰まってる時点で設計に手を付けることを強いたりはしないよ

28 名前:17 mailto:sage [2009/02/23(月) 01:15:42 ]
手っ取り早い解決法が書いてないから無視しただけなら、

private int cx; の行を
private int cx = muki; にでも換えて下さい。

29 名前:936 mailto:sage [2009/02/23(月) 01:44:03 ]
>>17さん
いえ、ちゃんと全部読みましたし
書いてある内容もちゃんと理解してますよ
ただ製作過程では突貫でサンプルのツギハギレベルで作ってたので
そこに気づかなかった感じです
今はちゃんと0から始まるように記入しなおしました
指摘していただきありがとうございます

30 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 13:58:48 ]
新しいクラスを作る時にクラス内にコンストラクターって作りますか?
作らなくても、new()出来ますよね?
何故コンストラクターを定義しなくてもnew()出来るのでしょうか?



31 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 14:16:58 ]
>>30
明示的にコンストラクタ一つも定義しないと、
言語仕様により引数一つも取らないデフォルトコンストラクタが生成される。

32 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 14:29:12 ]
>>30
まぁnewされたくなかたらprivateのコンストラクタ作ればおk

33 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 15:16:27 ]
>>30
クラスの継承にて。
サブクラスのコンストラクタで、親クラスのコンストラクタを明示的に呼び出さない場合、
引数を一つも取らないコンストラクタが呼ばれます。
記述が簡略にでき、便利です。

親クラスで、引数を取るコンストラクタだけを作成した場合、
サブクラスでは、コンストラクタを作成する必要があります。
さらに、親クラスで定義されているコンストラクタの何れかを呼び出す必要があります。
オブジェクト生成に必須なパラメータを明示でき、不用意な生成を抑制できます。

34 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 15:37:54 ]
>>31≫32≫33
さるでもわかる教え方で大変判りやすかったです。
ありがとうございました。

35 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 01:27:39 ]
シンボルを解決できませんってなに?
柴田先生の明解javaでScannerクラスをインポート?しようとしてもScannerが書いてある文全部にシンボルエラーが出ますたsけて

36 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 01:44:03 ]
jdk1.4だとか・・?
Scannerは1.5からだよ

37 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 01:48:54 ]
>>36
な、なんだってー!1?
ちょっと調べたら確かに1.4でしたご指摘ありがとうございます。

38 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 02:06:25 ]
可変長引数が忘れ去られてるんだろうなw
5.0の変更点として。
曖昧になるから俺は使ってないし。

39 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 03:04:30 ]
Integer.valueOf()のような、インスタンスからではなく型から呼び出すような関数はどのようにして作るのでしょうか?
また、そういった関数に特別な名前があれば教えてください。

40 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 03:24:46 ]
>>39
/* ソースは、適切に設定した Eclipse で F3キーを押しましょう。*/

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

あとは適当にぐぐってください。



41 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 03:32:20 ]
>>40
おお、ありがとうございます、これでぐぐれます。

42 名前:デフォルトの名無しさん [2009/02/24(火) 16:14:17 ]
iframeの表示領域は、あらかじめwidthとheight属性で規定しておく必要がありますが、
表示内容が想定より大きくなったり、小さくなったりすると、表示が崩れてしまいます。

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

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

www.w-index.com/main1.htm


43 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 17:07:06 ]
>>42
>>1
>プログラミング言語Javaに関する質問スレです。
>JavaScript, Ajaxの質問は、ここでは受け付けていません。
>Web製作管理    pc11.2ch.net/hp/
>Webプログラミング pc11.2ch.net/php/
>をご利用下さい。


44 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 19:05:28 ]
javaインストールの時の
コアファイルの解凍に失敗しましたってなんだろう・・・

45 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 20:12:44 ]
>>44
ダウンロードしてきたファイルが壊れてた、とかじゃね?

46 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 20:14:47 ]
ObjectOutputStreamを使ってファイル出力しているのですが、
Stringを複数含んだクラスにおいて、文字列に漢字が入っている時

NotSerializableException: javax.swing.text.GapContent$StickyPosition

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

原因や対処策は分かりますでしょうか。


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

具体的にどういうオブジェクトの保存?

48 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 21:28:32 ]
staticなメソッドからは、staticなフィールドにしかアクセスできないの?
初歩的な質問でごめんね

49 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 21:30:37 ]
new でインスタンス作ってやればアクセスできる

staticなメソッドはnewしなくても使えるだけと思えばいいっす

50 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 21:42:33 ]
>>49
thx



51 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 21:49:45 ]
なんか日本語がおかしい

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

伝わってたと思うけど訂正

52 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 22:25:01 ]
>>51
紛らわしい。
単にyesでOK

53 名前:46 mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 22:49:57 ]
今日からというかさっきから始めた超初心者で申し訳ないんですが・・・

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

たとえば引数の未定義をチェックするのに
perlで言えばif( !defined($hoge)){ みたいにするよりも
catchで場合分けして受けるのが正解?


55 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 22:57:42 ]
>>53
それは本当に漢字のせいですか?

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

56 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 23:19:25 ]
>>54
未定義、、Javaで言えばnullチェックぐらいなら普通にif文で良いよ
基本的に自分でチェックできるものはしますよ

57 名前:46 mailto:sage [2009/02/24(火) 23:23:17 ]
>>55
そう言われると自信が持てなくなってしまいますが・・・
あくまで現象としてはアルファベット・ひらがなでは問題なく、
漢字の時に例外が出ているということです。

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

すみません。
理解力不足でどのようなことか分かりませんでした。
javax.swing.text.GapContentクラスのインスタンスということでしょうか?

58 名前:55 mailto:sage [2009/02/24(火) 23:34:47 ]
>>57
NotSerializableException: javax.swing.text.GapContent$StickyPosition の解説をします。

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

ここで 55 の話に繋がります。
本当に漢字のせいですか? と。

59 名前:46 mailto:sage [2009/02/25(水) 00:43:31 ]
>>58
ありがとうございます。
ドル記号の後ろはクラス内クラス名なのですね。メソッド名かと勘違いしていました。
(GapContentのソースも確認してみました。)

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

そのフィールドに対してtransientを修飾することで問題が解決しました。
原因の根本はおっしゃる通り漢字うんぬんでは無かったということになります。
本当にありがとうございました。


60 名前:デフォルトの名無しさん [2009/02/25(水) 02:10:28 ]
学生レベルでJAVAの中級者以上ってどんなレベル?



61 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 02:14:56 ]
学生レベル

62 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 02:21:14 ]
>>54
その辺は実は深い問題なので、あんまり「こうしとけばOK」というやり方はない。
おおまかな指針なら「Effective Java」って本に載ってるので、Javaに一通り慣れたら読んどけ。


63 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 02:26:58 ]
高校生なら将来は情報系に進学するんだろうけど、大学生なら別にどうってことない。
それよりも英語が出来ないと次の技術に追いつけないから中級か初級かの違いはあまりない。
中級者というならランタイムのソースぐらい読んでないと恥ずかしいが。

64 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 02:30:23 ]
サンは教育に力入れてるから小学生だとしてもジャバなら積み木のように何でも作れるって外人は多い。(ジャバだけしかつかえないけど)
C#と比べても実際そんなに複雑じゃないし。

65 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 02:50:34 ]
>>63
今の学生は情報系よりプログラム教える専門学校の方が上だと
信じ切っててそのまま専門入って洗脳されるパターンがあるんだな。これが。
んで底辺同士で変な潰し合いやってメンヘラ化。

ITドカタ以下だからねぇ。食えるんだろうか。エロゲの外注マくらいしか思い付かん。

66 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 03:23:05 ]
そういうと視点なら実際は底辺大学入っても同じ。エロゲを作るのか、半エロのオンラインゲームの受注を受けるのかの違いはあったとしても。
MARCH以上じゃないと、専門でも大学でもそんなに差があるとはいえないんじゃないか。

少しお花畑の話をすれば、情報の技術者を医療系のように国が保護して補償してないからこういう事態になるんだろうけど(携帯業界とかIT派遣とかで顕著でしょ)

67 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 03:55:02 ]
医者よりは芸術家とか職人のような扱いの方がいいのではないかと思う。

他の匠と違って朝すげー遅いが他は似たようなものだろう。


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

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

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

他方で下手に経験があるだけに変に自信を持ってしまい、我流に
しがみついて体系的に学ぶことを拒否する学生もいる。
そう言う学生が後から来た素人に抜かされるのも時々見る光景。

69 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 04:02:08 ]
>>68
その実践的なプログラミングってどの程度の話?

70 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 04:19:10 ]
>>68
まあ言いたいことは分かるけどね。
しかし大事なところが抜けてるから一応補足しとくと、君は自分の能力と同等なものをその学生やらなんやらにも求めてないか?
どの分野でも何もないところから自分で設計したり実践したりすることなど出来ない。
小さいときに君は学習塾で先生に手取り足取り「解法」を学んで今やっとそのように「やる気があれば何でもできるだろ」ようなことを言ってるんじゃないかな。

どうでもいいけど、君に実力があるというなら、得意な分野でいいから誰にでも理解できる本を書いてみたらどうだろう。
プログラミング関係の書籍はほとんどが粗大ゴミだけど、君が書くプログラミングの記事もまたそのゴミの一つかもしれない。



71 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 04:28:13 ]
>>68
我流にしがみつくような学生の方が、率先してゼロからでも課題をこなしていくタイプじゃないのか?
その長文で主張したいことは、どうも矛盾してるようだけど・・・

我流の学生なら、変な癖のところを指摘してやれば充分じゃないかと思うけどね。
海外だと学生のときに作ったプログラムで成功してるのが多いでしょ。(GIMPとかYAHOO.COMとか)
情報というかプログラムの世界は、工芸職人みたいだけど、課題をこなすような人材よりも我流でアクが強い方がいいもの(道具)を作る世界なのかも。

72 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 04:45:12 ]
>>69
自分が関わっているところはどっちかというと理屈系の比重も
大きいから規模も複雑度も企業内でのプログラミングに比べ
たら全然大きくないと思います。

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

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

>>71
そう。まさに我々の周りでも「変なクセがある」と呼んでいます。
クセを指摘して聞いてくれる学生だと良いんですが、時には妙に
固執する頑固な人もいて・・・。掲示板みたいに規模はともかく
前例やベストプラクティスが存在する対象をクリアして自信を
つけてものの、そういうものがない対象を扱うようになって途端に
はまる人を何度か見かけました。

73 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 04:59:19 ]
むしろ学生のうちは、
どうして01の足し算だけでコンピュータが動くのか?とか
基本的なアルゴリズムとかその他学術的なことを
しっかりやってほしい。
会社に入ったらそういったことを勉強する機会は少ないし、
実践的なことしか勉強できなくなるから。
現場にいない大学の先生に現場で必要な実践的なことを教えるのには限界があるしね。

74 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 07:02:23 ]
真夜中から長文ご苦労。
引き続き質問スレに貢献してくれ。

75 名前:デフォルトの名無しさん [2009/02/25(水) 13:09:40 ]
どうして01の足し算だけでコンピュータが動くの?


76 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 13:36:33 ]
01の足し算だけでコンピュータが動くじゃなくて
コンピュータは01の足し算だけで動いているの方が若干正しい気がする

77 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 13:45:03 ]
>>76
それならどうして01の足し算だけでコンピュータが動くのか教えて


78 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 14:00:08 ]
01の足し算だけでは動かないと思うぞw

79 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 14:10:28 ]
足し算だけじゃどう頑張っても無理ではなかろうか

80 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 14:12:03 ]
少なくとも条件分岐は必要だな。



81 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 14:12:31 ]
book.mycom.co.jp/book/4-8399-0986-5/4-8399-0986-5.shtml
洒落ではなく、ビット演算からスタートして最終的にCPUがどうやって
動くのか、興味がわいた人のとっかかりとしてはマジでお薦め。

journal.mycom.co.jp/column/architecture/index.html
内容が心持ち順不同だけど、良い連載だと思う。

82 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 14:19:08 ]
Javaと関係ねーよー
おかーちゃーーん

83 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 14:19:31 ]
学生さんにはしっかりと足し算だけでコンピュータが動くしくみを
勉強していただきたい


84 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 16:51:16 ]
javaできる奴ってどれくらいいるのかな?


85 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 17:20:59 ]
クラスでjavaできる奴何人いたって意味↑

86 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 17:31:53 ]
>>85
そろそろ病院行ったほうがいいんじゃない?
心療内科は結構いいよ

87 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 18:03:53 ]
>>78-79
釣り?だよね?

88 名前:デフォルトの名無しさん [2009/02/25(水) 20:12:41 ]
ジャンプってプログラムカウンタの足し算だよな

89 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 20:29:23 ]
「だけ」をいうのであれば足し算というより排他的論理和だな。

90 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 00:05:50 ]
1 - 1 = 1 + -1
2の補数



91 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 00:46:45 ]
スレチだけども、学問と実践、研究者と技術者の区別がついていないんだと。。。

92 名前:デフォルトの名無しさん [2009/02/26(木) 00:58:12 ]
Linux(CENTOS)でアパッチがインストールされていれば
Java(サーブレット)を動かせますか


93 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 01:12:32 ]
>>92
無理。サーブレットの実行にはTomcatなどのサーブレットコンテナが必要。
Apacheとサーブレットコンテナを連携させることはできる。

94 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 02:11:43 ]
javaでcgiすりゃいい

95 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 04:43:15 ]
>>94
それだとセッション管理が大変になるだろ。

96 名前:デフォルトの名無しさん [2009/02/26(木) 16:21:30 ]
すみません
OutputStreamの中身をbyte[]型で出す方法ってありますか?

97 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 16:24:01 ]
java.io.ByteArrayOutputStream

98 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 21:53:35 ]
>>95
マジリアクションするなよwwwwwwww

99 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 00:05:07 ]
MQを使って別プロセスと通信を動機的にすることは可能ですか?
MQを使った時点で非同期になるのでしょうか?

100 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 03:30:51 ]
>>98
相手初心者なんだから嘘教えるなよw



101 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 12:40:29 ]
家でjavaをはじめようと思ってます。
まず何をしたいかと言うと、
Realtekのカニさんマークの用に
画面の真ん中にウインドウ枠を消した状態で
カに以外を表示したいです。
段取りを教えてください。

102 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 13:39:04 ]
>>101
SWTスレへいけ

103 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 16:34:35 ]
Realtek のことはよく知らないけど
スプラッシュスクリーンのこと?


104 名前:デフォルトの名無しさん [2009/02/27(金) 16:39:25 ]
(1)jspのページを直接表示させた場合
(2)サーブレットからリダイレクトによってjspのページに遷移させた場合
(3)サーブレットからフォワードによってjspのページに遷移させた場合

何で(1)と(2)では文字化けしなかったのに(3)は文字化けするんでしょうか

105 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:37:38 ]
>>103
スプラッシュスクリーンがまず最初ですかね。
僕としては、今後そのスクリーン上で、フォルダを指定して、
画像データとかを表示したいなと思っています。
まったく別物ですか?

106 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:45:26 ]
別物

java スプラッシュスクリーンでまずぐぐれ

107 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 20:56:42 ]
起動処理中のサーバに接続したい場合、
サーバの起動に時間を要するので、起動確認してからtelnetしたいです。
手入力のコマンドですとpingで確認するところですが、
Javaのプログラムだとどういう方法で確認するのがよいでしょうか?やはりpingを実行するのでしょうか?

108 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 22:48:56 ]
要求を、適当な時間間隔で適当な回数、リトライするんじゃ駄目?

109 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 23:22:40 ]
Telnetメソッドを数回リトライということですか?

110 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 00:54:49 ]
そもそも、pingが通ればtelnetも通る?
telnetそのものでトライするのが確実だと思うよ。



111 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 00:59:28 ]
なるほど。納得しました。
ありがとうございます。

112 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 13:59:30 ]
WebページにあるフォームにGetで送信したいんだけれども、どうしたらいい?
ヒントくれ

113 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 14:47:42 ]
HttpClient

114 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 15:53:31 ]
>>113
thx

115 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:36:28 ]
書き込みながら読み込みとかやってる事が高度すぎる

書き込み終わってから、読み込みの順番ならちゃんと表示されるよ

118 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:46:14 ]
System.out.println("Test");
とすればちゃんと表示されますよ

119 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:49:32 ]
>>116
writer.write("Test"); の後に writer.flush(); してみれば?

120 名前:116 mailto:sage [2009/02/28(土) 21:50:36 ]
>>118
ありがとうございます。解決しました



121 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 21:56:40 ]
!?('A`

122 名前:デフォルトの名無しさん [2009/02/28(土) 22:00:33 ]
ストリームっていのがよく理解できてなくて・・・
深い話が聞けるかなと。
>>119
ありがとうございます。

123 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:46:16 ]
windowsで言うところの.exeファイルってどうやって作成するんですか?
.javaから.classは作成できましたが、classをダブルクリックしても実行できません。

124 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:52:02 ]
そもそも何でそんな名前のオブジェクトがあるんだ。

126 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:53:17 ]
>>123
JAR (Java Archive) というファイルを作る。
Windows 限定なら
Java アプリケーションを EXE に変換するソフトもある。


127 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:56:34 ]
>>124
フィールドにそんな名前をつけること自体
設計がよくないと思う。

強いて言うならリフレクション使う。


128 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:59:22 ]
>>127
感謝します

129 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 00:18:32 ]
>>126
jarファイルを作成し、実行できるようになりました。
有難うございました。

130 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 01:07:45 ]
基礎を勉強した後に読む本でおすすめはありますか?



131 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 01:24:12 ]
スレチかも知れないけど
メモ帳でtabインデントを8→3にするのってどこで設定するんですか?

132 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 01:48:40 ]
>>131
しらん。
エクリプス突っ込むか、フリーのテキストエディタを
使った方が幸せになれると思うのだが、
顧客が馬鹿でメモ帳以外使わせないとかなのか?

133 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 11:37:45 ]
改行コードって\r や \n そしてこれらの組み合わせがあるようですが
ファイルに書かれている改行コードが何か判別するにはどうしたらいいのでしょうかm(__)m

134 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 11:45:59 ]
バイナリエディタで開く

135 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 12:56:32 ]
Javaのプロセスが急に落ちるときの原因は何が考えられますか?
その際、アプリログを見ても、何も吐き出されていないのです。
環境はTomcat+Apatch+Sunで動かしているWebアプリです。

136 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 13:15:10 ]
>>135
サーバのログは読んでみたの?

137 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 13:59:58 ]
>>136
サーバーのログとは何ですか?
Javaのプロセスが突然落ちたのです。
コアダンプもエラーも何も出ずに、落ちてました。

138 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 14:07:10 ]
>>133
先頭から1文字ずつ読んでみればよい


139 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 14:12:15 ]
>>137
/var/log/httpd/error_log とか。

140 名前:デフォルトの名無しさん [2009/03/01(日) 17:46:51 ]
ファイルの指定行への書き込みや、
指定行からの読み出しは、
ループを回さなければならないんでしょうか?



141 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 17:53:29 ]
org.apache.commons.io.FileUtils の readLines とか writeLines とか使えば?

142 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 18:07:03 ]
各行のオフセットをどこかに記録しておけばループは不要

143 名前:デフォルトの名無しさん [2009/03/01(日) 18:08:45 ]
そんなクラスないみたいなんですけど・・・
orgはietfからみたいです。
そう言えば、java以外まだ使ったことないですけど。

144 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 18:15:56 ]
>>143
つ ttp://commons.apache.org/

145 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 19:58:30 ]
>>144
親切だな

146 名前:デフォルトの名無しさん [2009/03/01(日) 22:11:41 ]
標準クラスライブラリ以外使用不可ならどうすればいいんでしょうか?

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



147 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:30:35 ]
"128hoge" が 128 になるような寛容な変換メソッドはありますか?
Integer.parseIntだと例外が飛んでしまいます。
なければおとなしく切り出そうと思います。

148 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:45:13 ]
int i = Integer.parseInt("128hoge".replaceAll("\\D", ""));


149 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:59:48 ]
>>146
指定行までを読み込んで
文字列を追加して
ファイルの残りを読み込んで

まとめて書き出せばいい

150 名前:147 mailto:sage [2009/03/01(日) 23:12:36 ]
>>148
このほうが短いですね。ありがとうございました。



151 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 00:00:06 ]
いや、普通はこうだろ (Cのatoiとか)

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

何れにしても、空になると例外出るから、初期値0にするのにもう一手間いるけど

152 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 00:05:44 ]
\DってCで反応するの?

153 名前:147 mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 13:19:17 ]
ScheduledFuture<?> s = ほげほげ
s.cancel(true);

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

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

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

ちんぷんかんぷんです。おしえてくだしあ

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

 if (obj instanceof クラス)
よりも
 if (obj != null && obj instanceof クラス)
の方がパフォーマンスが高いとか?
サーバアプリなんですが、
CPUの負荷にやさしいのは、どっちの書き方でしょうか?


156 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 14:30:38 ]
>>155
場合分けとしてはどちらの場合も同じ。
null instanceof Hoge の場合は必ず false

勘違いしているか、null チェックだけでもやっておいた方が早く動くと思ってるか。
他にも何か理由があるのかね...

157 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 14:42:18 ]
>>155
演算子の優先順位は明らかなのに わざわざ括弧つけたりするのと同じで
冗長でも意図が明確に書いてあるってだけでは?

158 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 14:48:50 ]
ループで時間計ってみたら先にnullチェックで落とした方が半分以下の時間で済んだ。

nullチェックで落としたら、後のinstanceofが評価されないのは分かってたけど、
どれくらい時間かかるかわからんかったから、コード書いてみた。

159 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:02:29 ]
>>154
実行中に割り込み食らうとキャンセルされるように作ってあれば、
true 渡してやればタスクが既に実行中の場合タスクを実行しているスレッドに割り込みかけてキャンセルできる。
false の場合はタスクが既に実行中なら諦める。

実行中に割り込まれても無視するように作ってある場合は
true にしようが false にしようが同じ。

160 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:18:12 ]
すみません、質問です。

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

エクセルのロックのパスワードはわかっています。



161 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:28:38 ]
正確に言うとシートがロックされていて、
javaのプログラムでシートのロックを解除して、もう一度ロックをかける。
ということがしたいのですが・・・無理でしょうか?

162 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:33:12 ]
おすすめ本あるでしょうか?

163 名前:デフォルトの名無しさん [2009/03/02(月) 17:32:24 ]
swingのJColorChooserで指定した色のrgb値を取得するにはどのように
すれば良いのでしょうか、いま指定した色と調和する色を表示するアプリケーションを
作っているので、ご教授願います。

164 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 18:52:11 ]
String.format("%.1f", hoge) // 注意: % と 1 の間に小数点があります
で小数点以下2桁で四捨五入するのですが
hoge = 1 のときは「1.0」ではなく「1」と出したいのです。
おしりの0を省く方法ありますか?

165 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 18:58:17 ]
クラスライブラリを使うとき、ヘッダファイルは、いらないの?
コンパイルされたクラスファイルがあればいい?
ソースコードもいらないの?

166 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 19:20:14 ]
public class クラス名<E>{
の、<E>って何よ?

170 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 19:26:28 ]
人に聞いてばかりで自分で出来ないようなら、いつまでたっても上達しませんよ。



171 名前:デフォルトの名無しさん [2009/03/02(月) 19:27:50 ]
>>168
はい、だから設定ファイル変えられたらトレースされて丸見えになってしまうなーと。
ググッっても向いてる用途が書いてないので、ここで聞いてみました。


172 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 19:29:15 ]
>>167
知っているユーザーが設定ファイルを書き換えたらそうなるかも。
気になるならユーザー配布物にはダミーパッケージでも
つっこんどきゃいい気がするけど、どうなんだろう?

173 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 19:32:21 ]
ばっちり見えまくり

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

そこは.netも同じらしいけど

174 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 19:52:22 ]
>>177
まあ、お客さんがログ見たかったら見ればいいってのはありじゃね?

デバッグログ見られたって困ることはないだろ

179 名前:デフォルトの名無しさん [2009/03/02(月) 20:27:00 ]
>>173
jadをダウンロードしようと
www.kpdus.com/jad.html
へ行って
Jad 1.5.8g for Windows 9x/NT/2000 on Intel platform (238600 bytes).
www.kpdus.com/jad/winnt/jadnt158.zip
を選ぶと
Go Duddy.com とかいう変なページしか表示されません。
どこでダウンロードできるのでしょうか?

180 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 20:28:12 ]
デバッグログを暗号化して出力すればいい



181 名前:163 [2009/03/02(月) 21:04:10 ]
>>163
もよろしくおねがいします。

182 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 21:21:29 ]
>>179
ありゃりゃ・・・サーバが落ちてるのかな・・・
一時的なものなら、しばらく時間をおいてから再度ためしてみるといい。

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

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

File Name: jadnt158.zip
MD5: FC4CB644F4783AEF5EFA8C9EBEC1EB05
Bytes: 238,600

183 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 21:22:52 ]
>>182
たぶん一時的じゃない。数日前ダウンロードしたときも同じ状態だった。

184 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 23:23:12 ]
CやC++でもリバースエンジニアリングやヒープをダンプされたら暗号化しようが中身丸見えだよ

185 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 23:28:52 ]
隠すほど凄いモノを持っておるまいに……

186 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:01:59 ]
市販アプリがダラダラとデバッグログをはいてたらその会社のレベルを疑うだろ普通。
チンコまるだし、ブリーフ、トランクス、ズボンはいてるのじゃ大違い。

187 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:03:29 ]
客がチンコまるだしを望むならそれもありだろ

ズボン、トランクス、ブリーフを脱がす権利は客にあるんだから

188 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:11:46 ]
ちんこ丸出しの男はキチ外じゃん。
ズボンとパンツを脱がそうとするやつは変態じゃん。
そういうこと。

189 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:14:02 ]
客がズボンとパンツを脱がそうとする変態ならそれもいいじゃないか
納品するのは、最初からちんこ丸出しの変態じゃない、ちゃんとズボンとパンツ履いてる紳士だ。

客(変態)の要求で紳士にもキチ外にもなる、俺はそんなクマ吉になりたい。

190 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:18:35 ]
ログだだ漏れ=ちんこ丸出し
log4jの設定いじりでログ漏れ=ブリーフ一丁
リバースエンジニアリング=ズボン脱がし



191 名前:デフォルトの名無しさん [2009/03/03(火) 00:21:11 ]
露出狂がいるスレはここですか?

192 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:39:15 ]
そんなことより超々初心者の質問を聞いてくれあんちゃんたち

スーパークラスにprivateメンバ変数とセッタゲッタがあって、それをextendsしたサブクラスにはprivateメンバ変数は継承されないんだよね?
なのになんでサブクラスをインスタンスしたら継承していないはずのメンバがセッタゲッタでやりとりできるんでしょう?
ちょっと理屈がわからない

193 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:49:08 ]
>>182
ご親切にありがとうございました!無事にダウンロードできました。
感謝です。

194 名前:デフォルトの名無しさん [2009/03/03(火) 00:52:32 ]
>>192
privateメンバ変数は、継承されてる。

195 名前:192 mailto:sage [2009/03/03(火) 00:56:50 ]
>>193
てことは、直接参照できないだけでインスタンスには含まれてるってことなんでしょうか?

196 名前:192 mailto:sage [2009/03/03(火) 00:57:25 ]
安価ミス>>194

197 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 01:33:18 ]
>>198
listFiles()でとって、.length?


200 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 01:46:15 ]
なにかおすすめな書籍はあるでしょうか?



201 名前:197 mailto:sage [2009/03/03(火) 02:08:44 ]
自己解決しました。
ImageLabelからGraphics g をどうにかして取得できないかと思っていたのですが、
ImageLabelでなく、Imageで、Image.getGraphicsで取得できました。

ありがとうございました。

202 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 10:00:28 ]
Javaにおけるデザインパターンについて質問です。
Prototypeパターンでインスタンスをコピーする際にclone()を用いますが、ある本で
「自分のクラス(およびサブクラス)からしか呼び出せないのでほかクラスからの養成で複製を行う場合には、createCloneのような別メソッドでcloneをくるんでやる必要があります」
とありました。単純にcloneのアクセス修飾子を変えてpublicにして実装しないのは、Objectクラスでのclone実装を残しておきたいからなのでしょうか?

203 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 11:38:29 ]
なんじゃそりゃ

204 名前:>>202 mailto:sage [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()を作成した理由なのでしょうか?

という質問です。

205 名前:192 mailto:sage [2009/03/03(火) 12:35:46 ]
割り込み失礼

継承理解しました
extendの認識を誤っていました
>>194氏ありがとうございました!!感謝

206 名前:デフォルトの名無しさん [2009/03/03(火) 14:45:50 ]
練習問題でも

ランダムに設定した数を当てるプログラムを作りなさい
なお、10回までに当たらなければ、正解を表示して終了すること。

207 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 00:50:36 ]
ヒットアンドブローってやつだな。
新しい言語を覚える時、必ず作ってみるわ。

209 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 01:05:32 ]
勉強になるな

210 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 01:07:17 ]
>>207
久々にフローチャートを見た



211 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 01:18:29 ]
もっと大雑把なのは今でも書くな

212 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 02:08:02 ]
間違えたときにヒントは出ないのか?
ゲームとしては問題があるな

213 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 21:17:40 ]
super.init();

216 名前:デフォルトの名無しさん [2009/03/04(水) 21:31:23 ]
>>215
ありがとうございます。


217 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 21:34:55 ]
java製のwebアプリ経由で別サーバのファイルをダウンロードしたいのですが
実現方法が思いつきません。

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

複数のサーバに点在しているログをブラウザ経由で簡単に取れるようにしたいというのが
趣旨なのですが、一般的にどういう感じで実現されているんでしょうか?

218 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 21:39:40 ]
>>217
各サーバのファイルにリンク張れば、クリックで開いたりダウンロードしてくれるべ

この回答だとjavaの質問と回答になんねーけど

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

このパスをエクスプローラに貼ってアクセスしようとすると、アクセスが拒否られるんです。。

220 名前:デフォルトの名無しさん [2009/03/04(水) 21:58:51 ]
>>219
そっちじゃなくね?



221 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 22:03:32 ]
>>291
俺が想定したのはこんなの
IPADDRESS/hogehoge/hagehage.log

サーバAからサーバBが>>219の形式で見れるのなら、普通にjavaからファイルとして扱えるんで、
ボタンクリックなりリンククリックでサーバにリクエストが来たら、
レスポンスにファイルをぶち込んでやればいい。

222 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 22:04:18 ]
サーバーBのディレクトリを、NFSやsambaなんか使ってサーバーAで
マウントすればええやん。という意味だと>>218は思われる。

223 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 22:29:39 ]
>>221
なるほど、なんとなくイメージが湧きました。
この場合、ファイルはサーバB→サーバA→ユーザという風に
サーバAを介してダウンロードされますよね?
速度的にはダウンロード*2の時間が掛かってしまいますか?

224 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 22:34:39 ]
>>221
すいません、>>223ですが当然2倍時間掛かってしまいますね。。
100Mほどのファイルもあるので難しいかもしれません。

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

というより、普通にDLさせたいんならサーバBから直接取る方法を考えなければならないんでしょうか。。

225 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 22:42:00 ]
>>224
うん、2倍かかっちゃう。

>>222の方式も同じく、結局ファイルはネットワーク上を流れるんで、
100Mのファイルが2回ネットワークを流れることになる。

226 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 22:51:11 ]
>>225
そうですか〜。となると
(1)ユーザからサーバBのDL対象フォルダだけを見れるようにする。
(2)webアプリで表示する一覧では「サーバBのIP+ファイルパス」をリンク表示する。
(3)ユーザが(2)をクリックして直接サーバBからダウンロード。

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

皆さんご回答頂きありがとうございました。

227 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 22:51:11 ]
サーバ、サーバ言ってるけど、何サーバなの?

228 名前:デフォルトの名無しさん mailto:sage [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…java.sun.com/javase/ja/6/docs/ja/api/java/util/concurrent/locks/ReentrantLock.html
どうして、「final」が必要なのでしょうか?
これは、いわゆる「初期化の安全性」から寄与することなのでしょうか?
ご教授の程よろしくお願いいたします。



231 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 15:40:23 ]
どこかが間違ってるからじゃないでしょうか

234 名前:デフォルトの名無しさん [2009/03/05(木) 15:56:13 ]
あげ

235 名前:デフォルトの名無しさん [2009/03/05(木) 16:57:15 ]
禿げだとぉ?

236 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 18:03:29 ]
>エラーになるのはなぜでしょうか

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

なに?お医者さんだったら体のあちこちを押さえて
「ボク、ここがいたいでちゅかぁ?じゃ〜こっちでちゅか?」
って聞いてくれるだって?
じゃぁ、おまいも
「ボク、何てエラーがでたんでちゅか〜?コンソールやログにメッセージが出てまちぇんかぁ?」
っていちいちこっちから尋ねんと答えられんのか?

237 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 18:13:54 ]
実は・・・・チンコが痛いんです(アハ

238 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 18:21:26 ]
>>236
初心者の頃、自分の場合は質問を丁寧にまとめようとすると自己解決してしまった経験よくあった。
だが、それがいいのかもしれない。。

239 名前:デフォルトの名無しさん [2009/03/05(木) 18:59:15 ]
今GUIで色々作ってみて遊んでるんですが、
ボタン(b1)を押すとフォーカスがボタンについちゃって
その後、そのウィンドウでキー入力を受け付けてくれなくなってしまいます。
this.remove(b1);としてもキー入力ができなくて困っています。

フォーカスの外し方があるのなら、ご教授ください。

240 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 19:11:33 ]
>>238
「告白デバック」でググってみ



241 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 19:38:00 ]
何が分からないか分からないと言った人が
何が分からないかを調べる責任があるらしい

242 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 19:47:20 ]
すかしっぺの法則だな

243 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 01:25:58 ]
>>239

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

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

(3)
ボタンにも KeyListener を追加して
ボタンがフォーカスを持ってるときキーが押されても
キーイベントが発生するようにする


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

唯一大きく異なる点はTCPのSource Portが「passwrd-policy」でなく「intersan」となっているところですが、HttpURLConnectionを使う限りこのレベルの変更は難しそうです。
どこかまずい点を指摘、もしくは良い方法を教えてください。

245 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 00:03:18 ]
>失敗します。

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

なに?お医者さんだったら体のあちこちを押さえて
「ボク、ここがいたいでちゅかぁ?じゃ〜こっちでちゅか?」
って聞いてくれるだって?
じゃぁ、おまいも
「ボク、何てエラーがでたんでちゅか〜?コンソールやログにメッセージが出てまちぇんかぁ?」
っていちいちこっちから尋ねんと答えられんのか?

246 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 00:06:07 ]
テンプレに載せたいぐらい的確な罵倒だ。

247 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 01:47:09 ]
cai.cs.shinshu-u.ac.jp/sugsi/Lecture/php/manual/function.move-uploaded-file.html
cai.cs.shinshu-u.ac.jp/sugsi/Lecture/php/manual/features.file-upload.html
www.d4.dion.ne.jp/~y-arima/LOVELOG_IMG/200410030038fa5f.JPG

250 名前:239 mailto:sage [2009/03/07(土) 01:56:28 ]
>>243
ありがとうございます。
(1)を使って無事解決しました。
ボタン(b1)とテキストエリア(t1)がある場合、
this.requestFocus();
this.remove(b1);
this.remove(t1);
の2行目と3行目を入れ替えるとうまくいかないのですが、、
とりあえず解決したので、これはこれ!それはそれ!としておきます。



251 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 02:51:25 ]
pc11.2ch.net/test/read.cgi/tech/1086238859/
Java ネットワークプログラミング 【教えて!】

252 名前:sage [2009/03/07(土) 06:08:35 ]
>>247
えらい小難しいく考えてますが…
boundaryの意味をもう一度しらべてみましょう

rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/616.java

253 名前:>>247 mailto:sage [2009/03/07(土) 07:50:04 ]
>>251
スレッドが適切ではなかったですね。すみませんでした。
>>242
--バウンダリ文字列  →開始
--バウンダリ文字列-- →終了
だったんですね。私の知識不足でした。
わざわざソースまで提示していただき、本当にありがとうございました。

254 名前:デフォルトの名無しさん [2009/03/08(日) 19:08:28 ]
findbugsのeffortオプションいじったら何が変わるんですか?
公式のドキュメントにはメモリ使用量なんかが変わるとしか書いてなくて困ってます。
findgubsのソースを読んだらbugをfindする際のオプションの切り替えをしている所は見つけたんですけど
それぞれどんな意味があるのか分かりまあせんでした。

255 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 20:40:30 ]
現在javaを勉強中ですが、文字のエンコードはUTF8が良いですか?それともEUCの方が良いですか?

256 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 22:29:38 ]
>>257
MS 製の環境でプログラム作ったことがないから良くわからんが
心配なら UTF-8 のソース書くか実験すれば済む話だと思うが…


259 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 22:35:11 ]
知らないならレスしないでください

260 名前:258 mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 01:59:41 ]
このスレには凄腕はおりません

268 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 02:19:54 ]
>>265
C:/ほにゃらら

って感じでフルパス指定しる

269 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 02:20:54 ]
レス番号間違えたw

あと、../ほにゃらら
って感じで..つけると一つ上のディレクトリを指定できる

270 名前:デフォルトの名無しさん [2009/03/09(月) 02:30:21 ]
すいません
ソースコードからの相対パスを使う場合にはどうすればいいのでしょうか
InputStream is = new InputStream("Documents/Text/目的のファイル");
のような感じで



271 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 05:17:10 ]
普通は実行時のカレントディレクトリからの相対パスしか取れない。
ソースコードからの相対パスは無理。

ただ何らかのIDEを使っていて、IDEの実行メニューから実行した
場合はプロジェクトのルートフォルダがカレントディレクトリになって
いるんじゃないのかな(もちろん変更も可能だけど)。
なのでIDE上で実行する分にはある程度相対パスを決め打ちに
出来るはずです。

272 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 10:27:28 ]
コンパイルされたクラスファイルから
ソースコードの位置を特定することは無理でしょ
クラスファイルからの相対パスなら取得できないこともない


273 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 21:58:21 ]
java.sun.com/j2se/1.4.2/ja/download.html#docs

276 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:17:52 ]
>>275
ありがとうございます。
emoneの狭い画面でちまちま見ていて、下の方を見逃してました。

277 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 19:01:59 ]
みなさんGUI関係でお勧めの書籍はありますか?

278 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:17:16 ]
ttp://java.sun.com/docs/books/tutorial/uiswing/
ttp://java.sun.com/products/jlf/

279 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:07:45 ]
教えてください

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

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

JTextFieldクラス内のメソッドでは無いんですかね?

280 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:36:02 ]
>>279
FocusEvent?



281 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:04:12 ]
String good = "" + i1;
String s1 = "00000";

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

動かしてないから間違ってるかもしんないけど、サブストリーングで00000をgoodの文字数だけ削ればいくね?

283 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:20:48 ]
s1 = String.format("%05d", i1);

284 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:28:19 ]
s1 = new DecimalFormat("00000").format(i1);

285 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:34:15 ]
s1 = "";
while (s1.length <= 4) {
s1 = (i1 % 10) + s1;
i %= 10;
}

286 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:42:19 ]
if(i1==20){
  s1="00020"
}
else if(i1=120){
.....


287 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:25:15 ]
ttp://www.kpdus.com/jad.html
jad.exeのサイトがドメイン切れになってるみたいだけど、
どこか他に落とせるところ知ってる人いない?
もしくは、Eclipseでjarからソースを読みたいだけなので
jad.exeがなくても同等のことができるプラグインみたいなのがあればいいんだけど…

288 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 00:08:41 ]
MergeDoc Project (Eclipse 日本語化)
mergedoc.sourceforge.jp/

これにセットで入ってるらしい

289 名前:デフォルトの名無しさん mailto:sage [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の形でないとダメなようで。




291 名前:279 mailto:sage [2009/03/12(木) 14:06:19 ]
>>280
ありがとうございます。
なんかややこしいですが調べてみます。

292 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 14:09:55 ]
少し教えて欲しいのですが…

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

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

すいませんが、アドバイスお願いします。

293 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 14:28:17 ]
POIでがんばる。
OpenOfficeのテンプレートに変えて、OpenOfficeSDKから操作でがんばる。

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

金はないけど時間があるなら、がんばってみても良いと思う。

294 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 14:30:35 ]
>>290
やったことないな。
java.io.PipedInputStream
でなんとかするんじゃね?

295 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 14:45:43 ]
>>290
ByteArrayOutputStream に出力させて
出力後に toByteArray() で得た byte[] を
ByteArrayInputStream のコンストラクタに突っ込む

296 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 14:48:36 ]
VBSのバッチでExcel作らせてそれキックならやったことあるぜ

297 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 15:00:08 ]
String name = obujekuto.getClass().getName();
とすると、フルで長〜いクラス名が帰ってくるのですが
末端の短い名前だけ取得する方法はありますか?
例: "jp.co.uncoproject.hoge.fuga.Unko" → "Unko"


298 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 15:08:19 ]
>>297
おれなら、そんな無駄なメンバまで用意しない。
自分でちょん切るしかないんだろ

299 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 15:13:59 ]
>>297
Class#getSimpleName()

300 名前:297 mailto:sage [2009/03/12(木) 15:16:24 ]
>>298
バカは黙っててください><



301 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 16:36:32 ]
>>299
ありがとうございました。もっとよくマニュアルを読むべきでしたね。

>>298
豆腐の角におちんちんぶつけて氏ね

302 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 16:41:19 ]
JTable + JScrollPane でプログラムで選択した行を表示範囲に含めるには
どうしたらいいですか?
行選択は SelectionModel を取得すれば出来るんですが。

303 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 01:36:24 ]
>>302
表示したい行のセルを含む矩形をJtable#getCellRectで取得して、
JScrollPaneのビューポートに対してJViewport#setViewPositionを使って
その矩形が表示されるようにビューの座標を設定する。
手っ取り早くRectangle#getLocationで得られる位置をsetViewPositionで設定すれば、
ビューポートの左上にそのセルが表示される。
セルがビューの下端近辺とかなら左上にはならないかもしれないが少なくとも表示範囲内のはず。
できるだけビューポートの中央に表示したいとかなら、
ビューポートの大きさとセルの座標からビューポートの左上に位置付けるべきビューの座標を計算できる。

304 名前:デフォルトの名無しさん [2009/03/13(金) 07:12:45 ]
豆腐の角におチンチンあてがうと気持ちいいよね〜
砕け散った豆腐のカスがおチンチンにこびり付くし・・・

305 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 07:41:33 ]
javaでインストール時にファイルが開かないと出たエラーだけど

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

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

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

java 環境変数 などグーグル検索してよく調べてからインストールした方が良いよ

306 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 08:08:20 ]
>>302
テーブルのgetCellRectでとってきた範囲をnullチェック後
テーブルのscrollRectToVisibleで設定する

307 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 12:03:14 ]
javaのフリーソフトを落としたのですが
jarダブルクリックしても
Could not find the class:Program will exit
というエラーが出てしまいます。
どうしたらいいのでしょうか?
自分はプログラムのことは全く分かりません。
javaランタイムは6-12入れています
スレ違いならすみませんがどなたか教えて下さい
よろしくお願いします。m(__)m


310 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 12:13:35 ]
そのフリーソフトの説明書を読んでよ。



311 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 12:26:28 ]
>>309
作者に聞くしかないんじゃね?

312 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 12:47:12 ]
>>310
ソフトの説明にはjavaランタイムが入っていればjarファイルをダブルクリックで起動出来ますとしか書いてありません。m(__)m
>>311
他のjar起動のソフトもエラー出るので、自分のPC環境がおかしいと思われますm(__)m

313 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 14:58:54 ]
java.lang.Stringにannotationを付与したいんだけど、リフレクションでは付与できず
javaassist等でもjava.lang.Stringには手を出せない。
どうするのが一番簡単だろうか?


314 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 15:58:50 ]
素直にあきらめろ

315 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 16:00:25 ]
無理なんじゃね?
JDKのライセンスで「java.*とjavax.*はいじるなゴラァ」となってたような。

316 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 23:42:57 ]
>>312
Java入れなおしてみるとか

317 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 01:03:14 ]
>>312
それ、何でか知らねーけどいつの間にかなってるんだよな。
とりあえずコマンドプロンプトで起動する方法をぐぐれ。

java -jar "JARファイル"

318 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 01:22:35 ]
Swing (AWT) のイベントディスパッチスレッド内のアプリケーション処理で例外が発生した時、
デフォルトだと標準エラーにスタックトレース出すだけですよね? これを一括でハンドリングしたい
んだけど何か良い方法ないですかね? 膨大なイベントハンドラ全てに try-catch 仕掛けるのは
現実的ではないし、ThreadGroup#uncaughtException() みたいな機能があれば良いんですけど。

319 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 01:56:24 ]
sunのコンソールがみれなくなった

320 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 02:30:15 ]
>>316
入れ直してみたけど駄目でした(/--)/
>>317
もう一度ググってみますm(__)m



321 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 23:02:55 ]
コレクションのHashMapは全要素を取り出す〔表示〕できないんでしょうか?

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



322 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 23:07:13 ]
コレクションから値取り出すときってiterator+whileじゃないか普通

323 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 23:11:14 ]
キーワードは「Java Map Iterator Map.Entry(必要なら)」だ。検索を。
まず゜SetをとってきてあとはIteratorで全要素をとってくるイメージ。

324 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 23:56:15 ]
>>324
> 外クラスのオブジェクトを引数にとらなきゃいけない宿命なんすか?
別に引数に取らなくてもいいけど、
コンストラクタを明示的に呼ばないといけないから
new Outer().super(); とかしないと駄目。

> o.new ExInner(); ってかけないの?
無理。

327 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 00:01:51 ]
>>324
public class Outer{
public static class Inner{
}
}

328 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 00:49:45 ]
バイト列を対象にしたReaderについて教えてください。

テキストファイルを読み込んで解析するプログラムを作っているのですが、
ファイルが巨大であるためBufferedReaderで直接読み込むとアクセスランプが付きっ放しになって
エライ時間がかかってしまいます。
傍目に見ても効率がよさそうではないため、いったんメモリに読み込んでbyte[]にしてから解析をしようと思うのですが、
InputStreamのソースをbyte[]にする方法が分からずに悩んでいます。

329 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 00:54:02 ]
>>328
java.nio.ByteBuffer 使った方がいいんじゃね?

330 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 00:56:25 ]
あー、対象が文字列なら、CharBuffer の方がいいかな。

332 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:06:43 ]
>>329-331
早速のお返事ありがとうございます。
APIリファレンス確認するとByteBufferでうまくいきそうな気がしてきました。
トライしてみます。

333 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:57:22 ]
>>326
ありがとう
設計みなおすよ、、、

334 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 16:38:57 ]
サイトのトップに幾つかの画像をランダム表示させることはできたのですが
幾つかのフラッシュファイルをランダムに表示させることができません。
どのように記述すればよいの教えていただけないでしょうか
よろしくお願いします。

335 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 17:39:54 ]
>>334
>>1


336 名前:デフォルトの名無しさん [2009/03/15(日) 19:02:51 ]
JSPの表記で <%, <%!, <%=, がありますよね。
このタグに名称はあるのでしょうか?

基本的なことだと思うのですが使い所がわからなかったので
定義を調べようとしたところ
名称さえわからず ぐぐる事さえできず困っています。

337 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 19:39:55 ]
JSPタグ

338 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 21:13:19 ]
スクリプトレット
宣言(declaration)
実行時式(Runtime Expression)

339 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 21:32:11 ]
>>337-338
ありがとうございます。

340 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 00:51:47 ]
Javaを本格的に勉強しようと思うのですが
独学でやる場合に適した入門書でお勧めの
ものを教えていただけないでしょうか。
始めようにも路頭に迷ってるって感じで・・・・
御指南よろしくお願いします。



341 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 02:48:07 ]
目標レベルと現在のレベルでも書いたほうがいいと思う。

342 名前:334 mailto:sage [2009/03/16(月) 04:10:22 ]
誰か教えてください。急ぎなんです。
先払いで10000wm払いますのでお願いします。

343 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 08:33:48 ]
>>342
>>1

344 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 14:22:15 ]
>>341
現段階は少し前に高田美樹著のJavaスタートブック
を一通りやってみたといったところです。
ただ詳しい説明が乏しく感じられほとんど
理解に至ることなく丸暗記という状態です。
そこで改めて別に入門書を購入して勉強し直そうと
思っています。
目標としてはとりあえず既にJavaで組まれたソフトの
ソースコードを読んで理解できる程度になりたいと思っています。

345 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 17:43:40 ]
>>345

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

これなら納得するってこと?

347 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 17:56:46 ]
>>345
>1のキー入力では、BufferedReaderがリターンキーを感知するまで返さないという原理で「入力待ち」ができていると考えています。
何を返さないって?

348 名前:345 mailto:sage [2009/03/16(月) 18:24:08 ]
>>346
それは理解できます。
BufferedReaderで待ち状態を作って、リターンキーが帰ってきたらprintlnで表示されますよね。

>>347
返さないというか返ってこないというほうが表現が正しかったです。
BufferedReaderが\nか\rを感知sるうまではプログラムはその先に進まず「入力待ち」になるという考えです。

349 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 21:04:40 ]
なんか勘違いしてるっぽいな・・
BufferedReader keyIn = new BufferedReader(new InputStreamReader(System.in));
これは入力待ちじゃなくて標準入力のリーダーを生成しただけだよ。
インスタンス生成して入力待ちとか無い無い

350 名前:345 mailto:sage [2009/03/16(月) 21:27:32 ]
ちょっと勘違いしてたようです。
いろいろ試したところ、System.inは標準入力からのバイト配列でした。
あくまでBufferedReaderはまとめて表示するのを手伝ってるだけで、System.inが「入力待ち」を作ってるわけですね。
ということは、readLine()も仕様上、「入力待ち」という考えなんでしょうか
1回目は、最初のSystem.inから得られた1行を取得できますが、
whileで2週目が回ってきたときはあらたにSystem.inを取り込む処理を書いてないので普通に考えればnullとかになるはずですよね?
この“見えない”System.in取り込みの処理はどういう内部構造になっているのかなと。



351 名前:345 mailto:sage [2009/03/16(月) 21:36:27 ]
納得しました。
keyinはSystem.inを取り込むインスタンスである以上、必要があれば常にSystem.inからの入力を求めるわけですね。
keyinがSystem.inとひもづけられているという考えをするとスッキリしました。

ありがとうございました。

352 名前:デフォルトの名無しさん mailto:sage [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();
}
}
}

353 名前:352 mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 23:37:04 ]
>>352
case '\"': System.out.println("文字列: " + st.sval); break;
すれば?もっとも >>353 のと数字と文字列の順番逆になるけど。

java.sun.com/javase/ja/6/docs/ja/api/java/io/StreamTokenizer.html#quoteChar(int)
> nextToken メソッドが文字列定数を検出すると、
> ttype フィールドには文字列区切り文字が設定され、
> sval フィールドには文字列の本体が設定されます。

355 名前:352 mailto:sage [2009/03/16(月) 23:46:36 ]
>>354
ありがとうございます。
失礼しました、公式に記載があったのですね。

…なるほど、そういう挙動だったのか…


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

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

なにかいい解決方法はないでしょうか?

357 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 15:37:13 ]
nio.charset.CharEncorderをつかう。

358 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 19:27:27 ]
>>359
フォントの設定見直せ。



361 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 20:34:02 ]
下の方はp[0] == p[1] == p[2]になる

363 名前:356 mailto:sage [2009/03/17(火) 20:44:29 ]
>>357-358
回答ありがとうございます。
文字コードの変換についてもCharsetEncoderを使ってもうまくいかなかったのですが、
テストと処理周りの見直しを行った結果、仕様の見落としが原因でした。

申し訳ないです、ありがとうございました。

364 名前:h.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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 16:23:18 ]
行番号付いてるけどBASICのプログラム?

367 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 16:38:27 ]
>>366
馬鹿、代入に LET が付いてないだろ。

368 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 16:44:52 ]
N88 なら 10 番飛ばしがデフォ

369 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:41:05 ]
LETは省略可

370 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 18:33:06 ]
>>370
OpenOfficeだったらわかるんだけどなー


373 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 18:40:43 ]
>>370
javadoc見たらいい。
www.docjar.org/docs/api/org/apache/poi/hssf/usermodel/HSSFCell.html#setCellValue(String)

Deprecated! Use - setCellValue(HSSFRichTextString) instead.

って書いてあるジャン。


374 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 19:01:03 ]
>>373
了解しました。ありがとうございます。

375 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 20:44:06 ]
>>375
俺には 5 行目に全角スペースが見える。

377 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 20:59:36 ]
>>376
ありがとうございます。ご指摘通りスペースの部分を削除したら動きました
感謝です

378 名前:デフォルトの名無しさん [2009/03/18(水) 22:06:46 ]
すいません、Java初心者です。
配列の領域値が1040KBに設定されている理由ってわかりますか?私は1024KBだったら納得いくのですが・・・
わかる方、教えてください。
よろしくお願いします。

379 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 00:41:37 ]
IBMがSUNを買収するかもってニュースを見たのですが、
Java使いの立場からすると喜んでいいのか悲しむべきか・・

380 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 00:53:49 ]
安心しろ、すでに Java は親元 Sun を離れて JCP で輪姦中だ。



381 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 03:06:15 ]
サンのハード売れてないしなあ。
レッドハットのポジションを、自社ハードとソラリスで囲い込めば成功もしたかもしれないが。
コバルトキューブとか買収したのにうまく逝かせないのはもったいなかった。

382 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 11:43:04 ]
おまいらに Sun が救えるのか

383 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 17:50:12 ]
>>384
POI全く使ったことないけど、そのエラーはJ2SDKの問題じゃないよ
UnicodeStringのStringを引数としたコンストラクタが見つからない、もしくはアクセス不可能であると考えるのが普通だろうね

386 名前:デフォルトの名無しさん [2009/03/19(木) 20:38:50 ]
<form method="post" action="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 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 20:42:12 ]
スレタイと >>1 を 100 回読み直すと良いと思うよ

388 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 22:57:07 ]
>>384
とりあえずうちの環境1.6では特に問題なし。

389 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 02:03:27 ]
JOptionPane の OK_CANCEL_OPTION でキャンセルボタンに初期フォーカスを
合わせるにはどうしたら良いですか? 自分でボタン指定するしかない?

390 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 09:14:24 ]
>>389
JOptionPaneのフォーカスに関連した話題がswingスレでやられているからあっちへ池



391 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 10:09:23 ]
DocumentBuilderでHTMLのDOMオブジェクトを作りたいのですが、方法はあるのでしょうか?

392 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 12:01:51 ]
>>391
HTMLはXMLではないのでHTMLからXMLに適合していない部分を補って無理矢理DOMを構築できるような
DocumentBuilderの実装を自作するかどこかから持ってこない限り無理。
XHTMLとして書かれているならそのままXMLとしてDocumentBuilderで扱える。

393 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 12:08:57 ]
やはり標準ではできないんですね。
ありがとうございます。

394 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 13:58:02 ]
>>394
ありがとうございます。実装することになればその方法を用いてみようと思います。

396 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 18:35:07 ]
Imageの中にpngから部分的に切り取った画像を入れたいのですが

切り取る矩形を引数にとって
切り取った画像をImageで返してくれる関数って有りませんか?

397 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 19:18:22 ]
>>396
java.awt.image.BufferedImage#getSubimage(int, int, int, int)

398 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 20:00:37 ]
>>397
ありがとうございます!
やってみます!

399 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 22:51:10 ]
Javaで.NETでいうFile.ReadAllTextみたいなメソッドって無いんでしょうか。
BufferedReaderで全行読みつつ改行コード付け直す作業が不毛で仕方ないです。

400 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 23:09:44 ]
>>399
標準APIにはない。
commons IO にはorg.apache.commons.io.FileUtils#readFileToString(File, String) とかあるよ。



401 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:21:04 ]
クラスの中に複数のメソッドが入る
これが基本ですね。



402 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 01:23:50 ]
プレイヤーにコードを書き換えられたのを察知してゲームを強制終了やフリーズさせるのは何て仕組み?


403 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 02:33:56 ]
必殺チート殺し

404 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 04:36:34 ]
まあ通信エラーでも誤判定される諸刃の剣だけどな。

405 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 11:02:03 ]
あるクラスにはフィールドを書き換えるAメソッドと
フィールドを読み込んでなにかするBメソッドがあって、
AメソッドとBメソッドは別のスレッドから呼び出されるとします。
そのとき、Aメソッドで書き換えている途中に、Bメソッドがよびだされり
しても大丈夫ですか?
それとそれがおこらないようにするにはどうしたらいいですか?
どうしても分かりません。よろしくお願いします。

406 名前:デフォルトの名無しさん [2009/03/22(日) 11:25:28 ]
>>405をお願いします。
本当に困ってます。

407 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 11:30:36 ]
>>405
syncronized

408 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 11:34:03 ]
>>407
syncronizedは一つのメソッドを同時に他のメソッドから呼び出せないことで、
syncronizedのついた別々のメソッドは同時に呼び出せるんじゃないんですか?

409 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 11:36:14 ]
×syncronized
○synchronized

410 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 11:36:18 ]
しらべたらあってました。
有難うございました。
さようなら。



411 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 14:14:44 ]
入門書くらい読めよ

412 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 15:12:50 ]
まぁ俺様が Java 始めた頃は入門書すらなかったけどな。

413 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 16:58:33 ]
*7がどうのこうの言ってた時代が懐かしいw

414 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 17:02:59 ]
*7ってなに?

415 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 17:04:33 ]
俺様が始めたころはJavaす

いや、なんでもない。

416 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 18:20:25 ]
真空か
いや何でもない


417 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 21:31:35 ]
tibiaってゲームしってます?
これはjavaで作られてるんですか?

418 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 23:10:11 ]
よく解らんけど公式のトップページの拡張子は思いっきりphpだが

419 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 10:33:34 ]
オブジェクトがいまいちわからない>_<

422 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 11:40:42 ]
>>420
;

423 名前:420 [2009/03/23(月) 13:37:18 ]
正確には
private static String REPLACE_ID = "文字列";

と記述したときにその警告が出ます。

424 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 13:44:52 ]
SunとかのJavaの命名カルチャーだと思われる
先頭単語はすべて小文字、続く単語は先頭のみ大文字
ってどうですか?

425 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 13:45:22 ]
final 付けたらOKとかない?

426 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 13:48:40 ]
'^[a-z][a-zA-Z0-9]*$' に一致しなければなりません。

を素直に読むと、
一文字目は英小文字(aからzまで)で、
それ以降は英数文字(aからz、AからZ、0から9)が最後まで何個か(ゼロ個含む)続く文字列。

427 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 13:53:52 ]
>>423
final 宣言がされていない変数だからキャメル表記 (replaceId 等) で書けという意味。
それが定数なら public static final String REPLACE_ID = "文字列" と書け。

428 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 13:54:15 ]
eclipsewiki.net/eclipse/?CheckStyle%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3
>CheckStyleプラグイン
これか?使ったこと無い。

429 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 15:29:13 ]
上記のソースコードの "opc.protectedInstanceMethod();" の部分で、
「protectedInstanceMethod()は a.OtherPackageClassでprotectedアクセスされます」
と表示され、コンパイルエラーになってしまいます。
一方、"opc.protectedStaticMethod();" の部分は、エラーは出ず、普通に実行できます。

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

なんでインスタンスメソッドの方だけアクセス出来ないのでしょうか??



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

同一パッケージ内でも呼び出せるが話がややこしくなるので省略。

432 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 18:18:59 ]
継承に関するアクセス権って、基本、

・private
・protected
・public

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

434 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 18:21:57 ]
friend?

435 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 19:14:12 ]
You are my friend.

436 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 19:44:27 ]
protected static void protectedStaticMethod();

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

ほんとに?

437 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 19:51:34 ]
>>434
Javaにはないけど、概念だけ教えとくと
パッケージプライベートの便利さがみえてくる。


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

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

なのでprotectedなメソッドを実装する際は第三者に変更される
可能性を考慮して内容は最小限に、注意深く行う必要がある。

439 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 20:44:45 ]
>>436
よく見ると main() を持ってる Sample が OtherPackageClass のサブクラスになってる。



441 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:16:03 ]
単に static だからじゃね?protected はカンケー無い

442 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:20:35 ]
protected my friend

443 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:21:04 ]
>継承に関するアクセス権って、基本、
>・private
>・protected
>・public
>の三つで、

「なし」 を忘れてるよ。全部で4つだろ。java 入門書を最初から読み直せ。

444 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:37:15 ]
なし=パッケージプライベート
勉強になったね^^

445 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:37:40 ]
「基本」て言ってるしその直後にパッケージプライベートを挙げてるし (「なし」って何だよ)。
仕様書の最初の1ページ読んで実装始めるタイプだな。

446 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:58:09 ]
「基本」って何だよwww

447 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:59:03 ]
「アクセス権が3つ」は、誰が見ても明らかに間違いだろ。

448 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:04:12 ]
パッケージプライベートや friend は OO の派生継承に絡むスコープの制限じゃないから
別扱いって意味じゃね。

449 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:08:00 ]
どうでも良い知識をひけらかすためにいちいち煽るなよ ハズカシイ

450 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:08:17 ]
OO全体を見てる奴とJavaしか視野に入ってない奴の齟齬だろ。



451 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:13:31 ]
継承に関するアクセス権って、基本、

・private
・protected
・public

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

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
どうでも良い知識をひけらかして大恥かいちゃったひと

452 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:28:58 ]
パッケージプライベート=なしだと気付かず蘊蓄の御披露目しちゃった アフォ 赤面www

453 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:36:46 ]
private protected てアクセス制御がどっかの言語にあったような、と思って調べたら
JDK 1.0 だった。初版の虎本で見たんだったかな。あの本も今思えば、特に AWT あたりで
試行錯誤の結果と思われるむちゃくちゃな知識が書いてあったが。

454 名前:429 mailto:sage [2009/03/23(月) 22:36:51 ]
たくさんのレスありがとうございました。

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

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

--補足--
いろいろ調べてみたらcoreJAVAの225ページに、
「サブクラスから、スーパークラスのオブジェクトのprotectedなメンバにはアクセス出来ない。
 なぜならprotected修飾子の性質を利用し、スーパークラスのprotectedなメンバにアクセスする目的で、
 サブクラスを作成するのを防ぐためである」
みたいな事が書いてありました。

455 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:37:44 ]
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
ほうほうほう。
それじゃ何でスカイ?

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

も入れて、全部で5つだとでも言うんでスカイ?


456 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:41:50 ]
矢印って失敗すると恥ずかしいよな。

457 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:56:09 ]
このスレの常識が決定いたしました!

javaのアクセス権

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

の計三つです。

ギャハハハハハハハハ腹痛い〜〜〜

458 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:04:57 ]
>>457
もうとっくに気付いてて、振り上げた拳をおろせなくなってるだけだとおもうけど、
>>433 では OO 的に意味のあるスコープ制約って Java でいう private, protected, public の
3 つだと言ってるところに、>>443 で「Java のスコープ制約は『なし』も入れて 4 つだ」なんて
ズレた事言い始めるからおかしくなってんじゃねぇの。そうやってバカのふりしてあがくと
余計に無様を晒すだけだよ。

459 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:08:48 ]
>>458
馬鹿にかまうと余計暴れるぞ。

460 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:11:20 ]
そんじゃ、「パッケージプライベート」 は 「OO 的に意味のあるスコープ制約」 ではありませ〜〜ん

てか?




461 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:12:35 ]
だったら private も 「OO 的に意味のあるスコープ制約」 に入らないよな・・・

462 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:13:50 ]
で、結局、friend は
Java の OO 的に意味のあるスコープ制約って
なのか?

ギャハハハハハハハ

463 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:28:49 ]
パッケージという概念に OO は関係ないし、private なかったら OO のブラックボックス化が不可能だし。
という所まで理解は進んでいないのか。まぁ初心者質問スレだから良いけど…
Java のスコープ制限 4 つってのもどっかの本で読んだ知識でしたって感じだな。

464 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:30:54 ]
>>463
「パッケージ」
「パッケージプライベート」
この違いがわかっとらんの?

465 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:32:21 ]
>パッケージという概念に OO は関係ないし、

それだたら、private も public も protected も OO とは関係ないじゃんw

466 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:33:16 ]
>>464
パッケージプライベートがパッケージという概念の上に成り立っている事も理解できてないのか…

467 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:33:40 ]
で、結局、friend は
>Java の OO 的に意味のあるスコープ制約
なのかよ?

ギャハハハハハハハ 笑い死にしそう〜

468 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:40:48 ]
いきなり伸びてると思ったら馬鹿が発狂してるだけか

469 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:41:56 ]
この人は侮辱を受けても、その場で言い返すことすらできないタイプだろう
だから匿名のネットでうさを晴らす
そんなことをしても、現実での自分の立場は変わらないのに

470 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:44:11 ]
こうみるとJAVA忠のひとって、C++にいるカルトとはまた違った意味でカルトだよな。
VIPぐらいだとカルトとは言われないで「VIP発狂wwww」のかもしれないけどねぇ

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

そういえばこの発狂カルトは、たぶんprotectedの質問した本人だろう。IP抜かれてんぞ。ばれてんだよw




471 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:44:22 ]
ああ、こんなことをしても、

javaのアクセス権は

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

の計三つです。

という現実は変わらないよ〜〜〜w

472 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:46:06 ]
>言語設計者の定義でしかないし、アクセス権は3つってことでいいんじゃないの?

まだ言ってるよw
java のアクセス権は 3つ だってよ〜〜〜w

473 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:49:57 ]
必死に複数レスに分けたりして、余程「なし」発言を流したいみたいだなこの人。
技術知識が無いのはもうバレバレなのに何顔真っ赤にしてんだか。

474 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:55:07 ]
バカが自爆しているのを見ながら飲む酒はうまい。

475 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:55:29 ]
なんだこの鬱陶しい流れは

476 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:56:46 ]

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

          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ   <なしって何だおwwww
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)   
| / / /     |r┬-|    | (⌒)/ / / //       
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/      
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー’´      ヽ /    /
 |    |   l||l 从人 l||l      l||l 从人 l||l  バンバン
 ヽ    -一””””~~``’ー?、   -一”””’ー-、
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


477 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:57:06 ]
final class Unko {
 protected void hoge() {
  System.out.println("うんこ:");
 }
}
  ↑
よくいるよね、こういうの。
final クラスのメソッドに protected 付けるバカ。


478 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:17:43 ]
>>477
コーディング規約が古いところだとそもそも「なし(笑)」の考慮が抜けてる所が多いから
protected で代用されているとか、あと何かスコープ修飾子を付けとかないと気持ちの悪い
潔癖症とか (ないか)。
private final なインスタンスメソッドのように役割上無意味になってしまう修飾子の
組み合わせが出るのは仕方がない。だがこういうのは危険人物を見分ける指標になる。

479 名前:デフォルトの名無しさん [2009/03/24(火) 00:23:10 ]
スレが伸びてると思って期待してみたけど、鼻糞小僧が発狂しただけかw
恥ずかしい奴だったな。もう消えてなくなっちゃたんだろうけど

480 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:28:22 ]
>>469

そうは言うけど>>467の知能じゃ無理だろ。
プログラム言語のパラダイムで考えてやっても無理だな。
たぶん、こいつの脳味噌にはクギでも突き刺さってんじゃないのか?



481 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:31:20 ]
危険人物というよりも、クロージャとか次のパラダイムが入ってくるそうともいえなくなる。

482 名前:デフォルトの名無しさん [2009/03/24(火) 00:32:17 ]
ひさびさに鼻糞君が自爆したスレはここですか?

483 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:32:53 ]
int型の数値を文字列Stringに変換できますか?

int a=100を文字列として扱いたいのですが、
キャスト変換したらエラーでてしまいました

484 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:35:05 ]
a.toString

485 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:36:27 ]
>>481
去年のうちには出る出るとか言ってgdgdになってたから追うの止めてしまったけど
今どうなってんのさ 7 は。

486 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:38:00 ]
>>483
int → String は Integer.toString(a) または String.valueOf(a)
String → int は Integer.parseInt(str)

487 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:38:51 ]
scalaでいいじゃん、楽しいよscala
クロージャまじ便利

488 名前:483 mailto:sage [2009/03/24(火) 00:40:08 ]
>>484
>>486
ありがとうございます
助かりました

489 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 01:34:45 ]
>>490
つまり、間違ってるってこと?

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

は?よくわかりません。
2つのソースファイルとも、package hoge; で「同一パッケージに所属する」から
Manko.java から Unko.java の a は「public と同じ」ようにアクセスできるんじゃないの?

493 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 01:35:36 ]
そもそも java の パッケージプライベート って何?

494 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 01:44:25 ]
>>492,494
a はパッケージ内のどこからでも参照できるが、特定の Unko インスタンスに
結びつけられた変数であって、C のグローバール変数みたいなものではない。
というかこれはスコープ以前の問題。

496 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 01:52:55 ]
>>494
publicでも参照できないものが参照できるはずないだろ。

497 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 01:54:02 ]
いやスコープか、スコープ修飾子以前の問題な。めんどくさいな。

498 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 03:10:09 ]
なんかすげぇスレ伸びてると思ったらバカが出ただけか。

499 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 03:50:01 ]
どこの開発現場か知らないが、勝手にネーミングするなって感じだな。

500 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 05:02:33 ]
>パッケージ内のどこからでも参照できる

はぁ?



501 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 05:03:45 ]
hoge/Unko.java と hoge/Manko.java は同じパッケージなんですが・・・

502 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 05:04:26 ]
パッケージ内のどこからでも参照できるワケないお!

503 名前:384 [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 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 11:39:55 ]
new UnicodeString("TEST");

505 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 12:09:27 ]
入門書くらい読めよ

506 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 12:59:14 ]
>>500,502
パッケージ内からなら private のようなアクセス制限はないだろ。
何を勘違いしてる?

507 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 13:02:59 ]
すいません。
上の間違いをそのままコピーしたようで…

UnicodeString uni_T = New UnicodeString("TEST");

です。この状態でエラーとなっています。


508 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 13:04:05 ]
UnicodeString uni_T = new UnicodeString("TEST");

でした…orz

509 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 13:52:52 ]
何じゃクロージャー止めたんかい。なら去年のうちに確定できたろうに。

513 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 14:03:02 ]
クロージャは去年の12月頃に一応の最終的な結論が出たみたい。
開発者向けの情報サイトでビデオ討論してた。
7の「これが目玉!」のスライドを見てみると、アノテーションについては言語サポートが強化されるから、次は多分アノテーションだけになると思うよ。

514 名前:デフォルトの名無しさん [2009/03/24(火) 14:15:58 ]
次は多分アノテーションだらけになると思うよ。

515 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 17:09:15 ]
アノテーションて下手くそが設計すると C/C++ のプリプロセッサ並に意味不明な事になるよな。
言語体系変えないだけマシだけど。

516 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 18:22:56 ]
>>503
の件ですが、自己解決しました。

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

…Apache1.3やTomcat3.2,J2SDK1.4の環境ではPOIは2.5までしかまともに動かないようです…

517 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 23:17:23 ]
フラグなどという名称はエロゲーだけでいい

520 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 23:31:16 ]
「isナントカ」 だな。「フラグ」ってあまり使わない。

522 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 23:32:28 ]
>>518
リファクタリングしろ

523 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 23:47:50 ]
rsの行サイズ見て判断は駄目なのか

524 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 02:44:44 ]
いろいろ他のつっこみどころに意見殺到してるけど
変数の再利用については、一般的に、避けるべし、となっているな
バグの温床です

525 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 14:56:49 ]
どこが「変数の再利用」?

526 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 15:02:35 ]
>>517
ローカル変数ならばんばんやっちゃう
グローバル変数だと、頭がおかしくならない方を優先する

527 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 15:42:37 ]
グローバル変数を検討した結果導入したのであれば
書き換えられたりするのが前提となるだろうから、
もうがんばって管理するしかないよな。

528 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 17:09:47 ]
>>518
ケースバイケース。

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

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


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


まあ、ぶっちゃければ>>526が正解だと思う。

529 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 21:33:08 ]
自分はグローバル変数を使いたいけど、他人には書き換えられたくないと。

530 名前:517 mailto:sage [2009/03/25(水) 23:49:24 ]
皆さんありがとうございます。
自分では意味合い重視で上のようなやり方でやってるんですが、
それでかえって変わりにくくなるのは本意でないので
状況によって柔軟に使い分けたいと思います。



531 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 10:22:54 ]
iCalendar形式のデータを読み取りたいのですが、パーサーは標準では
ないのでしょうか?

532 名前:名無し募集中。。。 [2009/03/26(木) 11:01:36 ]
パーサ標準ってのが何を指してるのか解らんけどiCal4jじゃダメなの?

533 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 14:02:26 ]
iCalendarなんてしょせんはRFC止まりだからなぁ。
標準化されてて普及してて幅広く使われなきゃ標準ライブラリには入れんだろう。
icalはアプリケーションレベルで使うもんだし。
ライブラリ層でも使うxmlとはちがうから。

534 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 00:23:41 ]
>>535
Windows環境ではとりあえずデフォルト値でされたよ
Locationヘッダ読んで自前したらいいかもね

536 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 00:26:34 ]
本来の用途とは少しずれますが、ネットワーク関連ソフトの状況表示(***へ接続,レスポンス***などなど)にLogger+自前Handlerを使うのはありでしょうか?

537 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 02:57:56 ]
>>535
http: から https: へとその逆のリダイレクトが自動で行わないみたいだった。
Cookie 管理も (ちょっと危険だが) 自分で実装したら HttpCookie の有効期限が
JP ロケールで機能しない JDK のバグにはまった orz

538 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 01:43:32 ]
Swingを勉強しはじめたばかりなので、理解がしっかりとできていないので、
教えて欲しいんだけどMVCをSwingでやるとした場合に、
クラスの構成を中心にどういった感じで作っているのか、
活用しているデザインパターン等を教えて欲しいです。
今の自分の理解だと一つのクラスにVとCが一体化しているような感じの作り方をしていて、
一般的な作り方がわかっていないので不安に・・
そういった内容がある参考にしたらいいサイトとか本があれば教えて下さい。
身近にSwingわかる人がいないのでお願いします。

539 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 02:16:26 ]
M: Documenet, XxxModel → データの管理と操作
V: JXxx (JComponent のサブクラス) → GUI 関係
C: XxxListener → イベントによるM操作、V調整を取り持つ

だが、単純なアプリなら Swing のモデルは大げさだし、複雑になれば Swing のモデルでも
不足する。別にこれでやれば全て OK という黄金律はない。まぁ勉強なら自分なりに
試行錯誤で役割分担を分けてみて、これ以上は手間に合わない趣味の領域だと
理解できたところでゴールだろう。程度問題の結論を出すには経験しかない。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<148KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef