【初心者】Java質問・相談スレッド103【大歓迎】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2007/06/27(水) 07:23:27JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc10.2ch.net/hp/
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
【初心者】Java質問・相談スレッド102【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1180419689/
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。
次スレは>>980あたりで。
0916デフォルトの名無しさん
2007/07/24(火) 19:56:130917デフォルトの名無しさん
2007/07/24(火) 20:11:12コンパイラの名前解決時に影響するだけ
コンパイル後はまったく一緒、クラスファイルにはフルネームで格納される
0918デフォルトの名無しさん
2007/07/24(火) 20:15:09無駄なリンクなんて発生しねえしサイズも大きくならねえよ
importは単にこのクラスもしくはパッケージからクラス定義を拾ってこいっていうコンパイラへの指令
コンパイラの実装次第でワイルドカードを使った時のクラス検索の効率に差が出るかもしれんが
0919デフォルトの名無しさん
2007/07/24(火) 23:06:32どこの都市伝説だよw
0920デフォルトの名無しさん
2007/07/24(火) 23:43:08永遠に compile oh what a night in jamaica!
0921デフォルトの名無しさん
2007/07/24(火) 23:43:170922デフォルトの名無しさん
2007/07/25(水) 00:11:46クラスパス上にあるなら import *; でも探すことはできるはず。
importってコンパイルを手助けしてあげるためにあるのか?
>>901の意味合いももちろんわかるけど。
0923デフォルトの名無しさん
2007/07/25(水) 00:15:11これってバージョンがあがってリンク先が増えたからだと思ってた。
富○通正社員の俺
協力会社の新人に笑われたorz
0924デフォルトの名無しさん
2007/07/25(水) 00:18:120925デフォルトの名無しさん
2007/07/25(水) 03:05:55923は最悪
0926デフォルトの名無しさん
2007/07/25(水) 03:39:370927デフォルトの名無しさん
2007/07/25(水) 08:37:36アール日野?
0928デフォルトの名無しさん
2007/07/25(水) 08:39:340929デフォルトの名無しさん
2007/07/25(水) 09:27:12落ち目だからな・・・。
0930デフォルトの名無しさん
2007/07/25(水) 12:52:400931デフォルトの名無しさん
2007/07/25(水) 12:56:24それは関西と大阪は何が違うかという質問に近い。
0932デフォルトの名無しさん
2007/07/25(水) 13:03:05関西と関西弁の違い、と思う
0933デフォルトの名無しさん
2007/07/25(水) 13:25:59企業と企業広報の違いでも有るかな
0934デフォルトの名無しさん
2007/07/25(水) 20:57:24動画はともかく、ねとらじとかをJavaから利用できないかな?
0935デフォルトの名無しさん
2007/07/25(水) 21:05:110936デフォルトの名無しさん
2007/07/25(水) 21:06:21ファミコンとディスクシステムのような関係
0937デフォルトの名無しさん
2007/07/25(水) 21:36:59さがせばストリーミングライブラリがいくらでもある。
J2EEの名称はもう使われてないな。
0938デフォルトの名無しさん
2007/07/26(木) 00:41:29Mainのプログラムから描画の処理のところだけ切り出して
別のクラスにかきだしたいのですがいくらやってもうまくいきません
どうすればいいですか?
どなたか教えて下さい
0939デフォルトの名無しさん
2007/07/26(木) 00:45:520940デフォルトの名無しさん
2007/07/26(木) 00:49:37どうすればいいかは、
あなたが考えれば一番うまくいくでしょう。
0941デフォルトの名無しさん
2007/07/26(木) 00:57:000942デフォルトの名無しさん
2007/07/26(木) 01:23:16GUIにタイミング任せるか、プログラムで自分でやるかの話だろ?
アプレットはエントリポイントが違うってんなら分かるが。
>>938
せめてソースくらい上げましょうぜ旦那?
0943デフォルトの名無しさん
2007/07/26(木) 01:28:40描画処理?
とりあえずソースだな。
0944デフォルトの名無しさん
2007/07/26(木) 01:35:17http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36623&forum=12&7
http://itpro.nikkeibp.co.jp/article/COLUMN/20061208/256374/?ST=develop
を見て、sun.management.Agent内でその処理を行っているのはわかったのですが
このソースのどこで立ち上げてるかさぱり分かりません。
誰がわかる人がいたら解説お願いします。
0945デフォルトの名無しさん
2007/07/26(木) 10:21:31class Outer {
void Hoge() {
Inner inner = new Inner();
inner.Foo();
}
class Inner {
void Foo() {
// ここで Outer の this がほしい。
}
}
}
コンストラクタで明示的に外側のクラスの this を渡すしかない?
0946デフォルトの名無しさん
2007/07/26(木) 10:35:56Outer.this
0947デフォルトの名無しさん
2007/07/26(木) 14:24:440948デフォルトの名無しさん
2007/07/26(木) 15:25:23それを継承したクラスの方からアクセスするにはどうしたらよいですか?
0949デフォルトの名無しさん
2007/07/26(木) 15:41:37java.lang.reflect.Field
0950デフォルトの名無しさん
2007/07/26(木) 15:42:49private で宣言されたメンバは継承されない
getter 用意してアクセスしろ
0951デフォルトの名無しさん
2007/07/26(木) 16:02:25ありがとうございます
1.4でも使えますか?
0952デフォルトの名無しさん
2007/07/26(木) 16:08:390953デフォルトの名無しさん
2007/07/26(木) 16:22:11http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.2
> Members of a class that are declared private are not inherited by subclasses of that class.
> Only members of a class that are declared protected or public are inherited by subclasses
> declared in a package other than the one in which the class is declared.
継承されてたら言語仕様に反する。
0954デフォルトの名無しさん
2007/07/26(木) 16:33:061.4でも使えるけど、セキュリティマネージャが許可しない場合は使えない。
例えばアプレットとかだと、Field#setAccessible() が許可されないはず。
0955デフォルトの名無しさん
2007/07/26(木) 18:01:230956デフォルトの名無しさん
2007/07/26(木) 18:12:42>>955
ゲイツ君がpure javaさんを嫌いで古臭いjavaさんの実行モデルを元に「・・・頼むよ君」と呼んできたのがC#くん。
0957デフォルトの名無しさん
2007/07/26(木) 18:33:30もう一度質問します。アプレットのメインクラスの中にある
描画処理・・・・たとえば↓
public void paint(Graphics g){
//描画処理
}
を別のクラスに作って描画処理を丸々引き渡したいのですが
別のクラスから描画処理をやろうとするとウィンドウに描画処理が反映されません。
メインクラスからだと反映されるのですが・・・。
描画処理をほかのクラスに引き渡すにはどうしたらいいですか?
たびたび質問してしまって申し訳ありません。
0958デフォルトの名無しさん
2007/07/26(木) 18:49:04使ってるつもりなのに描画されないなら、多分つもりなだけで実際には使われて無いんだろう。
問題のコードをどっかにうpした方が回答がつきやすいと思うよ。
0959デフォルトの名無しさん
2007/07/26(木) 19:08:290960デフォルトの名無しさん
2007/07/26(木) 19:11:500961デフォルトの名無しさん
2007/07/26(木) 19:16:38ソース
0962デフォルトの名無しさん
2007/07/26(木) 19:31:25わかりました。long使ってみます
ありがとうございました
0963デフォルトの名無しさん
2007/07/26(木) 19:41:33long b = Integer.parseInt(line);
このようにlineを取り込むとlongでも小数点以下がなくなってしまいます
longで取り込むにはどうしたらいいのでしょうか
0964デフォルトの名無しさん
2007/07/26(木) 19:48:59doubleは小数を保持する型
ってかlongに変えたんならInteger.parseInt()使うなよ
long用にはLong.parseLong()がある
doubleを使う場合はDouble.parseDouble()とかもある
これらを実行してどうなるか試してごらん
0965デフォルトの名無しさん
2007/07/26(木) 20:05:07いろいろ種類があるんですね
おかげさまで何とか動くようになりました!ありがとうございました
0966デフォルトの名無しさん
2007/07/26(木) 20:10:25できました
ちょっとしたミスでした
どもです^^;
0967デフォルトの名無しさん
2007/07/26(木) 20:42:31親クラスの非staticなメンバに直接アクセスするような
インナークラスだとstaticクラスじゃ無理。
たとえば、Iterableを実装するようなクラスがそれにあたる。
>>945のケースだとOuterのthisを要求しているからstaticじゃ面倒だね。
そうじゃない場合、ただの別クラスがたまたまインナークラスになっている場合、
staticにしないとnewするのにいちいち、
new Outer().new Inner();
とかいうわからないコードを書かないといけないハメになる。
まあ、内部に非staticクラスしのばせるのもいいけど、
メソッド内にクラス定義書くのも乙だと思うけどな。かなり嫌われるけど。
0968デフォルトの名無しさん
2007/07/26(木) 21:00:58対象にするって感じでいい?
本当はprivateな関数のテストもしたいし、privateな変数にアクセスして
チェックもしたいんだけど。
それともprivateを使わないで全部protectedにしてるとか?
0969デフォルトの名無しさん
2007/07/26(木) 21:16:31JUnitは単なるツール
どんなテストを行うかは別の問題
0970デフォルトの名無しさん
2007/07/26(木) 21:17:16(1)リスク駆動で。気になったところからチェックする。
単純な getter や setter などトリビアルなものに対するテストを考えるくらいなら、
もっとやるべきことがあるはずだ、たぶん
(2)protected にするくらいなら、パッケージプライベートで
(3)どうせなら、テストファーストがお勧め
テストを書こうとするだけで、モジュールの独立性や使い勝手などが
設計にフィードバックされる
0971デフォルトの名無しさん
2007/07/26(木) 21:59:18わたしもprotectedにするべきだと思うんですが
提供されているソースをみるとそうなってなかったんですね
0972デフォルトの名無しさん
2007/07/26(木) 23:51:39コンテナに登録されているロール名の一覧を取得する
方法はない?
あるロール名が登録されているかどうかを判別する
だけでもいい。
コンテナはGlassfish v2 Beta 3だが、JEE汎用の方法が
嬉しい。
0973デフォルトの名無しさん
2007/07/26(木) 23:53:26jcoverageとか使ってみれば?
0974デフォルトの名無しさん
2007/07/27(金) 01:33:53while(true){}でやるとちゃんと動くですが、どんな条件を入れても動いてくれません
他にもfor文とかの繰り返しはたくさんあるのですが、これだけ動いてくれません
■java 2 SDK SE v1.4.2_14
■WinXP Home
for文の中にprintlnを書いても全く表示されませんでした。
何が原因なのでしょうか?
ttp://up.spawn.jp/file/up36584.txt
0975デフォルトの名無しさん
2007/07/27(金) 01:43:110976デフォルトの名無しさん
2007/07/27(金) 06:26:15プログラムを作るにはどうすればよいのでしょうか?
ずっと、そのチェックをはしらせときたいのです。
0977968
2007/07/27(金) 07:48:59>>969
一般的にどんな感じでテストしてるか知りたい。
>>970
JUnitは単体テストなので実装依存(ソースにべったり)のテストコードを
作るのか、あるいは外部から見える範囲内(内部での細かい動作まではテストしない)
なのかを知りたいところ。
リスク駆動と言うのであれば、やはりprivateな変数・オブジェクトレベルでも
チェックしたいかなーと思ったんだけど、普通はそこまではしないもんなのかな。
クラスや関数はパッケージローカルでいいとは思うけど。
>>973
とりあえずjcoverage見てみたけどよくわからんw
IDEと連動しにくいツールは手を出しにくいかも。
0978968
2007/07/27(金) 07:51:550979968
2007/07/27(金) 08:00:03http://journal.mycom.co.jp/news/2007/07/20/006/index.html
0980デフォルトの名無しさん
2007/07/27(金) 08:47:09【初心者】Java質問・相談スレッド104【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1185493592/
0981デフォルトの名無しさん
2007/07/27(金) 09:55:44cron
0982デフォルトの名無しさん
2007/07/27(金) 10:33:24>>979
ちょっと試してみたが、なかなか面白そうなツール。
要するに、テスト対象のコードをいじって、テストがそれを検出できるかを調べるツール。
カバレッジとはまた別の視点で単体テスト品質を計測するようだ。
0983デフォルトの名無しさん
2007/07/27(金) 10:51:34開発環境の文字コードはEUCなのですが、
String sample= "さんぷる";
String sjSample = new String( sample.getBytes( "SJIS" ), "SJIS" );
上の処理でSJISに変換されるんでしょうか?
変換された事を確認することってできないんでしょうか?
0984デフォルトの名無しさん
2007/07/27(金) 10:55:46> 上の処理でSJISに変換されるんでしょうか?
一瞬だけ。
> 変換された事を確認することってできないんでしょうか?
sample.getBytes("SJIS") の戻り値を確認。
0985デフォルトの名無しさん
2007/07/27(金) 11:36:56>一瞬だけ。
プログラム実行中は変換されたままですよね?
>sample.getBytes("SJIS") の戻り値を確認。
戻り値を確認してみたら [B@ed0338 でした。
変換されたのはなんとなくわかりますけど、こういうもんですか?
0986デフォルトの名無しさん
2007/07/27(金) 11:43:53> プログラム実行中は変換されたままですよね?
no。すぐにGC可能状態になる。
> 戻り値を確認してみたら [B@ed0338 でした。
toString()が確認に使えるか、もチェックしてから使え。
sample.getBytes("SJIS") で戻ってきた配列の中身を確認しろ。
0987デフォルトの名無しさん
2007/07/27(金) 11:44:28ソースコードを EUC で書いても、String は Unicode です
getBytes("SJIS") で SJIS に変換されるけど、String に戻したらまた Unicode です
0988デフォルトの名無しさん
2007/07/27(金) 12:33:10配列の中身まではみていませんでした。
確認したら数値が入っていたので調べてみます。
>987
内部コードってやつですか・・・SJISで扱えるのはgetByte("SJIS")の戻り値だけってことですね。
すいません、質問を変えさせてください。
URLConnectionを使って相手先に複数のパラメータを送ろうとしているのですが、
日本語を扱うパラメータはSJISに変換することになっています。
この変換が上手くいかず、今はEUCで送ってしまっている状態です。
日本語パラメータをSJISで送るにはどうすればいいんでしょうか?
SJISに変換した文字列を送ろうと思って最初の質問をしていました。
0989デフォルトの名無しさん
2007/07/27(金) 12:49:59java.net.URLEncoder.encode("文字列", "SJIS");
0990デフォルトの名無しさん
2007/07/27(金) 15:02:02ページのFTPに入ってパスワードを入れて
ファイルを書き換えることはしてもいいんですか?
0991デフォルトの名無しさん
2007/07/27(金) 16:12:310992968
2007/07/27(金) 16:35:58つーかJAVAアプリケットて何?w
0993968
2007/07/27(金) 16:37:020994デフォルトの名無しさん
2007/07/27(金) 17:45:49インストロールみたいなものじゃないの?
0995デフォルトの名無しさん
2007/07/27(金) 17:59:24分かりづらい地味な嫌がらせだな。せめてUTF-8にしてやればいいのにw
>>990
鯖の規則読んで出来るか確認してjavaアプレットから
どうやってFTP叩くかまで出来てからのご来場をお待ちしております。
じゃなきゃエスパー待ちになるぞ。
0996デフォルトの名無しさん
2007/07/27(金) 19:37:43オブジェクトにたいしてロックが入るの?
それともメソッドだけ??
class Hoge {
public synchronized int hoge(){...}
...
}
Hoge hoge.hoge();
↑ こうやったときに 別のスレッドからはhoge()だけ呼び出しできないのか、
それともhogeに対するアクセスは全部ロック解除待ちになるの?
0997デフォルトの名無しさん
2007/07/27(金) 20:40:28hoge
0998デフォルトの名無しさん
2007/07/27(金) 20:40:39だからhogeの他のsychronizedメソッドもロックされるな
0999デフォルトの名無しさん
2007/07/27(金) 20:44:21オブジェクトをロックする方法は別にあったはずだし
1000デフォルトの名無しさん
2007/07/27(金) 20:45:07勘違いしてたぜ(´ー`;)
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。