08/02/08 19:48:24
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。URLリンク(pc10.2ch.net)
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
URLリンク(www.wikiroom.com)
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
URLリンク(www.wikiroom.com)
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
【初心者】Java質問・相談スレッド111【大歓迎】
スレリンク(tech板)
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝のう存じます。
次スレは>>980あたりで。
2:デフォルトの名無しさん
08/02/08 19:49:30
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java標準低速GUI 6 AWT/Swing
スレリンク(tech板)l50
■ SWT は --
Java 高速GUI SWT 3
スレリンク(tech板)l50
■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part16
スレリンク(tech板)l50
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 7
スレリンク(tech板)l50
■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 64 ★★
スレリンク(tech板)l50
3:デフォルトの名無しさん
08/02/08 20:57:15
ダウンロードできてインターネットに繋がって無くても読める
javaの入門書のようなものありませんか?
4:デフォルトの名無しさん
08/02/08 21:14:42
テンプレのリンクを探せばどこかにあると思ったよ。
動画で見るJava入門、みたいなのを。
どこかの大学のサイト
5:デフォルトの名無しさん
08/02/08 22:58:31
■ J2SE 1.4.0
URLリンク(sdc.sun.co.jp)
■ J2SE 5.0 (1.5.0)
URLリンク(java.sun.com)
■ Java SE 6
URLリンク(java.sun.com)
6:デフォルトの名無しさん
08/02/08 23:30:09
staticって何ですか?
クラスをオブジェクトするときに使いやすいだけ?
7:デフォルトの名無しさん
08/02/09 00:11:24
>>6
newしなくても呼び出せるメソッドみたいな感じ?
8:デフォルトの名無しさん
08/02/09 00:11:56
>>1 乙
9:デフォルトの名無しさん
08/02/09 00:29:00
charAt()でバイナリ取得はできました。
以下の2つは分かりませんでした。
System.out.println(String.codePointAt((int)s.charAt(0)));
System.out.println(s.getBytes(s.charAt(0)));
10:デフォルトの名無しさん
08/02/09 00:37:52
codePointAtは1.5系みたいなのであきらめました。
11:デフォルトの名無しさん
08/02/09 00:51:44
JDKをインストールしたいのですが、ダウンロードするページで
Windows x64 executable
jdk-6u4-windows-x64.exe 38.88 MB
Windows Online Installation
jdk-6u4-windows-i586-p-iftw.exe 0.36 MB
Windows Offline Installation
jdk-6u4-windows-i586-p.exe 71.28 MB
のように3つ選択肢があるんですが何が違うのでしょうか?
2番目はインストーラーをダウンロードせずにネットから直接インストール?
3番目はインストーラーをダウンロード?ってことですかね
1番上は何でしょうか…
12:デフォルトの名無しさん
08/02/09 00:51:50
getBytes("ASCII")ですか。そのままでしたね。
13:デフォルトの名無しさん
08/02/09 01:22:25
javaで自分のパソコンのグローバルIPとホスト名って取得できますか?
またどのような関数を使えばいいのかわかりません><
ググってみるとjava以外ではいろいろ書いてあるのに、javaになるとヒットしないので。。
よろしくおねがいします!
14:デフォルトの名無しさん
08/02/09 01:26:36
InetAddress.getAllByName(InetAddress.getLocalHost()); とか何とか
15:デフォルトの名無しさん
08/02/09 01:27:35
やっべー、
InetAddress.getLocalHost().getAllByName()
16:デフォルトの名無しさん
08/02/09 01:38:46
>>15
ありがとうございます!!
無事できましたー!
17:デフォルトの名無しさん
08/02/09 08:30:29
昨日は勝手にjavaのアップデートが勝手にダウンロードされました
調べてもプログラミング言語がウンヌンで、javaとは何なのか必要なのかわかりません
PCでインターネットや、画像や動画視聴しかしない僕には必要なのかどうか教えてください
18:デフォルトの名無しさん
08/02/09 10:29:36
>>17
気にしないでおk
19:デフォルトの名無しさん
08/02/09 10:33:36
>>11
1番上のは64ビットWindows用
2番目と3番目は32ビットWindows用
オンラインインストールはインストーラの皮だけ、実際にインストール開始したときに必要な中身を都度ダウンロードしてくる
オフラインインストールは中身全部込みのインストーラ、インストール時にネット接続不要
どっちでも好きなほうをどうぞ
20:17
08/02/09 12:31:56
>>18
わかりました ありがとう
削除します
21:デフォルトの名無しさん
08/02/09 14:03:12
質問です。参考書などでは【2つほど】変数の型(intやchar)などとは別に
stringの解説がされています
認識として両方変数の型でchar=1文字変数 string=文字列と理解しているんですが、理解が間違っているんでしょうか?
22:デフォルトの名無しさん
08/02/09 14:08:02
stringは無いがStringなら有る
大文字小文字の区別は重要
charは1文字、Stringは文字列、ってのは合ってる
23:デフォルトの名無しさん
08/02/09 14:18:06
文字変数でなく、文字な。
Stringは文字列。
String str = "a";
char c = 'a';
人間にとっては同じだけど、プログラム上は違うので注意。
24:デフォルトの名無しさん
08/02/09 14:30:17
>>22>>23
ありがとう、つまり同じような認識で使ってもいいわけですね。
もう一つ聞きたいのですが
class a1{
public static void main(String args[]){
if(args.length>=1) ~以下命令文
~以下略
上のプログラムのargs.length ここの部分がいまいちよくわからないのですが、
argsはただの配列なのにクラス名の部分に書かれています。
length関数が特殊なんでしょうか?それともargsがクラス名?
お願いします
25:デフォルトの名無しさん
08/02/09 14:46:49
>>24
入門書1冊やってからこい
26:デフォルトの名無しさん
08/02/09 14:56:38
>>24
lengthは配列オブジェクトのフィールド
argsオブジェクトのlengthフィールドが1以上かどうかを判定している
ってかクラス名の部分ってなんだよ
27:デフォルトの名無しさん
08/02/09 15:01:32
>>24
この場合、args は配列型の変数で、length は、配列型の public final なフィールド。
28:デフォルトの名無しさん
08/02/09 15:22:22
激しくすれ違いだが 「バカでも使えるように」 を仕様書で伝えるときどう表現してる?
29:デフォルトの名無しさん
08/02/09 15:23:47
フールプルーフ
30:デフォルトの名無しさん
08/02/09 15:25:27
>>26>>27
ありがとう
インスタンス化したメソッド.メソッド名();
の形式だと理解していた。
よくわからないから読み返してきます。
31:デフォルトの名無しさん
08/02/09 15:26:30
フューエルセーフか?ちとちがうかw
前のユーザーはバカよけいれといてねとか言ってたけどw
32:デフォルトの名無しさん
08/02/09 15:30:43
Stringは文字列の変数と考えていいんですよね
変数名.メソッド;
でも問題ないんですか?
33:デフォルトの名無しさん
08/02/09 15:31:22
スレ移ります
すみませんでした
34:デフォルトの名無しさん
08/02/09 15:34:09
>>32
問題って何がだ
何がわからんのかわからん
35:デフォルトの名無しさん
08/02/09 15:35:05
>>32
ここは初心者スレだが、初心者に一から言語仕様を教えるスレじゃねーんだよ
この本一冊読んでから来い
URLリンク(www.amazon.co.jp)
36:デフォルトの名無しさん
08/02/09 15:38:13
>>31
安全そうな燃料ですね。
37:デフォルトの名無しさん
08/02/09 15:54:12
>>34
>>35
?
38:デフォルトの名無しさん
08/02/09 16:15:32
スレのレベルが低下してる
住人も然り
プログラマって10聞いて1しか返ってこないやついるから困る
出世できないのもよくわかるよな
39:デフォルトの名無しさん
08/02/09 16:17:55
まるで昔はレベルが高かったような言い草だが。
40:デフォルトの名無しさん
08/02/09 16:23:36
1聞いて10理解すれば問題なし
41:デフォルトの名無しさん
08/02/09 16:32:22
理系の人間はみんなそうだ
特にプログラマは酷いなwww
何年もがんばった自分の知識を基準にして話し出す
文系の女の子が可哀相だ
42:デフォルトの名無しさん
08/02/09 16:34:38
スイーツ板?でどうぞw
43:デフォルトの名無しさん
08/02/09 16:36:14
女の子なら何時間でもかけて親切丁寧に教えてあげるよ!
野郎どもは死ぬ気でがんばれ
44:デフォルトの名無しさん
08/02/09 17:04:33
普段、コンストラクタの引数が要らない場合はコンストラクタを省略してフィールド宣言時に初期化してるのですが、
フィードル初期化は宣言時にするのとコンストラクタ内でするのとでは、タイミングなどの違いがあるそうですが
どんな感じで使い分けるものなんでしょうか?
45:デフォルトの名無しさん
08/02/09 17:09:45
タイミング違ったっけ? フィールド宣言時に初期化するコードを逆コンパイルしてみ。
スーパークラスのコンストラクタが終了した後に初期化するのと変わらない。
46:デフォルトの名無しさん
08/02/09 17:10:12
一緒
フィールドの初期化のコードはバイトコードレベルで見るとコンストラクタの中に入っている
見た目とか気分の問題
47:44
08/02/09 17:19:47
一緒ですか!ならば宣言時にやるほうが簡潔ですね。
どうもありがとうございました。
48:デフォルトの名無しさん
08/02/09 18:26:15
private static *** instance = new ***();
public static *** getInstance(){return instance;}
private $$$ data;
public ***(){data = $$$.getInstance()}
public $$$ get$$$(){return data;}
$$$も同様にシングルトン
と言う感じで、シングルトンのフィールドにコンストラクタで
シングルトンを植え付ける連鎖を何回か行うと
get$$$()でnullが返ることがあります。何故なんでしょうか?
クラスが参照されると同時にinstanceにインスタンスが入るはずなのに…
public get$$$(){return $$$.getInstance();}
だとそう言う事は起こりません
49:48
08/02/09 18:27:16
済みません間違えました。
コンストラクタはprivateです
private ***(){data = $$$.getInstance()}
50:デフォルトの名無しさん
08/02/09 18:33:14
質問です
UMLより機能的なツールなんか使ってますか
参考までにお願いします
51:デフォルトの名無しさん
08/02/09 19:26:44
一番自由度が高くて表現力のあるツールは
紙とペンかな・・・・
自由度が高いので使い手の能力に左右されがちだがな。
52:デフォルトの名無しさん
08/02/09 19:27:12
連想配列で、キーと値を交互に配列に入れる簡単な方法はありますか?
ソースのa,b,c,d,e,f(文字列)からAという配列を作りたいです。
A[a] == b
A[c] == d
A[E] == f
53:デフォルトの名無しさん
08/02/09 19:32:06
HashMap でも使え
54:デフォルトの名無しさん
08/02/09 19:56:27
main関数の実行時に与える引数についてですが、
1種類のString配列では表せない情報を与えたい時はどうすればいいのでしょうか?
例えば、複数の文字列とオプションを実行時に指定させたい場合、
プログラム側では文字列とオプションの区別が付けられません。
55:デフォルトの名無しさん
08/02/09 20:07:39
>>54
順番で区別するとか、
先頭に '-' や '@' や '/' がついてたらオプションとか、
文字列は "文字列" みたいに引用符で括るとか、
やり方はいろいろある。好きな方法を使え。
56:デフォルトの名無しさん
08/02/09 20:17:55
その引用符の使い方だとシェルに取り払われるような。
57:デフォルトの名無しさん
08/02/09 20:24:07
javac ?で参考になるべ
argsをパースするのは自力で作る
58:デフォルトの名無しさん
08/02/09 20:25:24
HashMap の方は同期がとられず、というのは簡単に言うとどういう意味ですか?
HashMap はJDK1.2に対応していますか?
59:デフォルトの名無しさん
08/02/09 22:01:26
>>58
URLリンク(sdc.sun.co.jp)
> 導入されたバージョン:
> 1.2
同期云々の話も上のリンク先の記述からだと思うのだが、文章そのまま。
逆に、Hashtable の方は同期がとられて、null の場合はない。
> HashMap クラスは Hashtable と同じと見なしてもかまいませんが、
> HashMap の方は同期がとられず、null の場合もあります。
何故同期が取られないのか、については、設計上の方針。
Collections.synchronizedMap(Map) を使う。
更に、iteratorを使う場合には、更に同期処理が必要。詳しくは API 仕様に。
60:デフォルトの名無しさん
08/02/09 22:20:53
>>58
HashMap が同期(synchronized)されない、というのは、簡単に言うと、
複数のスレッドから同時にアクセスすると壊れるよ、という意味です
61:デフォルトの名無しさん
08/02/09 22:30:36
>>51
ありがとう
でも一挙動でコーディングできれば最適なんですがねえ
62:デフォルトの名無しさん
08/02/09 22:32:42
>>48
なんだろうねぇ。
とりあえず、遅延初期化をする必要が無ければ、instance を
public static final *** INSTANCE にするのはどうだろう。
63:デフォルトの名無しさん
08/02/09 22:32:55
Java SE Development Kit 6 Update 3をとろうと思うのですが無料なんですか?
64:デフォルトの名無しさん
08/02/09 22:36:06
>>50
UML は確かに機能的な面も強調される表記法でもあると思うが、
そもそもの目的は、数ある表記法を名の通り"統一"したものだしなぁ
65:デフォルトの名無しさん
08/02/09 22:40:12
>>59,>>60 ありがとう、いい配列です。
66:デフォルトの名無しさん
08/02/09 23:15:05
>>62
ありがとうございます。やってみましたがダメでした
うまくいかないソースを削ってサンプルを作ってみました
class A {
final static A INS = new A();
private B b;
private A(){b = B.INS;}
B getB(){return b;}
public static void main(String[] args) {
System.out.println(A.INS.getB().getC().getA().toString());
}
}
class B {
final static B INS = new B();
private C c;
private B(){c = C.INS;}
C getC(){return c;}
}
class C {
final static C INS = new C();
private A a;
private C(){a = A.INS;}
A getA(){return a;}
}
67:デフォルトの名無しさん
08/02/09 23:16:15
字数の関係でAに便宜的にmainを載せましたが
class D {
public static void main(String[] args) {
System.out.println(A.INS.getB().getC().getA().toString());
}
}
としてもやはりjava.lang.NullPointerExceptionでした
68:デフォルトの名無しさん
08/02/09 23:21:02
>>66
そりゃ無理だ
new A();
をやってる途中にB.INSが必要で、
B.INS = new B();
には C.INS が必要で、
C.INS = new C();
の中では A.INS が必要だがまだ new A() やってる途中なので A.INS は代入されてないから null
69:デフォルトの名無しさん
08/02/09 23:40:00
>>66
単に循環参照
コレだけみると設計再検討だが、なんか理由があるとして…
ま、getAやらの部分で、a を遅延初期化すれば問題ない。
if (a == null) { a = A.INS; } return a;
仮にマルチスレッドでまわしても、A.INS は確定した後で、常に一つだから
null チェックで二度三度上書きしたところで得られる値は変わりはしない。
70:デフォルトの名無しさん
08/02/09 23:42:19
>>68
なるほどエラーが発生する原因は分かりました
>>69
ありがとうございます
staticフィールドにインスタンスを作るシングルトンという事で気軽に使いすぎてました。反省
71:デフォルトの名無しさん
08/02/09 23:45:35
先生!Stringがfinalであるヌリットを教えてください!!
StringBuffer使えってのはなしで。
72:デフォルトの名無しさん
08/02/09 23:47:50
>>71
URLリンク(www.ibm.com)
73:デフォルトの名無しさん
08/02/09 23:54:04
すいません、エロい人教えてください。。。
クラスは、インスタンス化によりオブジェクト(実体)となって
はじめて使用できると思うのですが、
main()を持つクラスは、コンパイルされた時点で
インスタンス化されるのでしょうか?
74:デフォルトの名無しさん
08/02/09 23:56:02
>>73
staticメソッドとstaticフィールドはインスタンスではなくクラスに属するのでインスタンスがなくても使える
75:デフォルトの名無しさん
08/02/10 00:19:54
>>48
コンストラクタ以外で data に値を設定するコードを書いてないのに発生するなら
コンストラクタが完了してない状態で呼んでんじゃねーのか。final 付けてないのに
その部分だけ出されてもどっかで設定してんじゃねーのとしか言えないが。
76:デフォルトの名無しさん
08/02/10 01:16:43
>>74
早速のご回答ありがとうございます。
新しい考え方をゲットできました。
「インスタンスに属する」と「クラスに属する」
77:デフォルトの名無しさん
08/02/10 01:43:33
Stringの中のスラッシュの数を計算するメソッドのサンプルをください。
s = "aa//a/aa"; から3を取得するものです。
78:デフォルトの名無しさん
08/02/10 01:52:43
文字列を最初から調べていって"/"と一致した時にint変数をインクリメントすればいいだけじゃないの
79:デフォルトの名無しさん
08/02/10 02:20:26
>>77
横着。先頭と尻尾に "/" を追加して確かめてください。
何にもマッチしないときは、長さ1の配列が返るので、負数にはならない、はず。
System.out.println(s.split("/", -1).length - 1);
// 一応、何が起きてるかを表示
System.out.println(java.util.Arrays.toString(s.split("/", -1)));
80:デフォルトの名無しさん
08/02/10 02:52:07
String s = "123";
int i = (int)s;
数値にするにはどうしたらよいですか?
81:デフォルトの名無しさん
08/02/10 02:54:37
>>80
int i = Integer.parseInt(s) でおk
82:デフォルトの名無しさん
08/02/10 03:09:09
Javaでコールバック処理を行いたいんですが、どうするのが
一般的ですか?
83:デフォルトの名無しさん
08/02/10 03:12:37
>>81 ありがとう
84:デフォルトの名無しさん
08/02/10 03:53:37
URLリンク(blog.livedoor.jp)
のページにあるプログラムをEclipseで実行するとエラーが出てしまいます
ちなみにエラーの文章は
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.apache.commons.httpclient.HttpClient.<clinit>(HttpClient.java:66)
at Logintest.main(Logintest.java:20)
とでて、
Logintest.java:20の内容は
HttpClient client = new HttpClient();
です。
java素人なので全然わかりません。。。よろしくおねがいします!
85:デフォルトの名無しさん
08/02/10 03:54:45
JARをパスに追加しろ
86:デフォルトの名無しさん
08/02/10 03:59:16
eclipse3.3で初めてJUnit(4)のテストコードを書いています。
このテストコードをマウスを使わずに
キーボードだけで素早く実行するにはどうしたらいいのでしょうか?
87:84
08/02/10 04:07:18
>>85
お返事ありがとうございます
外部jarの追加でしっかり追加したはずなんですが
できてなかったのですかね。。。
88:デフォルトの名無しさん
08/02/10 04:46:10
>>87
OROが足りないんだろ。
追加しろ
89:デフォルトの名無しさん
08/02/10 05:11:25
↑俺なんてかっこいいんだと思ってるwww
90:デフォルトの名無しさん
08/02/10 06:37:26
>>88
oro追加してみましたけどインポートされた org.apache.oro は一度も使用されていません。と出てしまいます。
コンパイルエラーの文章も依然変わりません...('A`)ウムム
91:デフォルトの名無しさん
08/02/10 08:33:24
Javaをググッてみました
初心者向けということなのでNetbeansをインストールしましたが
使い方がさっぱり分かりません。
最初は普通のエディタの方が良いでしょうか?
92:デフォルトの名無しさん
08/02/10 10:49:56
>>84
commons.logging パッケージのクラスが見つからないというエラー。
ということで、そやつを取ってきてパスに入れれば…進展があるはず
93:デフォルトの名無しさん
08/02/10 11:08:39
質問です。
JAVAから外部のアプリケーションに対して操作を行うにはどのようにすればよいでしょうか。
例えばWindows標準のメモ帳に対して文字列"abc"を入力する、といったものです。
よろしくお願いします。
94:デフォルトの名無しさん
08/02/10 11:15:45
Robot
95:デフォルトの名無しさん
08/02/10 11:18:27
あるいは SWT の非公開 API
96:デフォルトの名無しさん
08/02/10 11:25:42
>>93
もっと上手い方法があるのかねぇ。
// 例外はうまく処理してちょ
Runtime.getRuntime().exec("notepad.exe");
Robot robot = new Robot();
Thread.sleep(2000);
robot.keyPress(KeyEvent.VK_A);
robot.keyPress(KeyEvent.VK_B);
robot.keyPress(KeyEvent.VK_C);
97:デフォルトの名無しさん
08/02/10 11:28:11
>>94
!! こんなクラスあったんだ。しかも1.4から標準で。知らんかった……。
98:デフォルトの名無しさん
08/02/10 11:30:51
Robotなんて名前がそのまんまなクラスがあるとは・・・。
私は始めたばかりですが、もっとリファとか読まないといけませんね。
ありがとうございました。
99:デフォルトの名無しさん
08/02/10 13:28:12
>>82
コールバックされるオブジェクトの参照を、する方に渡す。
メソッドのアドレスを渡すような考え方はしない。
コールバックされるクラスがいろいろあるなら、
目的のメソッドを定義した interface を作って、
それらのクラス全員に implements させる。
100:デフォルトの名無しさん
08/02/10 13:35:19
クラスは,C言語における構造体の配列みたいだと思ったのですが、
あっているでしょうか?
101:デフォルトの名無しさん
08/02/10 13:37:44
たぶん間違い。
構造体のような使い方もできるがもっと色々できる。
PCはゲーム機の本体のようなものですか?のような質問。
102:デフォルトの名無しさん
08/02/10 13:42:27
何で配列?
103:デフォルトの名無しさん
08/02/10 14:50:59
>>92
エラーが表示するライブラリを順に追加していったら動くようになりました!
ありがとうございます。
104:デフォルトの名無しさん
08/02/10 19:40:54
こんばんは。質問よろしいですか。
Linuxコマンド(diff)を実行し、その結果を出力するだけのプログラムなのですが、
なぜかその実行結果がNULLになります。
ソースは以下の通りです。宜しくお願いします。
fileA,fileBは共にテキストファイルで、コマンドの誤りは何度も試したのでないと思います。
public class b {
public static void main(String[] args) {
try {
// プロセスオブジェクトを生成
String str ="diff fileA fileB";
// System.out.println("command:"+str);
Process process = Runtime.getRuntime().exec(str);
// process.waitFor();
// 外部コマンドの標準出力を取得するための入力ストリームを取得
InputStream is = process.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
// 標準出力を1行づつ取り出します
String line = br.readLine();
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
105:104
08/02/10 19:57:29
申し訳ありません。自己解決しました。
原因は、もしかすると、fileAとfileBの場所が遠かった(コマンドが長すぎた)せいだと思います。
ご迷惑をおかけしました。
106:デフォルトの名無しさん
08/02/10 20:34:38
アニキ、Ant から起動したら XML パースが使えなくなりやしたぜ。どうしやしょう。
107:デフォルトの名無しさん
08/02/10 21:16:06
放置しとけ
108:デフォルトの名無しさん
08/02/11 01:05:22
Log4j って作者抜けてから開発停滞してね? J2SE 5.0 に対応させるとか言ってた
2.0 とかの開発今どうなってんの?
109:デフォルトの名無しさん
08/02/11 01:22:17
log4jメーリングリストのアーカイブ嫁
110:デフォルトの名無しさん
08/02/11 01:32:18
このスレ並の質問ばっかで開発状況の話なんて全然ねーじゃん。
111:デフォルトの名無しさん
08/02/11 02:08:30
秘密の漏えいを期待してるのか?
かね出さずに?
112:デフォルトの名無しさん
08/02/11 09:40:34
Javaをアンインストールしたらどうなりますか?
windows vista
113:デフォルトの名無しさん
08/02/11 10:18:26
削除されます
windows vista
114:デフォルトの名無しさん
08/02/11 10:25:58
Javaをアンインストールても、windows vistaは正常に作動しますか?
115:デフォルトの名無しさん
08/02/11 11:59:33
SOAPってスレッド使ってもいいの?
仕様的に。
116:デフォルトの名無しさん
08/02/11 13:21:47
プログラムを実行するごとにint型の変数の値を1ずつインクリメントするのってどうやったらできるんですか~--;
117:デフォルトの名無しさん
08/02/11 14:02:08
>>116
プラシーボで良ければ、int型の値を確保し、それをインクリメントするだけのプログラムを。
でなければ、実行されるプログラムが使用するメモリ以外の部分に、実行時の値を保存する。
レジストリやらHDDなど外部記憶装置やら。
参考
URLリンク(sdc.sun.co.jp)
URLリンク(sdc.sun.co.jp)
118:デフォルトの名無しさん
08/02/11 14:09:32
>>117
ありがとうございます!
今からちょっと用事があるので帰ってきてから実装してみたいと思います。
119:デフォルトの名無しさん
08/02/11 15:03:20
必ず表示されるフォントってありますか?
120:デフォルトの名無しさん
08/02/11 15:05:47
今のところ
Calendar.SUNDAY == 1
Calendar.MONDAY == 2
(略)
Calendar.SATURDAY == 7
みたいですが、これを前提にコード書いたらやっぱまずいですか?
SUNDAYからMONDAYまでがこの順に連続した整数であることも
全く保証されて……ないんですよね、やっぱり。
SUNDAY→0, MONDAY→1, ..., SATURDAY→6 を得たいんですけど、
いちいち走査するしかないのかなあ。
121:デフォルトの名無しさん
08/02/11 15:05:51
String s = ?(97);
s.equals("a")にするための?の部分を教えてください。
122:デフォルトの名無しさん
08/02/11 15:09:44
>>119
どの環境でも使えるフォント名ってことなら"Serif"、"SansSerif"、"Monospaced"、"Dialog"、"DialogInput"
123:デフォルトの名無しさん
08/02/11 15:13:23
>>121
Character.toString( (char)97 )
124:デフォルトの名無しさん
08/02/11 15:16:57
>>120
作法としてまずいかどうかは知らないが
将来バージョンアップで値が変わったりとかはしないはずなので大丈夫かと
(そんなことしたら既存のプログラムが動かなくなるし)
125:デフォルトの名無しさん
08/02/11 15:39:47
qa3765663
126:デフォルトの名無しさん
08/02/11 16:52:34
質問です。
JNIで呼び出すCのライブラリの中でファイルを参照するのですが、
ファイルの読み込みは一度だけにして常にメモリ中に展開しておき、
2度目以降は読み込み処理をやらなくてすむようにはできるでしょうか?
127:デフォルトの名無しさん
08/02/11 17:34:06
>>120
APIドキュメントで対応する数値が明記されていない以上、
変更されて機能しなくなる可能性がないとはいえないが、
まあたぶん変えられることはなさそうだし前提にしてもいいんじゃないかな。
Calendar.SUNDAYとかはpublic static final intで宣言された定数なので、
使用側のコードに直接値が埋め込まれるため、
変更されるような事態になったら全部コンパイルし直しになるので。
128:デフォルトの名無しさん
08/02/11 18:05:38
>>125
okwaveとのマルチか
129:デフォルトの名無しさん
08/02/11 18:17:05
>>128
どこかがつぶれてもいいような分散技術を使った高度な質問技。
しかし技を使ったことがバレると回答されにくくなる諸刃の剣。
130:デフォルトの名無しさん
08/02/11 19:02:29
ただのクロスポストだろ。なにが高度なんだ
131:デフォルトの名無しさん
08/02/11 20:29:06
>>120
必要が無ければやるべきではない印象を持つが、必要として考えると…
定数の値は公開されて確認ができるので、クラスの使用条件を
「Calendar.SUNDAY から Calendar.SATURDAY が連続した整数値を取ること」
としていれば、Java のバージョンが変わったときも、それを確認するだけで使えると思う。
もしくは、static の初期化子などでそれらが連続することを確認し、
そうでは無い場合には何らかの処置をする、とか
132:120
08/02/11 22:28:27
レスありがとうございました。
書いた直後に出かけていて返事が書けませんでした、ごめんなさい。
>>124
いくら public とはいえ、SUNDAY と "1" という値とは本来何の繋がりもない、
Calendar クラスの中だけの約束事でしかないので、
定数をこういう風に使っていいのかなぁという疑問がずっと消えなくて。
>>127
やっぱり明記はされてないんですよね。
ただ、「使用側のコードに直接埋め込まれる」には思わず手を打ちました。
定数が変わるときにはどのみちコンパイルし直しになるんだから
そのときにチェックが入るだろう、という考え方ですね。
建国記念の日とか春分とかの「日本の休日」を扱うクラスは
(どうせあと数十年中に休日が増減するから)とりあえず21世紀中だけ
使えることにしておけばいいよ、ってのと似たような話でしょうか。
ちょっと違うかもですが。
>>131
その発想はなかったっ。
どうせ将来にわたっても定数が変更されることはないだろうけど、
もし万が一……というところで悩んでいたので、
その注意書きを選ぶことにします。
お三方ともありがとうございました。
133:デフォルトの名無しさん
08/02/11 23:03:36
>>132
>建国記念の日とか春分とかの「日本の休日」を扱うクラスは・・・
祝日ってDBかファイル持ちだち思うんだ
134:デフォルトの名無しさん
08/02/11 23:06:09
>>132
それなら自分でMap持てば済む話じゃないの?
135:デフォルトの名無しさん
08/02/12 00:59:23
JavaBeansの仕様で質問です。
String a_1 = null;
というフィールドがあった場合、仕様として正しい
geterは
getA_1なのでしょうか?
136:デフォルトの名無しさん
08/02/12 01:09:58
逆に考えるんだ
「get,set,isに続くものをプロパティ名とする」と
フィールド名は関係ない
137:デフォルトの名無しさん
08/02/12 01:27:58
質問です。
クラス名や変数名に「hoge」という文字が頻繁に使われていますが、
なぜ「hoge」なんですか?
138:デフォルトの名無しさん
08/02/12 01:32:23
>>137
ほげを考えるページ
URLリンク(kmaebashi.com)
139:デフォルトの名無しさん
08/02/12 01:34:19
そんなググれば出てくるような質問を
テレビのイの字と同じようなものだよ
140:デフォルトの名無しさん
08/02/12 01:44:56
javamailを使ってメールの複数送信をしようと思います。
送信先をXMLデータベースから抜き出してループさせたいのですが,
internetaddressクラスの配列使用の場合と
SAXとの組み合わせ方が今ひとつわかりませんのでどなたか解説お願いします。
141:デフォルトの名無しさん
08/02/12 02:19:43
>>138
つまり、名前をつけるのが面倒なときにつけるんですね?
ありがとうございました
142:デフォルトの名無しさん
08/02/12 03:48:51
初歩的なことなんですが、
javaプログラムから新たなテキストファイルを作成するにはどうすればいいのでしょうか?
ファイル作成のためのクラスとかありますか?
143:デフォルトの名無しさん
08/02/12 03:50:55
FileWriter
144:142
08/02/12 04:19:25
>>143
FileWriterで書き込んだりReaderで読み込んだりすることは出来るのですが、ファイルを作成することが出来ないんです。
具体的には、絶対パスではなく自分より二つ上の階層に新しいテキストファイルを作成したいのですが、
ネットで調べてもファイルへの読み書きの仕方しか出てきません。
145:デフォルトの名無しさん
08/02/12 04:25:32
作成したいファイル名で new FileWriter("../../hoge.txt") すれば勝手にできる。
例外が発生するって言うならその例外の意味を調べろ。
146:142
08/02/12 06:47:29
>>145
FileWriterで作成までしてくれるとは知りませんでした。
ありがとうございました。
147:デフォルトの名無しさん
08/02/12 09:41:05
>>135
getterですよ
148:デフォルトの名無しさん
08/02/12 14:05:33
現在メニューバー作成のためにサンプルプログラムを動かそうと
してるんだがコンパイラは通るんだがappletviewerが起動しない・・・。
コンパイラが通る時にMenuFrame2.classと同時に
MenuFrame2$1.class(プログラム中に記載はされてない)
という謎物ができるんだがこれが原因なのか?
↓とりあえずサンプルプログラム
URLリンク(www.dotup.org)
Passはjava
149:デフォルトの名無しさん
08/02/12 14:15:07
>>148
それアプレットじゃないじゃん
普通に java MenuFrame2 で起動してみ
150:デフォルトの名無しさん
08/02/12 14:21:45
そうなんですか。
とりあえずIP抜かせてもらいました(^^v
151:デフォルトの名無しさん
08/02/12 14:23:37
穴があったら入りたいと思ったが穴が無かったので
小さいかまくらを作った。入れなかった。
アプレットだと思ってた俺がバカでした。回答thx。
152:デフォルトの名無しさん
08/02/12 14:53:19
>>150
厨房( ´,_ゝ`)プッ
153:デフォルトの名無しさん
08/02/12 15:08:43
tes01/tes02/tes03/sample.class という階層があって、
sample.classには、package tes03; の宣言がされています。
コマンドプロンプトから実行するとき、
tes02ディレクトリからでは java tes03/sample で実行出来るのですが、
tes01ディレクトリとtes03ディレクトリから実行出来ません。
例えばtes01ディレクトリから、java tes02/tes03/sample としてもエラーが出ます。
どうすればいいのでしょうか
154:デフォルトの名無しさん
08/02/12 15:22:02
>>153
つjava -cp test02 test03/sample
155:153
08/02/12 17:17:22
>>154
ありがとうございます!無事実行できました。
156:デフォルトの名無しさん
08/02/12 17:28:24
JDBCでテーブル一覧を取得したいんですが、
どうやったらいいのでしょうか?
157:デフォルトの名無しさん
08/02/12 18:00:54
Connection#getDatabaseMetaData()
158:デフォルトの名無しさん
08/02/12 18:23:28
JNI で質問なんですけど、C/C++ から呼んだ Java のメソッドで new で確保したオブジェクト
返した場合、JNI でそのオブジェクト参照してても GC の対象になるよね?
public byte[] foo(){ new byte[1024]; }
jobject value = env->CallObjectMethod(clazz, method);
159:デフォルトの名無しさん
08/02/12 19:02:54
>>158
ネイティブメソッドから返るまでは掴んだまま
返れば GC の対象になる
明示的に放したい場合は DeleteLocalRef を呼ぶ
160:デフォルトの名無しさん
08/02/12 19:26:36
おまいら親切過ぎる
職場の上司もこんな優しく教えてくれたらなぁー
161:デフォルトの名無しさん
08/02/12 20:37:22
Threadのrunメソッドに引数を渡すことは出来ないんでしょうか?
スレッドを複数作成してそれぞれのスレッドに異なる情報を渡して違った処理を実行させたいのですが。
162:デフォルトの名無しさん
08/02/12 20:54:41
メンバ変数に持たせときゃいいじゃん
163:デフォルトの名無しさん
08/02/12 21:46:47
>>159
そうなんですか。Java VM が参照見失うかと思ったんですがそうではないんですね。
ひょっとして env->NewByteArray() とかもちょあんt
164:デフォルトの名無しさん
08/02/12 22:00:56
お前のほうが色々見失っているよ
165:デフォルトの名無しさん
08/02/12 22:26:02
「うまいこと言った!」
そう考える 164 であった。
166:デフォルトの名無しさん
08/02/12 22:46:48
馬鹿っぽい質問だけど
インスタンス変数はよくprivateにするのに
クラス変数はどうしてpublicばっかなの?
private static ~ なんてのはあまり見ない気がする
167:デフォルトの名無しさん
08/02/12 23:29:05
スコープについて学べ
168:デフォルトの名無しさん
08/02/12 23:31:36
>>160
プロとしての自覚を持て
先輩の何十分の1程度の生産性しか出せないくせに
給料は同じくらいもらってんだろ?
169:デフォルトの名無しさん
08/02/12 23:36:06
普通後輩の方が安いはずなんだが
170:デフォルトの名無しさん
08/02/12 23:38:56
何十分の1なのか?w
171:デフォルトの名無しさん
08/02/12 23:40:45
>>169
>>168の書き込みなんて気にすんなw
172:デフォルトの名無しさん
08/02/12 23:44:24
先輩になっても給料変わらん会社にお勤めなんじゃないのか。
173:デフォルトの名無しさん
08/02/12 23:46:37
>>169
おまいも経験積んだら、高い生産性出せるようになるさ
174:デフォルトの名無しさん
08/02/12 23:48:26
今できない香具師はずっとできない希ガス
175:デフォルトの名無しさん
08/02/12 23:55:03
>>169は管理職で残業代出る後輩のが手取りは多い、とか。
176:デフォルトの名無しさん
08/02/12 23:59:00
>>175
それはありそうだな
生産性が低ければそれだけ残業するしな
177:デフォルトの名無しさん
08/02/13 00:12:03
30過ぎて月給25万の俺を慰めてくれよ
178:デフォルトの名無しさん
08/02/13 00:39:15
愚痴るならマ板池
179:デフォルトの名無しさん
08/02/13 00:56:10
25万ももらえば十分だろ
贅沢言ってんじゃねえよカス
180:デフォルトの名無しさん
08/02/13 00:57:54
import,例外処理は省略します
public class ComServer{
private ServerSocket sock; private Socket client;
public final static int portNo = 10500; private BufferedWriter writer;
private BufferedReader reader; private String msg = null;
ComServer() init();
void init(){
if(sock == null){
sock = new ServerSocket(ComServer.portNo,1);
client = sock.accept();
client.setKeepAlive(false);
System.out.println("Client connected");
}
if(reader == null) reader = new BufferedReader( new InputStreamReader(client.getInputStream()));}
String receive(){
if(reader == null)init();
String msg = null;
msg = reader.readLine();
return msg;
}
class s extends Thread {
private BufferedWriter writer;
private String msg;
s(String masg)this.msg = masg;
if(writer == null) writer = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
public void run(){
writer.write(msg,0,msg.length());
writer.flush();
}}}
すいません。たぶん根本的な間違いとおもいますがエラーがでてコンパイルできないです
申し訳ないですがバグを見つけてもらえないでしょうか?おねがいします. 環境はeclipse3.3.1.1 jre1.6.0_03です
181:デフォルトの名無しさん
08/02/13 01:11:43
いやだ。
182:デフォルトの名無しさん
08/02/13 01:13:59
>>180
エラーどこ、main どこ。クラスの先頭は大文字で。
eclipse ならエラーの対処方法も出るでしょうに。
183:デフォルトの名無しさん
08/02/13 01:14:28
>>180
問題点の候補はコンパイラが見つけて教えてくれてるだろ
エラーメッセージを読んで理解しろ
184:デフォルトの名無しさん
08/02/13 02:23:07
reader = new BufferedReader(new FileReader("./hoge"));
で実行ファイルと同じディレクトリのファイルを読み込むGUIアプリを作っているのですが、
実行ファイルが置いてあるディレクトリとは別のディレクトリのファイル(例えばデスクトップ)を引数に
そのアプリを立ち上げると
カレントディレクトリが
C:\Program Files\Common Files\System\MAPI\1041\nt\
と、よくわからないディレクトリになります。
何ででしょうか?
改善するためには、実行ファイルが置いてあるディレクトリを基点に
ファイルを読み込むようにすればいいと思うのですが
そのディレクトリを取得する方法がわかりません。
どうすればよいでしょうか?
185:デフォルトの名無しさん
08/02/13 02:31:52
そんな方法はない。
固定ファイルならリソース使え。設定ファイルなら Preferences 使え。
186:デフォルトの名無しさん
08/02/13 10:35:03
java.class.pathをとって、自分で探索していけば分かるかもしれない。
187:デフォルトの名無しさん
08/02/13 11:28:43
>>180
さらっと見ただけだが、
>ComServer() init();
こんな構文ないだろう
188:デフォルトの名無しさん
08/02/13 11:40:54
>>180
コンパイル出来ないのはバグじゃない。
なんでもバグで片付けようとするなよ馬鹿。
189:デフォルトの名無しさん
08/02/13 12:05:05
>>184
Mainクラスにmain()があるとして、
URL url = (new Main()).getClass().getResource("Main.class");
String dir = url.toString();
みたいなかんじでどう?
jarから起動のときはそこからちょっと処理しないといけないけど
190:デフォルトの名無しさん
08/02/13 12:27:21
Graphicsを画像保存したいのですが
GraphicsオブジェクトからImageオブジェクトに変換できますか?
191:デフォルトの名無しさん
08/02/13 13:20:15
>>190
BufferedImageに描画するようにして、それを保存したらどうよ?
192:デフォルトの名無しさん
08/02/13 13:20:21
>>190
BufferedImage image = new BufferedImage(1000, 1000, BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
好きなように g に描く
g.dispose();
image げっと!
193:デフォルトの名無しさん
08/02/13 20:09:53
明解Javaとかいう本、糞すぎる
前半はいいとして後半がめちゃくちゃ
結城さんのプログラミングレッスンのほうがはるかに信頼できるわ
194:デフォルトの名無しさん
08/02/13 20:12:10
悪かったな。じゃあおまえが書けよ。
195:デフォルトの名無しさん
08/02/13 20:59:44
例外オブジェクトって何ですか
196:デフォルトの名無しさん
08/02/13 21:00:30
明解Javaって糞本なのか?
持ってないから解らんがw
197:デフォルトの名無しさん
08/02/13 21:09:19
Java SE なんてどの本も同じだろw
つーかネットの連載とかで十分だし
本を糞と評価する奴が頭悪いだけって方が多いよな
198:デフォルトの名無しさん
08/02/13 21:10:38
TeX で組んでない技術本は総じて糞。
199:デフォルトの名無しさん
08/02/13 21:11:39
オライリは頑張って買ったw
英語版はつらいから日本語版待ってOrz..
200:デフォルトの名無しさん
08/02/13 22:11:16
いみふ
201:デフォルトの名無しさん
08/02/14 00:20:11
oh jesus
my jesus
I pleded my heart
202:デフォルトの名無しさん
08/02/14 00:20:46
>>197
おまえ生意気だな
口の利き方に気をつけろよ
誰に話してると思ってんだ?
知らぬが仏とはいうがたいがいにしとけよ
203:デフォルトの名無しさん
08/02/14 01:40:52
byte[] b;
int i;
//DoJa5.1がコンパイルエラー
try {
byte[] b = new byte[1000];
i = b.length;
} catch(Exception e) {
System.out.println("" + i + e);
}
//DoJa5.1がコンパイル成功
try {
byte[] b = new byte[1000];
i = b.length;
i = 5; //なぜこれを書くとコンパイルが成功するんですか?
} catch(Exception e) {
System.out.println("" + i + e);
}
204:デフォルトの名無しさん
08/02/14 01:55:04
て言うかそもそも b を二回定義してるのがおかしい気が…
205:デフォルトの名無しさん
08/02/14 02:10:55
>>195
検索で大体意味はつかめると思うのだが…
まぁ、言語規定によると「オブジェクトは、クラスのインスタンス又は配列」とある。
当てはめると、「例外クラスのインスタンス又は例外配列」ということになる。
そもそも、オブジェクトを配列の意味で使ってる文は少ないし、
例外は配列としないことが普通だろう。として限定すると、前者の意だろう。
>>203
エラー詳細も張らずに質問とな?
206:デフォルトの名無しさん
08/02/14 02:17:23
>>203
try節の中でbを二重定義しているのはおいておいて、
i=5;をそこに書いてもコンパイルに成功しない気が。
上が失敗するのはi=b.length;を評価する前に例外が発生して、
catch節に飛んでしまう可能性があるから、
その場合はiが初期化されていないのでコンパイルエラーを起こす。
int i;の段階でint i=0;とかで初期化すればエラーは出ないはず。
動作として正しいかどうかは別として。
207:デフォルトの名無しさん
08/02/14 03:40:30
>>204,>>206
2重定義でした。ありがとうございました。
208:デフォルトの名無しさん
08/02/14 03:44:59
そっちかよw
でもiの未初期化でもエラーが起こらなかった?
209: ◆xkgLgN/H4.
08/02/14 10:24:06
Sun認定Javaプログラマの試験対策問題集で納得できない部分があったので
質問させてください。
----------
問:アサーションの使用方法として適切なものを選びなさい。
【A】
public void method(int data) {
assert data < 0: "dataが負数";
}
【B】文法間違いなので割愛
【C】
public void method(int data) {
assert check(data): "checkメソッドがfalseを返した";
}
private boolean check(int data) {
if (data < 0) {return false;}
return true;
}
続く...
210:209 ◆xkgLgN/H4.
08/02/14 10:25:50
...続き
【D】
public void method(int data) {
boolean checked = check(data);
assert checked: "checkメソッドがfalseを返した"
}
private boolean check(int data) {
if (data < 0) {return false;}
return true;
}
正解は【D】なのですが、その解説が
【A】publicなメソッドの引数チェックをアサーションで行うのは不適切
【C】デバッグ時のみ使用し本番では使用しなくなるアサーションで
メソッドの呼び出しを行うのは不適切
【D】内容は【C】と同じだが、メソッドの戻り値を変数へ格納し、その変数を
アサーションでチェックしているので適切
というものでした。
【C】も【D】も「publicなメソッドの引数チェックをアサーションで行うのは不適切」に
該当する感じがして納得できないのですが、どう考えるべきですか?
また、【C】の解説が言わんとすることは、
アサーション有効時と無効時で呼び出されるメソッドが違う等の条件の違いがあっては
デバッグ作業として良くない
ということでOKですか?
よろしくお願いします。
211:209 ◆xkgLgN/H4.
08/02/14 10:31:18
訂正
【D】のassert行の末尾にセミコロンが抜けてました。
本来はセミコロンは付いています。
212:デフォルトの名無しさん
08/02/14 10:44:59
Eclipseで製作したプロジェクトをjarファイルにエクスポートする際、
ImgaIconに使った画像や、プラグインとして使用したjarファイルが
含まれずに生成されてしまいます。どうすればよいでしょうか?
213:デフォルトの名無しさん
08/02/14 10:50:09
>>210
しょせん試験なんてそんなもの。
問題作ったやつがアホだったんだろう。
214:デフォルトの名無しさん
08/02/14 10:54:36
>>209
あら、俺は【C】で書いてるよ・・・。
215:デフォルトの名無しさん
08/02/14 10:54:40
long a,b;
aとbを比較したいのですが、a<bではダメなのですか??
216:デフォルトの名無しさん
08/02/14 10:55:33
>>212
jarにエクスポートするとき、含めるファイルと含めないファイルを選択できると思うが
含めたい画像ファイルやjarファイルにチェックマークを付ければいいんでないか
217:デフォルトの名無しさん
08/02/14 10:56:05
>>215
a<bでいいよ
218:デフォルトの名無しさん
08/02/14 11:00:01
>>216
その際、srcフォルダの.javaにはチェックボックスが現れるのですが、
画像やプラグインには現れませんでした
別に設定すべき箇所があるのでしょうか?
219:デフォルトの名無しさん
08/02/14 11:00:32
>>217
それですると
Exception in thread "main" java.io.IOException: Bad file descriptor
でてくるんですけど・・・。
220:デフォルトの名無しさん
08/02/14 11:05:23
>>219
long値a,bの比較は a < b の形式で問題ない。
その周辺のコードが悪いんだろうよ。
221:デフォルトの名無しさん
08/02/14 11:06:37
>>219
longの比較でIOExceptionが出るわけないだろうと思うが・・・
スタックトレースは?
222:デフォルトの名無しさん
08/02/14 11:13:12
>>220.221
すいません、正確には
RandomAccessFile bin1 = new RandomAccessFile(new File(FileName1),"r");
RandomAccessFile bin2 = new RandomAccessFile(new File(FileName2),"r");
if(bin1.length()>=bin2.length())
c=bin2.length();
if(bin1.length()<bin2.length())
c=bin1.length();
としており、long型のcに短い方のファイルサイズをいれたいのです。。
この部分に問題があるのは確かなのですが・・。
223:デフォルトの名無しさん
08/02/14 11:32:53
>>218
ビルドパスに入ってるjarファイルは出ないみたいだけど、画像はなんだろう・・?
ところで、jarにjarを含めても読み込めないよ
そういう場合はFatJarプラグインを使うといいかもしんない
224:デフォルトの名無しさん
08/02/14 12:01:55
jconsoleのリモート接続ができないのですがどんな理由が考えられますでしょうか?
接続対象の環境は
Windows2003
Java HotSpot(TM) Server VM バージョン 10.0-b19
VM引数として
-Dcom.sun.management.jmxremote.port=8888
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
を設定しています。
接続元からportqryコマンドで8888がLISTENING状態になっているのは確認済みです。
225:デフォルトの名無しさん
08/02/14 12:49:51
>>209
CとDとの違いは、Assertionを有効にしない実行時にcheckメソッドが通るか否かという点は理解できているな?
これは試験用のサンプルだからわかりにくいけど、
int result = dao.update(entity);
assert result == 1;
というサンプルならばCはNGでDがOKと解るだろう。
わざわざcheckというメソッドで引数をチェックさせているのは意地悪な引っ掛けだね。
226:デフォルトの名無しさん
08/02/14 12:55:32
>>225
俺は、A を却下してる時点で、C や D も却下されるべきだと思うな。
assertion 使わずに、変な引数にもちゃんと対応しろって言ってるように見えるのに、
C と D のどちらもそのガイドラインに沿っていない。
227:225
08/02/14 12:56:28
追記
>213
アホはお前。
「アサーションの使用方法として適切なもの」であるから、CDは「publicメソッドで引数チェックのやり方は不適切」だがアサーションの使用方法に関してはDが正しい。
228:デフォルトの名無しさん
08/02/14 12:58:14
>>222
その先何をやるのかわからないけど、必要なければ RandomAccessFile を使わない方が無難。
native なメソッドで追跡不能。例えば、ファイル長なら File.length でも可。
229:デフォルトの名無しさん
08/02/14 13:10:20
int型配列の最大要素数はどんだけ?
230:デフォルトの名無しさん
08/02/14 13:21:33
>>229
言語規定によると…
> 配列は,int値によってインデクス付けしなくてはならない。
で、int型の最大値 (Integer.MAX_VALUE) は 2,147,483,647 なので、要素数はその -1 まで。
231:230
08/02/14 13:27:25
自己レス。
要素数が最大値でインデクス値が最大値-1。かな…
まぁ、確保した時点で普通は OutOfMemoryError かと。
232:デフォルトの名無しさん
08/02/14 13:32:03
>>230
ありがとうございます。十分な量です。
233:デフォルトの名無しさん
08/02/14 14:24:53
Jakarta Projectスレがなくなっていたのでスレを立てた
Apache Jakarta Project関連統合【Java】
スレリンク(tech板)
234:デフォルトの名無しさん
08/02/14 16:12:12
質問です。
現在、mainクラスのガベージコレクションを、
多重継承されたインスタンスからコントロールしています。
ただ、Heap領域にアクセスする場合について、
そのコレクションフレームワークからマルチスレッド化させると、
ローカルにremoveしようとしても同期的な排他制御が取れません。
やはりラッパークラスのプリミティブ型は、エレメントのイテレータもhasNext()メソッドもどきで
volatile修飾子のシリアライゼーションをさせるのが絶対条件なのでしょうか。
ちなみに、もしコマンドライン引数によってJava.langのStringBufferまでimportしたとしても、
SetインターフェースのisEmptyメソッドにするとなぜかStackOverflowErrorの例外が発生します。
staticなyield()メソッドを汎用させるため、
throwsで例外ハンドラをコンストラクタなアサーションをしているのですが・・・。
C言語が腐るほど考えたのですが、
バイナリでのファイル操作がなかなかまとまらないため質問した次第ですので、
どうかお答えお願いします。
235:デフォルトの名無しさん
08/02/14 16:15:02
不覚にも吹いたw
プログラミングを何も知らない初心者が見たら、
めちゃくちゃ高度なことに見えるんだろうなぁ
236:デフォルトの名無しさん
08/02/14 16:22:04
未消化な単語ばかり並べてるけど、まあ初心者板なのだから。
やりたいことを自分の言葉やコードで示せば回答もあると思うよ。
237:デフォルトの名無しさん
08/02/14 16:32:42
スイーツ(笑)
238:デフォルトの名無しさん
08/02/14 16:33:08
>>234
まず、「てにをは」だけでも見直してみたらどうか?
239:デフォルトの名無しさん
08/02/14 16:36:31
まるで自動生成したかのような意味の通らなさだ
240:デフォルトの名無しさん
08/02/14 16:38:26
釣られてみる。
多重継承 :無理
GCのコントロール:原則としてできない
Heap領域にアクセス:??
ローカルにremove:??
ダメだ、突っ込みようもないわ
241:デフォルトの名無しさん
08/02/14 18:22:37
JLabelのpaintComponent(Graphics g)をオーバーライドして、
中でg.draw(new Line2D.Double(x, y))
とやると直線が引けました。
この直線を半透明にグラデーションさせたいのですが、どのようにするのがよいでしょうか?
242:デフォルトの名無しさん
08/02/14 18:29:49
AGGへのラッパーを書く。
243:デフォルトの名無しさん
08/02/14 19:22:35
>>222
小さいほうの値を選ぶだけなら static long Math.min(long, long) を。(if文を消せる。
244:デフォルトの名無しさん
08/02/14 19:56:19
>>241
GradientPaint と AlphaComposite を調べろ
245:241
08/02/14 20:19:12
ありがとうございます。
とりあえず直線はおいておくことにして、任意のShapeについて半透明グラデーション
させられるかを考えることにしました。
AlphaCompositeを利用すると一様にアルファ値が適用されてしまうようです(当たり前ですね)。
これを徐々に変化させるような処理というのはどういうプロセスになるのでしょうか・・・
かなり考えたのですが、すみません、ヒントいただけませんか?
246:デフォルトの名無しさん
08/02/14 20:30:35
少し描画して変更して、また少し描画する、あとは適当なタイミングになるように工夫して繰り返せ
247:デフォルトの名無しさん
08/02/14 20:48:02
ああ、少しずつ描画すればいいわけですね。
このY座標までは0.6fで、次からはもっと薄く・・・とか。
ありがとうございます。
しかし、タイミングって関係あるんでしょうか?
ひょっとして「徐々に」というのが時間的に捉えられてたとか・・・
すみません。これは距離的にということでした。
248:デフォルトの名無しさん
08/02/14 21:12:25
GradientPaintとか
249:デフォルトの名無しさん
08/02/14 22:41:53
速度が与えられれば時間的≒距離的だろう。
中学生レベルの理科か算数の話じゃねーか
250:デフォルトの名無しさん
08/02/14 23:09:02
>>244のヒントであとは自力でできないようなら他のことを教えられてもできそうにない
あきらめたほうがいい
251:デフォルトの名無しさん
08/02/14 23:31:23
いや、速度とか言ってるけど何か動かすような話じゃないと思うよ。
要するに図形を半透明にグラデーションさせたいわけだろ?
領域の面積で考えれば済む話じゃないか。しかももう判りかけてるみたいだし。
>>249,250はもうちょっと考えた方がいい。
252:デフォルトの名無しさん
08/02/15 00:14:39
「釣られて見る」 と宣言すればネタに無粋な突っ込みして許されるってもんでもないぞ。
253:デフォルトの名無しさん
08/02/15 00:25:57
すいません、質問です。
ゲームを作っているのですが、方向キーを押したときに画像が
切り替わるようにするにはどうしたら良いでしょうか。
歩いているように見せたいんです。
現在、方向キーを押すと画像が動くようにはできています。
分かりにくかったらすいません。
254:デフォルトの名無しさん
08/02/15 00:29:46
10個以上も上のやつのネタに突っ込みするんだからレス番ぐらいつけなきゃ無粋なんじゃ?
255:デフォルトの名無しさん
08/02/15 00:33:10
>>253
普通に描画するだけなんじゃ?
ていうか質問の件よりは動かすほうが難しいと思うんだが
256:デフォルトの名無しさん
08/02/15 00:33:24
ふと思ったんだが
やっぱり、strutsよりJSFの方が良くないか?
257:デフォルトの名無しさん
08/02/15 00:34:11
Struts が良いものと思ってる奴なんて居るのか?
258:デフォルトの名無しさん
08/02/15 01:14:43
>>255
キャラが左右に滑るだけでまだ手足が動かないということなんじゃ?
259:253
08/02/15 01:23:33
>>258
そういうことです。いいクラスライブラリがあるのでしょうか?
260:デフォルトの名無しさん
08/02/15 01:36:05
JSF って JSTL と何か違うの?
261:デフォルトの名無しさん
08/02/15 01:36:47
>>259
座標を適当な数で割った余りによってキャラを切り替えていくというのは?
262:デフォルトの名無しさん
08/02/15 01:37:17
何を考える余地があるんだ?
ちょっと考えたほうがいいのは241だろ
アルファ値込みでグラデーション設定したGradientPaintをsetPaintで設定したグラフィックコンテクストを使って
drawなりdrawLineなりで直線引けば終わりじゃないか
>>244でGradientPaintってヒントが与えられてるのに
AlphaCompositeで一様にしかアルファを設定できないって言ってるやつが変
263:デフォルトの名無しさん
08/02/15 01:44:13
GradientPaintで力不足ならAPIドキュメントでGradientPaint周りをぶらつけばLinearGradientPaintとかにも行き当たる
264:195
08/02/15 01:47:42
>>205
激しく遅レスでごめんなさい。
言葉足らずだった、というか話が長くなる予定だったので最初は簡単に意向と思ったというか。
Java(というかJVM?)でも、普通にメソッドを呼び出すと引数とかリターンアドレスとか
ローカル変数とかをスタックに積んでいくんだと思うんですよ。
でも呼び出し先で「例外」投げると呼んだメソッドへのリターンではなくって、
メソッド呼び出しを含むtry節に対応したcatchのところに(しかも例外の種類にあったcatchのところ)へ
一足飛びに戻ってくるわけですね。
そしてそこでキャッチした例外のインスタンスには、
そこから上のスタックがごそっと詰まっているように見えるわけです。
そんなこんなで、tryを実行するとJVMがどっかにcatchのアドレスと例外の型を保存していて、
呼び出し先のどこかで「例外を投げる」を行うと、スタックをこれまたどこかに保存したうえで、
もともと保存してあったcatchのアドレスにまで一足飛びにジャンプして、というのを考えると、
それというのはGotoなんかよりよっぽどたち悪くないか、なんて思ったりするんですけど、
それでも例外は使うな、なんて話は別に聞かないですし、そんなもんかとも思うんですが、
例外処理書くときにもやもやするのは確かなのです。
そういう例外処理機構がくわしくわかるようなWebとかないでしょうか。
265:デフォルトの名無しさん
08/02/15 01:49:02
名前空間付きの XML (DOM) に対して:
<foo xmlns:xsi="URLリンク(www.w3.org)"
xmlns="URLリンク(foo-uri)<) foo.xsd">
<bar>...</bar>
…
XPath でノードを参照してみたんですけどノードと一致しません。
NodeList nl = (NodeList)xpath.evaluate("/foo/bar", doc, XPathConstants.NODESET);
// nl.getLength() == 0 になる
XML から名前空間の指定を取り除くと一致するため、検索時にパスの名前空間が考慮されてない
動きだと思うのですが、XPath に名前空間を意識させるにはどうすれば良いでしょうか?
DOM を構築するときにファクトリへ setNamespaceAware(true) は行っています。
266:デフォルトの名無しさん
08/02/15 01:49:30
>>256
Feedaのほうがいい
267:デフォルトの名無しさん
08/02/15 02:01:33
先ほどスレ立てるまでもない質問スレで質問させてもらったんですが、板違いってことで
こちらで再度質問させてくださいまし。
一昨日からずっとこの問題を考えているのですが、基礎知識があまりに不足していて全くわからないで困っています。
プログラムに詳しい方いましたら長いですが完全解答を導き出していただけませんでしょうか?
以下に掲げたおこずかい帳プログラムの説明を書きなさい。ただし、書き方は次の例
を参考にすること。<form name=f><input type=text name=i value=""><input type=button value="偶奇判定" onClick="check()"></form><script>function chech()
{var a=Number(document.f.i.value);a=a+1;if(evenp(a)) alert("偶数");else alert("奇数");}function evenp(a){return a%2==0}</script>
【説明例】formタグとinputタグによって、画面にテキスト文字表示窓と偶奇判定用のボタンを表示。この際、ボタンをクリックした時、関数check()を呼び出すように設定する。
関数checkは、テキスト文字窓から入力された値(document.f.i.value)を関数Numberによって数値に変換し、これを変数aに代入する。ついで、aの値を1増やし、関数evenpによって変数aの
値が偶数か、奇数か判別し、偶数の時は"偶数"、奇数の時は"奇数"とalertウィンドウに表示する。関数evenpは、与えられた値(a)が偶数かどうか判別(aを2で割った余りが0かどうかで判定)し、結果(trueかfalse)を返す。
268:デフォルトの名無しさん
08/02/15 02:12:47
何だこれ?
読む気しねえ
269:デフォルトの名無しさん
08/02/15 02:13:55
>>267
板違い
Web 作成板池
270:265
08/02/15 02:40:39
XPath の表記に接頭辞付けて、その接頭辞に対する URI (XML のと同じ URI) を返す
NamespaceContext サブクラス作らなきゃいけないみたいですね。
271:デフォルトの名無しさん
08/02/15 03:14:39
>>267
板違いって言われてなお同じ板の別スレに投げるとは
web制作板へ行ってもそのままじゃ誰も読んでくれんぞ
あっちの板で質問するときはせめて改行を入れろ
長くなるようならうpろだにあげろ
272:デフォルトの名無しさん
08/02/15 03:42:55
>>264
お察しの通り、例外が発生した際の手順は見かけ以上に多く、議論の的になります。
例外を使う場面に関する検索キーワードとしては「java 例外 コスト」などでしょうか。
条件分岐目的で例外を発生させる書き方は、好まれていないように思えます。
instanceof とキャストと例外の話も面白い。
273:デフォルトの名無しさん
08/02/15 05:59:57
httpclientを使用してログインが必要なサイトにアクセスしたはいいものの
リダイレクトされて、html情報を取得できません。。。
ググってもリダイレクト先のURLを取得する方法がわかりませんー!
どなたかご存じありませんか><
274:デフォルトの名無しさん
08/02/15 06:04:52
Location ヘッダを取れ。
つかリダイレクトを自動処理する設定くらいないのか。
275:209 ◆xkgLgN/H4.
08/02/15 09:06:24
>>213-214,225-227
レスありがとうございました。
メソッドの事後条件チェックにアサーションを使用した例と
考えることにします。
引数チェックに見えるのが腑に落ちないですが、
そこは問題作成者の思いやりが足りなかったと思うことにします。
276:デフォルトの名無しさん
08/02/15 11:39:42
>>264
処理の重さが気になるって話なら、実際に例外が発生しない限りほとんどノーコストなんだし、
実際に例外が発生した場合にコストが高いのは、まぁエラー発生時のみだからと割り切る。
gotoっぽくてイヤって話なら、returnでエラーコード返す処理を連ねてくのに比べればマシかと。
277:デフォルトの名無しさん
08/02/15 12:30:20
paint(Graphics g)やupdate(Graphics g)のgの部分を他のクラスから使う方法はありますか?
今はエラーを表示するだけなのに、
paint(Graphics g){
test(g);
}
test(Graphics g){
………
tset_error(g);
}
test_error(Graphics g){
g..drawString("エラーがでたよ",0,0);
}
こんな感じの入れ子が数段連なってます。
なんだかガベージコレクトも頻発してるみたいなのでGraphics gを無くしたいのです。
278:デフォルトの名無しさん
08/02/15 12:33:26
根本的な使い方が間違っていると思われ
279:デフォルトの名無しさん
08/02/15 12:38:47
エラーに限らずほとんどのクラスにGraphicsが付いてるんですよ。
なんとかしたいでつ(>_<)
280:デフォルトの名無しさん
08/02/15 12:52:03
作ったやつに氏ねと言ってくれ
281:デフォルトの名無しさん
08/02/15 12:57:06
>>277
設計を見直すべきかと
paintの中で描画以外の処理をやってないか?
paintでは描画に集中し、ほかの事はやらない
設計に問題がないのなら、gを渡すのは仕方ない
あとガベージコレクションはgを渡してるのとはおそらく関係ない
282:デフォルトの名無しさん
08/02/15 13:11:25
>>281
Graphicsの入れ子はガベージコレクト的に問題ないと言うことですね。それを聞いて安心しました。
ということはImageや整数配列の入れ子が問題なのかな。
Cみたいな参照変数になってるのか、なってないのかがよく分からなくて。
283:デフォルトの名無しさん
08/02/15 13:22:23
Javaには参照渡ししかない。
284:デフォルトの名無しさん
08/02/15 13:22:26
直線のデータをdに入れます。
dは配列です。1次元目が開始位置、2次元目が終端です。
1次元目、2次元目がそれぞれx,yの座標を持っているので、
int d[][]型です。
int d[][] = new int[2][2];
配列dのメモリ確保はこれでよいですか?
C言語のようにd = new int[2]を実行してから、2次元目はforで回しながら
newしなくてはならないのでしょうか?
285:デフォルトの名無しさん
08/02/15 13:23:32
ごめん、うそついた。
Javaの変数は、オブジェクトについてはすべて参照。
引数はすべて値渡しだが、オブジェクト自身を渡すことはできない。
286:デフォルトの名無しさん
08/02/15 13:26:54
>>284 URLリンク(www.javaroad.jp)
287:デフォルトの名無しさん
08/02/15 13:52:34
>>285
試してみたら、Imageはコピーでした。Graphicsは参照。
全部試してみればよかったんだね。
288:デフォルトの名無しさん
08/02/15 15:39:04
java3級 落ちてきたオイラに一言。
289:デフォルトの名無しさん
08/02/15 15:46:37
java3級ってなに?
290:デフォルトの名無しさん
08/02/15 16:12:36
サーティファイか
291:デフォルトの名無しさん
08/02/15 17:14:19
propertiesファイルで
firstname = taro
lastname = yamada
fullname = ${lastname} ${firstname}
みたいなことって無理ですか?
292:デフォルトの名無しさん
08/02/15 17:44:10
>>234
なんか、完ぺき主義者みたいだな。
ところどころで主語や目的語が抜けて凄いな。
何を多重継承したのかわからんし、何をどのようにコントロールしているのかもわからない。
5W1Hがなっていないというか。
293:デフォルトの名無しさん
08/02/15 18:17:48
>291
無理
294:デフォルトの名無しさん
08/02/15 20:22:43
anko1;;あんこ
anko2;;あんこ2
このような形式の辞書ファイル(100MB)を
ランダムアクセスファイルで分割してメモリに読み込み
検索する辞書検索プログラムを作っているのですが
検索はできるのですが、かなり時間がかかり困っております
ハッシュ系のコレクションフレームワークを使えとヒントをもらったのですが
100MBのデータをハッシュ化すると当然メモリがたりなくなりました
大量のデータをハッシュで高速に検索する方法をおしえていただけないでしょうか
295:デフォルトの名無しさん
08/02/15 20:28:00
>>292
KY
296:デフォルトの名無しさん
08/02/15 20:31:16
>>294
メモリ増設
てか、ヒープを256MBくらいにすればいいだろ
297:デフォルトの名無しさん
08/02/15 20:34:56
>>294
普通にデータベース使え。
それが嫌ならその辞書ファイルにインデックスでも付けろよ。
298:デフォルトの名無しさん
08/02/15 20:49:22
SAX パーサに Schema やなんかの Validator が設定できないみたいなんすけど
解析しながら ヴァリデーション ができるようには作れないんでしょうか。
299:デフォルトの名無しさん
08/02/15 21:29:55
>>294
他の人も書いてるけど、
普通にJavaDBでEmbeddedでやれば何も考えずに楽勝だと思うんだけど。
辞書ファイルがテキスト形式絶対でも
nioだったらヒープ外にバッファが取られるから
それほど遅くならんと思うがなぁ。
コマンドライン引数指定はしないとまずいし、今やってないかもしれないしなぁ、
どの程度のレスポンスで遅いって言ってるか解らないし。
300:デフォルトの名無しさん
08/02/15 23:46:17
アプリの中のデフォルトフォントを設定したい。
Label l = new Label("");
l.setFont(f);
をいちいちインスタンスごとにやるのではなくて、main()が始まったらすぐに
デフォルトフォントを設定して、Label l = new Label("");した時点で
そのフォントが適用されているようにはできませんか?
301:デフォルトの名無しさん
08/02/15 23:49:50
Labelをextendsしたらあかんの?
自前の俺Label作ったらええやん
302:デフォルトの名無しさん
08/02/15 23:52:16
>>300
Javadocには親のフォントを継承するかのように書いてあるから、
FrameにsetFontすればいいんじゃなかろうか
303:デフォルトの名無しさん
08/02/15 23:52:59
Javaのソースコードを構文解析木に変換したいです。
たとえば
a = max(b,c/2);
だったら
=
/ \
a max
/ \
b /
/ \
c 2
のような木を得たいです。出力のフォーマットはどのようなものでも構いません。
何かご存知の方いらっしゃいましたらよろしくお願いします。
304:デフォルトの名無しさん
08/02/15 23:56:01
JavaCCでググれ。
BNFが有るのが前提だったら楽。
305:デフォルトの名無しさん
08/02/16 00:34:55
>>301
Label.setFont()がありましたが、setDefaultFont()で解決しました。
306:デフォルトの名無しさん
08/02/16 00:50:02
>>302
ありがとうございます。あきらめました。
public class OrigApp extends IApplication {
public OrigPanel oPanel;
public void start() {
oPanel = new OrigPanel();
oPanel.setFont(Font.getFont(Font.FACE_SYSTEM | Font.SIZE_SMALL | Font.STYLE_PLAIN));
Display.setCurrent(oPanel);
307:デフォルトの名無しさん
08/02/16 00:52:49
↑import com.nttdocomo.ui.Font;
が無いとFontのシンボルが解決でないというコンパイルエラーです。
Fontというクラス名が衝突しているのですか?
308:デフォルトの名無しさん
08/02/16 00:55:39
iアプリかよ・・・・・。
>>307
いみがわからん。
インポートしちゃいかんの???
309:デフォルトの名無しさん
08/02/16 00:59:36
>>308
import com.nttdocomo.ui.*
こう書けばFontが使えると思っていましたが、
>>306のソースでは
import com.nttdocomo.ui.Font;
でなくてはコンパイルできない理由が分かりません。
310:デフォルトの名無しさん
08/02/16 01:09:57
なるほど。
じゃぁ、Fontというクラス名の衝突という認識で正しい。
import java.awt.*;
とかやってないかい?
そこのFontクラスがある。
つーか普通Fontっていうとjava.awt.Fontだとおもうんだが。
まぁ、ソースに明示的に
oPanel.setFont(com.nttdocomo.ui.Font.getFont(com.nttdocomo.ui.Font.FACE_SYSTEM | com.nttdocomo.ui.Font.SIZE_SMALL | com.nttdocomo.ui.Font.STYLE_PLAIN));
って書いてもいいけどなw
ま、Eclipseとか使えってことだ。
311:デフォルトの名無しさん
08/02/16 01:17:23
java初心者です
Cだとif文で~のときは変数○に値□を入れて
ーのときは変数○に値△をいれる
ってのができるのにjavaはスコープの関係上それができません><
一体どうやってやるんですか??
312:デフォルトの名無しさん
08/02/16 01:18:04
>>310
import java.awt.Font;は、携帯用のコンパイラだからエラーでしたが
クラス名の衝突なんでしょうね。?
Eclipse使ってないことまでバレちゃうんだな。
Eclipse使えと言われているんだが。
313:デフォルトの名無しさん
08/02/16 01:20:36
>>311
何を言っているんだ C のスコープも同じだろ (最近の ANSI C/C++ は違うのか?)。
String ○ = null;
if(~){
○ = "□";
} else if(ー){
○ = "△";
}
314:デフォルトの名無しさん
08/02/16 01:21:09
>>311
おそらくキャストが間違っている
315:デフォルトの名無しさん
08/02/16 01:22:04
>>311
おそらく再起動したら直る
316:デフォルトの名無しさん
08/02/16 01:23:22
>>311
おそらく激しく勘違い
317:デフォルトの名無しさん
08/02/16 01:25:15
>>312
あーごめん。
おれiアプリとか書いたこと無いから「クラス名の衝突」に関してはウソかもシレン。
IDE使ってないのが解るのは
import java.awt.*;
とかでアスタリスクを使ってるから。
Eclipseだったら使ってるクラスのみをインポートするし
作法的にも衝突が起きないように省略するとかしない。
スタティックインポートとかつかえんよね?iアプリだと。
コンパイルする前からエラー教えてくれるし、俺は初心者であっても使うべきだと思う。
今ならEclipseじゃなくてNetBeansでもいいとおもう。
318:デフォルトの名無しさん
08/02/16 01:26:58
なんか日本語むちゃくちゃだなorz.
まだ会社なんだ・・・・・許してくれ。
319:311
08/02/16 01:28:52
初期化してなかっただけでした\(^o^)/
320:デフォルトの名無しさん
08/02/16 01:37:47
>>317
スタティックインポートって聞いたことがありません。
まだインポがうまく使いこなせていませんが、
「Java謎+落とし穴徹底解明」を読んで、クラス名の衝突なのでは、と思いました。
321:デフォルトの名無しさん
08/02/16 01:45:24
Java5から導入されたんだが、
クラス名から書かなくてもメンバを参照できるってだけ。
この場合だと
import static com.nttdocomo.ui.Font.FACE_SYSTEM
って宣言しておけば
Font.getFont(FACE_SYSTEM ・・・
って書けるってだけ。
あんまり便利でもないし、積極的に使う場面でもないな。
322:デフォルトの名無しさん
08/02/16 03:18:28
<? extends Hoge> と <? super Hoge> とかってどう違うの?
323:デフォルトの名無しさん
08/02/16 03:20:57
Hogeのサブクラスに限定するか、Hogeのスーパークラスに限定するかの違い
324:デフォルトの名無しさん
08/02/16 03:23:09
<? extends T> Tの派生クラスだったらなんでもいい
<? super T> Tのスーパクラスだったらなんでもいい
325:デフォルトの名無しさん
08/02/16 03:58:46
class A{}
class B extends A{}
class C extends B{}
とした場合、
List<? extends B> には B, C が入れられ
List<? super B> には A, B (Object も) が入れられる
って事で良いの? スーパークラスに限定が必要性ってどういう状況で出るんだろ。
326:デフォルトの名無しさん
08/02/16 04:04:25
別にクラスだけじゃなくて、インターフェースも指定できるから、
状況的にはあるとおもうが。
327:デフォルトの名無しさん
08/02/16 04:08:26
ん? ゲネリクス の型チェックってコンパイル時の静的な奴だから
<? super B> としても A にキャストした C のオブジェクトは OK になっちゃうんじゃないの?
328:デフォルトの名無しさん
08/02/16 04:15:07
>>325
たとえば、java.util.Collections#copyとか。
<? extends T>なListの要素を<? super T>なListにコピーするメソッド。
Tのサブクラスが入ったListはTのスーパークラスを入れられるListにコピー可能。
329:デフォルトの名無しさん
08/02/16 04:35:17
List<? extends B> bext1 = new ArrayList<A>(); // エラー
List<? extends B> bext2 = new ArrayList<B>();
List<? extends B> bext3 = new ArrayList<C>();
List<? super B> bsup1 = new ArrayList<A>();
List<? super B> bsup2 = new ArrayList<B>();
List<? super B> bsup3 = new ArrayList<C>(); // エラー
↑これはまぁ分かりますと。
List<? extends B> bext = new ArrayList<C>();
bext.add(new A()); // エラー
bext.add(new B()); // エラー
bext.add(new C()); // エラー
↑何で全滅やねん!
List<? super B> bsup = new ArrayList<A>();
bsup.add(new A()); // エラー
bsup.add(new B());
bsup.add(new C());
↑B のスーパークラスってのは代入の時のみで、
実際に適用するオブジェクトの型を上位に限定するんじゃないのか。
330:デフォルトの名無しさん
08/02/16 04:47:20
>>329
>List<? extends B> bext
List<? extends B> ってことは、たとえば List<D> だったら
add の引数は D でなければならないわけで、
その場合は A も B も C も add 出来ないことになる。
? が確定しない限り、安易に add 出来ない。
>List<? super B> bsup = new ArrayList<A>();
こっちは、? が D ではありえない。List<Object> か List<A> か List<B> しかない。
List<B> かもしれないことを考えると、A は add できない。
B だったら、List<Object> でも List<A> でも List<B> でも OK だ。
331:デフォルトの名無しさん
08/02/16 05:06:04
>>330
前半、全て NG なら何のためにそういった書き方が出来るんでしょうか?
さらに別に参照を受け渡すためか class D extends C{} を作って
List<D> dlist = bext; とかしてみましたがエラーでした。
後半、言語設計する側の理屈で言えばそうですね。使う側の立場で宣言だけ見ると
B のスーパークラスだけ add できるリストなのかと思ってしまいそうですが。
何でこうゲネリックウsって消化悪いんでしょうか。誰ですか設計したのは。
332:デフォルトの名無しさん
08/02/16 06:07:25
>>330
なるほど。ありがとうございます。(質問者じゃないけれど)
かなり理解が進みました。
// 代入文を見ると、ついつい右辺の型で考えてしまうのよね…
333:デフォルトの名無しさん
08/02/16 10:25:49
独習Javaをやっているんですが、
本が厚すぎてコードを打っているうちにパタンと閉じてしまいます。
何かいい方法はありませんか?
334:デフォルトの名無しさん
08/02/16 10:33:37
板違い
335:デフォルトの名無しさん
08/02/16 10:55:08
章ごとに小分けして製本する。
336:デフォルトの名無しさん
08/02/16 10:57:36
>>333
独習Javaをやらない。
337:デフォルトの名無しさん
08/02/16 11:01:09
>>333
お買い上げありがとうございます。
URLリンク(www.amazon.co.jp)
ワニクリップか洗濯バサミか何かでもいいけど。
338:デフォルトの名無しさん
08/02/16 11:25:58
独習Java読んでみたけどあれはひどいね。
J2SE5.0対応を謳ってるくせに、
実際は1.3以前の内容しか載ってない。
例えば、キーワードにassertやenumが無かったり。
よくあんな本が売れるもんだ。
339:333
08/02/16 11:26:25
>>337
今、購入しました。
商品が届くまでは本に「やさしいJAVA」を乗せておくことにします。
340:333
08/02/16 11:34:57
>>338
それを聞くとモチベーション下がるなぁ。まだ第2章だっていうのに。
このスレには独習にお世話になった人はどのくらいいるのだろうか。
341:デフォルトの名無しさん
08/02/16 11:48:09
ノ
お世話になったよ。
5.0は対応しているだけで、5.0用ってわけじゃないからなぁ。
1.4系を独習するという事で割り切れば今でも良本。
そもそも5.0系でまともな入門本ってあるかい?
342:デフォルトの名無しさん
08/02/16 12:09:23
>>331
Java言語仕様一通り読んだけど、Genericsまわりははっきり言ってわけわからん。
つか、理解を完全に放棄したw
何らかの数学的背景があって、その範疇で整合性を取っているような感じだったが……。
343:デフォルトの名無しさん
08/02/16 12:18:37
>>341
assertが載ってないから1.3系だよ。
1.4系の独習なら、他にもっといい本があるだろう。
5.0系の入門書は知らないけど、
1.4系なら結城さんの本とかいいんじゃないの?
5.0に対応してたかも知れないし。
344:デフォルトの名無しさん
08/02/16 12:22:00
java(TM)plug-inの致命的エラー
XP IE7 導入
JAVAの再インストール
すべてやってもエラーでみれません
対処方法教えていただけませんか?
345:デフォルトの名無しさん
08/02/16 12:31:02
>>331
>前半、全て NG なら何のためにそういった書き方が出来るんでしょうか?
それは、get の方を考えてみればわかる。
List<? extends B> の場合、保持してる要素は少なくとも B か
そのサブクラスであることがわかってるから、get は B を返すことができる。
List<? super B> の場合、List<Object> という可能性があるから、
get は Object でしか返せない。
>List<D> dlist = bext;
それは無理。
bext は List<A> かもしれないし。
List<D> の get は D を返すわけだから、A とか入ってたら困るだろう。
346:デフォルトの名無しさん
08/02/16 12:39:20
javaVM1.2以降の時だけGraphics2Dを使いたいのですが、
バージョンをチェックして振り分けてもMSjava1.1だとランタイムエラーになってしまいます。
SUNjava1.1はキチンと振り分けられて動いています。
これって対処できますか?
347:デフォルトの名無しさん
08/02/16 12:39:26
理由を聞けばもっともだとは思うが、あんだけ時間かけといて何でこんなgdgdなんだろうか。
まぁ誰の声が一番でかいかを争ってたんだろうというのは想像に難くないけど。
348:346
08/02/16 12:55:07
具体的にはClassNotFoundExceptionが出ます。
if文で1.1以下の時だけそのクラスを使わない処理にしたら、
sun-java1.1はエラーを吐かなくなりましたが、
ms-java1.1はエラーで止まってしまいます。
349:hage
08/02/16 12:57:37
質問です。(コードは以下に連投します)
キャンバス上に JComboBox を混ぜたプログラムを作ってるのですが、
マウスドラッグ中に JComboBox がちらついてしまうのが嫌なのですが、
なんとかなりませんでしょうか?
import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class Test extends JFrame{
private Image offs; private JComboBox cb; private Point mp;
public Test(){ init(); }
private void init(){
Container c = getContentPane();
c.setPreferredSize(new Dimension(300, 300));
c.setLayout(null); // レイアウト無し
// JComboBox の設定
String[] ss = {"hage", "hige", "huge", "hege", "hoge"};
cb = new JComboBox(ss); c.add(cb); cb.setBounds(30, 30, 100, 20);
pack(); repaint(); setResizable(false); setVisible(true);
// ドラッグで再描画
this.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent me){
offs = null; mp = me.getPoint(); repaint();
}
});
}
350:hage
08/02/16 13:00:11
public void paint(Graphics g){
if (offs == null){
offs = createImage(getWidth(), getHeight());
Graphics g2 = offs.getGraphics();
g2.setColor(Color.BLUE);
g2.fillRect(0, 0, getWidth(), getHeight());
g2.setColor(Color.RED);
if (mp != null) g2.fillOval(mp.x - 2, mp.y - 2, 4, 4);
cb.repaint();
}
g.drawImage(offs, 0, 0, null);
}
public static void main(String[] args){ new Test(); }
}
351:デフォルトの名無しさん
08/02/16 13:01:23
>>346
Graphics2D を使う部分だけ別のクラスに分けておいて、通常のクラス名で new する代わりに
Class#forName でロードして Class#newInstance でインスタンス化すれば大丈夫かと思うが、、、
(Graphics2D を使うクラスの名前は Class#forName の引数以外には一切書かない)
そんな昔の、切り捨てたら?
352:デフォルトの名無しさん
08/02/16 13:12:32
>>349
とりあえず、JFrameに直接描くな。
JComponentを派生して自前のキャンバスクラスを作り、そのpaintComponentで描け。
353:hage
08/02/16 13:19:04
すいません。書き直しました。本来のプログラムのほうも、構成はこんな感じになっています。
(以下、連投)
import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class Test extends JFrame{
public static void main(String[] args){ new Test(); }
public Test(){ init(); }
private void init(){
MyCanvas canvas = new MyCanvas();
getContentPane().add(canvas);
pack(); repaint(); setResizable(false); setVisible(true);
}
}
354:hage
08/02/16 13:22:11
class MyCanvas extends JComponent{
private Image offs; private JComboBox cb; private Point mp;
public MyCanvas(){ init(); }
private void init(){
this.setPreferredSize(new Dimension(300, 300));
this.setLayout(null); // レイアウト無し
String[] ss = {"hage", "hige", "huge", "hege", "hoge"}; // JComboBox の設定
cb = new JComboBox(ss); this.add(cb); cb.setBounds(30, 30, 100, 20);
// ドラッグで再描画
this.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent me){
offs = null; mp = me.getPoint(); repaint();}});
}
public void paint(Graphics g){
if (offs == null){
offs = createImage(getWidth(), getHeight()); Graphics g2 = offs.getGraphics();
g2.setColor(Color.BLUE); g2.fillRect(0, 0, getWidth(), getHeight());
g2.setColor(Color.RED);
if (mp != null) g2.fillOval(mp.x - 2, mp.y - 2, 4, 4);
}
g.drawImage(offs, 0, 0, null);
cb.repaint();
}
}
と、途中で気づいたのですが、 paint を paintComponent にすると治りました・・・
paintComponent というのをはじめて知りました orz
勉強になりました。ありがとうございました
355:デフォルトの名無しさん
08/02/16 13:22:14
>>351
Java 系のグループじゃそう言われてるけどなぁ、先日ニュース系の板から秘密で誘導して
統計とって見たら一番多かった Java 6 に続いて 5.0 と MS JVM 1.1 がほぼ同じだったよ。
もっとも、入れてもない奴がダントツだったけど。
356:デフォルトの名無しさん
08/02/16 14:52:42
>>351
ありがとうございました。でもさっぱりわかりません。
>>355
ライバルが1.1サポートなんですよ(^^;
どうやらクラスローダーの挙動が違うのが原因なのかな。
357:デフォルトの名無しさん
08/02/16 15:03:36
xmlをhttpでpostするサンプルをください!
358:デフォルトの名無しさん
08/02/16 15:56:33
本みながらやってるんだけど
Iteratorとかvectorに<E>みたいなのをつけろって
eclipseでやると注意されるのですが
そこにIteretorでStringをあつかうとき<String>みたいに
やったら動きました。
本には書いてないので<>がなにかわかりません。
本だとIteratorでObjectにして好きなクラスを返すみたいになってるけど、
それはできないんですか?
359:デフォルトの名無しさん
08/02/16 16:06:35
5.0で導入されたジェネリクス。
本に従ってやるならば、Eclipseでコンパイラレベルを1.4に汁
360:デフォルトの名無しさん
08/02/16 16:37:08
正規表現で
hoge[0]=○○
という文字列を検索したいのですが
半角[]をどうやって表現すればいいのかわかりません><
361:デフォルトの名無しさん
08/02/16 16:45:53
>>355
URLリンク(www.adobe.com)
Flashのアドビの発表でjavaの普及率が84.6%ってなってるけど?
これだけあれば個人的には十分。
2ちゃんねらは過去にFlashのリンクを何度も踏まされてるから
インストール率が高いとかかも。
362:デフォルトの名無しさん
08/02/16 16:57:59
>>350
正規表現としては\でエスケープすればOK
Javaの文字列としては・・・
\\[で[にマッチするということになるな
363:デフォルトの名無しさん
08/02/16 17:33:57
>>356
ClassNotFoundが出たら1.1だと判断すれば?
で、>>351が言うように、1.1に存在しないクラスを直接参照しないようにする。
364:デフォルトの名無しさん
08/02/16 17:40:55
>>362
ありがとうございます!
てっきり\ひとつだけだと思ってました><;
365:デフォルトの名無しさん
08/02/16 17:59:34
Derbyの使い方について教えてください
366:デフォルトの名無しさん
08/02/16 18:23:57
>>365
このスレでDerbyの使い方講座を開講しろっていうのか?
Apacheのページへ行ってDerbyのドキュメントを読め。webで検索しろ。
ここで質問するならもっと質問を具体的にして絞り込め。
367:デフォルトの名無しさん
08/02/16 18:35:23
>>365
(1) derby.jarファイルにクラスパスを通す
(2) Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); を呼ぶ
(3) DriverManager.getConnection("jdbc:derby:test;create=true") で Connection を取得する
(4) 好きなSQL文を実行する
(5) Connection を閉じる
(6) DriverManager.getConnection("jdbc:derby:;shutdown=true"); を呼んでシャットダウンする
368:デフォルトの名無しさん
08/02/16 20:40:35
>>331
T な変数には、<? extends T> なものを代入できるし、
<? super T> な変数には、Tはものを代入できるので、
返値に対してコバリアント的にしたい場合は、extends にして
引数に対してコバリアント的にしたい場合は、super にする
369:デフォルトの名無しさん
08/02/16 21:27:43
制御文について質問なのですが
if(a||b||c&&d)というのはaもしくはbまたはcかつdがtrueの時if文を実行ですよね?
ではif(a||b&&c||d)というのはaもしくはbがtrueかつcまたはdがtrueの時if文を実行。
ということで良いんですか?この仮定が合ってるとすると条件式の順番にも気をつけなくてはいけませんよね?
370:デフォルトの名無しさん
08/02/16 21:28:43
>>356
ClassNotFoundException は、それを実行しようとしているかどうかに関わらず
それが分かったらいつVMが投げても構わないって仕様じゃなかったっけ。
それぞれの実装を別のクラスローダで読み込むのがいいんじゃまいか
371:デフォルトの名無しさん
08/02/16 21:35:42
>>369
日本語でおk
372:デフォルトの名無しさん
08/02/16 21:47:12
>>369
Java とは関係なさそうだけど。
* と + に優先順位があるのと同じ。
a || b || c && d => a || b || (c && d)
a || b && c || d => a || (b && c) || d
373:369
08/02/16 21:51:17
今一良く分かりませんorzここから先はGoogle先生に聞いてみます。
ありがとうございました。
374:デフォルトの名無しさん
08/02/16 22:34:42
>369
もう少し解りやすく、他人に伝わるよう書く努力が欲しい。
if(a||b||c&&d)というのは、『a』もしくは『b』または『cかつd』のいずれかがtrueの時にif文を実行ですよね?
ではif(a||b&&c||d)というのは、『aもしくはbがtrue』かつ『cまたはdがtrue』の時if文を実行。
ということで良いんですか?
質問はこういう意味? なら>>372
ググるときは、『Java』、『演算子』、『優先順位』でOK。
375:デフォルトの名無しさん
08/02/16 22:45:04
古いデータと新しいデータを比較するプログラムを作ってます
データを取得してテキスト形式で保存→新たに取得して比較→二日以上たったデータは削除
という感じなのですが、二日たったことを判断するのはどういう風にすればいいのか悩みます。。
ちなみにデータ取得時の日時は年/月/日/時/分まで保存してます
簡単に日にちで比較すると31日とか30日の判断もあるし、うるう年とかもあるので悩んでます><
いいアイディアはないでしょうか?
376:375
08/02/16 22:50:32
良い方法をひらめきました!
どうもすいませんでした><;
377:デフォルトの名無しさん
08/02/16 23:15:14
ひらめいたならいいけど、そういうのはミリ秒で保存しといた方が良いよー
378:デフォルトの名無しさん
08/02/17 00:07:31
>>361
そんないつの時期に取ったか分からん統計出されても知らんがな。 Win に MSJVM が
デフォルトインストールだった時代や JavaScript のアプレット enable フラグだけ見てたら
それくらい行くだろうね。少なくとも 30 秒以上滞在してアプレットが起動しない環境は
倍以上居る。
379:デフォルトの名無しさん
08/02/17 00:35:10
HashMapのKeyと値にそれぞれ変数から代入したんですが保存されないみたいなんです
上記の方法で次々に値を代入していくにはどうすればいいですか?