★★Java質問・相談スレッド138★★

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

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

前スレッド
★★Java質問・相談スレッド137★★
http://pc12.2ch.net/test/read.cgi/tech/1268702584/

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

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

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part20
http://pc12.2ch.net/test/read.cgi/tech/1253532993/
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 9
ttp://pc12.2ch.net/test/read.cgi/tech/1249357352/
■ Androidアプリの作成は --
GoogleAndroidアプリ作成part3
http://pc12.2ch.net/test/read.cgi/tech/1268692293/

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

■ NetBeansに関する雑談は --
NetBeans Part5【Java/C++/Ruby/Python/PHP】
http://pc12.2ch.net/test/read.cgi/tech/1247926906/
■ Eclipseに関する雑談は --
Eclipse統合M29【Java/C++/Ruby/Python/Perl】
http://pc12.2ch.net/test/read.cgi/tech/1265820185/
3デフォルトの名無しさん:2010/05/01(土) 12:48:21
**** 開発環境が必要の場合は ****
■ 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
4デフォルトの名無しさん:2010/05/01(土) 12:49:47
ありゃ、1行余分にコピーしてるな、まあいいか
乙>俺w
5デフォルトの名無しさん:2010/05/01(土) 13:44:13
1>>乙
6デフォルトの名無しさん:2010/05/01(土) 14:27:15
otu
7デフォルトの名無しさん:2010/05/01(土) 14:39:12
何故、左シフトには論理左シフトと算術左シフトの2種類無いの?右シフトには論理右シフトと算術右シフトの両方あるのに
8デフォルトの名無しさん:2010/05/01(土) 14:41:55
中央シフトが無いのは差別ニダ!
9デフォルトの名無しさん:2010/05/01(土) 15:07:46
>>7
それはね、論理左シフトと算術左シフトは結果が同じだからですよ。
10デフォルトの名無しさん:2010/05/01(土) 15:09:39
符号には影響されないってことか
11デフォルトの名無しさん:2010/05/01(土) 15:18:42
つまり算術左シフトは符号無視して論理左シフトと同じように
 10000010 (-126)  →  00000100 (4)
になるってこと? 1000100(-60) にはならないってこと?
12デフォルトの名無しさん:2010/05/01(土) 15:20:59
>>11
アホ
13デフォルトの名無しさん:2010/05/01(土) 15:22:43
>>11
勉強しなおせ
14デフォルトの名無しさん:2010/05/01(土) 15:23:26
>>11
低脳のクズが市ね
15デフォルトの名無しさん:2010/05/01(土) 15:33:34
清清しいまでの自演
16デフォルトの名無しさん:2010/05/01(土) 16:01:46
自演乙
17デフォルトの名無しさん:2010/05/01(土) 16:15:59
(´・ω・`)
18デフォルトの名無しさん:2010/05/01(土) 16:17:16
>>11
算術シフトは符号ビットを入れるルール
× 1000100
○ 1000101
19デフォルトの名無しさん:2010/05/01(土) 16:23:59
あれ俺まで混乱してきた
1001 1000 (-104)を算術左シフトすると
1011 0000 (-80)になっちまう
20デフォルトの名無しさん:2010/05/01(土) 16:25:35
算術左シフトの定義からして符号ビットは無視します^^;;
21デフォルトの名無しさん:2010/05/01(土) 16:32:34
元 1 000 1000 (符号付8ビット整数)

算術
左シフト 0 001 0000
右シフト 1 100 0100

論理
左シフト 0 001 0000
右シフト 0 100 0100
22デフォルトの名無しさん:2010/05/01(土) 16:38:39
>>8
上シフトや下シフトが無いのも差別ニダ!
23デフォルトの名無しさん:2010/05/01(土) 16:42:27
どうやら俺の理解が足りていないようだ

>>21
論理シフトは符号付に向いてないからいいとして
算術左シフトで、結果的に元の数が負だったのが
00010000という負でない数になってるのは正しいのですか?
24デフォルトの名無しさん:2010/05/01(土) 16:46:25
ビット演算 - Wikipedia
ttp://ja.wikipedia.org/wiki/%E3%83%93%E3%83%83%E3%83%88%E6%BC%94%E7%AE%97
Wikipediaだと算術左シフトは符号ビット無視してる

シフト演算 - Security Akademeia
ttp://akademeia.info/index.php?%A5%B7%A5%D5%A5%C8%B1%E9%BB%BB
このサイトだと算術左シフトは符号ビット残してる

どっちが正しいのか

25デフォルトの名無しさん:2010/05/01(土) 16:50:57
CASL II だと算術左シフトは符号ビット残す。

CやJavaだと算術左シフト=論理左シフトになる。
26デフォルトの名無しさん:2010/05/01(土) 16:55:37
>>19
符号ビット残すと数値がおかしくなるので
算術左シフト自体に利用価値が無い。使うような用途が無い。
だから存在しない
27デフォルトの名無しさん:2010/05/01(土) 17:24:56
つまり
10011000 (-104)を-208にするためにはどうすればいいってばよ?
28デフォルトの名無しさん:2010/05/01(土) 17:48:54
>>21
8bitしかかいてないのでbyteデータだとすると
論理
×右シフト 0 100 0100
○右シフト 1 100 0100
なぜなら、論理シフトであろうと、シフトする前に32bitに符号拡張される謎仕様だから
29デフォルトの名無しさん:2010/05/01(土) 18:00:49
理論上じゃなくてまずJava仕様だったなwスレ的にw
30デフォルトの名無しさん:2010/05/01(土) 18:05:15
>>27
int a=-104;
System.out.println("a="+a);
a*=2;
System.out.println("a="+a);

//Output
// a=-104
// a=-208
31デフォルトの名無しさん:2010/05/01(土) 18:20:16
>>27
8bitでは-208は表せませんが
32デフォルトの名無しさん:2010/05/01(土) 20:58:15
自分をシフトしたいわ
33デフォルトの名無しさん:2010/05/01(土) 21:04:17
>>31
8bit整数を負符号オンリーで現せば ほら 0〜-255 この通り1
34デフォルトの名無しさん:2010/05/01(土) 21:30:38
そんな一般的でない符号化が許されるなら、1ビットで-208表したっていいだろ。0ビットでもいいかもな。
35デフォルトの名無しさん:2010/05/01(土) 22:08:47
0bitは無理だろ
36デフォルトの名無しさん:2010/05/01(土) 22:19:55
Javaに限らず
算術左シフトなんて需要ないだろ・・・
37デフォルトの名無しさん:2010/05/01(土) 22:30:05
>>34

int hugo(byte n) {
return -127+(int)n;
}
38デフォルトの名無しさん:2010/05/01(土) 23:39:30
>>36
Javaに限らなければ需要はあるぞ
オーバーフローフラグを持つCPUなら算術シフトと論理シフトでフラグの変化が違う
39デフォルトの名無しさん:2010/05/02(日) 00:06:29
それでも負数に使うことは無いだろう
40デフォルトの名無しさん:2010/05/02(日) 01:46:57
内部クラスでthisって使ったらthisは何を参照してることになるの?
41デフォルトの名無しさん:2010/05/02(日) 03:38:40
>>40
内部クラス
42デフォルトの名無しさん:2010/05/02(日) 04:33:26
>>41
なるほど。以外に不便そうだな内部クラスってのは
43デフォルトの名無しさん:2010/05/02(日) 04:38:57
class ClassA {
private static ClassA classA;
ClassA() {
classA=this;
ClassB classB=new ClassB();
}
void hoge() {
System.out.println("hoge!");
}
class ClassB {
ClassB() {
this.hoge();
ClassA.classA.hoge();
}
void hoge() {
System.out.println("hoge?");
}
}
}
44デフォルトの名無しさん:2010/05/02(日) 10:52:12
全ての植物は植物クラスを継承する
全ての食物は食物クラスを継承する

このような考えを元に継承を考えたとき、多重継承が無いJavaでは
どちらにも該当するりんごクラスなどをどのように実装すればいいんでしょうか?
45デフォルトの名無しさん:2010/05/02(日) 11:36:03
class Plant{
}

interface Eatable(
}

class Apple extends Plant implemnts Eatable{
}

こんなんでどうでしょ?
食べられるものにはEatableを実装と言うことで。
46デフォルトの名無しさん:2010/05/02(日) 12:55:39
正直継承よりはインタフェースにこだわった方がいいよ。
あと別にクラスで無理やり自然界を記述しなくてもいいから。
47デフォルトの名無しさん:2010/05/02(日) 13:00:46
で、Java 7 は何時出るんだよ?
48デフォルトの名無しさん:2010/05/02(日) 13:16:38
>>43
そんな危ないことしなくても、外側のメンバを直接呼び出すか、
名前がかぶっているなら ClassA.this.hoge(); でいい
49デフォルトの名無しさん:2010/05/02(日) 15:12:41
>>48
クラス名.thisの参照方法を知らないんだろ。
50デフォルトの名無しさん:2010/05/02(日) 15:38:55
public ClassA {
private static ClassA classa = new ClassA();

private ClassA() { new ClassB(); }
public ClassA getInstance() { return classa; }
public void hoge() { System.out.println("hoge!"); }

private class ClassB {
public ClassB() { hoge(); ClassA.hoge(); }
public void hoge() { System.out.println("hoge?"); }
}
}

何となく、>>43のを書き直してみた
専ブラで書いたから、スペルとか間違えてるかも
51デフォルトの名無しさん:2010/05/02(日) 23:25:06
>>48-49
>クラス名.this
kwsk
52デフォルトの名無しさん:2010/05/02(日) 23:27:13
>>50
本来の形から>>40の意図に合わせて単純化されたクラスをそのように直してしまってもいいのでしょうか?
53デフォルトの名無しさん:2010/05/02(日) 23:32:55
結論: 設計を見直せ
54デフォルトの名無しさん:2010/05/02(日) 23:34:11
>>51
Java で内部クラスから外部クラスの関数を明示的に呼ぶときはどう書くのか教えてください。 - 人力検索はてな
http://q.hatena.ne.jp/1122203296
55デフォルトの名無しさん:2010/05/02(日) 23:37:53
class ClassA
{
 ClassA()
 {
  new ClassB();
 }
 class ClassB
 {
  ClassB()
  {
   new ClassA();
  }
 }
}
56デフォルトの名無しさん:2010/05/03(月) 00:15:31
別にコンストラクタで無限ループさせるなら内部クラス経なくてもよろしくてよ
57デフォルトの名無しさん:2010/05/03(月) 01:05:35
出来る出来ないという仕様的な話はありかと思うけど、
実際にこんなコード渡されたらぶちぎれるw
58デフォルトの名無しさん:2010/05/03(月) 04:28:51
switchのジャンプで一番最後のところでもbreak;って入れたほうがいいの?
例えば
switch (n) {
case 1:
 hoge();
 break;
case 2:
 hoge2();
 break; //←これとか
}

switch (p) {
case 1:
 hogehoge();
 break;
case 2:
 hogehoge2();
 break;
default:
 hogehoge3();
 break; //←これとか
}

59デフォルトの名無しさん:2010/05/03(月) 04:35:52
一々選択的に書いたり書かなかったりしていると何時かうっかりミスが出るから
書く癖を付けとけ。
60デフォルトの名無しさん:2010/05/03(月) 05:05:18
switch多重ネストでソースがごちゃごちゃしてわけわかんなくなった
61デフォルトの名無しさん:2010/05/03(月) 05:14:01
switchのcaseをインデントする癖がついてるんだけど、やめたほうがいいのかな
62デフォルトの名無しさん:2010/05/03(月) 05:21:31
今時は IDE も色分けするしフォーマッターも付いてるから
仕事でコーディング規約とかなければその程度は良いんじゃねぇか。
63デフォルトの名無しさん:2010/05/03(月) 08:54:01
ある程度まではオートフォーマッタとCheckstyleやら
Findbugsに全てを委ねてる
64デフォルトの名無しさん:2010/05/03(月) 13:20:00
defaultで処理をするのは意味的にどうかと思う。
っていう宗教戦争を投げかけてみる。
65デフォルトの名無しさん:2010/05/03(月) 13:29:22
まあ列挙に対する全てのパターンを記述する場合とか、
defaultにAssertionErrorをスローするコードとか書くんじゃね?
66デフォルトの名無しさん:2010/05/03(月) 16:06:41
LinkedHashSetにはなぜlistIterator()メソッドがないのだろう。

ListIterator#previous()で反復子を前に移動したかったのに。
next()しかできないよ。

しぶしぶLinkedHashSet使うの辞めてLinkedListにしたけど。
Setは重複を許さないから使い勝手がいいと思ったんだけどな。
LinkedListにしたので挿入時に重複チェックしなきゃならない。

もっといいCollection型はないかな?
67デフォルトの名無しさん:2010/05/03(月) 16:12:17
あと、ListIterator#next()とprevious()の仕様、反復子の隣の要素取ってから反復子を隣に移動させているが
これを、反復子を移動させてから隣の要素とるように指定できないだろうか。
6867:2010/05/03(月) 16:29:46
一応、自己解決したかも知れない。
List<String> ll = new LinkedList<String>();
ll.add("A");
ll.add("B");
ll.add("C");

ListIterator<String> it = new ListIterator<String>();

String result;

it.next();
result = it.next();
it.previous();

return result; .//これでカーソルをAとBの間に移動しつつBを取得できる。

next()二回実行してprevious()を実行するというやり方。
逆方向の場合はprevious()を二回実行してからnext()を実行。
問題はListの末端に来たときの処理も作っておかないといけないのが難点。
if(lt.hasNext())とかif(it.hasPrevious())とかでまいどまいどチェックしないといけない。

本当は、末端に来てnext()したら先頭に戻る永久ループ型のIteratorが欲しいのだが…。
時計の針のように12時になったら0時からスタートする、というIterator。

Apache Common Collectionsあたりでも探すしかないだろうか…。しかしあのCollection Frameworkはまだ
Genericsに完全対応していないし…。
6967:2010/05/03(月) 16:48:13
見つけた。末端でnext()すると先頭に戻るLoopingListIteratorを発見。

案の定、Genericsに対応していない残念なコレクションフレームワークだった。
http://commons.apache.org/collections/api-release/org/apache/commons/collections/iterators/LoopingListIterator.html

しかしLinkedListにはこのIteratorに変換するメソッドがない。
ということはどこかのクラスのstaticメソッドを使うのだろうか、それともこのLoopingに対応したListIteratorと
別途用意しなければないのだろうか…。
70デフォルトの名無しさん:2010/05/03(月) 16:50:00
http://commons.apache.org/collections/api-release/org/apache/commons/collections/IteratorUtils.html#loopingListIterator(java.util.List)
やはり専用のメソッドが用意されていた。

IteratorUtils.loopingListIterator(java.util.List)
71デフォルトの名無しさん:2010/05/03(月) 17:02:54
Set は List のように順序性を維持するものではない。
72デフォルトの名無しさん:2010/05/03(月) 17:19:33
>>68
>本当は、末端に来てnext()したら先頭に戻る永久ループ型のIteratorが欲しいのだが…。

これでいけない?
http://www.javaworld.com/jw-07-1997/jw-07-enumerated.html?page=6
73デフォルトの名無しさん:2010/05/03(月) 17:20:27
それくらいテメェで作れよと。
74デフォルトの名無しさん:2010/05/03(月) 17:25:41
>>69
> しかしLinkedListにはこのIteratorに変換するメソッドがない。

コンストラクタに放り込むだけじゃない?
75デフォルトの名無しさん:2010/05/03(月) 19:05:07
#include standard io.h
7667:2010/05/03(月) 21:59:19
>>71
しかし、LinkedHashSetは順序性を維持するものになっている。
LinkedHashMapも同様。LinkedとついたSetとMapはadd()した順番にオブジェクトが並び順序性が保証されている。
順序性が保証されないのはHashSetとHashMap。

>>72
おお自作物。アルゴリズムとデータ構造の本に載ってそうなコードだ。
すでにCommons CollectionsにLoopingListIterator
という便利なクラスを見つけたので一応は解決したと思う。

>>74
それも一応、>>70のユーティリティクラスを使うという解決策を見つけた。


今探しているのは反復子を移動してからデータを取り出す方法。
現状のnext()はデータを取り出してから反復子を移動している。

何をやりたいかというと、時計の針のようなものを再現したいだけ。

Iteratorを継承した新しいIteratorクラスを作ってそこに独自のnext()メソッドを実装する
しかないだろうか。

俺はIteratorの間違った使い方を試そうとしているのかもしれない。
77デフォルトの名無しさん:2010/05/03(月) 22:05:33
>>74
IteratorUtilsが必要と思ったら
コンストラクタもあった。
LoopingListIterator(java.util.List list)
78デフォルトの名無しさん:2010/05/04(火) 00:13:31
int h=100,i=100,j=100;
h += ++h;
i += i++;
j += (j+=1) + (j+=10);
System.out.println("h="+h);
System.out.println("i="+i);
System.out.println("j="+j);

無精できねえ・・・なんてこったい
79デフォルトの名無しさん:2010/05/04(火) 00:49:55
>>78
結果が分からないCよりはマシだろ
80デフォルトの名無しさん:2010/05/04(火) 02:20:03
>>35
1ビットあれば、二つの数(例えば0と-208)を符号化できる。
0ビットあれば、一つの数(例えば-208)を符号化できる。

一般にnビットあれば、2のn乗個の数を符号化できる。
81デフォルトの名無しさん:2010/05/04(火) 02:56:50
その0biって奴tはハードウェア的にもソフトウェア的にも実現不可能だな
概念的には存在しうるみたいだけど
イデアみたいなもんか?
82デフォルトの名無しさん:2010/05/04(火) 12:51:36
セットにイテレータなんてないだろ。
自作すりゃいいもんをだらだら張り付けるな。
ブログでやれ。
83デフォルトの名無しさん:2010/05/04(火) 13:24:46
え?SetはCollectionだからIterableだろ?
84デフォルトの名無しさん:2010/05/04(火) 16:07:44
>>83
それはJava Collection Frameworkの実装の都合だろ。
setてのはふつう順不同というか要素の前後関係は知らないもんだろ。
そういう用途はlinkedlistだ。

たとえIteratorを持ってたとしてもputやsetした順に
取得できる保証もないし前後関係を知らないんだからprevで要素が取れるわけもない。

LinkedHashSetがあがってるがこれは実装由来のコレクション。特殊な要件で使うもんだ。
85デフォルトの名無しさん:2010/05/04(火) 16:30:57
>>84
SetがIterableであることが、実装上の都合だという
ソースはどこにあります?
86デフォルトの名無しさん:2010/05/04(火) 16:53:06
実装されているが、仕様に規定がないなら、それは実装上の都合ということ。
ないことは示せない。あえて示すならこの世の仕様をすべて見ろと言うしか無い。
87デフォルトの名無しさん:2010/05/04(火) 17:07:26
いや、意味が分からないんだが。IterableはCollectionの契約だろ?
まあ気にくわないならUnsupportedOperationExceptionでも投げればいいけど。

正直何をいいたいのかさっぱり。
88デフォルトの名無しさん:2010/05/04(火) 17:46:07
お前がコレクションやらコンテナと呼ばれるものの使い方を理解してないだけだろ。
だいたいLinkedHashSetは既存のsetを守りつつ順序を保ちたいときに使うラッパーだ。
IterableなのはCollectionインターフェイスで強制されてるからだ。
89デフォルトの名無しさん:2010/05/04(火) 17:49:27
>>87
たぶん
「Setってーのは重複要素がないコレクションなんだぜ。」
「Setの実装クラスが何を持とうとそれは実装都合なんだぜ。」
「CollectionってーのはIterableだが、順序付けされているかそうでないかは実装クラス次第なんだぜ。」
ってことをいいたいんじゃないのかな。
90デフォルトの名無しさん:2010/05/04(火) 17:55:52
>>89
いや、>>82でSetにイテレータ無いって言ってるから
どういう意味かと思って。
9189:2010/05/04(火) 18:17:25
>>90
それは、ミスったんじゃないかな。>>84で、
「Iteratorがあっても(入れた時の)順序を保障するものではない。」※括弧内はおれ補完
と記載されているし。

ところで、なんだかIteratorとIterableをゴチャゴチャに書かれている書き込みが多い気がする。
92デフォルトの名無しさん:2010/05/04(火) 18:29:49
Collectionの話してるんだ。混ぜて構わんだろ。
93デフォルトの名無しさん:2010/05/04(火) 18:44:50
列挙性とその順序性は全く別の話。
分かっていないバカが一匹混ぜ繰り返している。
94デフォルトの名無しさん:2010/05/04(火) 22:36:28
あるメソッドの中だけ別のpackageを参照するように出来ますか?

クラスのあたまで
import org.easymock.EasyMock;
とやると
そのクラスのメソッド内で
EasyMock.
と呼び出すと上のパッケージのクラスを参照するじゃないですか?
で、あるメソッドだけ
org.easymock.classextension.EasyMock
のクラスを参照したいのですが、上記のようにフル修飾名をいちいち入れるとソースが見づらくなるので、あたまでなんか宣言して、そのメソッドだけ別のパッケージを参照するように出来ませんでしたっけ?

方法ありましたらお願いします
95デフォルトの名無しさん:2010/05/04(火) 23:05:43
JavaScript なら出来るが。
96デフォルトの名無しさん:2010/05/04(火) 23:31:04
Effective Java 2版 140p に通常のキャストと Class.cast の説明があったのですが、意味がよく分かりませんでした。

class Favorites {
    private Map<Class<?>, Object> favorites = new HashMap<Class<?>, Object>();

     // Class.cast
    public <T> T getFavorite(Class<T> type) {
        return type.cast(favorites.get(type));
    }

     // キャスト演算子
    public <T> T getFavorite(Class<T> type) {
        return (T)favorites.get(type);
    }
}

上記の Class.cast を使う場合ととキャスト演算子を使う場合ではどのような差があるのでしょうか?
この二つに差があるのだとしたら、どのようなときにどう使い分けるのでしょうか?
どうかお願いします。
97デフォルトの名無しさん:2010/05/05(水) 01:04:29
>>96
public Favorites() {
favorites.put(Integer.class, "string");
}
と変なもの入れて
Favorites f = new Favorites();
try {
System.out.println(f.getFavoriteCast(Integer.class));
} catch (Exception e) {
e.printStackTrace();
}
try {
System.out.println(f.getFavorite(Integer.class));
} catch (Exception e) {
e.printStackTrace();
}
と使ってみるといい。f.getFavoriteCastはClass.cast版ね。
98デフォルトの名無しさん:2010/05/05(水) 02:09:36
質問です。
getClass()メソッドのテストをしようと思い、次のようなソースを実行しました。
配列int[]とStringクラスでgetClass()を行い、結果をprintln()で出力するものです。

出力結果の" class [I "というのはどういう意味なんでしょうか?
(てっきり"class java.lang.reflect.Array"あたりが出力されると思ったのですが…)
そもそも配列にgetClass()を行うのは好ましくないのでしょうか?

【ソース】
public class Test1 {
public static void main(String[] args){
int[] a = {1,2,3};
System.out.println(a.getClass());
System.out.println((new String("abc")).getClass());
}
}

【出力結果】
class [I
class java.lang.String

以上です。
どうぞよろしくお願いします。
99デフォルトの名無しさん:2010/05/05(水) 02:22:42
100デフォルトの名無しさん:2010/05/05(水) 02:37:47
>>99
こんな仕様があったとは知りませんでした。勉強になります。
夜遅くにご回答いただき、どうもありがとうございました。
101デフォルトの名無しさん:2010/05/05(水) 04:33:17
>>97
キャスト演算子は型が一致しなくても放置で
Class.cast は型が一致しなければ ClassCastException を投げる
の違いということですか?
102デフォルトの名無しさん:2010/05/05(水) 06:34:21
Class#castだと
Integer.class.cast("") とかコンパイル通っちゃう。
103デフォルトの名無しさん:2010/05/05(水) 09:55:29
そんな珍しいコードよう書かんわw
ちなみに、ジェネリックスとの組み合わせは分かりにくくなる罠。
現状のジェネリックスはある種のトリックだから。
http://www.ibm.com/developerworks/jp/java/library/j-jtp01255/
104デフォルトの名無しさん:2010/05/05(水) 15:37:01
class ClassA {
 private String name=null;
 ClassA(String name) { this.name=name; }
 String getName() { return name; }
 void setName(String name) { this.name=name; }
}
class ClassB {
 static void method1(ClassA c) {
  c.setName("Method 1");
 }
 static void method2(ClassA c) {
  c=new ClassA("Method 2");
 }
}
とあったとき

ClassA a=new ClassA("Class A");
System.out.println(a.getName());
ClassB.method1(a);
System.out.println(a.getName());
ClassB.method2(a);
System.out.println(a.getName());
としたら
Output:
Class A
Method 1
Method 2
ってなるよね?
105デフォルトの名無しさん:2010/05/05(水) 16:00:45
>>104
最後のMethod 2はMethod 1のままだろ。
Javaでは参照渡しはできない。参照の値渡しなら出来る。
106デフォルトの名無しさん:2010/05/05(水) 16:39:21
なるほど・・・残念
107デフォルトの名無しさん:2010/05/05(水) 19:08:05
Class.cast なんて初めて知った
どっちも実行時に型チェックして例外投げると思うんだが何が違うの?
108デフォルトの名無しさん:2010/05/05(水) 19:25:43
>>97 で相違動作のサンプルまで書いてあるじゃねーか。
109デフォルトの名無しさん:2010/05/05(水) 19:28:47
未チェック警告抑止しなきゃならない時に手元に Class オブジェクトがあれば Class#cast() でやってる。

private final Map<String,Object> values = new HashMap<String,Object>();
public <T> T getValue(String key, Class<T> type){
   Object value = values.get(key);
   if(value == null)   return value;
   assert(type.isAssignableFrom(value.getClass()): value.getClass().getSimpleType();
   return type.cast(value);
}
110デフォルトの名無しさん:2010/05/05(水) 19:48:08
>>97やってみたけどf.getFavoriteが例外投げないのは何故?
通常のキャストも実行時の型チェックやってるよね?
111デフォルトの名無しさん:2010/05/05(水) 20:01:52
>>110
ジェネリクスのイレイジャ機構により、
おそらくキャストしてる方は実行時Integer型ではなく
Object型そのまんまで扱ってる。(実行時に型情報は消えるから)

ただ、もちろん
Integer i = f.getFavoriteCast(〜〜);
とすればClassCastExceptionが発生する。
112デフォルトの名無しさん:2010/05/05(水) 20:02:21
>>109Classオブジェクトが無いときはどうするの?
113デフォルトの名無しさん:2010/05/05(水) 20:11:57
>>112
Classを用意できない場合ってあるかい?
114デフォルトの名無しさん:2010/05/05(水) 20:14:46
curses的なことができる何かってないですか?
jcursesというのとlibjcsiというのを使ってみたけど、
マルチバイト文字に対応してない?っぽいので、
いいの知ってる方教えてください。
115デフォルトの名無しさん:2010/05/05(水) 21:13:38
>>113 1.5以前とか総称型を想定してないのとか
116デフォルトの名無しさん:2010/05/05(水) 22:14:47
普通のプログラミングとネットワークプログラミングは別なんでしょうか?
ネットワークプログラミングを習得しないといけないことになったんですが
即ネットワークプログラミング? 普通のプログラミング習得⇒ネットワーク?
プログラムに関してはC言語をファイルの入出力なんかあたりまでやった程度です。
117デフォルトの名無しさん:2010/05/05(水) 22:15:18
jcursesもlibjcsiなんかして日本語通ったはずだが忘れた。
CHARVAは無理だった。
118デフォルトの名無しさん:2010/05/05(水) 22:16:51
1.5以前というか総称型以前はそもそも未チェック警告が無いからキャストで
問題なかったはず。
119デフォルトの名無しさん:2010/05/05(水) 22:29:24
>>116
普通の業務アプリではネットワークプログラミングはしません。
そういう意味では別です。それ以外を除けば別じゃありません。

ネットワークプログラミングというのは、
簡単に言えば、ちょっと面倒くさいファイル入出力です。
120デフォルトの名無しさん:2010/05/05(水) 22:38:55
プロトコル考えなきゃ行けないからちょっとでは済まんだろw
121デフォルトの名無しさん:2010/05/05(水) 22:40:20
じゃあ面倒くさいファイル入出力でいいよ。
122デフォルトの名無しさん:2010/05/05(水) 23:02:44
ファイル入出力もネットワーク入出力も同じようなもの。には同意。

「普通」って発言にはちょっと引っかかるな。
自分トコだとJavaサーバと.Netリッチクライアントが「普通」なんだが。
また別のトコだとWEBアプリが「普通」だったり、Excel+ODBCが「普通」だったり。
RubyサーバにJavaリッチクライアントが「普通」なんてトコもある。
皆それぞれに「普通」。
123デフォルトの名無しさん:2010/05/05(水) 23:04:34
>>118
そういう意味じゃなくて、総称型を想定しないで作ったクラスだとメソッドの追加が必要になるけど言語仕様ごとにクラスの修正やメソッドの追加は出来ないってこと。
ほとんどのクラスはもともと総称型を意識しないような設計だからClassをいちいち用意できない。
124デフォルトの名無しさん:2010/05/05(水) 23:07:58
同じ様なものって、ストリーム型入出力の基礎の基礎のところだけじゃねえか。
まともに使おうと思ったら相手方のアプリの知識も非同期処理の知識も、
もちろんバークレイソケットの知識も必要になる。プロトコルによっては
状態管理もパケ落ち対応も必要。
125116:2010/05/05(水) 23:10:12
文字見ただけで難しそうですね・・・
P2PにおけるDHT関連をやるんですが。
126デフォルトの名無しさん:2010/05/05(水) 23:43:01
>>124
詳細言い出したらキリないだろうが。
ファイル入出力だってファイルシステム言い出したらキリないし、
そもそもフォーマットはどうだの、即時追記に対応するだの、
クラッシュ時安全にするだの、あるよ。
お前はいちいち全部言わないと気が済まないのか
127デフォルトの名無しさん:2010/05/05(水) 23:59:38
>>125
P2PでDHTとかってのは業務的なことでネットワークプログラミング
の範疇に入れるべきなのだろうか?
スレッド間でロジックをシミュレートすることだって出来る部分だし。
確かどっかでアプレット見た気がする。ノード毎に伝搬していく様子の。
128デフォルトの名無しさん:2010/05/06(木) 00:09:16
あ、スマン。それ言い始めたらアプリケーション層のアプリって軒並み
ネットワークじゃねぇってことになる。
129デフォルトの名無しさん:2010/05/06(木) 00:13:04
>>126
それらを同じ様なものと言いのける低脳。
130デフォルトの名無しさん:2010/05/06(木) 00:26:18
スーパークラスのメソッド呼ぶときって必ずsuper.method();ってしたほうがいいの?

つまり

class ClassA {
 void hoge() {
  System.out.println("Hoge!");
 }
}

class ClassB extends ClassA {
 
 void hogehoge() {

 super.hoge(); //← super. つけたほうがいいの?

 hoge(); //← super. つけないほうがいいの?

 }
}
classBでhoge()をオーバーライドしてないとして
131デフォルトの名無しさん:2010/05/06(木) 00:36:37
>>130
どっちでもいい。
むしろhoge()のほうをthis.hoge()にしてほしいわ。
132デフォルトの名無しさん:2010/05/06(木) 00:49:24
>>131
スーパークラスのメソッドってthis.で呼び出せるって知りませんでした。勉強になりました。
ありがとうございます
133デフォルトの名無しさん:2010/05/06(木) 00:51:05
>>131
ちなみにsuper使う場合もthisってつけたほうがいいんですか?
this.super.hoge(); ? super.this.hoge(); ? なんか細かいことばっか訊いてすみません
134デフォルトの名無しさん:2010/05/06(木) 03:12:26
>>94
static import?

リフレクション?
135デフォルトの名無しさん:2010/05/06(木) 03:26:56
>>84
> >>83
> それはJava Collection Frameworkの実装の都合だろ。
> setてのはふつう順不同というか要素の前後関係は知らないもんだろ。
> そういう用途はlinkedlistだ。
>
> たとえIteratorを持ってたとしてもputやsetした順に
> 取得できる保証もないし前後関係を知らないんだからprevで要素が取れるわけもない。

そもそもあるコレクションにlistIterator()メソッドがないとprevious()が使えない。
コレクションによってはiterator()メソッドしか実装されてないのがある。


> LinkedHashSetがあがってるがこれは実装由来のコレクション。特殊な要件で使うもんだ。

SortedSet、TreeSetもComparableが実装されたオブジェクトをadd()できるから
(挿入ソートで挿入したときにComparable#compareTo()が働いて自動的に順番が並ぶ)
順序関係は保証される。これも特殊だと?
LinkedHashSetとArrayListとの違いはオブジェクトが重複を許すか許さないかの違いでしか無いと思うが。
使えるメソッドも若干違うが。
136デフォルトの名無しさん:2010/05/06(木) 03:36:15
抽象化と実装仕様の区別も付いていない人が何で Java なんかやってんの?
137デフォルトの名無しさん:2010/05/06(木) 03:44:21
>>132 >>133
なぜthisやsuperをつけるのかわかってないような気がする。
途中からClassBにhoge()という名前のメソッドを
新たに作ることになったとき(hogeをオーバーライド)は、thisをつけると
新たに作ったメソッドのほうが呼ばれるのだが。
後でhoge()メソッドをオーバーライドするときに備えてsuperというキーワードが用意されている。
いかなる状況でもClassAのhoge()メソッドを呼び出したいのに、あとからClassBのhoge()メソッドを実装すると
なぜかClassBのhoge()メソッドを呼び出してしまう。そういう問題を防ぐために、superというキーワードがある。

だから将来のオーバーライドや、同じ名前のメソッド名衝突に備えてsuperクラスのメソッドを呼びたいときはsuperをつけるべき。
(ちなみにスーパークラスに同じ名前のメソッドがあることに気付かずメソッド名衝突する問題はJava5から登場した@Overrideアノテーションで回避できる)

自分のクラスのメソッドを呼びたいときはできるかぎりthisをつけるべき。インスタンスメソッドはできるかぎりthis.メソッド名()
staticなメソッドはthisつけないでクラス名.メソッド名()とするのが望ましい。Checkstyleとか使ってコーディング規約を守るなら。
そもそもthis.superとかsuper.thisなんて記述ではコンパイル通らない。
138デフォルトの名無しさん:2010/05/06(木) 03:58:36
詳しい説明ありがとうございます
139デフォルトの名無しさん:2010/05/06(木) 04:03:05
となると、変数や定数のフィールドもsuperやthisをつけて使ったほうがよさそうですね・・・
今後気をつけます
140デフォルトの名無しさん:2010/05/06(木) 04:14:16
仮に>>130の例で
141デフォルトの名無しさん:2010/05/06(木) 04:17:57
仮に>>130の例で
ClassBでhoge()をオーバーライドしたとき
他のクラスからClassBのインスタンスからスーパークラスであるClassAのhoge()を呼び出すってことできます?

例えば
class ClassB extends ClassA {
 void hoge() { System.out.println("Hoge Override"); }
}
class ClassC {
 void nanika() {
  ClassB b=new ClassB();
  b.hoge(); //←ここでClassBのhoge()じゃなくてスーパークラスのほうのhoge()を呼び出すことって出来ますか?
 }
}
142デフォルトの名無しさん:2010/05/06(木) 04:23:30
できないしできたらおかしい
143デフォルトの名無しさん:2010/05/06(木) 04:25:43
class ClassC {
 void nanika() {
  ClassB b=new ClassB();
  ClassA a=(ClassA)b;
  a.hoge(); //←もしかして、こうしたらスーパークラスのほうのhoge()になりますか?
  b.super.hoge();とかありそうな気もします
 }
}
144デフォルトの名無しさん:2010/05/06(木) 11:42:54
>>94

Javaでは無理ですね。1ファイル中に登場するクラスの単純名が重複している場合は
そのうち1つだけしか単純名で扱えず、それ以外はFQNで書く必要があります。

Groovy(Scalaも?)は別名をつけられるので、上記のようなJavaの煩わしさは
軽減できるようですが。
145デフォルトの名無しさん:2010/05/06(木) 13:29:43
>>141
できない。

>>143
できない。ためしにコンパイルしようとすればわかる。
どうしてもそんなことしたかったら

ClassA a = new ClassA();
a.hoge();
こうする。

bを(ClassA)にキャストしても中身はこれと同じだからオーバーライドしたメソッドしか呼び出されない。
ClassA a = new ClassB();

というかいい加減に自分でコンパイルして自分の目で確かめろと。
146デフォルトの名無しさん:2010/05/06(木) 14:04:49
>>142,145
回答ありがとうございます。
出来ないのですか・・・となるとどちらも使いたい場合は
何とかメソッド名を変えるなり対応するしかなさそうですね・・・
わかりました
147デフォルトの名無しさん:2010/05/06(木) 14:59:25
>>146
マジレスすると設計がおかしい
148デフォルトの名無しさん:2010/05/06(木) 18:42:54
>>146
デザインパターンの勉強をすべき
149114:2010/05/06(木) 19:48:50
>>117
機種依存部分に対してなんかするんだったか、
jar内のjava部分に対してなんかするんだったか、
自分が書いたコードに対してなんかするんだったかだけでも思い出せませんか?
いすれにしても素敵なヒントありがとうございました。
150デフォルトの名無しさん:2010/05/06(木) 19:51:29
>>149
罫線がSJISとかだと半角カタカナの領域できめうちだったりしたような。
151デフォルトの名無しさん:2010/05/06(木) 21:37:13
Java6からQueueが追加されたっていうんで調べてみたら
LinkedListがQueueを実装してpop()が使えるようになってた。
早速使ってみたが

private List<String> list = new LinkedList<String>()

this.list.add("test");
this.list.add("abc");
this.list.add("def");

String result = list.pop();

という使い方はさすがにできなかった。
pop()はQueueで定義されListで定義されてないため。
private Queue<String> list = new LinkedList<String>()
とやりたかったがLinkedList#listIterator()を使いたかったために
仕方なく
private LinkedList<String> list = new LinkedList<String>()
ってやった。

なんだかな。
152デフォルトの名無しさん:2010/05/06(木) 21:39:35
おまえはコンクリートクラスをベタ書きで使ってるのがお似合い。
153デフォルトの名無しさん:2010/05/06(木) 21:41:53
>>151
意味が分からない俺は初心者です。ハイ。
154デフォルトの名無しさん:2010/05/06(木) 22:02:30
>>151
まさにLinkedListの性質が必要となっているので、
インタフェースを指定する必要はない。

ところで、<E, T extends List<E> & Deque<E>>
とか&指定する機会ってあんまりないよねー。
155デフォルトの名無しさん:2010/05/06(木) 22:47:47

>>151
意味がわからん。
なんでqueue使うのにlistIteratorが要るんだ?
だいたいLinkedListじゃなくてArrayDequeue使うところだろ。
listIterator使うってことはカーソル基準の相対位置にアクセスしたいのか?
pop要らんしpopしたら意味が変わってくるだろ。
156デフォルトの名無しさん:2010/05/06(木) 22:50:34
ところでリスト更新したらConcurrentModificationでない?
157デフォルトの名無しさん:2010/05/06(木) 23:40:44
>>155
というかさ、LinkedListだとしても普通に

Queue<String> queue = new LinkedList<String>();

queue.add("1");
queue.add("2");
queue.add("3");

String elm;
while((elm = queue.poll()) != null ){
System.out.println(elm);
}

だと思うんだ。
158デフォルトの名無しさん:2010/05/06(木) 23:53:08
>>151
Queue<String> q = new LinkedList<String>();
q.add("test");
q.add("abc");
q.add("def");
Iterator<String> i = q.iterator();
while (i.hasNext()) {
System.out.println(i.next());
}
System.out.println("-----");
String s;
while ((s=q.poll())!=null) {
System.out.println(s);
}
とかはダメなのか?ListIteratorしか使えない呪いでも?
159157:2010/05/07(金) 00:00:16
>>158
Iterator<String> i = q.iterator();
while (i.hasNext()) {
System.out.println(i.next());
}

の部分は、

for(String s : queue){
System.out.println(s);
}
の方がスッキリして好きだな。
160デフォルトの名無しさん:2010/05/07(金) 00:04:30
前の LinkedList 厨だからスルーが吉
161デフォルトの名無しさん:2010/05/07(金) 05:38:23
え?厨?
162デフォルトの名無しさん:2010/05/07(金) 09:04:58
初心者です。試験勉強用の事で、言葉の定義とかなんですが、質問させて下さい。
1)メソッドに渡した基本型のフィールド変数は、メソッド内側の操作は、
 外側の変数には反映されないでしょうか。(合っていますよね。)
2)このメソッド内の変数をローカル変数と呼ぶ、合っていますか。
3)通常、引数で渡した変数の反映を読んだ側でも反映して返すには、
 戻り値で返すのが普通でしょうか。(static変数との使い分けがよく分からない;)
4)メソッドに参照型の参照で渡した場合、
 メソッド内部のインスタンスに対する操作は反映される、っていうのが、
 当たり前だと個人的には感じるんだけども、
 わざわざ参考書とかで説明してあるのが謎です。
 例えば、
  method1(Vector v)の中で
   Vector v = new Vector();
   v.add(new String("abc");
 とやった場合には外側のvにはabcはくっつかない、
  method2(Vector v)の中で
   v.add(new String("abc");
 とかやると、くっつく、と。
 当たり前の様な気もしますし、どうなんでしょう。
5)この4)の場合と、1)の場合を比較した時の理論がよくわかりません。
 1)だと、メソッド側に引数で渡された基本型の値はコピーされて
 (多分JVMのメモリにはその値用の領域が確保されますよね)
 メソッド内の操作はそのコピーされた領域に保存された値を操作しているんだと
 思いますが、4)で参照を渡した時も、参照は別の領域にコピーされるんですよね。
 すると、4−method2の場合には、v.add〜のvで指せる参照はコピーされた
 値な様な気がして・・どうなんでしょうか。
163デフォルトの名無しさん:2010/05/07(金) 09:25:20
>>162
1:反映されません。というよりは、関数内の変数に値がコピーされます。
2:ローカル変数と読んでもいいです。パラメータって普通言うけど。
3:staticは基本的に何度も値を書き込むのに使わないでください。
基本的に定数に使うものです。
返り(戻り)値で済むなら返り値を使ってください。
返り値で済まないなら、状態を持つクラスのインスタンスを渡して、
それに対してメソッド内部で操作を行います。
void method(VOClass vo){
 vo.setXXXX("hogehoge");
}
クラスを作るのが面倒な時は配列で渡します。
あんまりやらないほうがいいですが。
void method(Object[] o){
 o[0] = "hogehoge";
}
4.どうなんでしょう?っていわれてもね、参考書は初学者のためのものだからね。
でもオブジェクトの値渡しするような言語(C++)は、普通に引数にモノを渡すと
一般的にはオブジェクトがコピーされるんで、その理論は通用しません。
どうでもいいですが、Stringのコンストラクタは意味がないどころか
普通はコスト的に有害なので超特別な理由がない限り呼ばないでください。
あとVectorじゃなくて普通はArrayListを使います。
5.Javaには参照渡しはありません。メソッドのオブジェクトを渡した時は、
オブジェクトへの参照がコピられて値渡しされてるだけ。
オブジェクト以外の基本型(プリミティヴ)を
渡した時もその値がコピられて値渡しされてるだけ。
method2はmethod2に渡した引数(オブジェクト)の参照がコピられて
method2のvパラメータに設定されているだけ。
参照ってのは32bitのメモリ空間を表す数字ね。
164デフォルトの名無しさん:2010/05/07(金) 09:41:37
>>163
>staticは基本的に何度も値を書き込むのに使わないでください。
>基本的に定数に使うものです。
定数のときはstatic final
クラス内で共通、唯一つな時に使えばいいのであって何度も値を書いて問題なし
FPSでの弾の数とか
165デフォルトの名無しさん:2010/05/07(金) 10:41:33
>>164
弾の数… ビミョー。使っちゃダメってことはないけど、
あんまり正当化できるシーンは少ない。
少なくともstatic変数が現れたら「きちんと使っているかどうか」
ってのは見てしまうね。コードレビューの時とか。
だいたい「使う正当な理由はないよね。じゃやめて。」
って注意して終わる。
166デフォルトの名無しさん:2010/05/07(金) 17:41:40
javaの公式サイトにここ数日まったく繋がらないんですが・・・
167デフォルトの名無しさん:2010/05/07(金) 17:51:15
>>166
http://java.sun.com/
普通にこのサイトにつながるけど
168デフォルトの名無しさん:2010/05/07(金) 18:49:58
>>155
それArrayDequeueじゃなくてArrayDeque

javadocにも書いてある通りdequeとdequeueでは英語的にもまったく意味が違う


話を戻して、Listに入れたい要素のオブジェクトを作るクラスを独自に作って
前後関係をもたせたので結局Iteratorを使う必要がなくなってしまった。
Chain of Responsibilityのたらい回しを参考に、となりどうしのオブジェクトがお互い参照しあう方式をとることにした。

それとは別にこういうデータ構造が必要だった。

・基本的に、Stackのように端からしかデータを取得除去する必要がないからpop()を使う。
・ひたすら端からデータを取るだけ。
・要素が空になったときのみ一気に補充する。
・感覚としては弾薬の再装填や燃料補給に近い。しかし個々の要素はまったく異なるものを含み重複を許可する。

だから削除速度が速いらしいLinkedListにした。

Dequeによるとpoll()はpollFirst()と同じ。
pop()はremoveFirst()同じ。
removeFirst()は空のときNoSushElementExceptionをthrowするpollFirst()。空のときはnullを返す。
(isEmpty()を使えば例外は気にしなくていい)
みたいだったがnullで判定するのが好きな人が多いね。
169デフォルトの名無しさん:2010/05/07(金) 18:55:45
>>165
> >>164
> 弾の数… ビミョー。使っちゃダメってことはないけど、
> あんまり正当化できるシーンは少ない。
> 少なくともstatic変数が現れたら「きちんと使っているかどうか」
> ってのは見てしまうね。コードレビューの時とか。
> だいたい「使う正当な理由はないよね。じゃやめて。」
> って注意して終わる。

複数のインスタンスでひとつの状態を共有するときはstatic変数は重宝する。
170デフォルトの名無しさん:2010/05/07(金) 19:28:14
だから"ビミョー"なんじゃないの?
171デフォルトの名無しさん:2010/05/07(金) 20:00:11
書籍『Java言語仕様』によると、純粋主義者はインスタンスフィールドはすべてprivateにすべき
staticフィールドはfinalにすべきというが、そんな感じの意見か。

staticなフィールドの代替をCollectionを集約したSlngletonで代用するとかいう感じか。
172デフォルトの名無しさん:2010/05/07(金) 21:51:12

入力するときに、import java.io.* とimport java.io.* って何が違うの?
JAVA初めて即効分からなくなった。 どっちのがいいとかある?

IOで解説してるサイトが多いからそっちのが簡単とか?
173デフォルトの名無しさん:2010/05/07(金) 21:52:56
間違えた。 java.util.
174デフォルトの名無しさん:2010/05/07(金) 21:55:27
( ゚Д゚)ポカーン
175デフォルトの名無しさん:2010/05/07(金) 22:01:12
イギリスとフランスって何が違うの?級の質問
176デフォルトの名無しさん:2010/05/07(金) 22:09:21
そうなんですか。
ではテキスト通りutilにします。

有難うございました。
177デフォルトの名無しさん:2010/05/07(金) 22:23:00
test
178デフォルトの名無しさん:2010/05/07(金) 22:28:00
質問させてください。
現在コンソール入力でヒットアンドブロー(数字当て)のゲームを開発中で詰まっている点があります。
まず、プログラム上で乱数にて4桁の数字をセットします。

コンソール画面上の例 :

▲回目:1234
 ⇒ Hit :● Blow :●

※▲には入力の回数カウンタを表示。
※●には入力した数字に対して正否の数字がそれぞれ入る。

@『 ▲回目: 』 と表示させた後、ユーザーが入力で4桁の数字を入力してEnterを押す。
ABufferedReaderクラスのInputStreamReaderメソッドにてSystem.Inを入力し変換させ表示
B正否判定を表示 『 ⇒ Hit :● Blow :● 』

このAとBの間で、改行させずに入力を行いたいのですがうまくいきません。
改行はBの正否の判定を表示した時にSystem.out.printlnでするだけにしたいんです。
以下のような形での画面・入力仕様が目標です。

1回目:1234 ⇒ Hit :0 Blow :4
2回目:2525 ⇒ Hit :2 Blow :2
1回目:7777 ⇒ Hit :4 Blow :0
Congratulation・・・
179デフォルトの名無しさん:2010/05/07(金) 22:29:48
>>178
どうせBufferedReaderでreadlineとかしてんでしょ。
180デフォルトの名無しさん:2010/05/07(金) 22:32:18
>>179

はい、その通りです。
181デフォルトの名無しさん:2010/05/07(金) 22:36:19
>>168
おれなら、
public class Test {
public static void main(String[] args) {
Deque<String> queue = new ReloadableDeque<String>() {
@Override public void reload() {
System.out.println("リロードっ");
this.add("1");
this.add("2");
this.add("3");
} };
String elm;
while ((elm = queue.pollFirst())!=null)
System.out.println(elm);
}
}
public abstract class ReloadableDeque<E> extends ArrayDeque<E> implements Reloadable{
@Override public E pollFirst() {
E elm;
if ((elm = super.pollFirst()) == null) {
reload();
elm = super.pollFirst();
}
return elm;
}
}
public interface Reloadable { void reload(); }

だな。
182デフォルトの名無しさん:2010/05/07(金) 22:39:38
>>180
readlineは一行分読み込みが終わるまで読み込めない。
ファイルが読み込み元なら改行文字にブチ当たるまで読み込めない。
コンソールが読み込み元なら改行してくれるまで読み込めない。
別の読み込みメソッドを使いましょう。
183182:2010/05/07(金) 22:43:17
と思ったけど、無理だな
184178:2010/05/07(金) 22:54:36
>>183

ありがとうです。
やっぱり無理なんですかねぇ
3日3晩APIの仕様書熟読とWeb中探しがしんどい・・・orz
185デフォルトの名無しさん:2010/05/07(金) 23:02:09
>>184
一応言っておくと、
Java6使ってるならSystem.console()使おうぜ
186デフォルトの名無しさん:2010/05/07(金) 23:08:03
>>178
こんなの使うとできる、のかも。
ttp://www.nilab.info/resource/bbslog/megabbs/1070189533.html
187デフォルトの名無しさん:2010/05/07(金) 23:12:35
>>172
は?

java.sql.Date

java.util.Date
との違い、
これらを同時に使用するにはどうすればいいのかっていう質問ならわかるんだが。

それともimport java.io.*とimport java.io.PrintWriterとの違いやimport java.util.Collectionとimport java.util.*との違いのことをいっているのか?
188デフォルトの名無しさん:2010/05/07(金) 23:13:28
>>184
どうしてもやりたかったらawt.keyevent
あとはlinux、cygwinとか?
189デフォルトの名無しさん:2010/05/07(金) 23:18:27
こんなのとか。
http://jline.sourceforge.net/
190デフォルトの名無しさん:2010/05/07(金) 23:20:12
191178:2010/05/07(金) 23:24:46
>>185
>>186
>>188-189
みんなありがとう。ちょっと調べてみて吟味して後の仕様拡張とあわせて
選択しようかなと思います。

192デフォルトの名無しさん:2010/05/07(金) 23:28:31
>>181
そこまでやるか。
Template Methodに匿名クラスに抽象メソッドにインタフェース全部作ってまでやるか。
そこまでやりだすメリットってそんなにあるのか?

ジェネリックスにワイルドカード指定すればもっと凄い堅牢性が高いものが
できあがりそうだが、やりだすと苦労しそうだ。
193デフォルトの名無しさん:2010/05/07(金) 23:35:38
>>185
C#のSystem.Console.WriteLine()かと思った。
そんなメソッドとjava.io.Consoleが追加されていたとは。
これでScannerクラスを使う必要もなくなるのか
194デフォルトの名無しさん:2010/05/07(金) 23:37:03
Apache Commons CLIという選択肢もあり
http://commons.apache.org/cli/
195デフォルトの名無しさん:2010/05/07(金) 23:50:30
>>194
cliってgetoptみたいなものでは。
196デフォルトの名無しさん:2010/05/08(土) 00:14:24
超初心者増えたなぁ
197デフォルトの名無しさん:2010/05/08(土) 00:15:32
>>192
匿名クラスなのは、ReloadableDequeの中でreloadを実装すると融通効かなそうだから(部品として弱そうだから)、
匿名クラスでReloadable#reloadを実装した。それから、クラス名考えるのめんどくさかったからってのもある。

抽象クラスなのは、ReloadableDequeを使う人に、
確実にreloadをOverrideさせるため。

Reloadableをインタフェースにしたのは、なんか全然違うところでも使いそうじゃない?そんな理由。マーカ的につかえるかなぁ〜って。
198デフォルトの名無しさん:2010/05/08(土) 00:21:25
誤)Reloadableをインタフェースにしたのは、
正)Reloadableインタフェースをつくったのは、
199デフォルトの名無しさん:2010/05/08(土) 01:26:02
>>193
正直いってConsoleは微妙
というかeclipseで使えない
200デフォルトの名無しさん:2010/05/08(土) 01:52:39
うわあマジだ。ある意味正しい動きではあるが。クソだな。
201デフォルトの名無しさん:2010/05/08(土) 01:59:33
>>196
お前いっつもそれしか言わないよな。
202デフォルトの名無しさん:2010/05/08(土) 02:00:14
初心者の域を抜け出せない初心者が初心者批判してるんですね
203デフォルトの名無しさん:2010/05/08(土) 02:43:15
>>200
利点はioexceptionなげないのとpasswordだけ・・・
自分はIDE上で登録済み
br
Java ステートメント
try {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String line;
while((line=br.readLine())!=null){
${cursor}
}
} catch (IOException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
204デフォルトの名無しさん:2010/05/08(土) 05:14:29
マルチスレッドについての質問です。
マルチコアCPUの場合、プロセスのコア割り当てはOSが管理しますよね。
Javaプロセスを複数立ち上げれば、OSが適切にプロセスごとに割り振るのは分かります。
でも、一つのJavaプロセスの中で複数スレッドを走らせた場合、
OSからは一つのJavaプロセスに見えてると思うのですが、
どうやって複数コアへ処理の割り当てを行っているのでしょうか。
205デフォルトの名無しさん:2010/05/08(土) 05:51:05
/ 名前を読み込んで挨拶する(その2:nextLine()版)
import java.util.Scanner;
class HelloNextLine {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.print("お名前は:");
String s = stdIn.nextLine(); // 1行分の文字列を読み込む
System.out.println("こんにちは" + s + "さん。"); // 表示
}
}
Exception in thread "main" java.lang.NoClassDefFoundError:
HelloNextline (wrong name: HelloNextLine)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: HelloNextline. Program will exit.

上記のようになったのですが、エラーが出た時はどの部分をみればいいのでしょうか?
206デフォルトの名無しさん:2010/05/08(土) 06:02:11
HelloNextline (wrong name: HelloNextLine)
207デフォルトの名無しさん:2010/05/08(土) 07:37:04
compress形式で圧縮されたファイル(拡張子 .z のファイル)を解凍したいのですが、
どうすればいいのでしょうか?
208デフォルトの名無しさん:2010/05/08(土) 07:42:39
>>204
vmのスレッディングapi実装はosネイティブのスレッディングapiを利用して行われる
209デフォルトの名無しさん:2010/05/08(土) 08:45:03
バックグラウンドで画像のサムネールを作る処理を走らせたときに MIN_PRIORITY に
設定しても CPU 100% 行ってしまい、枚数が多いと CPU 熱のフェールセーフが働いて
スリープ状態になってしまう。もうこれ以上って Timer か何かから細かい間隔で suspend
resume してやるしかないかな。
210デフォルトの名無しさん:2010/05/08(土) 08:48:11
>>207
標準 API には無いから Runtime#exec() 使ってシェル経由でやるしかない。
ネットで探せばどこかにライブラリが落ちているかもしれないが。
211デフォルトの名無しさん:2010/05/08(土) 08:49:55
>>204
今時の Java VM 実装では OS は Java のスレッドまで見えているので
スレッドを適切に CPU に割り当てられる。
212デフォルトの名無しさん:2010/05/08(土) 09:21:50
>>209
100%になるのが悪いんじゃなくて冷却が足らないだけだ
ヒートシンク掃除して扇風機でも当てとけ
ハードウェア的な話だから続けるならよそでやってくれ
213デフォルトの名無しさん:2010/05/08(土) 09:40:28
ThinkPad だからどうしようもない。役に立たないしょうもない煽りだけならよそでやってくれ。

で、200ms ごとに suspend, resume 繰り返すようにしたらとりあえず 80% ほどに落ち着いた。
TimerTask × ImageIO の閉じた処理どうしなのでデッドロックもないだろう。
少し調整の余地はあるがこれでやるか。
214デフォルトの名無しさん:2010/05/08(土) 11:56:35
>>213
PC買い換えろ
215デフォルトの名無しさん:2010/05/08(土) 12:39:47
>>213
http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/management/ThreadMXBean.html
ここら辺使ってスレッドのCPU時間の測定してsuspend~resumeの間隔を調整すれば、CPU使用率の調整とかも出来るかも?
216207:2010/05/08(土) 13:10:46
>>210
標準にはないですか。ありがとうございます。
Windowsでも動かすかもしれないので、シェルはちょっと不味いです。
ライブラリ探すか、自作してみます。
217デフォルトの名無しさん:2010/05/08(土) 13:12:52
デュアルコアならCPU1つに制限するとかなしなの?
218デフォルトの名無しさん:2010/05/08(土) 13:59:26
>>211
>>208

ありがとうございます。よく分かりました。
219デフォルトの名無しさん:2010/05/08(土) 14:36:44
>>199
なんでEclipseで使えないんだ
と思ってやってみたら本当に例外を吐いて
DOSプロンプトではちゃんと動く。
さすがにEclipseのコミュニティにバグ報告されている内容だろうか。
220デフォルトの名無しさん:2010/05/08(土) 15:26:00
すんませんjavaの練習したいと思ってJDKインスコしたんですが。ユーザー変数にC:\Sun\SDK\bin入れてるけどコマンドプロントで認識しません。

いまいま始めたばっかでよく分からないんですが。
とにかくコマンドプロントで練習できるようにするにはどうすればいいんでしょうか?
221デフォルトの名無しさん:2010/05/08(土) 15:28:40
PATH %PATH%;C:\Sun\SDK\bin

222デフォルトの名無しさん:2010/05/08(土) 15:29:56
インストール先のフォルダそれで合ってるの?
ユーザー変数?環境変数のこと?
223デフォルトの名無しさん:2010/05/08(土) 15:31:00
C:\Program Files\Java\jdk1.*.*_**\bin
224デフォルトの名無しさん:2010/05/08(土) 15:33:11
SDKファイルの中の何を指定すればいいのかがよくわかりません・・・
225デフォルトの名無しさん:2010/05/08(土) 15:33:55
C:\Sun\SDK\bin

フォルダの場所自体はこれであってるんですが
226デフォルトの名無しさん:2010/05/08(土) 15:34:53
>ユーザー変数にC:\Sun\SDK\bin入れてるけど
これを具体的に説明
227デフォルトの名無しさん:2010/05/08(土) 15:36:27
環境変数のユーザー編集

変数名 PATH
変数値 C:\Sun\SDK\bin

にしてて、フォルダの位置も正しいはずなんですが
コマンドはC:\>setでやってます
228デフォルトの名無しさん:2010/05/08(土) 15:40:30
環境変数の設定変更したあとPC再起動した?
229デフォルトの名無しさん:2010/05/08(土) 15:44:07
先程しましたが結果は同じでした
230デフォルトの名無しさん:2010/05/08(土) 16:01:36
>>220
OSとJDKインストールした場所は?
231デフォルトの名無しさん:2010/05/08(土) 16:05:09
>>230
OSはCです
JDKはC:\Sun\SDKです
232デフォルトの名無しさん:2010/05/08(土) 16:08:07
環境変数の設定をsetコマンドでやってるならPC再起動したらダメじゃん
233デフォルトの名無しさん:2010/05/08(土) 16:08:58
設定はパフォーマンスとメンテナンスのシステムからやってます
234デフォルトの名無しさん:2010/05/08(土) 16:08:59
>>220は何をしたかったの?
javacが実行されないってこと?
235デフォルトの名無しさん:2010/05/08(土) 16:09:40
コマンドプロントでjavaが認識されないってことです

'java' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。

ってメッセージがでるんです

236デフォルトの名無しさん:2010/05/08(土) 16:12:51
>>227
環境変数の設定画面見て、一度、スペルミスが無いかチェック
コロンとセミコロンの打ち間違いや、ドットとカンマの打ち間違いとかの可能性はあるかも
問題なかったらコマンドプロンプトでpath[エンター]打つと
現在のPATHが表示されるからPATHにC:\Sun\SDK\binが含まれていることを確認

それと、C:\Sun\SDK\binのフォルダ内に、javac.exe等のファイルが存在してるかを確認
もしかするとインストール失敗してるのかも
237デフォルトの名無しさん:2010/05/08(土) 16:15:09
cmdでpathと打つとC:\Sun\SDK\binは含まれてます

binのフォルダの中にjavac.exeらしきファイルが見当たらないんですが
238デフォルトの名無しさん:2010/05/08(土) 16:18:14
うちはJDKインストールしたら>>223のように
Program Files\Jana\ のところにインストールされたけど
C:\Sun\SDK\bin って自分でフォルダ指定してインストールしたの?
239デフォルトの名無しさん:2010/05/08(土) 16:18:54
実はJDKをインスコしたつもりでJREをインスコしたとか…
んなわけないかw
240デフォルトの名無しさん:2010/05/08(土) 16:18:58
>>238
自分はそこにインストールされました
241デフォルトの名無しさん:2010/05/08(土) 16:22:03
もう一回違うJDKインスコします
242デフォルトの名無しさん:2010/05/08(土) 16:23:47
jreがインスコされちまった。これはJKDとは違うの?
243デフォルトの名無しさん:2010/05/08(土) 16:29:39
JKD?
Joshi Kousei Daisuki
女子 高生 大好き ?
244デフォルトの名無しさん:2010/05/08(土) 16:33:59
JDKもインスコされてました。
新しいファイルは
C:\Program Files\Java\jdk16.0_20\binに指定しましたが結果は同じです

他に設定するべき所があるんでしょうか・・・・?

245デフォルトの名無しさん:2010/05/08(土) 16:41:00
コマンドプロンプトでpathと入力
C:\Program Files\Java\jdk1.6.0_20\bin がちゃんと指定されているか確認
>>244 C:\Program Files\Java\jdk16.0_20\bin ← 16.0は間違いじゃね?)

C:\Program Files\Java\jdk1.6.0_20\binフォルダに
java.exeやjavac.exeが存在していることを確認


もし、java.exeやjavac.exeが存在していなかったら
可能性としては、インストール時にセキュリティソフトがjava.exeやjavac.exeをウィルスと誤検知して、削除か移動された可能性もある

246デフォルトの名無しさん:2010/05/08(土) 16:56:47
>>231
>OSはCです
WindowsC ?
247デフォルトの名無しさん:2010/05/08(土) 17:00:38
>>1

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
ttp://www.wikiroom.com/java/
248デフォルトの名無しさん:2010/05/08(土) 17:02:05
>>246
Cドライブってことでしょ
249デフォルトの名無しさん:2010/05/08(土) 17:44:56
どうした
250デフォルトの名無しさん:2010/05/08(土) 18:38:07
他クラスのpublicな定数を利用するときって定数名だけじゃダメなんですか?
251デフォルトの名無しさん:2010/05/08(土) 18:44:44
public staticな定数ならstatic importという物があってだな。
252デフォルトの名無しさん:2010/05/08(土) 18:50:09
全部自前のクラスなら
定数だけのインターフェース作って全部のクラスにインプリメントしてる
253250:2010/05/08(土) 18:55:46
即レスどうもです

>>251
無事出来ました、ありがとうございます

>>252
今度からはそういう風に設計してみます、ありがとうございます
254デフォルトの名無しさん:2010/05/08(土) 19:11:05
>>210
Apache Commons Compressにあるか?
と思って探してみたがそれっぽいのはなかった。
GZIPのメソッドでそのまま使えそうな気がするがそうでもないか。
255デフォルトの名無しさん:2010/05/08(土) 19:12:18
>>252
いまどきそんな設計するなよ…
256デフォルトの名無しさん:2010/05/08(土) 19:14:39
>>252
おい、定数はenum使えよ
っていうかinterfaceつかうと勝手に実装できるし
それがint型だと変な使い方できるし
Effective Java第2版読めよ
257デフォルトの名無しさん:2010/05/08(土) 20:04:29
258デフォルトの名無しさん:2010/05/08(土) 20:32:16
Effective Java第2版を読んだやつっているのかな
職場、関係会社、派遣、下請けを今まで見てきたけど、一人だけ読んでいそうな雰囲気だった。
(そもそもenumって何?って返ってくるぐらいだったからなぁ)
259デフォルトの名無しさん:2010/05/08(土) 20:35:50
実際その読んだ人の書いたコードって綺麗だった?
260デフォルトの名無しさん:2010/05/08(土) 20:37:07
えっ、そういう設計はダメなんですか?
初心者なのでよくわからないです…
261デフォルトの名無しさん:2010/05/08(土) 21:57:54
だからEffecitive Javaを読めと
Java5以降のバージョン(enum)が使えないなら第一版(と、結城浩の『Java言語で学ぶデザインパターン入門』)でもいいから

定数にinterfaceを使うなんぞ論外。
定数はコンストラクタの作成を禁止したfinalクラスかSingletonパターンを使うべき

Java5以前の環境では最低でもこの程度のことはすべき。
public final Constant {
 public static final int CONSTANT_A = 1;
 public static final int CONSTANT_A = 2;
 private Constant(){}
}
これでもまだ不十分だが。

Java5以降はこれで十分
public enum Constant {
 CONSTANT_A(1).
 CONSTANT_B(2);
}
262デフォルトの名無しさん:2010/05/09(日) 02:14:15
>137あたりのsuper,this関連(?)の質問なんだけど

内部クラスにもthisとかつけたほうがいいの?
ClassAという内部クラスがあったとき

this.ClassA a = new this.ClassA();

と記述したほうがいいのかな?


263デフォルトの名無しさん:2010/05/09(日) 02:59:58
>>261
定数クラスはclass装飾子が抜けてたりCONSTANT_Aが二つあったり、
enumの方は,が.になってたり、コンストラクタやメンバ変数が必要だったりしませんか?
264デフォルトの名無しさん:2010/05/09(日) 03:15:30
また Effective Java かぶれが暴れてんのか。
265デフォルトの名無しさん:2010/05/09(日) 03:32:53
カオティックな板だな
266デフォルトの名無しさん:2010/05/09(日) 03:50:49
初心者じゃなくなったって実感した時って
どんな事を理解・実装できたあたりからですか?

教えてる新人の場合なら〜ってケースでも
教えてもらえると有難いです
267デフォルトの名無しさん:2010/05/09(日) 04:22:36
30年もJavaばかりやってると新人って気持ちじゃなくなるな
268デフォルトの名無しさん:2010/05/09(日) 04:24:09
30年なんてまだまだ新人だろ
269デフォルトの名無しさん:2010/05/09(日) 04:27:58
15年前、これは世界を震撼させる!と思って始めて

まったくそんなことは無かった
270デフォルトの名無しさん:2010/05/09(日) 04:28:13
>>266
interface の使い方を理解したときも、その1つと言えるんじゃないかな。
interface には実装のないメソッド宣言だけがあって、
それを implements したクラスはメソッドの実装を書かなくてはならない、
ということ事態は初心者でも理解できるんだけど、
実際どういうふうに interface を使えばいいかが、初心者には難しい。
271デフォルトの名無しさん:2010/05/09(日) 04:30:28
厳密に定義するなら、始めてから一定の期間が経過していれば初心者ではなくなるな
Javaの場合どの程度の期間が妥当かは知らんが、自動車なら1年だな
272デフォルトの名無しさん:2010/05/09(日) 04:32:59
入門書に書いてあること
一通り、入門書見ずに出来るようになれば
初心者を脱したと。初級者だ
入門書レベルのことじゃ仕事にはならないし
趣味でやってる人間なら十分かもしれないがw

273デフォルトの名無しさん:2010/05/09(日) 04:34:47
まぁそんなところだな。
274デフォルトの名無しさん:2010/05/09(日) 04:43:35
未だに初心者のころと同じようにわからないことばかり。
275デフォルトの名無しさん:2010/05/09(日) 04:46:12
たいていの新人は、Java初心者ってだけじゃなくプログラミング初心者も兼ねてるから
>>261が紹介してるような本をそういう初心者が最初から読んだってあまり効果は無いと思う
入門書クリアレベルじゃたいしたソース書いたことないだろうし
せめて中級者くらいの人が参考に読めばいいと思うよ
276デフォルトの名無しさん:2010/05/09(日) 05:59:01
本は勉強開始してから、1、2年くらいの新人が読むものかと。
それを過ぎたら面白そうなOSSのソースでも読んで、知的欲求を満たすもんだと思う。
277デフォルトの名無しさん:2010/05/09(日) 12:57:27
すみません、実行時に unable to load native library:
can't find dependent libraries と
でてしまいます。どうすれば実行できるように
なるのでしょうか?
278デフォルトの名無しさん:2010/05/09(日) 13:00:02
>>258
読んだ
読書会みたいなのもあるみたいね
>>207
*.Z知らないから的外れかもしれないけど
ライブラリ
http://commons.apache.org/compress/
windows用exe
http://www.gzip.org/
279デフォルトの名無しさん:2010/05/09(日) 13:02:29
>>277
Classpathとjavaのバージョン
280277:2010/05/09(日) 13:23:50
>>279
レスありがとうございます。
バージョンはjdk1.6.0_20で、
classpathはカレントを指定してます。
281デフォルトの名無しさん:2010/05/09(日) 13:33:25
>>280
カレントにjarファイルをコピー
282277:2010/05/09(日) 13:56:06
>>281
カレントに置いても実行できませんでした。

283デフォルトの名無しさん:2010/05/09(日) 14:09:53
>>282
エラーメッセージは?
284277:2010/05/09(日) 14:16:06
>>283
同じエラーです。
jdkインストールしてから一度も実行できてないです。
別のパソコンにインストールしたのは普通に使えているのに、
なぜかできないです。
285デフォルトの名無しさん:2010/05/09(日) 14:45:02
>>284
カレントにコピーしたファイル名は?
286デフォルトの名無しさん:2010/05/09(日) 15:53:03
例外処理で整数が入力されるまで、何度も再入力を求める場合はどういう風に書けばいいのでしょうか?
まず整数かどうかを判別する式が思い浮かびません。
287デフォルトの名無しさん:2010/05/09(日) 15:54:46
小数点以下は丸め込むと注意しておいてintにキャストすればいいじゃん
288デフォルトの名無しさん:2010/05/09(日) 16:07:16
>>287
おまい、Java 知ってるか?
289デフォルトの名無しさん:2010/05/09(日) 16:49:51
288はなんか脊椎反射で煽っている気がするなぁ。
普通に読んで Integer.decode(入力文字列) とかで変換しちまえという話じゃないのか。
290デフォルトの名無しさん:2010/05/09(日) 16:53:07
と、小数入っていると変換できなかったか。
291デフォルトの名無しさん:2010/05/09(日) 16:59:12
んーと、Double.valueOf(入力文字列).intValue() とやればいい。
292デフォルトの名無しさん:2010/05/09(日) 17:02:30
整数じゃなかったらという判定がいいなら Integer.decode(入力文字列) で例外catch。
293デフォルトの名無しさん:2010/05/09(日) 17:35:03
ようじょクラスを継承するようちえんじクラスがあって、
ようじょ ょぅι゛ょ = new ようちえんじ();
という感じにスーパークラスの型でサブクラスを
インスタンス化する場合がありますが、
何の為にわざわざそんな事をするのでしょうか。
ようちえんじ ょぅちぇんじ = new ようちえんじ();
と何が違うのでしょうか。
教えて下さい。
294デフォルトの名無しさん:2010/05/09(日) 17:41:38
ようじょクラスに対する操作を書いておけば
ようじょクラスだろうがようちえんじクラスだろうが適用できる

継承関係がなければ
ようじょクラス用とようちえんじクラス用に
それぞれ別々に同じような操作を書かないといけなくなる
295デフォルトの名無しさん:2010/05/09(日) 18:01:12
>>294
有難うございます。
その、継承関係でオーバーライドが機能するのは分かるのですが、
ようちえんじ ょぅちぇんじ = new ようちえんじ();  では
継承関係は反故になってしまうのでしょうか。
296デフォルトの名無しさん:2010/05/09(日) 18:15:11
別に継承関係があって、
共通処理をようじょクラスで記述できるのなら、
ようちえんじクラスで持っててもいいよ
297デフォルトの名無しさん:2010/05/09(日) 18:55:48
>>296
うーん難しいですね。
よく本とかにのっている
List list = new ArrayList();

ArrayList arraylist = new ArrayList();
とどうちがうのか分かりかねているのです。
298デフォルトの名無しさん:2010/05/09(日) 19:13:48
どっちでもいいけど、ある日ArrayListの代わりに
パフォーマンス上の理由でLinkedListを使わざるをえなくなった場合、
ArrayList arraylist のコードの方は直さなきゃならないね。

同様に、以下のようなメソッドを別に用意していたとしよう、
void method(ArrayList arraylist){
 arraylist.add("unko");
}
上記メソッドはaddメソッドにしか用事がないのに
ArrayListで型宣言してるばっかりにLinkedListが渡せない。
これは大いに問題。

上記のような問題が起こらないと言える範囲、
もしくはArrayList特有のメソッドが重要な場合とかは
ArrayListをそのまんま変数宣言で使っていいよ。
299デフォルトの名無しさん:2010/05/09(日) 19:14:47
>>263
素で間違い
片方はCONSTSANT_Bに
でもあれでもまだ問題あり
とにかくEffective Javaでも読む

.は,に戻す
300デフォルトの名無しさん:2010/05/09(日) 19:17:26
List list = new ArrayList();
やっぱり ArrayList じゃなくて LinkedList にしようとか思った時に
List list = new LinkedList();
にすれば動く。

ArrayList list = new ArrayList(); だと
LinkedList list = new LinkedList();
に修正したとしても、例えば
list.ensureCapacity(100);
とかいう文があったらエラーになる。

まあ普通はこういうことは起こらないけど、あくまで例として。
301デフォルトの名無しさん:2010/05/09(日) 19:34:36
>>298
>>300
分かりました!
有難うございます!!

余談ながら、実は『=』の左側で型を宣言するのはメモリに
領域を確保する為だという考え方がぬぐえず、だから大抵の
場合スーパークラスよりサブクラスの方がメソッドとかも
増えているので、スーパークラスで確保した領域にサブク
ラスを代入すると、オーバーライドや独自メソッドなど
確保領域からはみ出る部分が切り落とされると思えて仕方
なかったのです。
302デフォルトの名無しさん:2010/05/09(日) 19:39:19
>>262
thisつけるかどうかはどこのスコープかによる。
迷ってるならCheckStyleを使うべき。CheckStyleがthisの付け忘れを指導してくれる。
もしEclipseを使って開発してるならEclipseにもCheckStyleプラグインがあるからそれを使うといい。

> 内部クラスにもthisとかつけたほうがいいの?
> ClassAという内部クラスがあったとき
> this.ClassA a = new this.ClassA();

そもそもnewのあとにthis.は不要。
型の頭にthis.つけたらコンパイルエラー。

インスタンス生成のことをよくわかってないようなので
基礎から勉強し直した方がいいと思う。実際に自分でそのソースコードを書いて、
コンパイルして自分の目で確かめてみましょう。

内部クラス等の扱いについての詳しい解説は『Java言語仕様』を読むかそこいらのJava入門サイトでも読んだほうが早い。

>>263
CONSTANT_A(1)という書式は無理にする必要ない。
CONSTANT_Aでもいい。toString()が返す値が1になるかわりに"CONSTANT_A"にかわるだけ。
そこいらのサイトを検索して出るJavaのenumの仕様とサンプルを見るべし。
303デフォルトの名無しさん:2010/05/09(日) 19:40:58

>>267
Javaはそんな老けてない。それってC/C++の間違い。Javaは登場してからまだ15年しか経ってないから。

>>269
10年前にJava始めたときは興奮した。それまではC/C++大学で弄っててついでに大学の鯖でHTMLとかCGIとか弄ってたから。
あの頃の多くのJava本がまえがきでJavaの魅力を熱烈にアピールしてC++とここが違うということを強調しまくっていた。
あの頃にあんなまえがき読んだら興奮する。当時はC/C++が最強と言われていたんだから、身震いを覚えた。「C/C++に慣れきっていたら
なんだこの変な言語」と思っていたがまだC++もほとんど十分に把握していなかったこととC言語の煩雑さに不満を覚えていたから
あのときのインパクトは衝撃的だった。

>>276
しかし、Java以外の言語にある程度経験がある場合、とくにC/C++経験豊富でJava初心者の場合はEffective Javaはおすすめできる。
enumのところに書いてあるコードはそれほど難しくないから読む価値はある。というかenumだけなら買わなくてもここでほとんどそっくりな解説を読めたりする。
惑星から物体の重量を計算するenum型のサンプルとかもろにEffective Java第2版と同じことがかいてある。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/language/enums.html

あとインタフェースを定数にするのがなぜいけないかは、ここを読むのがおすすめ。
http://www.ibm.com/developerworks/jp/java/library/j-enums/
304デフォルトの名無しさん:2010/05/09(日) 19:52:54
>>286-292
文字列の中にドットが含まれていれば小数をみなす
というんなら、そんなめんどうくさいことやらずにこうすればいい
while(true){

 //コンソールから小数を入力するコード

 if(!input.contains("."))
  break;
 }
}

例外のことは考えてない
305デフォルトの名無しさん:2010/05/09(日) 20:55:12
"one"とかだったらどうするよ?
306286:2010/05/09(日) 21:48:41
みなさん回答ありがとうございます。

>>305さんがおっしゃってる通りなのですが、文字が入力された場合などの判別も条件に入れての質問です。
条件があいまいな質問になってしまい申し訳ございません。
307デフォルトの名無しさん:2010/05/09(日) 22:04:39
>>303

>>267はジョーダンだろw ジョーダンにマジレスすんなよw
308デフォルトの名無しさん:2010/05/09(日) 22:42:27
まあ問題はlistでやると使えないメソッドがかなりあると
void addFirst(E e)
void addLast(E e)
void clear()
E getFirst()
E getLast()
boolean offer(E e)
boolean offerFirst(E e)
boolean offerLast(E e)
E peek()
E peekFirst()
E peekLast()
E poll()
E pollFirst()
E pollLast()
E pop()
void push(E e)
E removeFirst()
boolean removeFirstOccurrence(Object o)
E removeLast()
boolean removeLastOccurrence(Object o)
309デフォルトの名無しさん:2010/05/09(日) 22:54:09
>>308
それらはListではなくDequeだな
310デフォルトの名無しさん:2010/05/09(日) 23:14:49
>>305
java.util.regexか
Apache Jakarta ProjectのApache OROを使って正規表現で文字列を除外する。
311デフォルトの名無しさん:2010/05/09(日) 23:15:44
>>308
何の話題?
元の話の流れがわからないのでリンク元を
312デフォルトの名無しさん:2010/05/09(日) 23:53:18
>>311
linkedlistで使えてlistで使えないメソッド
313デフォルトの名無しさん:2010/05/10(月) 00:21:48
なるほど。
そやな。
あれはDequeのメソッドも混じってるからな。
314262:2010/05/10(月) 00:51:56
>>302
ありがとうございました
315デフォルトの名無しさん:2010/05/10(月) 01:18:31
内部クラスの内部クラスの内部クラスの内部クラスをオーバーライド
316デフォルトの名無しさん:2010/05/10(月) 02:39:19
勢いで作った
http://www51.tok2.com/home/rg550/cgi-bin/hosoku/img0051.java
改良点があれば・・・・
317デフォルトの名無しさん:2010/05/10(月) 02:44:17
ご苦労さんとしか言いようがないが…
318デフォルトの名無しさん:2010/05/10(月) 03:38:57
>>316
('a')
('A')
('3')
('-')

顔文字に見えた
319デフォルトの名無しさん:2010/05/10(月) 12:44:29
>>318
static importして
sysout(MINIS10 +" massage "+ MINIS10)
って便利かなと思うけどどう考えてもGRAVE_ACCENT100とか使わないよね・・・
320デフォルトの名無しさん:2010/05/10(月) 18:00:50
どうでもいいことかもしれんけど
式書くとき
n=m+12; ←のように詰めて書く?
n = m + 12; ←のようにスペース空けて書く?

引数とかでも
hoge(n,1,true,a,"abc"); 詰めて書く?
hoge( n, 1, true, a, "abc");  空けて書く?
321デフォルトの名無しさん:2010/05/10(月) 18:10:28
>>320 Eclipse で Ctrl+Shift+F
322デフォルトの名無しさん:2010/05/10(月) 18:10:37
>>256
定数にenum使うってswitch文とかで分岐に使うような複数ある定数の場合でしょ?
他の定数と関連付ける必要ない定数はenum使っちゃだめじゃないの?
323デフォルトの名無しさん:2010/05/10(月) 18:23:14
エフェ厨に構うなよ。2ch 用語覚えた中学生みたいなもんだから。
324デフォルトの名無しさん:2010/05/10(月) 18:37:18
俺が昔読んだ入門書には定数だけのインターフェース作る様なこと書いてあった気がした
325デフォルトの名無しさん:2010/05/10(月) 18:48:10
昔の入門書といえば、そんなもんかも
326デフォルトの名無しさん:2010/05/10(月) 19:10:12
文字列を10文字幅にして、足りない部分は先頭に'0'を付けるにはどうすればいいですか?
例えば "deadbeef"を入力すると"00deadbeef"と返還する処理を書きたいです。
String.format("%010s", "deadbeef");
とやってもダメでした
327デフォルトの名無しさん:2010/05/10(月) 20:09:07
>>322
あとは多少気持ち悪いけど、
Java上でSingletonやりたい場合かな。
328デフォルトの名無しさん:2010/05/10(月) 20:18:59
>>322
駄目っていう理由はないと思ってるんだけど。
何でそう思ってるのか知りたい。
329デフォルトの名無しさん:2010/05/10(月) 20:24:25
public class Rect{
package a;
public class AA{
int ai;
protected int aj;
}

package b;
import a.AA;
class BB extends a.AA{
BB(){
AA aa = new AA();
aa.ai = 7;(1)
aa.aj = 9;(2)
ai = 7;(3)
aj = 9;(4)
}
}
(1)-(4)のなかで正しいのはどれですか?
330デフォルトの名無しさん:2010/05/10(月) 21:51:29
>>329
目の前のPCで動かせばいいだろうが。
何でも聞けると思ってんじゃねえぞ。
331デフォルトの名無しさん:2010/05/10(月) 22:51:30
>>326
System.out.println(org.apache.commons.lang.StringUtils.StringUtils.leftPad("123", 10, '0'));
332デフォルトの名無しさん:2010/05/10(月) 22:52:43
StringUtilsがカブったw
System.out.println(org.apache.commons.lang.StringUtils.leftPad("123", 10, '0'));
333デフォルトの名無しさん:2010/05/11(火) 01:55:42
>>316
Apache Commons LangのStringUtilsクラスかと思ったぜ。
あっちのクラスには不満かい?
334デフォルトの名無しさん:2010/05/11(火) 01:59:47
>>322
Singletonを作る場合にも使えますが。
他の定数と関係ない定数にenum使わない方がいいなんて話聞いたことが無い。
誰がそんなこといってた? どんな本に書いてた?
Singletonクラスで代用してもかまわないと思うけど。

>>323
なにいってんの?

>>324
それアンチパターン
以下>.303の引用
> あとインタフェースを定数にするのがなぜいけないかは、ここを読むのがおすすめ。
> http://www.ibm.com/developerworks/jp/java/library/j-enums/
335デフォルトの名無しさん:2010/05/11(火) 02:01:16
>>320
スペースあける。
>>321のようにEclipse使う。すると自分で設定したコードフォーマットに従って
コードが自動的にフォーマットされる。

詰めてかいたコードは読みにくい。というかそういうコード書くやつのソース読まされるとそいつを殴りたくなる。
336デフォルトの名無しさん:2010/05/11(火) 02:06:38
>>329
答えが複数でるんだけど

Sun認定Java資格試験を受けようとしているんだか
学校の宿題をここで聞こうとしているのかわからんけど
宿題専用スレがあるからそっち使うといいよ

★★ Java の宿題ここで答えます Part 69 ★★
http://pc12.2ch.net/test/read.cgi/tech/1267796762/

Java資格試験のスレはマ板のこっちにあるからここで聞くといいよ

Sun認定Java資格 実用情報 7 【SJC-P用】
http://pc11.2ch.net/test/read.cgi/prog/1264084378/
337デフォルトの名無しさん:2010/05/11(火) 02:15:03
アフォが出たぞー
338デフォルトの名無しさん:2010/05/11(火) 02:20:45
なんつーか、社会人プログラマ三年目くらいか?
まぁ教典にかぶれるのは若さの特権だけどさ。
339デフォルトの名無しさん:2010/05/11(火) 02:29:15
>>324
Constant interface - Wikipedia, the free encyclopedia

ttp://en.wikipedia.org/wiki/Constant_interface
340デフォルトの名無しさん:2010/05/11(火) 02:32:06
>>130

Call super - Wikipedia, the free encyclopedia
ttp://en.wikipedia.org/wiki/Call_super
341デフォルトの名無しさん:2010/05/11(火) 02:33:04
342デフォルトの名無しさん:2010/05/11(火) 02:34:40
何故アンチパターンがダメなのか
343デフォルトの名無しさん:2010/05/11(火) 02:38:12
テンプレートパターンなんか普通に Call Super するけどな。
何でもパターンを盲信すりゃ良いってもんでもない。
344デフォルトの名無しさん:2010/05/11(火) 02:45:27
>>337
在日は巣に帰れ
http://tsushima.2ch.net/korea/
345デフォルトの名無しさん:2010/05/11(火) 02:46:55
>>341
こんなの全部考慮してなんて作れないお
346デフォルトの名無しさん:2010/05/11(火) 02:46:57
>>339
思いっきりアンチパターンって書いてるぞ。
まさかアンチパターンとしら書いてなかったらどうしうようかと思ったぜ


Use of this anti-pattern has a few other downsides:
It pollutes the class namespace with read-only variables that may not be of use.
Contrary to the compile-time tactical utility of implementing a constants interface, the incidental run-time artifacts have little practical purpose (cf. marker interfaces which also have no methods but are useful at run-time).
If binary code compatibility is required in future releases, the constants interface must remain forever an interface (it cannot be converted into a class), even though it has not been used as an interface in the conventional sense.
Without an IDE that resolves where the constant are coming from, tracking it back to its containing class or interface can be time consuming.
A variable (representing an instance) of the interface is syntactically no more useful than the interface name itself (since it has no methods).
347デフォルトの名無しさん:2010/05/11(火) 02:47:38
>>342
COBOLerのようにスパゲティコード書く馬鹿のコードを読むのは苦労してウザイから
348デフォルトの名無しさん:2010/05/11(火) 02:48:19
>>338
アジャイル開発も無視ってやつか
せめてデザインパターンのひとつくらい覚えて使いこなせよ
そういうのすら無視して汚くて読みにくいコードばかりかいて
そんな上から目線で威張ってるのか?
349デフォルトの名無しさん:2010/05/11(火) 02:52:15
初学者 (初心者はとりあえず越えたあたり) 〜中級手前あたりはべからず集をありがたがる傾向があるな。
見てると、それを遵守して失敗しても自分のせいじゃないと心のどこかで言い訳できるからっぽい。
あと設計突っ込まれたときに他人の言葉を借りないと返せないから。ちゃんと経験を積めば
「何故このケースではアンチパターンを使った方が良いか」個別に判断出来るようになるが。

まぁその典型が >>348 みたいな。
350デフォルトの名無しさん:2010/05/11(火) 03:03:28
Wikipediaに書いてあることなんぞ信用ならん
351デフォルトの名無しさん:2010/05/11(火) 03:06:07
>>341
>車輪の再発明
俺よくやるわwwダメじゃんwww
352デフォルトの名無しさん:2010/05/11(火) 03:11:52
>>350
コアライブラリと同じ機能を再発明してたらアレだが、それだって外部 JAR の追加
(管理構成に関するアンチパターン) との兼ね合いだよ。
353デフォルトの名無しさん:2010/05/11(火) 03:12:47
デザインパターン (ソフトウェア) - Wikipedia
ttp://ja.wikipedia.org/wiki/デザインパターン (ソフトウェア)

354デフォルトの名無しさん:2010/05/11(火) 03:16:11
専門板で鼻の穴膨らませてパターン系の Wiki 貼ってるバカは何なの? 新卒?
355デフォルトの名無しさん:2010/05/11(火) 04:21:18
>>349
具体例を示さないで妄想を騙る言い訳COBOLer老害乙
アンチパターンを使った方がいい例を実例で示してごらん
356デフォルトの名無しさん:2010/05/11(火) 04:22:27
>>350
信頼できる情報源に恵まれた出典が載っていれば信用できる
357デフォルトの名無しさん:2010/05/11(火) 04:24:30
具体例を示さないでアンチパターンをマンセーしているようじゃ
ただのオッサンとしか思われないだろうな。

そんな環境が勧められる案件は組み込みくらいだしな。

>>350みたいなのがメモリがたっぷりあるのに無駄にメモリ節約に拘る傾向にあるんだよな。
358デフォルトの名無しさん:2010/05/11(火) 04:30:21
>>355
おまえさ、不適合ケースが思い付かないって事はどういう経緯や利点があってパターン化されたか
理解してずに (つまりパターンの欠点も理解せずに) 盲信していますと白状しているようなもんだぜ。
どこかで覚えたような単語ばかり並べつらうよりも、もう少し自分の言葉で話せるよう経験を積んだ
方が良いな。ここは技術板だぜ。
359デフォルトの名無しさん:2010/05/11(火) 04:33:25
そいつ Eclipse スレのアフォウヨだよ。
360デフォルトの名無しさん:2010/05/11(火) 04:36:00
>>356
出典元から正しく引用等されてるかの保障が無い
出典元がインターネットサイトなら確認は容易いが
書籍の場合はどうしようもない
361デフォルトの名無しさん:2010/05/11(火) 04:38:47
おまえら早起きだな
362デフォルトの名無しさん:2010/05/11(火) 04:45:24
経験浅い小心者は指摘恐怖症に陥って原理主義、教典主義に走りがち
363デフォルトの名無しさん:2010/05/11(火) 04:46:58
世間様から遅れてのGW
364デフォルトの名無しさん:2010/05/11(火) 04:48:37
パターンどうこうなんて深く論じても宗教論争にしかなんねーよ。
365デフォルトの名無しさん:2010/05/11(火) 04:49:45
TeraPad使ってJavaのソース書いてる俺は異端
366デフォルトの名無しさん:2010/05/11(火) 05:01:05
たまに深夜枠で宗教論争あるよなこのスレw
367デフォルトの名無しさん:2010/05/11(火) 05:03:00
連休が終わったというのに
368デフォルトの名無しさん:2010/05/11(火) 05:14:13
手打ちなのでタイプミスがあるかもしれませんが

class Parent{}
class Child extends Parent{}
public class Test
{
 public void check(Parent p)
 {
  //省略
 }

 public static void main(String[] arg)
 {
  Parent p = new Child();
  new Test().check(p);     // @
 }
}

@の記述は何?
checkを呼び出しているのはわかるのですが、このような記述は見たことがありません。
369デフォルトの名無しさん:2010/05/11(火) 05:15:21
この業界的な GW の過ごし方は新システム入れ替え作業だろう。
代休じゃねぇの。
370デフォルトの名無しさん:2010/05/11(火) 05:16:19
>>368
Test t = new Test();
t.check(p);

と同じ
371デフォルトの名無しさん:2010/05/11(火) 06:43:39
>>349
それもそうだが、そもそも、「初学者なんだけど、本人は中級者気取り」ってやつが多いw

というか本至上主義のヤツ多いの?
本の知識なんてそこそこの優等生なら勉強できる。そんなものには価値はない。(勉強しないやつよりはそりゃできるが。)
すげー技術者から教わる知識や考え方の方が価値が高い。
会社で一人くらいいるだろ?オプソのコミッタやってるやつとか、自社のフレームワークつくったやつとか。
そういうやつから教わる生きた知識の方が、役に立つぜ。
372デフォルトの名無しさん:2010/05/11(火) 07:41:07
>>371
知識の種類による。至上主義とかの問題じゃないだろう。
件のEffective Javaだってそこらの開発者が書いたなら
そこそこの信頼しかおけないが、書いた奴が言語の根幹に関わってる
とかなら信頼できる。それこそそこらにいるオープン開発者なんてのより。

でも定数に必ずenum使えなんて書いてあった覚えないんだけど。
件の彼は文字列定数にもenum使えって言っているのだろうか。

まあどちらにしろ>>252のようなインタフェースならざる
定数インタフェースは、俺が現場にいたら「やめて」と言う。
もっと別の方法でできるし、クラスに変な継承関係持って欲しくない。
見た時混乱するし、なにより嫌なニオイがする。
373デフォルトの名無しさん:2010/05/11(火) 08:06:19
static import があるから今時そんなんどうでも良いよ。
374デフォルトの名無しさん:2010/05/11(火) 14:04:40
>>359>>358は同一人物か?
頭大丈夫か?

実例を示せていない時点でお前も経験不足だな
375デフォルトの名無しさん:2010/05/11(火) 14:07:23
>>360
おいおい、その書籍を読めばいいだろ
絶版で入手困難な書籍はつらいがさ
図書館やそこいらの書店で手に入る書籍ならまだいいほうだろ
中には国会図書館まで出かけて確認する必要があるものすらあるんだぜ
376デフォルトの名無しさん:2010/05/11(火) 14:12:12
>>358
そんなにいうなら
なんでお前はアンチパターンの定数インタフェースを肯定しているんだ?
明らかに悪用されるケースが多いんだが。
まさか、メモリ節約だとか組み込み系メインだから、
先人が書いたシガラミにとりつかれたコーディング規約を守らなければならないから
とかいうその程度の不適合ケースで偉そうに吹聴しているわけではないよな?

ところでお前はenumの仕様わかってるか?
377デフォルトの名無しさん:2010/05/11(火) 14:17:37
あふぉうよとかいってる朝鮮人はマジこのスレにこなくていいよ
378デフォルトの名無しさん:2010/05/11(火) 14:22:34
多分>>358は無意味な禅問答をしているかハッタリかましてるだけじゃないかな
JavaのenumをCのenumと勘違いしているレベル
定数インタフェースのかわりにenumを使っちゃいけない理由なんてJavaのバージョンが古いとき
以外思いつかないんだが。

「関係ない要素を1つのenumに混ぜるから使って欲しくない」というなら
enum型を2つに分割すればいいだけの話だしな
379デフォルトの名無しさん:2010/05/11(火) 14:30:21
>>372
文字列定数って"SUNDAY","MONDAY", ... みたいなやつ?Enum使うんじゃないかなあ。
380デフォルトの名無しさん:2010/05/11(火) 14:32:44
>>372は定数インタフェースもenumも使わないなら
かわりにどうやって定数を定義するつもりかね

まさか、ResourceBundleとか言わないよねw
あれ定数じゃないから
381デフォルトの名無しさん:2010/05/11(火) 14:33:38
なにこの連投厨
382デフォルトの名無しさん:2010/05/11(火) 14:35:54
人がいっぱい居るように見えるんだろう。
383デフォルトの名無しさん:2010/05/11(火) 14:38:58
分身の術www
384デフォルトの名無しさん:2010/05/11(火) 14:59:21
javaって響きが嫌だ
385デフォルトの名無しさん:2010/05/11(火) 15:28:10
>>349曰く「Properties使って定数を作りました。それがenumよりも優れたパターンです。」
386デフォルトの名無しさん:2010/05/11(火) 15:29:26
どうすんだよこの粘着…
387デフォルトの名無しさん:2010/05/11(火) 16:01:40
みんなJavaのenumとC/C#のenumは仕様が違うこと前提で話してるよね?
388デフォルトの名無しさん:2010/05/11(火) 16:02:34
Java スレでそんな疑問を持つ方がどうかしている。
389372:2010/05/11(火) 16:03:17
>>379
列挙したくないものに対して無理やりenum使う必要はないよ。まったくの労力の無駄。
てか、文字列定数を列挙にするって、toStringでも実装させる気?

あと定数は文字列に限らないよ。
コレクションクラスによる定数とかあるでしょ。

>>380
定数インタフェースは使わないで、
適切な場面でのみenum使うって言ってるんだけど。
普通の定数はユーティリティクラス的なものに定義するか、
各クラスに定義するでしょ。

もうちょっと他人の言ってることを理解する努力をしようぜ。
脳内で>>XXX=>>YYYなんてやってるから
他人の言うことを曲解してしまうんだよ。
390デフォルトの名無しさん:2010/05/11(火) 16:14:30
>>389
> >>379
> 列挙したくないものに対して無理やりenum使う必要はないよ。まったくの労力の無駄。
> てか、文字列定数を列挙にするって、toStringでも実装させる気?

enumで定数名をそのまま文字列に置き換える場合はわざわざtoString()のオーバーライドは不要ですが


>
> >>380
> 定数インタフェースは使わないで、
> 適切な場面でのみenum使うって言ってるんだけど。
> 普通の定数はユーティリティクラス的なものに定義するか、
> 各クラスに定義するでしょ。

それてその定数はほとんどpublicでint型なんですね
はい問題がおきましたね
391デフォルトの名無しさん:2010/05/11(火) 16:15:10
>>388
C/C#慣れしたJava初心者はよく勘違いするんだこれが
Cのenumとまったく同じだと
392デフォルトの名無しさん:2010/05/11(火) 16:17:50
どう考えても勘違いするようなスキームじゃないが。
なんか話作ってないかおまえ。
393デフォルトの名無しさん:2010/05/11(火) 16:18:30
>>389
このスレ(この流れ)ではそれをもうちょっと具体的に示した方が良いんじゃないの?

>>379はenum使う例だよね、じゃあ使わない例は?
(あるいは>>379が使わない例だとすると、使う例は?)
394デフォルトの名無しさん:2010/05/11(火) 16:23:37
>>390
enumの列挙のシンボルと文字列表現が一致しているような
場合ってのはそんなに無い。むしろ特殊例。
まさかとは思うけど、同じ感覚でordinal()使ってないよね?
某有名FWが列挙にordinal()依存の設計してて殴りたくなった。

で、publicでint型だと何の問題があるの?

一体Effective Java第2版をどういう読み方をしたら
そういう意味不明な考え方に至るのか不思議だわ。
395デフォルトの名無しさん:2010/05/11(火) 16:28:18
>>393
SUNDAY, MONDAYを列挙する必要があるなら
enumでよい。EnumSet.of(SUNDAY, SATURDAY)やら好きにやってくれ。

使用する場面が限定されていて、単純に
"日曜日"、"月曜日"を出したいだけなら定数でよい。
そもそも、通常の業務系開発だとenumで文字列を切り出すにしても
enumの文字列表現自体は別の定数クラスに切り出すこと多いけどね。

で、enum使わない例。そんなのはいくらでもあるだろ:
/** デフォルトのXXXの長さ */
public static int DEFALUT_LENGTH = 50;

そもそもenum使う予定すらないのに、
enum使い始めたりするとYAGNIに反するわけだ。
だいたいenumが提供できるのはオブジェクトの値というよりは、
オブジェクトのシングルトンなアイデンティティなわけだろう。
値を返すために、どれぐらい実装工数割きたいのか理解不能。
396デフォルトの名無しさん:2010/05/11(火) 16:30:39
>>394
お前の考えてる例のほうがよっぽど特殊例
Effective Java読んでいればordinal()が以下にヤバいものかわかってるはずだが

int型定数の問題点もな
お前がint型定数どうしで加減乗除した判定メソッドを作る馬鹿の暴走を防ぐことを考えていないのがまるわかりだ
397デフォルトの名無しさん:2010/05/11(火) 16:33:16
そんな低レベルなコーダー抱えてる下請けは大変だな。
398デフォルトの名無しさん:2010/05/11(火) 16:36:16
俺は>>396君が一体何と戦っているのか
理解できないので、そろそろ退散します。
399デフォルトの名無しさん:2010/05/11(火) 16:37:59
>>395
> で、enum使わない例。そんなのはいくらでもあるだろ:
> /** デフォルトのXXXの長さ */
> public static int DEFALUT_LENGTH = 50;

ここがアウトだな
その定数をそのクラスか同じパッケージでしか使わないならわざわざpublicにする必要がない

> そもそもenum使う予定すらないのに、
> enum使い始めたりするとYAGNIに反するわけだ。
> だいたいenumが提供できるのはオブジェクトの値というよりは、
> オブジェクトのシングルトンなアイデンティティなわけだろう。
> 値を返すために、どれぐらい実装工数割きたいのか理解不能。

enum型書くのにそんなに工数かからないわけだが
曜日の例もenum { SUNDAY, MONDAY };程度で非enumや内部クラスよりも簡潔だ
400デフォルトの名無しさん:2010/05/11(火) 16:39:01
>>396
下 2 行って enum じゃ解決できない (関係ない) し、メソッドで隠蔽しても同じ事じゃね?
どういう魔法使ったら防げるの?
401デフォルトの名無しさん:2010/05/11(火) 16:40:57
あと何で後出し条件で勝ちほこってんの?
402デフォルトの名無しさん:2010/05/11(火) 16:44:23
>>400
そもそも防ぐ必要すらないと思うよ。
たぶん今暴れてる子は大きなプロジェクトに入って
開発したことないんじゃないかな。
403デフォルトの名無しさん:2010/05/11(火) 16:45:07
>>395
> 使用する場面が限定されていて、単純に
> "日曜日"、"月曜日"を出したいだけなら定数でよい。

>379がどういうケースかしらんが後から火曜日〜土曜日を追加すること考えると
enumのほうがましといえばましだな。

> そもそも、通常の業務系開発だとenumで文字列を切り出すにしても
> enumの文字列表現自体は別の定数クラスに切り出すこと多いけどね。

無駄に定数クラスを増やしてんな。そういうときこそenum内でtoString()オーバライドしたほうがまし。
どっちがどんだけ実装工数割いてるんだ。
404デフォルトの名無しさん:2010/05/11(火) 16:45:48
>>398
ただの逃げかよインタフーフェース定数パターンオヤヂw
405デフォルトの名無しさん:2010/05/11(火) 16:48:29
>>400
> >>396
> 下 2 行って enum じゃ解決できない (関係ない) し、メソッドで隠蔽しても同じ事じゃね?
> どういう魔法使ったら防げるの?

加減乗除したくない定数どうしをそれぞれ異なるenum型で宣言すれないい。
406デフォルトの名無しさん:2010/05/11(火) 16:49:09
>>402
定数インターフェースオヤジの最後の言い訳かよw
どっちが暴れてんの
407デフォルトの名無しさん:2010/05/11(火) 16:54:32
>>405
いやだからバッファサイズとかスレッドプール数とか具体値が必要な場合は
どうすんのって。コアライブラリ全部ラッパー化する気?
408デフォルトの名無しさん:2010/05/11(火) 16:55:37
>>400
>>402
自演くせぇ
409デフォルトの名無しさん:2010/05/11(火) 16:56:43
>>407
何のバッファサイズとスレッドプール数が欲しいのかいってごらん
具体的に
410デフォルトの名無しさん:2010/05/11(火) 16:56:55
>>407
enum BUFFER_SIZE{
BUFFER_SIZE{ @Override int getValue(){return 1024;} };
abstract int getValue();
}

こうしたいんじゃないんだろうかw
411デフォルトの名無しさん:2010/05/11(火) 17:02:19
>>409
じゃあ例としてファイル入出力のためのバッファサイズ (BufferedInputStreamを使用) を
Windows の標準スペックに合わせて 4*1024 バイト (8kだっけ?) で指定する場合は
どう 4kB を enum で定義すんの?
412デフォルトの名無しさん:2010/05/11(火) 17:11:09
>>411
enum { B4096 }
new BufferedInputStream(new FileInputStream(file, Integer.parseInt(B4096.name().substring(1))));

こうじゃね?w
413デフォルトの名無しさん:2010/05/11(火) 17:13:48
>>412
String B4096="B4096";
new BufferedInputStream(new FileInputStream(file, Integer.parseInt(B4096.substring(1))));

こうじゃね?
414デフォルトの名無しさん:2010/05/11(火) 17:20:38
いやいやどう考えてもこうだろ。

enum IS {
   IN1K(1024),
   IN2K(2048),
   IN4K(4096),
   IN8K(8192),
;
   private final int bufsize;
   private IS(int bufsize){ this.bufsize = bufsize; }
   public InputStream getInputStream(File file) throws IOException{
       return new BufferedInputStream(new FileInputStream(file), bufsize);
   }
}

InputStream in = IS.IN4K.getInputStream(file);
415デフォルトの名無しさん:2010/05/11(火) 17:34:32
ISの特定値を複数クラスで参照するような場合があったとして、
その定数を作りたいんだけど、その特定値含むenum定数作んなきゃダメ?
416デフォルトの名無しさん:2010/05/11(火) 18:42:48
>>411-415
そもそもそんなものをpublic static finalにする必要があんのかと
そんな定数作るなら使う場所が限られてるんだからpublicな定数インターフェースパターンなんかにする必要ないだろって
話だと思うんだが。

俺だったらそういうのはpublicにしないが。
だいたいそのクラスでしか使わないならパッケージプライベートかprivateな定数として宣言する。
417デフォルトの名無しさん:2010/05/11(火) 18:44:15
Eclipse のアフォ零細ウヨと同時に現れる enum 厨。
418デフォルトの名無しさん:2010/05/11(火) 18:47:30
>>416
えーと、勝手にケース想定作らずに答えて頂けませんか?
419デフォルトの名無しさん:2010/05/11(火) 18:50:04
Eclipse って Eclipse スレか。
偏見ウヨで教典主義ってエンジニアとして終わってんな。
420デフォルトの名無しさん:2010/05/11(火) 19:27:42
>>250-252
これがこの騒ぎのきっかけか?
421デフォルトの名無しさん:2010/05/11(火) 19:36:00
その話題はもういい
422デフォルトの名無しさん:2010/05/11(火) 19:59:03
>>417
平日の昼間からアフォウヨ連呼して暴れてるチョンニートか
423デフォルトの名無しさん:2010/05/11(火) 20:00:18
>>419
ウヨという言葉を不用意に使うと在日と間違えられるぞ
民団がサイトで「外国人参政権を取得するためにネット・右翼と戦う」とか
変なこと書いてるからな
リアルで在日だったらご愁傷さまだが
424デフォルトの名無しさん:2010/05/11(火) 20:17:40
Eclipse スレの アフォウヨ ってマジで enum 厨だったのかw
425デフォルトの名無しさん:2010/05/11(火) 20:27:04
>>423
実家は江戸初期に開拓された土地で周囲も同じ名字ばかりだし、直系で明和、
分家で戦国、史料で室町まで遡れるんでご心配なく。君はどこから日本人?
426デフォルトの名無しさん:2010/05/11(火) 20:34:21
ここは質問スレッドだ
スレッド荒らすな
427デフォルトの名無しさん:2010/05/11(火) 20:36:26
オマエガナー
428デフォルトの名無しさん:2010/05/11(火) 21:42:31
>>425
とりあえずソース出そうか
ネトウヨを連呼している奴はルーピーズって呼ばれるくらいろくなヤツがいないがな
429デフォルトの名無しさん:2010/05/11(火) 21:48:31
聞いてるのはこっちなんだが、どうも出生は言えないみたいだな。
半島起源の街宣ウヨだったか。
430デフォルトの名無しさん:2010/05/11(火) 21:49:21
ネトウヨを連呼している奴が実は在日朝鮮人で街宣右翼やってるヤクザって話は有名だな
431デフォルトの名無しさん:2010/05/11(火) 21:56:23
キムチ臭い奴がいるな
とりあえずお前の持ってるクレジットカード使って
本人認証でもしてみw
432デフォルトの名無しさん:2010/05/11(火) 21:56:42
こうやって保守の名を落とす活動って本国からの指令なんだろうな。
さっさと祖国へ帰れば良いのに。
433デフォルトの名無しさん:2010/05/11(火) 22:01:41
>>425
媚中のアホ犯罪者小沢一郎が信じてる騎馬民族征服王朝説をお前も信じてるのか
434デフォルトの名無しさん:2010/05/11(火) 22:04:24
こんやは酷い電波ですね
435デフォルトの名無しさん:2010/05/11(火) 22:06:20
ガイキチはせめて Eclipse スレから出てくるな
436デフォルトの名無しさん:2010/05/11(火) 22:25:06
そんな例は他の板で見かけるがな
だがお前は何か勘違いしているようだ
437デフォルトの名無しさん:2010/05/11(火) 22:26:24
いや「ウヨ」を連呼しているクズはEclipseスレからもJavaスレからも出て行って欲しい
いやこのプログラム技術板から出て行って欲しい
438デフォルトの名無しさん:2010/05/11(火) 23:42:03
そうやって相手にするから居座られて、
さらなる糞スレ化が進むわけだが
439デフォルトの名無しさん:2010/05/12(水) 02:05:49
ネットルピどもが暴れようが、お前らが黙々とJavaの話題を続けていれば糞スレ化は免れるんだよ
440デフォルトの名無しさん:2010/05/12(水) 03:46:13
新しいJDK使ってコンパイルしたものは古いJavaVM上では動作しない?
441デフォルトの名無しさん:2010/05/12(水) 04:19:33
ProGuard?
442デフォルトの名無しさん:2010/05/12(水) 04:20:49
>>440
デフォルトではそう。以下の点に注意すれば可能。

・対象とするJavaのバージョンでサポートされていない機能を使わない。
1.4なら、5.0で追加されたアノテーションとかenumとかを使わない。
1.3なら、加えてassertも使わない。
もちろん、新しいJavaで追加されたAPIは、すべて使用を控える。

・javac のオプション-target に、対象とするVMのバージョンを指定する。
ttp://java.sun.com/javase/ja/6/docs/ja/technotes/tools/windows/javac.html#crosscomp-options
443デフォルトの名無しさん:2010/05/12(水) 04:23:25
なるほど。ありがとう
444デフォルトの名無しさん:2010/05/12(水) 04:27:29
ジャヴァアプレットってやっぱ需要無いんかな
445デフォルトの名無しさん:2010/05/12(水) 05:13:54
物理・数学系の学生が勉強のためにアプレット作ったりするが
ゲームとかではFLASHのほうが一般的なのかな
446デフォルトの名無しさん:2010/05/12(水) 08:57:59
>>432
> こうやって保守の名を落とす活動って本国からの指令なんだろうな。
> さっさと祖国へ帰れば良いのに。

こういうことを言う奴が実は保守ではない例ってよくあるんだよな
「同じ日本人として恥ずかしい」とかいう発言も、実は日本人でなかったり
特亜人かぶれだったり反日左翼だったりな
447デフォルトの名無しさん:2010/05/12(水) 08:59:34
>>430
街宣右翼=実は左翼団体だからな
褒め殺し活動をして保守層を貶めるために右翼団体を名乗っていた左翼の朝鮮系ヤクザがわざとやっていたことが
最近になってわかってきたという
448デフォルトの名無しさん:2010/05/12(水) 09:00:24
>>429
まず自分から出生をあかしてごらん
在日君
449デフォルトの名無しさん:2010/05/12(水) 09:29:48
>>447
自演くせぇw
450デフォルトの名無しさん:2010/05/12(水) 09:31:05
極東板行け
451デフォルトの名無しさん:2010/05/12(水) 09:42:25
バイブル振りかざして反論できなくなったらファビョって在日認定 & ネット亡国論とか、
どこの恥ずかしいバカだよこいつ。
452デフォルトの名無しさん:2010/05/12(水) 09:46:41
ああ、バカだからバイブルやコピペ振りかざすしかないのか。
453デフォルトの名無しさん:2010/05/12(水) 10:05:50
斜陽 Java 産業にふさわしい展開
454デフォルトの名無しさん:2010/05/12(水) 10:28:48
public class Test
{
 private String msg;
 public Test(){ this("Good");}
 public Test(String msg){msg=msg;}
 public String toString(){return("msg:"+msg);}   //@

 public static void main(String[] arg)
 {
  System.out.println(new Test());
 }
}


実行結果は、msg:nullになります。
質問は、@の行のtoStringがどこから呼ばれているのか?です。
よろしくお願いします。
455デフォルトの名無しさん:2010/05/12(水) 10:33:07
>>454
>  public Test(String msg){msg=msg;}
 public Test(String msg){this.msg=msg;}
456デフォルトの名無しさん:2010/05/12(水) 10:34:12
>>454
msg=msg; はパラメータ変数 msg 自身に自分の値を設定しているので、
インスタンス変数の方の msg は null (初期値) のまま。つまり結果的に
何の状況も変わっていない。

正しくは this.msg = msg;
457デフォルトの名無しさん:2010/05/12(水) 11:20:41
>>454
"msg." + msg は以下に翻訳される
new StringBuilder("msg.").append(msg);

StringBuilderのappendメソッドの中で
String.valueOf(msg)が呼ばれる。
このときmsgがnullであれば"null"という文字列に変換される。
null以外であれば、msg.toString()の結果の文字列に変換される。
458デフォルトの名無しさん:2010/05/12(水) 12:56:35
コンストラクタのthisって初めて知った
459デフォルトの名無しさん:2010/05/12(水) 15:49:10
>>451
ネット亡国論とかどこで覚えたんだよ
お前のほうがよっぽど恥ずかしいよ
そんなこと言う奴はネットで左翼的な発言や小泉改革に対する陰謀論を繰り返し唱えている
ミラーマンやリチャード・コシミズのようなアホどもだけだよ
460デフォルトの名無しさん:2010/05/12(水) 15:49:51
>>451 >>452
自演くせぇw
461デフォルトの名無しさん:2010/05/12(水) 15:50:32
そもそも定数インタフェース信者からの反論がない時点で(ry
462デフォルトの名無しさん:2010/05/12(水) 15:51:22
どっちが反論できない馬鹿なのかわかりきったことだけどねぇ
定数インタフェース信者は具体的になにが悪いのか説明できない時点でファビョって
左翼発言連呼してっからな
463デフォルトの名無しさん:2010/05/12(水) 15:54:07
どうしてこうなった・・・
464デフォルトの名無しさん:2010/05/12(水) 15:55:19
性格が自分の間違いを認めない中国人や朝鮮人そっくりだな

なんか中国を崇拝しているようだが、とんだ馬鹿だな
この馬鹿は社会主義思想に陥ったか?
465デフォルトの名無しさん:2010/05/12(水) 15:56:11
>>458
それは良かったですね
466デフォルトの名無しさん:2010/05/12(水) 16:21:42
>>451-452が定数インタフェース信者ってとこか?
467デフォルトの名無しさん:2010/05/12(水) 16:29:48
他人の意見にはただ否定ばかりして文句をつけておいて自分の考えを表明しない奴は
たいがいはハッタリでしょ
468デフォルトの名無しさん:2010/05/12(水) 16:47:06
何このものすごい連投。
469デフォルトの名無しさん:2010/05/12(水) 17:07:39
完全に居座ったみたいだな。どうすんだよこの厨二病。
470デフォルトの名無しさん:2010/05/12(水) 17:12:16
変なのはスルーして
他の質問等にたんたんと答えていけばいいんじゃね
471デフォルトの名無しさん:2010/05/12(水) 17:16:50
香ばしいスレは即 NG。
2ch で時間を無駄にしないための鉄則。これ。
472デフォルトの名無しさん:2010/05/12(水) 17:18:45
しゃあねえな
ほとぼりが冷めるまで
このスレ放置。bye
473デフォルトの名無しさん:2010/05/12(水) 18:33:10
>>469
悪名高い中国人と朝鮮人を追い出せば解決するんでね?
474デフォルトの名無しさん:2010/05/12(水) 19:28:35
notepad.exeでjavaやってる俺って
もしかして最強じゃね?
475デフォルトの名無しさん:2010/05/12(水) 19:45:52
古いバージョンってどうやったらダウンロードできます?どうもアップロードしたら機能してなくてシステム一覧からも消え去って
476デフォルトの名無しさん:2010/05/12(水) 19:55:10
>>442のこれとは別件?
477デフォルトの名無しさん:2010/05/12(水) 19:55:58
OSが古くてJDKが動かないとかじゃないの
478デフォルトの名無しさん:2010/05/12(水) 19:57:01
>>475
ブックオフ等の古書店池
CD付きの古いJava雑誌とか入門書ゲとしてこい
479デフォルトの名無しさん:2010/05/12(水) 20:08:55
相変わらず役に立たない奴だな
http://java.sun.com/javase/downloads/previous.jsp
480デフォルトの名無しさん:2010/05/12(水) 21:04:40
toString ってどこから来るの、という問に誰も答えようとしない点についてw

>>454
調べ方(基本編)
APIヘルプで System.out を調べると PrintStream なわけだ。
そしてオブジェクトを受ける println(Object x) を辿ると、
「このメソッドは、最初に String.valueOf(x) を呼び出して、出力されたオブジェクトの文字列値を取得します。」
とある。
String.valueOf(x) それもやはりオブジェクトを受ける valueOf(Object obj) を見てみる。すると戻り値の項に
「引数が null の場合は、"null" に等しい文字列。そうでない場合は、obj.toString() の値」
とあって、toString() が呼ばれていることが分かる。

調べ方(応用編)
ヘルプが正しいとか完璧とは限らない。しかし JDK のフォルダを見ると src.jar というファイルがある。
これはソースをzip圧縮したものなので、src.zip と名前を変えて解凍するとソース見える。
ここで PrintStream で println(Object x) を探すと
String s = String.valueOf(x);
そこで今度は、String の valueOf(Object obj) を探すと
return (obj == null) ? "null" : obj.toString();
と書かれているので、toString が呼ばれていることが実際に確かめられる。
481デフォルトの名無しさん:2010/05/12(水) 21:11:20
調べ方(邪道編)
ソースがあるなら良いのだが、無かったらどうするか?
Eclipse はバイトコードをソースに逆コンパイルするjadというツールが組み込まれている。
デバッガで、関数の中にステップインするとバイトコードが逆コンパイルされる。
これを追えば、ソースが無くとも確認できる。
482デフォルトの名無しさん:2010/05/12(水) 21:51:37
調べ方(金持ち編)
ゴスリンに聞きに行く。
483デフォルトの名無しさん:2010/05/12(水) 23:20:22
>>442
GenericsはOKなんだ
484デフォルトの名無しさん:2010/05/12(水) 23:23:42
>>478
そんなありえない話あるかw
Sunがいままでそこまでひどいことをしたことがあるかw

>>481
組み込まれてないから。
自分でインストールしないと使えないから。
485デフォルトの名無しさん:2010/05/12(水) 23:31:04
EclipseはJadclipseとJadを自前でインストールしないと逆コンパイラ使えないぞ在日チョン
486デフォルトの名無しさん:2010/05/12(水) 23:31:25
7年くらい前にjavaをちょっとかじって、その後ずっとC#ばっかりやっていたのですが
最近javaをやることになりました。
無名クラスというC#の匿名メソッドみたいなのがありますが
あれって最近javaに対応されたのですか?
7年くらい前にはなかった気がするのですが。
C#もjavaも本当に似ていますね。
487デフォルトの名無しさん:2010/05/12(水) 23:33:58
C#は初期の頃javaの模倣品なんて言われてたが、その後独自の進化を遂げた
その結果C#からjavaに輸入された機能も数多くある
488デフォルトの名無しさん:2010/05/12(水) 23:41:34
普通の内部クラスも anonymous な内部クラスも JDK 1.1 時代
(1997年頃) から使えます。0.9 や 1.0 の頃は多分使えなかった
(そんな書き方聞いたことが無かった)。
489デフォルトの名無しさん:2010/05/12(水) 23:45:00
>>488
匿名メソッドとかあったんすね。
C#がどんどんjavaの良いところを取り入れたって感じですね。
C#は2.0から匿名メソッドが対応されたからなあ。
490デフォルトの名無しさん:2010/05/13(木) 00:16:53
blank finalのこともたまにでいいのでry
491デフォルトの名無しさん:2010/05/13(木) 00:33:29
1.
 Object obj1 = new Object();
 Object obj2 = new Object();
 Class<?> clazz1 = obj1.getClass();
 Class<?> clazz2 = obj1.getClass();
 boolean b = (clazz1 == clazz2);

2.
 boolean b = (Void.TYPE == void.class);

このような場合、両方ともbooleanはtrueになると思うのですが、
Class<T>クラスというのは1つの種類のクラスにつき常にVM上には1つしか存在しないのでしょうか?
492デフォルトの名無しさん:2010/05/13(木) 00:34:25
typoです、すみません。

誤 : Class<?> clazz2 = obj1.getClass();
正 : Class<?> clazz2 = obj2.getClass();
493デフォルトの名無しさん:2010/05/13(木) 00:37:01
違うクラスローダでクラスをロードした場合とか。
494デフォルトの名無しさん:2010/05/13(木) 00:38:43
staticじゃない変数にfinalを付ける事ってある?
495デフォルトの名無しさん:2010/05/13(木) 00:44:13
Button button = new Button("How are you?");
final TextField textfield = new TextField();
button.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent event) {
    textfield.setText("I'm fine!");
}
});

こんなんとか
496デフォルトの名無しさん:2010/05/13(木) 00:47:03
スーパークラスAのサブクラスBのサブクラスCからAのメソッドとか参照できるとか知らなかった。勉強になります
497デフォルトの名無しさん:2010/05/13(木) 00:48:45
>>495
これってfinal付ける場合と付けない場合でどういう違いがあるの?
498デフォルトの名無しさん:2010/05/13(木) 00:49:36
継承とな何ぞや、から再整理した方がいいんじゃないか
499デフォルトの名無しさん:2010/05/13(木) 00:49:40
finalがないとコンパイルできない。
500デフォルトの名無しさん:2010/05/13(木) 00:53:25
>>499
それじゃ不親切すぎるだろwwww

>>497
JDK1.1に変更入った部分だから相当前のことだけど、
メソッドのパラメータやローカル変数でfinalをつけると、
inner classつーか匿名クラスでもその変数を参照できるようになる。

まあfinalを外して動いちゃったとしても、参照先がズレそうだしな
501デフォルトの名無しさん:2010/05/13(木) 00:55:21
わかりました。ありがとうございます。勉強しなおしますです・・・
502デフォルトの名無しさん:2010/05/13(木) 00:58:55
可変長引数って使うことある?
503デフォルトの名無しさん:2010/05/13(木) 01:00:39
Arrays.asList('foo', 'bar', 'baz') とか便利でしょ?
504デフォルトの名無しさん:2010/05/13(木) 01:08:52
>>502
System.out.printfとか使わない?
505デフォルトの名無しさん:2010/05/13(木) 01:11:21
>>504
それが可変長引数だって知りませんですた。勉強になります。ありがとございやす
506デフォルトの名無しさん:2010/05/13(木) 01:36:48
>>505
おまえはなにを可変長引数だと思ったんだ?w
507デフォルトの名無しさん:2010/05/13(木) 01:51:38
508デフォルトの名無しさん:2010/05/13(木) 02:44:55
これからアプレット始めるなら、AppletとJAppletとどっち使ったほうがいい?
509デフォルトの名無しさん:2010/05/13(木) 03:36:39
>>508
どっちでもいいんじゃね?
両方対応させるのも難しくはなさそうだし
510デフォルトの名無しさん:2010/05/13(木) 03:37:13
>>489
C#はC++の悪いところも取り入れているのが難だな
511デフォルトの名無しさん:2010/05/13(木) 03:38:44
>>494
ばりばりあるぞ。
純粋主義者はよく使う。
不変性でググれ。
512デフォルトの名無しさん:2010/05/13(木) 03:43:20
>>508
機能性を考慮すると後者。
複雑なことやりたいなら断然Java SwingAPI(JAppletがあるほう)を使うのが望ましい。
513デフォルトの名無しさん:2010/05/13(木) 04:06:12
>>509,512
ありがとう
514デフォルトの名無しさん:2010/05/13(木) 04:23:41
この2行目のprivate String holidayをSundayの位置にもってくるにはどう書けばいいの?

enum Day{Sunday,Monday,Tsusday;
       private String holiday;}


こうかと思ったんだけどコンパイル通らない
enum Day{private String holiday;
       Sunday,Monday,Tsusday;}
515デフォルトの名無しさん:2010/05/13(木) 07:08:35
>>514
enum 定数の修飾子は許可されていません
というかpublic static finalです
516デフォルトの名無しさん:2010/05/13(木) 08:38:27
>>514
列挙は先、クラス定義は後にしか書けません。
517デフォルトの名無しさん:2010/05/13(木) 08:57:08
JITとJNIって共存できるんでしょうか。
過去に作ったJNI経由で作ったコードがそのまま動くか不安で。。。
518デフォルトの名無しさん:2010/05/13(木) 09:02:04
全然別物だから共存は可能。
519デフォルトの名無しさん:2010/05/13(木) 10:03:54
共存は可能だが、JNI部分はJITの最適化対象にできないから相性はあまりよくないと言われてる。
520デフォルトの名無しさん:2010/05/13(木) 12:24:52
一つ前のバージョンはどこでダウンロードできる?
521デフォルトの名無しさん:2010/05/13(木) 14:24:56
>>514
どうしてもそれをprivateにしたかったら
enum型自身をprivateにして他のクラスのフィールドにツッコむ。

public class Test {
 private enum Day { Sunday,Monday,Tsusday};
 private enum Holiday {};
}
522デフォルトの名無しさん:2010/05/13(木) 15:56:56
Java FAQ: よくある質問とその回答集
ttp://javafaq.jp/

↑このサイトに書いてあることどの程度信頼できる?
初心者向きなサイトとかあったら教えてほしいです
523デフォルトの名無しさん:2010/05/13(木) 16:00:50
>>521
おまえ >>514 の前提コードの意味分かってないだろ。
enum 云々言ってたわりにその程度も理解してなかったのか。
524デフォルトの名無しさん:2010/05/13(木) 16:13:13
>>522
だいたい信頼できるが更新とまってるんじゃなかったっけ?
元は日本のメーリングリストっぽいので不安だけど、そのメーリングリストって研究者・開発者相当いそうだし・・・

java source>api doc>オラクル本>改訂を行ったことがある本=javafaq ぐらいじゃね?
525デフォルトの名無しさん:2010/05/13(木) 16:27:31
どーもです
526デフォルトの名無しさん:2010/05/13(木) 16:59:49
>>522
5年前の情報なので古すぎる
527デフォルトの名無しさん:2010/05/13(木) 17:25:53
こういうスレ見てるとコーディング手法に対する意識が高そうに見えるけど
出向でいくつも渡り歩いた大小企業ではトンデモコーディングばかりお目にかかった
このネットと現実のギャップの大きさがいつも不思議でたまらんよ
528デフォルトの名無しさん:2010/05/13(木) 17:27:11
ヒント:ガイキチは声がでかい
529デフォルトの名無しさん:2010/05/13(木) 17:36:20
万年実装要員に甘んじてたらそりゃ職人的こだわりだって出て来るさ。
多少狂ってて無駄に声がでかいぐらいの方が成功する業界なんだよw
530デフォルトの名無しさん:2010/05/13(木) 17:48:30
>>523
おれも>>514の意図がさっぱり分からん。
531デフォルトの名無しさん:2010/05/13(木) 17:57:51
クラス定義部分を列挙シンボルより先に書きたいという話。
532デフォルトの名無しさん:2010/05/13(木) 18:32:39
>>522
最終更新日が2005年じゃあな。
ちょうどJava 5が出た年でしかもそのJava5以降ならではのFAQが全然載ってない。
533デフォルトの名無しさん:2010/05/13(木) 18:33:20
>>527
お前の企業がITドカタなんだろ
534デフォルトの名無しさん:2010/05/13(木) 18:36:22
>>523
そもそも>>514が自分の書いたコードでコンパイルエラーが出ることを知らないのが問題。
彼が何をしたいのかはっきり言えば彼に望みどおりの答えがでやすくなると。
535デフォルトの名無しさん:2010/05/13(木) 18:37:08
>>527
一歩外に出ればそんなもんだよ。

>>533
現実知らず。
536デフォルトの名無しさん:2010/05/13(木) 19:21:14
世の大半は中小零細というからな
537デフォルトの名無しさん:2010/05/13(木) 20:45:43
>>514がしたいことを想像してみる
曜日と休日の型が欲しい そもそも休日が日曜日だけなら余計なこと考える必要ねえ

休日だけ特別扱いしたいならこんなコードでも書けばいい
enum Day {
 Sunday(Holiday.Holiday), Monday(Holiday.Weekday), Tuesday(Holiday.Weekday),
  Wednesday(Holiday.Weekday), Thursday(Holiday.Weekday), Fryday(Holiday.Weekday), Saturday(Holiday.Weekday);

 private final Holiday holiday;
 Day(Holiday holiday){ this.holiday = holiday; }
 double method(){ return this.holiday.anyMethod(); }

 private enum Holiday {
  Weekday {
   double someMethod(){ //平日の処理
    return 何か;
   }
  },
  Holiday {
   double someMethod(){ //休日の処理
    return 何か;
   }
  };
  abstract double method();
  double anyMethod(){ //someMethod()を使った何かの処理
   何かの値 = someMethod();
   return 何かの値;
  }
 }
}
538デフォルトの名無しさん:2010/05/13(木) 21:01:38
どこで聞けばいいのか判らなかったので、ここで聞かせてください。

Javaでプログラム作成して、そのプログラム向けのインストーラーを
作りたいんですけど、Win,Mac両方のインストーラーを作れる
ツールってありますでしょうか?
>>538
例えばScalaのインストーラ版はIzpackというプロダクトを利用しているみたいですね。
http://izpack.org/
It is fully cross-platform and generates a single installer.
As such, it is an alternative to native solutions
such as platform-specific installers and package managers.
540デフォルトの名無しさん:2010/05/13(木) 21:23:59
何だこの糞みてぇなコテは
541デフォルトの名無しさん:2010/05/13(木) 21:27:28
>>538
そんなもんある・・・な、考えてみたら。
http://ja.wikipedia.org/wiki/Java_Web_Start
542538:2010/05/13(木) 22:00:18
>>539,541
izpackって凄そうですね。何でもできそうな雰囲気ですね。
試してみます。
ありがとうございました。
543デフォルトの名無しさん:2010/05/13(木) 22:40:52
.NET Frameworkのクラスを使って作成したDLLはJNIやJNAで呼び出せますか?
544デフォルトの名無しさん:2010/05/13(木) 22:42:30
>>539
Java Web Startがあればいらない気がする
545デフォルトの名無しさん:2010/05/13(木) 22:47:50
>>539
そのトリップすでに割れたトリップだよな
ググると9年ほど前から使ってるそうじゃないか
546デフォルトの名無しさん:2010/05/14(金) 00:55:24
-Xmx256m というオプションをつけなくても
最大ヒープサイズが256MBになってるんだけど、前からそうだっけ?
以前は64MBだった記憶があるんだけど。
それともうちの環境だけ?
547デフォルトの名無しさん:2010/05/14(金) 01:04:06
>>546

Java6ではまた変わってるのかもしれませんが。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/vm/gc-ergonomics.html
マシンの物理メモリの 1/64 か、妥当な最小サイズかの大きい方。
J2SE 5.0 より前は、デフォルトの初期ヒープサイズは妥当な最小サイズで、
プラットフォームごとに異なっていた。
548547:2010/05/14(金) 01:05:23
あ、コピペする行間違ってた。

物理メモリの 1/4 か、1GB かの小さい方。J2SE 5.0 より前のデフォルトの
最大ヒープサイズは 64MB。
549デフォルトの名無しさん:2010/05/14(金) 01:07:00
550546:2010/05/14(金) 01:20:41
情報ありがとう。
うちのマシンはメモリ1.5GBなので、
最新のJREでは1/6に変更されたとか?
JDK1.6のjava.exeでは64MBのままなのも気になる。
覚えていないだけで、自分で設定をいじってしまった可能性も否めない。
551デフォルトの名無しさん:2010/05/14(金) 01:31:21
上級者気取りで定数インターフェイスを愛用している?>>349
これについてどう思っているんだい?

http://java-house.jp/ml/archive/j-h-b/038501.html

>>349が見てきた失敗例とやらがどういうものか見てみたいんだけど。
アンチパターンを避けてEffective Javaなどに載っているテクニックやべからず集を遵守したから
失敗したわけではないよね?
遵守したからではなくどこか設計が間違っていたから失敗したんだと思うけどね。

アンチパターンを使った方がよいケースはメモリが限られているときや
今後拡張する予定がないと確実にわかった時や納期が遅れているとき
くらいではないのかい?


べからず集を否定するっていう行為が危険な思想だと思うけどね。
>>349が新たに部下をかかえたときに、べからず集を否定して、その思想を引き継いて
新人が勘違いしてとんでもないことをしでかすんじゃないかとね。
ようするに歴史を繰り返すということ。
552デフォルトの名無しさん:2010/05/14(金) 01:47:02
日に一度レスしないと済まないほどこたえたのか
553デフォルトの名無しさん:2010/05/14(金) 01:50:24
連投始まるから相手すんなよ。
554デフォルトの名無しさん:2010/05/14(金) 02:29:14
>>552-553
>>349本人か? みっともないぞ
555デフォルトの名無しさん:2010/05/14(金) 02:31:06
しょーじきどっちが連投してんだか
556デフォルトの名無しさん:2010/05/14(金) 02:37:31
>>551
だからYAGNI原則に反するといってるだろ

>>349がenumを否定してかわりに使用している定数インタフェイスの問題点
interface A {
 public static final int CONST = 1;
}

public class B implements A {
 public static void main(String[] args){
  System.out.println(A.CONST);

 }
}


>>551
349はC言語時代の人かと思われ
557デフォルトの名無しさん:2010/05/14(金) 02:40:38
途中で送信してしまった。レス番がなんかぐちゃぐちゃになってるけど気にしないで

定数インタフェイスの問題点はこれ

interface A {
 public static final int CONST = 1;
}

public class B implements A {
 public static void main(String[] args){
  System.out.println(A.CONST); 正しい使い方
  System.out.println(B.CONST); //こんな使い方ができてしまう
 }
}

Effective Javaに載ってる問題点は載せなくてもいいよね
みんな読んでるだろうから
558デフォルトの名無しさん:2010/05/14(金) 02:55:16
>>552
その上から目線の妄想も凄いわ。1日待ってレスしないと気が済まないのかっていってるが
お前は毎日暇なのか?
常に自分が正しいってみとめないわけな?

俺は初心者向けのスレッドで良書Effective Javaを否定していることが問題視しているんだよ。
初心者がEffective Javaが使えない本だと勘違いすることね。
あれだけJavaのイディオムまとまった洗練された本はそうそうないものだ。
そこいらの鉄則本や落とし穴本と比べるとよくできている本だと思うんだが。
あの本には一見よさそうに見えてよくないコードの例も載せているしなあ。
単なるべからず集だと思ったら大間違い。

詭弁でEffective Javaに対する変なこと広めないでくれないかな。
C言語から来た奴がああいう本を否定する気持ちがわからないでもないけどさ。
ああいう本を読むと、コードも綺麗になってバグも減るものだろう。
昔の『Java謎+落とし穴徹底解明』、『Javaの落とし穴』、『Javaの格言』といった本と比べたら
全然内容が洗練されていると思うんだが。あそこいらの本はJavaのバージョンがちょっとでも上がると内容が古くなって
どうしようもないのが多くてな。Effective JavaもJava 5が登場してから版上げを迫られたが、それと比べると
他の落とし穴本は内容がもっと古すぎてな。あてにならないことはよくわかる。

で、お前さんは、コードが綺麗になると自分の仕事がなくなる奴にとっては否定したくなるもんなのかね?
559デフォルトの名無しさん:2010/05/14(金) 03:05:31
ほら見ろ。
560デフォルトの名無しさん:2010/05/14(金) 03:08:14
>>558
ちょっと長いけどだいたい同意
『Javaの落とし穴』、『Javaの格言』はたしかよんだことあるけど、これも悪くはないよ
まあアンチ?がつくのも良書かねぇ

Java関連で買ったやつはやさしいJava、EffectiveJavaとGOFデザインパターンかな
どれもいい感じだったよ やさしいJavaはさすがにもう読まないがw
561デフォルトの名無しさん:2010/05/14(金) 03:10:25
なんか、詭弁の特徴のガイドラインを貼りつけたくなるなぁw


例:「定数インターフェイスははたして危険なものか」という議論をしている場合、あなたが
「犬は哺乳類としての条件を満たしている」と言ったのに対して否定論者が…

 1:事実に対して仮定を持ち出す
     「定数インターフェイスはアンチパターンだが、もしアンチパターンを作らない定数インターフェイスが存在したらどうだろうか?」
 2:ごくまれな反例をとりあげる
     「だが、時として定数インターフェイスのようなアンチパターンを使った方が良いこともある」
 3:自分に有利な将来像を予想する
     「何年か後、犬に羽が生えないという保証は誰にもできない」
 4:主観で決め付ける
     「初学者 (初心者はとりあえず越えたあたり) 〜中級手前あたりはべからず集をありがたがる。ちゃんと経験を積めば
       『何故このケースではアンチパターンを使った方が良いか』個別に判断出来るようになるはずだ。」
 5:資料を示さず自論が支持されていると思わせる
     「初学者 (初心者はとりあえず越えたあたり) 〜中級手前あたりはべからず集をありがたがる傾向が一般的だ。」
       「初学者〜中級手前あたりは、それを遵守して失敗しても自分のせいじゃないと心のどこかで言い訳できるからという見方が一般的だ」
 6:一見関係ありそうで関係ない話を始める
     「ところで、定数インタフェイスがよいアンチパターンだということは知っているか?」
 7:陰謀であると力説する
     「それは、べからず集と認めないと都合の悪いJoshua Blochが画策した陰謀だ」
 8:知能障害を起こす
     「何、定数インタフェイスとEffective Javaごときにマジになってやんの、バーカバーカ」
562デフォルトの名無しさん:2010/05/14(金) 03:11:06
 9:自分の見解を述べずに人格批判をする
     「Effective Javaを薦める奴は、初学者〜中級手前あたりで失敗しても自分のせいじゃないと
        心のどこかで言い訳している証拠。現実をみてみろよ」
 10:ありえない解決策を図る
     「結局、定数インタフェイスがアンチパターンにならなければ良いって事だよね」
 11:レッテル貼りをする
     「定数インタフェイスがアンチパターンだなんて過去の概念にしがみつく右翼はイタイね」   
 12:決着した話を経緯を無視して蒸し返す
  「ところで、定数インタフェイスがどうやったらアンチパターンの条件をみたすんだ?」
 13:勝利宣言をする
     「定数インタフェイスがアンチパターンだという論はすでに何年も前に論破されてる事なのだが」
 14:細かい部分のミスを指摘し相手を無知と認識させる
     「定数インタフェイスって言っても使った方が良いケースとよくないケースがある。もっと勉強しろよ」
 15:新しい概念が全て正しいのだとミスリードする
      「定数インタフェイスがアンチパターンではないと認めない限りJavaに進歩はない」
      「Effective Javaが初学者〜中級者向けの、設計をつっこまれたときに他人の言葉を借りないと言い訳できない奴専用の書籍だと
       認めない限りお前らに進歩はない」
563デフォルトの名無しさん:2010/05/14(金) 03:12:33
まだ続くのかよ。
564デフォルトの名無しさん:2010/05/14(金) 03:14:41
醜いスレになったもんだな
565デフォルトの名無しさん:2010/05/14(金) 03:18:40
>>560
『Javaの落とし穴』はJava5よりもずっと前の、Swingすら標準APIに組み込まれる前の
かなり古い本。とくにGUI関係は今ではほとんど参考にならないと思った方がいいぞ。
当時はかなり参考にはなったが。

『Java謎+落とし穴徹底解明』は著者が他の言語と比較してJavaを批判しひたすら愚痴をこぼしているだけの酷い本だった。
今となってはほとんど改善され対応策がいくらでもあるのでほとんど無価値な本に成り下がってしまった。

『Javaの格言』もちょっといまいちなところあったかな。当時はけっこう役に立った。
『Javaの鉄則』も、finalize()や序盤と例外処理の箇所は参考になった。今では類似した内容でIBMのdeveloper worksの記事のほうが
内容が新しくて役に立つが。『Javaの格言』と内容が似ていたな。
結城浩の『Java言語で学ぶデザインパターン』は始めはいいが、徐々に物足りなくなってくるブツだ。

あと『リファクタリング』『テスト駆動開発入門』。
YAGNIを崇拝するしているであろう>?349?はテスト駆動開発入門には否定的そうだが。
『リファクタリング』はかなり良書だ。結城浩が書いたリファクタリング本より内容が濃厚で参考になる。
566デフォルトの名無しさん:2010/05/14(金) 03:18:46
定数インターフェースとかの話続けるならコテハンつけてほしい。NGするから
他の質問とか回答が探しにくくなる
567デフォルトの名無しさん:2010/05/14(金) 03:19:55
>>349 >>552-553 >>559 >>563-564
お前は何しに来てんだ?
何のためにこのスレにレスしてんだ?
ただの野次馬か? ただのアンチか?
568デフォルトの名無しさん:2010/05/14(金) 03:20:38
>>566
そんな我侭言うな。検索しろよ。
自分でオリジナル正規表現作ってNG指定しろ。
569デフォルトの名無しさん:2010/05/14(金) 03:21:28
>>349が本当に上級者だと思って騙された奴は哀れだな
570デフォルトの名無しさん:2010/05/14(金) 03:21:38
>>567
おまえ同様わかりきってる知識だから
いちいち書くなと
どっかブログにでも書き溜めて
URLだけ貼り付けろ
571デフォルトの名無しさん:2010/05/14(金) 03:23:22
C言語から入ってオブジェクト指向をろくに知らない奴にはEffective Java
なんて本は嫉妬の対象なんだろ。
バリバリオブジェクト指向を使っているから
C言語時代に培われたテクニックが一切通用しない。
すると自分の立場が弱まる。だからそういう本やそういう本に載っているテクニックを
使っている者を否定したくなるんだろう。

まぁその典型が >>349 みたいな。
572デフォルトの名無しさん:2010/05/14(金) 03:23:26
いつまでこの話題続ける気だよ・・・・>>349がこのスレ見てるとは限らんだろ・・・定数インタフェのスレでも立ててそっちでやれよ
573デフォルトの名無しさん:2010/05/14(金) 03:24:14
恨み言ならブログでやれ。
574デフォルトの名無しさん:2010/05/14(金) 03:25:22
>>570
おいお前、「狭量」という言葉知ってるか?
いますぐ辞書で調べてみろ。

このスレにいる全員がお前と同じように知っているとは限らないぞ。

このスレは初心者がよく質問し、よく閲覧するスレだ。
お前だけのスレじゃねえんだ。静かにしろ。
575デフォルトの名無しさん:2010/05/14(金) 03:26:03
>>574
>お前だけのスレじゃねえんだ。静かにしろ。

ブーメラン乙
576デフォルトの名無しさん:2010/05/14(金) 03:26:17
>>572
>>349が見なくても初心者は見てるからな。
初心者に勘違いさせてはならないからな。
Effective Javaの価値を貶めて初心者を騙す奴は許さん
577デフォルトの名無しさん:2010/05/14(金) 03:28:29
キチガイが大車輪中wwwwwっwwwwwwwwwww
578デフォルトの名無しさん:2010/05/14(金) 03:28:59
>>575
で?
579デフォルトの名無しさん:2010/05/14(金) 03:32:04
昔のこのスレはほとんどが学生や新人研修でJavaを教わるJava初心者しか来なかったと思う。
ところがここ5年ほどでアンチも流入してきたっぽい。
5年以上前まではアンチはほかのスレにいたのに、アンチが好んでいた言語の案件が減り、
Javaの案件が増えてから、Javaの仕事をやらされる羽目になって、習得したくないJavaを習得するために
このスレを覗くようになったアンチもいるのではないかと思う。

ここ5年ほどの影響はそれかもしれない。
580デフォルトの名無しさん:2010/05/14(金) 03:32:47
>>573
今恨み言なんかあるか?
頭大丈夫か?
581デフォルトの名無しさん:2010/05/14(金) 03:41:14
>>579
アンチなんてもっと前から居るだろ。
C# が出た頃の死滅スレ乱立時代がどんだけ凄まじかったか知らんのか。
582デフォルトの名無しさん:2010/05/14(金) 04:24:40
なにこの惨状。
583デフォルトの名無しさん:2010/05/14(金) 04:28:24
>>579
高級言語ひとつ知ってたら後は似たようなもんじゃん
新しい言語嫌なんて言ってる輩がこの奴隷業界で生き残れるとは思えん
仕事で心身ともに病んでしまった人がたまにスレで発狂してるんだよ多分
同情するぜ
584デフォルトの名無しさん:2010/05/14(金) 04:44:57
病んでるな。このキチガイ振りと出現時間帯じゃ社会生活も上手く行ってないんだろうが。
585デフォルトの名無しさん:2010/05/14(金) 08:53:57
悪口が上手なほうが優勢に見える。
586デフォルトの名無しさん:2010/05/14(金) 10:46:07
>2010/05/14(金) 04:44:57
>出現時間帯

そこまで自己分析できてるなら上出来
夜ちゃんと寝付けたらカッカするのも治る
あとは週末ゆっくりと心を休ませなさい
587デフォルトの名無しさん:2010/05/14(金) 10:57:42
連日ミンスの連中相手にネット情報戦で常勝している俺は週末も寝る暇がないがな。
588デフォルトの名無しさん:2010/05/14(金) 11:10:09
よっぽど信用できないコーダー相手にしてるんだろうなぁ。
589デフォルトの名無しさん:2010/05/14(金) 11:54:13
>>576
>初心者
これを理由にするのおかしい
定数インターフェースだけこと丁寧に説明する理由にはならない
初心者を理由にするなら
他の質問等にも懇切丁寧に回答すべき
そもそも定数インターフェースを使ってるのが老害だけだというのなら
初心者には尚のこと関係ない
590デフォルトの名無しさん:2010/05/14(金) 13:49:57
>>588
電波が過ぎて信用されなくなったが正しいと思われ。
591デフォルトの名無しさん:2010/05/14(金) 13:52:48
ここどこ?
592デフォルトの名無しさん:2010/05/14(金) 14:06:00
Javaの質問スレッドではないことだけは確かだね
593デフォルトの名無しさん:2010/05/14(金) 15:20:45
こんなどうでも良いネタでよく鬼の首取ったように喜べるもんだ
594デフォルトの名無しさん:2010/05/14(金) 15:23:58
鬼の首を取ったようとか、
小学生がいかにも最近覚えましたというような
言葉は使わないほうがいい
595デフォルトの名無しさん:2010/05/14(金) 15:26:44
さあ、始まるザマスよ!
596デフォルトの名無しさん:2010/05/14(金) 15:33:01
はぁ? こいつリアルバカか >>594
597デフォルトの名無しさん:2010/05/14(金) 16:17:00
>>596
お前が究極変態バカ。トーラス状に脱肛してるぐらいバカ。
598デフォルトの名無しさん:2010/05/14(金) 16:32:17
初心者どもがあ

質問しろよぉおおお
599デフォルトの名無しさん:2010/05/14(金) 16:40:32
気狂いが荒らしてるスレに初心者が来るかよ
600デフォルトの名無しさん:2010/05/14(金) 16:45:25
うるせえ30年ROMってろ
601デフォルトの名無しさん:2010/05/14(金) 16:50:39
30年後もjavaはあるのだろうか
602デフォルトの名無しさん:2010/05/14(金) 17:09:42
余裕で存在してるにきまってんだろ
30年後滅びるのはGroovy
603デフォルトの名無しさん:2010/05/14(金) 17:15:07
30年後ってたしか
1900/1/1から8バイト符号付き整数でカウントしてるプログラムがおかしくなるんだっけ?
604デフォルトの名無しさん:2010/05/14(金) 17:29:55
息をする暇もなさそうだなw
605デフォルトの名無しさん:2010/05/14(金) 17:30:27
1ヶ月くらい前にJavaの入門書をブックオフで買ってきたんだけど
どうやら10年前ほどの入門書らしい(だから100円とお安かったのかも)
どうすればいい?
606デフォルトの名無しさん:2010/05/14(金) 17:31:35
そりゃ中身見ないで100円安いじゃん買い!ってノリで買った自分が悪いんだけどさ
607デフォルトの名無しさん:2010/05/14(金) 17:36:36
>>605
基礎的な部分はそこまで変わってないから読み進めるのもアリ。
だがそれで十分かというと、内容が古すぎるので十分ではない。
608デフォルトの名無しさん:2010/05/14(金) 17:40:21
>>605
ブックオフで売るのもアリ
他の古書店で売ってもいい
609デフォルトの名無しさん:2010/05/14(金) 17:47:04
最先端技術に関する書籍を古本で買うのが間違い
610デフォルトの名無しさん:2010/05/14(金) 17:48:09
新規出版でも既に古いなんてことだってザラだっていう
目まぐるしく情報技術は進んでいるっていうのに
611デフォルトの名無しさん:2010/05/14(金) 18:45:01
Java の何処が最先端だよ。6 が出たの何時だと思ってんだ。
612デフォルトの名無しさん:2010/05/14(金) 18:47:06
まぁJavaはそうかも知れんが
一般的にIT関連の書籍買うなら最新のを買うべき
613デフォルトの名無しさん:2010/05/14(金) 18:50:06
エフェ厨
614デフォルトの名無しさん:2010/05/14(金) 23:14:05
EffectiveJavaを引き合いに出されるのが嫌い?な人がいるみたいだけど
この本の内容以上にJavaを知り尽くしてる人ってこのスレにいるのかな?
EffectiveJavaの○○の項は○○の理由によって適切でないと思う、とか
そういう意見があるなら勉強になるから是非書き込んで欲しいんだけどなぁ
615デフォルトの名無しさん:2010/05/14(金) 23:52:29
EffectiveJavaを所有してないので
EffectiveJavaの話をされてもサッパリ意味不明です
616デフォルトの名無しさん:2010/05/15(土) 00:08:52
今買って損は無いよ。
次のJavaのバージョンもたぶん来年〜再来年ぐらいに出るだろうから。
617デフォルトの名無しさん:2010/05/15(土) 00:10:34
少なくとも今は持ってないので
618デフォルトの名無しさん:2010/05/15(土) 01:08:52
プログラミング言語JavaとEffectiveJava買うならどっち?
Java暦3ヶ月、プログラミング暦3年。Java極めたい。
619デフォルトの名無しさん:2010/05/15(土) 01:30:18
両方
620デフォルトの名無しさん:2010/05/15(土) 01:32:42
極めたいなら良書とされてるものは全部読む気で挑まんと
621デフォルトの名無しさん:2010/05/15(土) 01:35:38
>>618
プログラミングをやる理由は?
1.職業プログラマー(仕事)
2.学生(授業・研究等)
3.趣味(サークル活動、同人活動等で二人以上で活動)
4.趣味(個人的活動)
622デフォルトの名無しさん:2010/05/15(土) 01:48:00
そんな事きいてどうすんの?
623デフォルトの名無しさん:2010/05/15(土) 01:58:08
特に意味はない
624デフォルトの名無しさん:2010/05/15(土) 02:01:27
今のペースで5時間切り行けるん?
625デフォルトの名無しさん:2010/05/15(土) 02:11:40
>>>612
普通に考えて1じゃねーの?知らんけど
626デフォルトの名無しさん:2010/05/15(土) 02:14:52
>>612じゃなくて>>621
627デフォルトの名無しさん:2010/05/15(土) 04:15:59
質問です。
よく、入門用のサンプルソースで
try{
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
~何か処理をする~
}finally{
if(pw!=null) pw.close();
}
とありますが、BufferedWriter,FileWriterが全てちゃんとclose()される保証はありますか?
失敗するとしたら、どんなケースでしょうか。
個人的には、何か怖いので、

try{
FileWriter fw = new FileWriter(file)
BufferedWriter bw = new BufferedWriter(fw)
PrintWriter pw = new PrintWriter(bw);
~何か処理をする~
}finally{
~fw,bw,pwをそれぞれclose()
}

とした方が良いような気がするのですが、どうなのでしょうか。
628デフォルトの名無しさん:2010/05/15(土) 05:49:16
javaやったことないからわからない
629デフォルトの名無しさん:2010/05/15(土) 06:05:05
public class Test
{
 public static void main(String[] arg)
 {
   Test t = new Test(); //←@
 }
}

入門書のサンプルソースとか見ると@のような記述を見かけます。
すごーく違和感があります。自分自身のインスタンスを作るのはなんで?
630デフォルトの名無しさん:2010/05/15(土) 07:16:51
>>629
クラスメソッドがそのクラスのインスタンスを作るのは普通では?
シングルトンの実装とか。

サンプルのは Java が起動時に指定したクラスの main を呼ぶっていうお約束があるからだけどね。
631デフォルトの名無しさん:2010/05/15(土) 08:01:10
>>629
理解したのであれば返事をしなさい
632デフォルトの名無しさん:2010/05/15(土) 08:04:20
おまえの下手くそな説明じゃ理解できないってよ
633デフォルトの名無しさん:2010/05/15(土) 09:57:57
>>627
"何か処理をする"で System.exit() を呼んでしまうと、finallyは処理されない。

あとclose()に関してはPrintWriterとかBufferdWriterのソースのコンストラクタと
close()を見て「自分で確認」してみるといいよ。
634デフォルトの名無しさん:2010/05/15(土) 10:28:39
>>627
if(pw != null) を評価しているあたりで OutOfMemory や ThreadDeath などが発生した場合。
最終的に OutputStream のファイナライザでクローズ処理はするから、そういう
実行環境的なレアケースはそれほど神経質になる必要はない。
635デフォルトの名無しさん:2010/05/15(土) 10:32:21
>>629
staticメソッドでインスタンス生成する理由として
・より分かりやすい名前が付けられる
・インスタンスの数を制御したり、共用したりできる。
・mainメソッド

mainメソッドがエントリーポイントってのは、JavaがCからの
移行をターゲットにしたという事情で仕方ないかも。

public interface Executable {
 void execute(String[] args);
}
とかの方がJavaの思想に近いかな
636デフォルトの名無しさん:2010/05/15(土) 10:34:57
>>629
別にmainはTestクラスに記述しなくてもいい。
staticと非staticの世界は別だと思えばいい。

>>627
もしやるならpw -> bw -> fwの順番にクローズしてね。
637デフォルトの名無しさん:2010/05/15(土) 10:36:40
>>629
少し語弊のある説明だが
static と付いているメソッドは Test クラスに属してはいるが Test インスタンスの一部ではない。
単に Test というクラスの中で定義場所を借りているだけの、C で言うなら関数。だから
この中で Test のインスタンスを作るのは普通に行われる。もう一つ、Test インスタンスの
中で別の Test インスタンスを作るのも取り立てておかしな事ではない。

多分クラスとインスタンスの違いをもう少し理解すれば分かると思う。
638デフォルトの名無しさん:2010/05/15(土) 11:11:32
>>636
うん
639デフォルトの名無しさん:2010/05/15(土) 16:13:39
>>600
30年前にJavaは存在していなかった
30年前に2chは存在していなかった

そして2chはJavaよりも若い
640デフォルトの名無しさん:2010/05/15(土) 16:14:24
>>605
そなたがもしC#を極めたものなら
即座にゴミ箱に放り込むべき
641デフォルトの名無しさん:2010/05/15(土) 16:15:03
>>610
しかし、デザインパターン本は10年たってもそこそこ使える
古いのはサンプルコードだけ
642デフォルトの名無しさん:2010/05/15(土) 16:16:25
>>615
Effective JavaはJava本ランキングで1位を長期間キープした人気書籍
超おすすめ。
スパゲティコード書いて他人に迷惑かけることしか考えていない末端コーダが
末端コーダから脱出するにはぜひとも必読すべき本。
643デフォルトの名無しさん:2010/05/15(土) 16:19:24
>>618
前者は言語仕様についての本。内容をすべて把握すれば基本を完璧にマスターできるだろう。
読めば読むほどC#とJavaとの違いもわかってくるだろう。
後者はJavaの応用本。内包をすべて把握すればかなり多くの分野で応用が効くだろう。
C#,C++、Rubyなど他の言語でプログラミングするさいにも役立つ。
買うならなるべく最新の版のを買うこと。
Java5以前(2005年より前のは古いから買わないこと)
644デフォルトの名無しさん:2010/05/15(土) 17:21:44
Java5以前の形式でプログラム作らなきゃいけない場合ってあるの?仕事とかで
645デフォルトの名無しさん:2010/05/15(土) 17:30:05
>>644
普通にあるよ
646デフォルトの名無しさん:2010/05/15(土) 17:41:51
官公庁の司法試験のサイトが
未だにJava1.1のJVMが必要っていうのがあったな
647デフォルトの名無しさん:2010/05/15(土) 18:30:19
ってことは仕事人は古いJavaも知ってなきゃならないのか・・・大変だな
648デフォルトの名無しさん:2010/05/15(土) 18:56:16
Javaの正規表現について質問です。
"nickname":"何らかのテキスト"
という文字列から「何らかのテキスト」だけを抜き出す場合\"nickname\":\"([^\"]+)\"でいけるとおもうのですが、
何らかのテキストの中に"が含まれてしまう場合を想定すると、どのように正規表現を書けばよいでしょうか?
649デフォルトの名無しさん:2010/05/15(土) 19:00:11
後方互換だから、新しいバージョン仕様知ってるんだったらそんなに大変でもないんじゃないかな…
SwingじゃなくてAWT使わないと駄目、みたいなのはあると思うけど。
650デフォルトの名無しさん:2010/05/15(土) 19:03:20
"nickname":"(.*)"
651デフォルトの名無しさん:2010/05/15(土) 19:05:19
>>648
^"nickname":"(.*)"$
じゃダメなの?
# $無くても基本最長一致だから問題ない
652デフォルトの名無しさん:2010/05/15(土) 19:05:34
>>648
()の中の[^\"]を外して最長一致とか、
"$で行末の"まで一致とか?
653デフォルトの名無しさん:2010/05/15(土) 20:04:58
>>647
そんなに知る必要ないよ。
非推奨なAPIなんてセキュリティ上問題があるからパス。
654デフォルトの名無しさん:2010/05/15(土) 20:47:46
>>647
信託銀行の仕事やってたが、下手に新しいのを知ってると混乱して大変。
そこはおととしまで1.3のシステムを騙し騙し使ってた。
ホイホイ変更なんかやってられっかっー話。

・・・んでどうして1.5にリプレースとかアホな決定したんだろ。もう関係ないが。
655デフォルトの名無しさん:2010/05/15(土) 20:59:33
>>654
それは新しいAPIのことをよく知らないからだろう。
中途半端な知識では悪影響必至。
かといって古いままでいいとおもってると何時まで経ってもシガラミを引き継ぐ。
656デフォルトの名無しさん:2010/05/15(土) 21:27:56
1.3って2000年ごろだろ。
これを古いシステムとかって平気で言っちゃうってことは、flashとかadobeとかで浮かれた髪の毛染めてるファッションに見たいな奴らがついにジャバの世界にも入ってきたってことだろうな。
そいう奴はジャバには来て欲しくないしMSやC#の方が断然いいよ。
657デフォルトの名無しさん:2010/05/15(土) 21:33:46
1.5で結構変わったからなー
658デフォルトの名無しさん:2010/05/15(土) 21:40:22
普通に変わったよ
659デフォルトの名無しさん:2010/05/15(土) 21:40:30
正直1.4以前の現場が嬉しい人間なんてほとんどいないと思う。
Java=恐怖って考え方なら古いのがありがたいのはわかるけど。
660デフォルトの名無しさん:2010/05/15(土) 21:43:32
>>644
iアプリ
仕事じゃないひとで1.4以下というとモバイル環境ぐらいしか思い浮かばない
661デフォルトの名無しさん:2010/05/15(土) 21:51:56
1.5
1.6
それらの機能を使わないなら無理にアップ必要もない。
さすがに1.2のコレクションは使いたいとは思うけど、必要ならコレも自分で作れたり出来るしな・・・
662デフォルトの名無しさん:2010/05/15(土) 22:02:16
>>656
おいおい、いまどき髪の毛染めてるのがファッションって
2000年頃じゃその後すぐに1.4が出始めたころだろ
2000年頃といえばSwingとServletが注目されていたころだな。
あの頃はWeb開発といえばCGI + PerlかASPが主流でServletの仕事は
登場したばかりでJavaエンジニアの募集も膨れていた頃。
あの頃がJavaの案件が増え始めた時期だな。1.4が出ても
すぐに導入するところはそうそう多くなかった。
1.4からassertがキーワードになってJUnitのassert()が使えなくなって一時的に困惑したのは2002年頃だった。

すでにHot Spotで高速化しているにもかかわらず2000年頃は「Java遅い」って文句言うアンチがまだまだ多かった時期。
663デフォルトの名無しさん:2010/05/15(土) 22:02:19
>>661
Genelics、foreach、enum、static import、autoboxing、printf
annotation,java.awt.Desktop,java.util.Arrays,他 SWING/AWT
まあ使わなくてもできなくはないけど、慣れた今となってはつらいな
664デフォルトの名無しさん:2010/05/15(土) 22:03:29
どっちみちflashやadobeで浮かれた奴にはJavaなんてほとんど理解できないもんだが。
PHPすらろくにできない。知ってるのはHTMLくらい。そもそもflashすらろくに使いこなせない。
665デフォルトの名無しさん:2010/05/15(土) 22:04:39
いまどき髪の毛染めた奴に対する偏見を持ってるおっさんがいるとは。
そんなのを引き合いに出してMSやC#のほうがいいと言ってる奴は
どこのおっさんだ?
666デフォルトの名無しさん:2010/05/15(土) 22:05:27
アノテーションはないと困るわな。
Genericsとenumもないと困る。
すくなくとももう1.5より前に戻ることはできない。
667デフォルトの名無しさん:2010/05/15(土) 22:06:14
私服で仕事ができる環境で茶髪や金髪に文句言ってC#の宣伝してるやつは
どこの世界にいる人間だ?
668デフォルトの名無しさん:2010/05/15(土) 22:07:17
ジャバに限ったことではないけど、1.4が出て枯れるまで2年ぐらいは普通はどこも導入しないんだけど、そういうのを知らないでいろいろ妄想してるんだろうな・・・
669デフォルトの名無しさん:2010/05/15(土) 22:11:13
>>668
なぜ2年?
670デフォルトの名無しさん:2010/05/15(土) 22:25:04
1.6の魅力はjavafx(とスクリプト言語)かなって思うけど、去年はサン本体が混乱してたから1.6よりも1.5の方が普及してしまった。
>>663もよほどシステムに近いコアな機能(nioとか)じゃないから、なくてもいかなって感じはする。実際2−4行程度のコードだし。
例えばスクリプトサポートとか、invokedynamicとか、1.6じゃないとそのコア機能が使えないって言うなら1.6だろう。
そうじゃないなら別に1.4で言いと思うよ。さすがにnioは欲しい。
>>666も確かに大事だからそれならjreも1.5で十分ともいえる。

netbeansによってファッションな奴らが大量に入ってきたけど、現在のジャバの得意分野はgui以外のところだからな・・・
javafxが少しまともになってきたからこれが上手くいくごとに全体がjre 1.6に移行するんじゃないかと思う。
いま業界ではadobe色の排除は凄いでしょ。
そいつらと話していても、IT系の記事書いてる奴の主張とか見ても分かるけど、少なくともファッションの奴らはスパゲッチー・コードだからシステム系を理解することは絶対無理。
671デフォルトの名無しさん:2010/05/15(土) 22:25:17
>>656
Java 1.0 正式リリース前から使ってるけど普通に古いだろ。
地銀信金街金あたりだと都銀のお下がりシステム 20 年くらい使い廻される事も
あるけど、だからといって古くない訳じゃない。
672デフォルトの名無しさん:2010/05/15(土) 22:31:29
>>670
invokedynamic って 1.7 からじゃね?
673デフォルトの名無しさん:2010/05/15(土) 22:32:41
>>668
うちでは即座に導入していたけどな。
5.0のときはEclipseが完全に対応していなかったのでそうはいかなkったが。
674デフォルトの名無しさん:2010/05/15(土) 22:39:53
>>670
> netbeansによってファッションな奴らが大量に入ってきたけど、現在のジャバの得意分野はgui以外のところだからな・・・

ソースくれ。ファッションな奴ってのが単なるウェブデザイナーとか言わないよな?
Java Studio Creatorが出た頃、JavaのことをろくにわかってないHTMLしかしらない、Dreamweaverしか使えない30代後半のオバサンが
嬉しそうにJava Studio Creatorに期待していたが結局使わずじまいだったな。HTMLしか知らないのが
いきなりJavaに手をだしても挫折するだけってことを証明してしまった。あのIDEは当時重たかったしな。

奴らの世界では、"コーディング"といえば「HTMLを書く」ことだからな。
そして未だにCGIがどうこうといってる。他LAMPとはどういうものかという概要くらいしか知らない知ったかぶり程度。
Webデザインの知識があってもソフトウェアデザインの知識はゼロ。

> javafxが少しまともになってきたからこれが上手くいくごとに全体がjre 1.6に移行するんじゃないかと思う。
> いま業界ではadobe色の排除は凄いでしょ。
> そいつらと話していても、IT系の記事書いてる奴の主張とか見ても分かるけど、少なくともファッションの奴らはスパゲッチー・コードだからシステム系を理解することは絶対無理。

ああいうのは、スパゲティすら書けないぞ。Webデザイナーの中にはFlashすら使いこなせる奴もごく小数で、ActionScriptとくればさらに小数。
675デフォルトの名無しさん:2010/05/15(土) 22:42:55
1.7が出るころになって1.6の目玉の1つだったスクリプト・サポート(とくにjavafx)が業界の要求する水準に達して、やっと1.6が普及し出すってことだろう。
並列とかももっと普及しても言いかなって思うけど並列を使うような人は少ないんだろうかと思うけど。
それよか、ログとテキストとコンソールはもう見飽きたからgui(javafx)の方に資源を投資してジャバ・グーイを整備してくれたほうがうれしい。それだとやっぱり1.6か。
676デフォルトの名無しさん:2010/05/15(土) 22:44:20
専業分業でやればいいよ。フロントからバックエンドまで、深さより広さのスキルが
必要なのって零細だけだろ。
677デフォルトの名無しさん:2010/05/15(土) 22:48:10
というか主要なアプリケーションサーバで 1.6 に追いついていないのなんてあるか?
新規開発なら大抵 1.6 だろ。ミドルウェア環境最新にしとかないとサポートがゴネるからな。
678デフォルトの名無しさん:2010/05/15(土) 22:53:36
>>674
え?
flashの業界ってそんなに酷いの?

それならもう、髪の毛染めてるんじゃなくて、髪の毛が北斗になってる奴らか・・・
1.4のころの北斗は、携帯アプリで無償労働されてる派遣(年収210万)か日雇いニート(日払い5000円交通費無し)だったけど・・・あのときの北斗たちは今頃どうしてるんだろう・・・
679デフォルトの名無しさん:2010/05/15(土) 22:59:05
標準偏差ってJavaでどうやって求める?
680デフォルトの名無しさん:2010/05/15(土) 23:03:07
>>677
システム設計ってのは、jreのリリースのたびにそのシステムも一緒にアップデートするものだと思うか?
681デフォルトの名無しさん:2010/05/15(土) 23:04:45
>>680
ミドルウェアと一緒にアップデートするだろ。
サポート終わった環境いつまでも使ってんならご愁傷様。
682デフォルトの名無しさん:2010/05/15(土) 23:04:48
>>680
うん
683デフォルトの名無しさん:2010/05/15(土) 23:07:56
>>679
お前大学生か?
684デフォルトの名無しさん:2010/05/15(土) 23:09:02
北斗www
685デフォルトの名無しさん:2010/05/15(土) 23:09:03
>>680
普通に FIX プランに乗ってくるが?
自己責任オープンソースでも使ってんの?
686679:2010/05/15(土) 23:25:26
>>683
質問に質問を被せるなバカ
687デフォルトの名無しさん:2010/05/15(土) 23:29:26
>>686
ひょっとしたら、お前の質問に答えるために必要な情報だったんじゃね?w
そのくらい答えてやればいいのに。
688デフォルトの名無しさん:2010/05/15(土) 23:40:31
>>674
javascriptは実際は言語仕様と少数のライブラリーだけで普通の人には扱えないから何ともいえない。
ただjavascriptを大して知らなくてもjava以上のguiができるとなるとjavafxはまだまだかなって思う。
flashやjavafxのデザイナー・エディタを見てると、少なくともideとswingでポトペタはもう時代遅れになるのかもしれない・・・(HTMLはポトペタのエディタって普通無いでしょ)
689デフォルトの名無しさん:2010/05/15(土) 23:48:45
>>686
解決してないみたいだけど、これが参考にはなるかも
http://forums.sun.com/thread.jspa?threadID=5169609
690デフォルトの名無しさん:2010/05/16(日) 00:07:47
>>679
Math#powとかMath#sqrtとかつかって普通に求めればいいんじゃね?答えになっているか?
それとも「コード書けないから誰か書いてくれ。」とか、「ぐぐってまさにコレって内容を教えてくれ。」ってこと?
691デフォルトの名無しさん:2010/05/16(日) 00:10:38
なんかムダに熱いなお前ら
692デフォルトの名無しさん:2010/05/16(日) 00:12:22
>>679
宿題なら宿題スレにいったほうがいい

数学とか統計学で使うような標準偏差を求める式とか知ってるの?

あなたはどの程度Javaが分かるの?
693デフォルトの名無しさん:2010/05/16(日) 00:14:00
この程度だったらjavaというよりただのアルゴリズムだから算数の問題だよね
694デフォルトの名無しさん:2010/05/16(日) 00:26:42
Σが登場するから算数じゃないな
695デフォルトの名無しさん:2010/05/16(日) 00:35:32
高校数学なんて算数みたいなもんだろ
696デフォルトの名無しさん:2010/05/16(日) 00:35:55
エリートだな
文系の俺には分からん
697デフォルトの名無しさん:2010/05/16(日) 00:38:55
中学生〜高2ぐらいじゃねーの
大学生にもなって以下略
698デフォルトの名無しさん:2010/05/16(日) 01:36:14
標準偏差って
学校の成績や大学入試とかのと
一般的な統計学のとじゃ
意味違ったような気がしたけど
699デフォルトの名無しさん:2010/05/16(日) 01:39:57
偏差値のこと言ってるのか?
標準偏差とは名前からして違うものだ
700デフォルトの名無しさん:2010/05/16(日) 01:41:28
701デフォルトの名無しさん:2010/05/16(日) 01:47:37
標準偏差
ttp://ja.wikipedia.org/wiki/%E6%A8%99%E6%BA%96%E5%81%8F%E5%B7%AE

リンク貼るならこっちだろw
702デフォルトの名無しさん:2010/05/16(日) 01:51:19
>>701
学力偏差値が標準偏差と
無関係であるかのような言い回しだったから
学力偏差値にリンクしたんだが
間違いだと思う?
703デフォルトの名無しさん:2010/05/16(日) 01:57:28
>>683
ばか
704デフォルトの名無しさん:2010/05/16(日) 02:00:36
>>702
>学力偏差値が標準偏差と
>無関係であるかのような言い回しだったから
う〜ん・・・そう読めるのか?
俺は単純に>>698は言葉の定義を理解してないものだと感じたんだが
705デフォルトの名無しさん:2010/05/16(日) 04:08:27
>>704
どっちでもいいと思う
706デフォルトの名無しさん:2010/05/16(日) 04:15:41
質問主がいないからな
意味無い議論
707デフォルトの名無しさん:2010/05/16(日) 04:42:05
javaには統計の関数みたいなの無かったんだっけ?
708デフォルトの名無しさん:2010/05/16(日) 05:02:23
次のコードがあります

package com.se.myapp;
public class Test
{
 省略
}

Testクラスが/usr/com/se/myappの直下に配置されています。
環境変数classpathはカレント( . )が設定されています。
実行方法として正しいのはどれ?

という問題があります。
選択肢の中に
 /usr/com/se/myappディレクトリの場所で、java Testを実行
というのがあるのですが、ハズレ選択肢でした。
packageが階層設定されている場合、親ディレクトリの場所でないと実行出来ないの?
709デフォルトの名無しさん:2010/05/16(日) 05:05:24
>>707
Mathmaticaの領域じゃね?
非標準ライブラリはいくらでもある
710デフォルトの名無しさん:2010/05/16(日) 07:40:00
>>708
クラスパスが「.」であるなら
/usr/ で java com.se.myapp.Test と実行しないとダメ。
クラスパスに /usr/ を追加するか、あるいは
java -cp /usr/ com.se.myapp.Test でもよい。

Test クラスがパッケージに含まれているなら、
クラスパスやカレントディレクトリの位置に関わらず
java Test では実行できない。
711デフォルトの名無しさん:2010/05/16(日) 13:55:45
>>678
単なるウェブデザイナーの世界な。
HTMLとDTPだけ知っててFlashを使いこなせない奴なんてそこら中にうじゃうじゃいる
712デフォルトの名無しさん:2010/05/16(日) 13:57:23
>>679
どうみてもJavaとは直接関係ない話だな
統計学の本でも読めば答えが書いてあるだろうに
713デフォルトの名無しさん:2010/05/16(日) 13:59:55
>>688
Webデザイナ厨が使うJavaScriptなんてコピペ。
Ajaxも適当に使いこなすことしかできない。
そこいらのAjax本買って真似るレベル。
JScriptとJavaScriptとActionScriptとの区別もつかないような馬鹿ばかり。
714デフォルトの名無しさん:2010/05/16(日) 14:02:52
>>696
文系でも経済学部の奴は統計学習うだろ
715デフォルトの名無しさん:2010/05/16(日) 14:06:34
>>689
平均値との差を2乗するんじゃなかったっけ?
716デフォルトの名無しさん:2010/05/16(日) 14:11:04
>>715
V[X] = Σ(x-E[X])^2 / n = E[X^2] - (E[X])^2
717デフォルトの名無しさん:2010/05/16(日) 14:13:11
>>707
Apache Commons MathにはJavaの統計学ライブラリがある程度そろってる。
http://ja.wikipedia.org/wiki/Apache_Commons_Math

http://commons.apache.org/math/api-2.1/org/apache/commons/math/stat/StatUtils.html

これを組み合わせればいいんじゃないかね。
平均も分散も求められる。

分散を求めるメソッドvariance()をMath.sqrt()で平方すれば一発で解決だな。
718デフォルトの名無しさん:2010/05/16(日) 14:17:28
一発で解決だね、はあ・・・
719デフォルトの名無しさん:2010/05/16(日) 14:18:10
JavaScript と Flash で愚痴こぼしてるバカはスレタイ100回見直して首吊れよ。
720デフォルトの名無しさん:2010/05/16(日) 14:18:24
>>717
不偏推定量が要求されているのかどうかを使用者が理解していないと解決しない。
単に「分散」という単語だけだと解釈しかねる。
721デフォルトの名無しさん:2010/05/16(日) 15:26:05
>>621
なんか遅くなったけどごめん。
4の趣味だよ。
普段は職業プログラマ(まだ1年くらい)でPHP, JavaScriptを扱ってるけど
Javaはどうしても作りたいものがあるので始めた。
少しばかり大規模なもの。

>>643
この場合だと前者のほうが良さそうだね。
Java始めたばかりだし、もうすこし理解が必要かもしれない。
Effectiveは応用ということだけど、大抵はPHPのような
他の言語で得てきたようなことが書かれてるのかな?
それともJava言語としての応用がメイン?
Java独自のことが書かれているなら絶対に持っておいたほうが良さそうだけど。
722デフォルトの名無しさん:2010/05/16(日) 16:22:41
>>717
こんなのもあるようだが。
中では平方してるだけなのかな?
http://commons.apache.org/math/api-2.1/org/apache/commons/math/stat/descriptive/moment/StandardDeviation.html
723デフォルトの名無しさん:2010/05/16(日) 16:55:07
javascriptで画像固定でその画像をクリックするとランダムに飛ぶようになるやり方教えてください。
途中までできたんだけど画像にポインタ合わせてもポインタが変わらないのとblankで別ウインドウで開く設定ができなくて・・・。
ソース↓
<img src="http://hp.jpdo.com/cc009/1/img/8186.jpg" alt="画像" border="0" height="150" onClick="jump()" target="_blank" >

<script>
tag = new Array();

/* リンク先のURLを好きなだけ記述 */
tag[0] = "http://www.google.co.jp/";
tag[1] = "http://www.yahoo.co.jp/";
tag[2] = "http://www.goo.ne.jp/";

function jump() {
p = Math.round(Math.random() * (tag.length - 1));
parent.top.document.location = tag[p];
}
</script>
724デフォルトの名無しさん:2010/05/16(日) 17:06:49
>>723
スレッドタイトルを音読しよう。
725デフォルトの名無しさん:2010/05/16(日) 17:26:28
>>724
うっせー!( ゚д゚)、ペッ
726デフォルトの名無しさん:2010/05/16(日) 17:41:30
>>694
1 + 2 + 3 +.....は十分に算数だと思うぞ。
727デフォルトの名無しさん:2010/05/16(日) 18:11:14
728デフォルトの名無しさん:2010/05/16(日) 18:30:51
>>726
かも知れんな
それで?
729デフォルトの名無しさん:2010/05/16(日) 18:32:12
優越感に浸りたかっただけだろ
言わせんな恥ずかしい
730デフォルトの名無しさん:2010/05/16(日) 18:52:36
>>722
http://commons.apache.org/math/api-2.1/src-html/org/apache/commons/math/stat/descriptive/moment/StandardDeviation.html#line.40

そのJavadocでクラス名をクリックするとソースコードが見える。
これによると中で分散を平方していることが分かる。

136 /**
137 * Returns the Standard Deviation of the entries in the input array, or
138 * <code>Double.NaN</code> if the array is empty.
139 * <p>
140 * Returns 0 for a single-value (i.e. length = 1) sample.</p>
141 * <p>
142 * Throws <code>IllegalArgumentException</code> if the array is null.</p>
143 * <p>
144 * Does not change the internal state of the statistic.</p>
145 *
146 * @param values the input array
147 * @return the standard deviation of the values or Double.NaN if length = 0
148 * @throws IllegalArgumentException if the array is null
149 */
150 @Override
151 public double evaluate(final double[] values) {
152 return Math.sqrt(variance.evaluate(values));
153 }
731デフォルトの名無しさん:2010/05/16(日) 18:55:25
>>694
高校生までに教わる数学は実質算数とかわらない。
応用数学と呼ばれることもあるが、数学者が言う数学とは異なるものである。
数学者が言う数学は、数論や暗号理論等で扱う純粋数学。
工学、経済学、ビジネスでよく使われる数学はほとんどが、統計学、数値解析などを含む応用数学。
732デフォルトの名無しさん:2010/05/16(日) 19:03:31
>>721
大規模めざすならEffective JavaはTipsを読む程度に役に立つ。
初心者がJava言語仕様を読むケースなんて大学でJavaを教わるときくらい。
読めば正しい知識が身につき、Java認定試験でも役立つかもしれないが、実践で即座に役立つとは限らない。
しかも分厚くて内容が濃すぎてJavaを習得するまでに少々の時間を要することになる。
何にか作りたいものがあるなら無理せず初心者向けJava本でも読んだほうがおすすめ。

>>723
JavaとJavaScriptは違う。
JavaScriptはWebProg板で扱っている。

WebProg
http://pc11.2ch.net/php/
733デフォルトの名無しさん:2010/05/16(日) 19:12:43
つうか、標準偏差って二種類あるから
734デフォルトの名無しさん:2010/05/16(日) 19:23:15
C++屋で大学で教わってるわけでも無いJava初心者は何を読んだらいいの?
とりあえず「Effective Java」から入ったけど、失敗だったか orz
その後「パーフェクトJava」読んだけど、確かに逆のほうが良かった気がする。
735デフォルトの名無しさん:2010/05/16(日) 19:25:15
C++屋だったら、JavaのAPIのドキュメントの lang, util, io 付近を全部読めばプログラムくらい書けるんじゃないかな?
736デフォルトの名無しさん:2010/05/16(日) 19:26:40
>>734
本当に初心者なら結城さんのプログラミングレッスンをオススメしたいが、
C++ちゃんと知ってるんだったらプログラミング言語Java読むのが一番いいよ。
他の本とは比較にならないくらい詳細に書かれてるから一気に深く分かるよ。
もちろん Effective Java を読むためのバックグラウンドも十分身につく。
737デフォルトの名無しさん:2010/05/16(日) 19:27:31
>>731
とはいうけどコンピュータは数学じゃなくて算数だと思うよ。
738デフォルトの名無しさん:2010/05/16(日) 19:28:53
>>737
実数型とかあるけど、有理数だしな。
739デフォルトの名無しさん:2010/05/16(日) 19:42:47
C++やってるならGUI以外は楽勝のはず。ちょびっと悩むとしたらio周り?
Javaが出た当時、io周りのアイデアは画期的と思った。
元ネタは何かあるのかな。
740734:2010/05/16(日) 19:44:38
>>735 そんな風に考えていた時期が俺にもありました。
Android の入門書3冊くらい読んで、さあプログラム作るぞ〜、と思ったら、書けないの。
言語仕様や文化や定石は、あるていど身につけてないとね。

>>736
原典に当たるべきだよね、とは思うんだけど、あの本分厚いしw
アマゾンの書評、第3版と第4版でえらくわかれてるのはなんでだろう。
「Effective Java」読む限り、柴田 芳樹さんの訳は読みやすいと思うんだけど。
741デフォルトの名無しさん:2010/05/16(日) 19:46:09
>>734
C++屋ならEccective C++読んでるだろ
742デフォルトの名無しさん:2010/05/16(日) 19:48:45
>>739
とはいうけどC++でprintfを使ってるやつは多い。
743デフォルトの名無しさん:2010/05/16(日) 19:52:59
>>740
お前本当にC++屋?
ただのC言語屋じゃねえの?
744デフォルトの名無しさん:2010/05/16(日) 19:56:27
代替手段に MessageFormat あったからそれほど悩まなかったなぁ。
1.5で更にString#formatとかPrintWriter#printfとか追加されたし。
745デフォルトの名無しさん:2010/05/16(日) 19:59:39
○○屋って言い方は痛いよ。
746デフォルトの名無しさん:2010/05/16(日) 20:21:38
「おれC++できるぜ! すごいだろ!」

実際にやらせてみると実はCしかできなかったというマニフェスト詐欺師が
実はC言語厨には多い。

C++できると称して実は、メソッドがすべてstaticだったり
クラスをろくに作れなかったりデザインパターンをろくに知らなかったり

ということはよくある話。
747デフォルトの名無しさん:2010/05/16(日) 20:31:53
>>740
Android は Activity の仕様を把握するしかないけど、あれも、サンプルプログラムだけで
なんとかならないだろうか?
Java は例外処理とかイベント処理とかの手法が既に提供されているところが
C++ と違うとは思うけど。
748679:2010/05/16(日) 20:34:31
>>717
>>722
>>730
ありがとうございます。
自分も英語のドキュメント読めるようになりたいです。
749デフォルトの名無しさん:2010/05/16(日) 21:49:45
>>737
実数型とかあるけど、有理数だしな!。
750デフォルトの名無しさん:2010/05/16(日) 21:57:25
128bitの浮動小数(quad)はいつcpuに組み込まれるんだろう・・・
751デフォルトの名無しさん:2010/05/16(日) 22:25:03
Stringの配列を for(String str : hoge) みたいな、ジェネリクス使ってループさせるやり方教えてください。
752デフォルトの名無しさん:2010/05/16(日) 22:30:38
>>751
for(String str : new String[]{"a", "b", "c"})

質問はもっと具体的に書くこと。
753デフォルトの名無しさん:2010/05/16(日) 22:30:46
for(String str : hoge)とジェネリックスはベツモノだから言ってる意味がわからないがArrayList使えばいいんじゃね?
754751:2010/05/16(日) 22:44:16
>>752 >>753
申し訳ありません。

List<String> ar = new ArrayList<String>();
 ar.add("1");
 ar.add("2");

for (String str : ar) {
 System.out.println(str);
}

こんな感じで、

String[] strList = new String[5];
strList[0] = "str0";
strList[1] = "str1";

for (int count = 0; count < strList.length; count++) {
 System.out.println(strList[count]);
}
↑ こうではなく

for ( String str : strList ) {
 System.out.println(str);
}

こんな感じで出来ないかなぁと思ったわけです。
755デフォルトの名無しさん:2010/05/16(日) 22:49:04
>>754
出来ますよ。
そのまんまでいいからコンパイルしてみたら?
756デフォルトの名無しさん:2010/05/16(日) 23:48:56
>>753
拡張for文とジェネリクスは無関係ではないと思うけど。
Iterable<T> に対して使うものでしょ。
757デフォルトの名無しさん:2010/05/16(日) 23:54:58
>>749
それもApache Commons Mathにあるんだよな。

Fraction型とかRational型とか
758デフォルトの名無しさん:2010/05/17(月) 00:26:46
ある文字列で、後ろから2つ目の文字を検索するにはどのようにすればよいでしょうか。
lastIndexOfメソッドで、後ろから1つ目は簡単に探せるようなのですが。。
759デフォルトの名無しさん:2010/05/17(月) 00:31:14
>>757
同じようですけどジャバ的にどう違うんですか?
760デフォルトの名無しさん:2010/05/17(月) 00:33:16
伸びたな
761デフォルトの名無しさん:2010/05/17(月) 01:03:53
windowsでJavaプログラミングをしてるんですが、
ソースコードの文字コードをUTF-8にして保存したらエラーが出るようになったんですが、なんでですか?
>> 警告:この文字は、エンコーディング MS932 にマップできません。
というエラーが出ます。
Javaの内部コードはユニコードじゃないんですか?
762デフォルトの名無しさん:2010/05/17(月) 01:10:24
素人の初心者の俺がその質問に答えます
「それはどこで発生したエラーですか?」
763デフォルトの名無しさん:2010/05/17(月) 01:10:45
>>761
Javaの内部の文字符号化コードはUTF-16。
でもソースコードは別にどの文字コード使ってもいい。
エラーによるとShift_JISが使われる想定なのにUTF-8が来てしまったということだね。
javacで-encodingスイッチ指定できるからそれでUTF-8指定すればいいと思われ。
764デフォルトの名無しさん:2010/05/17(月) 01:49:09
>>763
おお、できました。
ありがとうございます。
765762:2010/05/17(月) 01:52:41
フッ
俺への礼なら要らないぜ
766デフォルトの名無しさん:2010/05/17(月) 02:12:02
>>765
ありがとう!
767762:2010/05/17(月) 02:12:44
>>766
フッ
当然のことだぜベイビー
768デフォルトの名無しさん:2010/05/17(月) 02:35:55
お前らもう寝ろよw
769デフォルトの名無しさん:2010/05/17(月) 02:37:16
とっくに寝てるがな
770デフォルトの名無しさん:2010/05/17(月) 03:36:06
夢遊病?こわっ
771デフォルトの名無しさん:2010/05/17(月) 03:45:26
早起きだね
772デフォルトの名無しさん:2010/05/17(月) 15:46:08
>>759
わるいが
よくみりゃRational型なんぞなかった
RealMatrixのReal
BigRealのRealと間違えていたようだ
773デフォルトの名無しさん:2010/05/17(月) 17:38:16
たしかにBigDecimalはいまいち使いにくいよな。
extendsもできるけど何のためにあるんだろう・・・
774デフォルトの名無しさん:2010/05/17(月) 18:05:35
Number インターフェースに四則演算メソッド付けて構文レベルでのシンタックスシュガーが
あっても良かったかもしれない。アンチ operator 厨が文句いうかも知れないが。
あと BigDecimal や Date のようなプリミティブに近いデータ型は全て final で immutable な
設計にして欲しかった。
775デフォルトの名無しさん:2010/05/17(月) 18:27:05
BigDecimalは十分にimmutableのようだけど・・・
776デフォルトの名無しさん:2010/05/17(月) 18:27:39
finalにしないってことは
それつかって派生クラスを作る可能性があるってこと?
777デフォルトの名無しさん:2010/05/17(月) 19:40:57
サブクラスがMutableになりうるのでMutableだと仮定できない。
まあ、仮定しちゃっていいと思うけど。
778デフォルトの名無しさん:2010/05/17(月) 19:41:38
×Mutableだと仮定できない。
○Immutableだと仮定できない。
779デフォルトの名無しさん:2010/05/17(月) 20:00:16
スーパークラスにサブクラスは代入出来ますが、どのような場面で使用されるのでしょうか?
サブにはスーパーのメソッドなどは引き継がれているから無意味だと思うのですが。

(極端なサンプルソース)
 Object o1;
 Test t1 = new Test();

 o1 = t1;  //←ここ
780デフォルトの名無しさん:2010/05/17(月) 20:11:39
>>773
メソッドの追加やスケール、MathContext(制度、丸めモード)の設定を修正できるようにするためでない?
現状、スケールがint型で、内部はString[]で処理しているからなああれ。

>>774
それやるならNumber型限定で。
行列やベクトルなどに対しても同じことできればいいけど標準APIには
いまのところMatrix型がないからな。
2つのdouble[]型で同じインデックスどうしの要素どうし加減乗除できる演算子もあれば便利かもしれないが
781デフォルトの名無しさん:2010/05/17(月) 20:20:56
>>779
(極端なサンプルソース)
String hogehoge(Object o){
return o.toString();
}
とか、ポリモーフィズムが生きている。
782デフォルトの名無しさん:2010/05/17(月) 20:56:06
>>780
内部でString[]というのはどういうこと?
BigIntegerだからていは2でしょ?
783デフォルトの名無しさん:2010/05/17(月) 21:59:18
public class Parent {
 private String parentId;

 @Override
 public String toString() {
  // 文字列化
 }
}

public class Child extends Parent {
 private String childId;
}

class Child extends Parentの関係があるとして、
ParentでtoString()をオーバーライドして、フィールド情報を出力したいと思っています。
実際に扱われるのはChildの方なのですが、ChildをtoString()してもParentの情報が出せなくて困っています。

ソース上は、オーバーライドしているParent#toString()にて
getClass().getDeclaredFields()でフィールド一覧を取得して、
ApacheのBeanUtilのPropertyUtilを使用して文字列を出力しています。

ですが、APIを読むとClass#getDeclaredFieldsもgetFieldsも継承元のフィールド情報は取ってくれないみたいです。
上記の例ですとchildIdは出力できるのですが、parentIdが取れないということです。

こうした場合、どのような手法を使って実現するのがいいのでしょうか?
784デフォルトの名無しさん:2010/05/17(月) 22:00:48
>>783
super
785デフォルトの名無しさん:2010/05/17(月) 22:14:32
>>783
Class を引数にとってフィールド文字列を生成する static メソッドを別に作り、
Parent#toString() から Parent.class を明示的に指定して呼ぶ。

クラス構造の上から下まで遡りたい場合は Parent#toString() 内で
this.getClass() から順繰りにスーパークラス拾って実行。
786デフォルトの名無しさん:2010/05/17(月) 22:18:29
>>784
787デフォルトの名無しさん:2010/05/17(月) 22:24:28
>>786
Childを継承したサブクラスができたら死ぬしかないってことだろ
言わせんな恥ずかしい
788デフォルトの名無しさん:2010/05/17(月) 22:27:49
意味不明だし、どう見てもよく読まずに 「super.toString() 呼べ」 って言ってるようにしか見えない。
本当の意味で恥ずかしい。
789デフォルトの名無しさん:2010/05/17(月) 22:34:34
javaをインストールしようとすると(選択した機能は現在使用できないネットワークリソースにあります。)
とかでてokおしても先に進まないんですけどどうしたらインストールでかこますか?
下に代替パスがなんちゃらとかもでてますがさっぱりです
790デフォルトの名無しさん:2010/05/17(月) 22:42:34
ジャバなんかよりも Microsoft .Net 戦略とその具体化 C# に素直に従った方が断然いいですよ。
791デフォルトの名無しさん:2010/05/17(月) 22:54:52
>>789
ファイル壊れてんじゃね? もっかいダウンロードしてみたら?
792783:2010/05/17(月) 23:05:16
ごめんなさい
793デフォルトの名無しさん:2010/05/17(月) 23:05:42
何回もダウンロードして古いバージョンもダウンロードしてインストールしましたけど同じくでした
794デフォルトの名無しさん:2010/05/17(月) 23:10:07
あなたを救ってくれるのはもう Microsoft しかないですね。
795デフォルトの名無しさん:2010/05/17(月) 23:16:29
>>789
たぶん自分と症状だな
おそらくWindowsフォルダのどこかにあるmsiファイル消したんだと思う
Javaじゃなくてインストーラー全般の問題だと思う
796751:2010/05/17(月) 23:22:02
>>755
妙な質問をして申し訳ありませんでした。
↓これで希望どうりの動作をしました。

String[] strList = new String[5];
strList[0] = "str0";
strList[1] = "str1";
strList[2] = "str2";
strList[3] = "str3";
strList[4] = "str4";

for (String str : strList) {
 System.out.println(str);
}


>>753
>for(String str : hoge)とジェネリックスはベツモノだから言ってる意味がわからないがArrayList使えばいいんじゃね?

ジェネリクスはArrayListみたいな可変配列の要素に特定のクラスを格納することを強制することが出来る。
だから、ループで回すときにキャストが不要になる。

「for(String str : hoge)とジェネリックスはベツモノ」
つまり、配列の個数はジェネリクスとは関係なく取得できるから、ループの回数とジェネリクスは直接的な関係はない、
ということであっているでしょうか?
797デフォルトの名無しさん:2010/05/17(月) 23:27:28
>>795
ほかのソフトはインストールできたんですけど、どうやったら直せますか?
798デフォルトの名無しさん:2010/05/17(月) 23:30:20
>>797
msiの話ならさすがにスレチ
ggれば死ぬほど情報出てくる
799デフォルトの名無しさん:2010/05/17(月) 23:31:44
まあ、 Microsoft とったら Excel ですからね。しようがないですよ。
800デフォルトの名無しさん:2010/05/17(月) 23:42:20
>>798
他のソフトはインストールできるんですけどこれはmsiってやつが問題じゃなさそうなんですが
801デフォルトの名無しさん:2010/05/17(月) 23:43:23
スレタイを読み直すか、JExcelApiの話に移ってもらおうか
802デフォルトの名無しさん:2010/05/17(月) 23:46:32
           __
        , ‐' ´   ``‐、             / ̄:三}
.     /,. -─‐- 、.   ヽ        /   ,.=j
 _,.:_'______ヽ、 .!       ./   _,ノ
  `‐、{ へ  '゙⌒ `!~ヽ. !     /{.  /
    `! し゚  ( ゚j `v‐冫   , '::::::::ヽ、/     そんなモノよりPOIにしようぜ!
.    {.l   '⌒      ゙ 6',!   / :::::::::::::::/ __
.     〈  < ´ ̄,フ  .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、
.      ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠.   ヽ_}  ゙ヽ
        ,.r` "´  /:::::::::::::::::::ィ´  `ゝ  !、  /
     /       / :::::::::::::::: ; '´   /´\ /   r'\
.     i      ! ::::::::::::::/ 墨 | .!::::::::/ヽ、.._!ヽ. ヽ、
     {      {:::::::::::;:イ /   ‖i:::::::/:::::::::::::/  \
.      ヽ       ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: /
803デフォルトの名無しさん:2010/05/17(月) 23:57:27
POIとかジャカルタとか定番ライブラリの簡単な使い方のHPないですか?
仕事でよく使ってるとか自分が得意なライブラリとかで、チップ・メモ程度のところじゃなくてもう少し体系だってまとめてるところです。
wikiは解説をするようなサイトとじゃないし、ジャバのようなライブラリ指向だと正直多すぎて多くてよく分からんとです・・・
804デフォルトの名無しさん:2010/05/18(火) 00:05:36
>>803
POIは知らんけど、commonsはhttp://jakarta.jp/commons/とjavadocで不満
javadocにサンプルソースも乗ってるしね
805デフォルトの名無しさん:2010/05/18(火) 00:12:37
java media framework とか使い方を紹介したサイトがなかったからまったく流行らなかったよな。
javafxなんかもその二の舞なんだろうか。
806デフォルトの名無しさん:2010/05/18(火) 00:21:31
JavaFX なんて既に勝てる見込みなし。やる気もなし。
807デフォルトの名無しさん:2010/05/18(火) 00:26:21
勝負の土俵にすら上がれてない
808デフォルトの名無しさん:2010/05/18(火) 00:46:03
どうしてだろう・・・
809デフォルトの名無しさん:2010/05/18(火) 01:43:00
>>806,807
そうなんですか。
やっぱりマイクロソフトとアドビに従順に従っていたほうが幸せになれるんですね。
ならジャバなんか入門本なんかを何冊も読んで無理してやらなくてもいいんじゃないかな・・・?
810デフォルトの名無しさん:2010/05/18(火) 03:10:33
>>795
結局どうやって直したんですか?
811デフォルトの名無しさん:2010/05/18(火) 03:32:40
>>810
ググレカスと言わざるを得ない。
812デフォルトの名無しさん:2010/05/18(火) 03:33:47
ggrks
813デフォルトの名無しさん:2010/05/18(火) 04:05:09
確かにククレカレーは美味しい
814デフォルトの名無しさん:2010/05/18(火) 04:34:58
なんだ
>>780は知ったかだったのかw
815デフォルトの名無しさん:2010/05/18(火) 12:31:52
>>800
msi に問題が無くて良かったね。インストールおめでとう。
816デフォルトの名無しさん:2010/05/18(火) 12:36:52
>>782
すまんが間違えた。
内部ではint[]で保持していた。
817デフォルトの名無しさん:2010/05/18(火) 14:13:00
>>789
>>795
>>797-798
>>800
昔似たような経験をしたことがある。
msiファイルを消したのではなく、msiファイルを使った他のインストーラーによる
インストールを中途半端に終わらせたときに発生する。
他のインストーラーのインストールが途中なら、もう一度それを実行して完全に終わらせるか
完全にキャンセルさせるかインストーラーメニューから出る修復、サインインストールを実行する。
するとうまくいった。

>>802
POIといっても通じない可能性があるぞ。ポイ捨てと勘違いされるんじゃないのか?
http://poi.apache.org/
Apache POI
http://ja.wikipedia.org/wiki/Apache_POI
POIという名称は、Microsoft Officeのファイル形式をリバースエンジニアリングした際、その形式が意図的に、
しかも中途半端に分かりにくくされていたため、

皮肉を込めて "Poor Obfuscation Implementation" (中途半端に曖昧な実装) と呼んだものの頭字語に端を発している。

このようにユーモラスな正式名称を当てはめる方法はかつていろいろなサブプロジェクトに見られたが、
ユーモアを不適切と捉えるビジネス界への進出を意識し、公式ウェブページからは削除されている。

もうひとつの由来は、ハワイの珍味Poiから来た。
ハワイ人がこれを食べ続けると巨人になるとも言われている。
818デフォルトの名無しさん:2010/05/18(火) 14:27:12
>>803
おい、まずHPという言葉を使うのやめろ。HPといえばヒューレット・パッカードのことだ。
それにウェブサイトのことをホームページとかHPと呼ぶな。

それにWikipediaとWikiを一緒にするな。Wikipediaは解説をするようなサイトではないが
Wikipediaの姉妹プロジェクトWikibooksは解説をするようなサイトだ。
他にも、同じWikipediaの創設者ジミー・ウェールズが作ったWikiaという、
そこいらにある@Wikiやwikiwikiやwikihouseに類似したサービスがある。そこにApacheのWikiがあればそれを閲覧、
それがなければWikiaの英語版を探す、それでもなければWikiaに新しいApache Wikiを作る。
というくらいのことをしろ。


そもそもApacheにはすでにWikiが用意されているわけだが。
http://wiki.apache.org/
819デフォルトの名無しさん:2010/05/18(火) 15:09:57
820デフォルトの名無しさん:2010/05/18(火) 15:11:44
>>809
はたしてそれはどうかな。
それらの主張はアンチによる意見。
このスレにはいまだにM$を崇拝しC#を押し付けるアンチが常駐していることをお忘れなく。
821デフォルトの名無しさん:2010/05/18(火) 17:49:31
>>818
おまえさ、周りから嫌われてるだろ?w
822デフォルトの名無しさん:2010/05/18(火) 17:55:13
雑学だけは人一倍ガンバッテマスから
823デフォルトの名無しさん:2010/05/18(火) 18:44:07
>>809
あれ嫌いこれ無理なんて言ってるのは素質が無い(プログラマ向いてない)人
比較的良く使われている言語については最低入門レベル程度まで勉強した方がいい
一つの言語に偏ったら転職したりプロジェクト変わったりすると慌てる事になるよ
824デフォルトの名無しさん:2010/05/18(火) 18:49:01
>>818みたいな人にはまだまだ頑張ってWikipediaをWikiと略す厨房を叩いてほしい
825デフォルトの名無しさん:2010/05/18(火) 18:59:45
雑学だけじゃなくてIT知識だって人一倍ガンバッテマスよ
826デフォルトの名無しさん:2010/05/18(火) 19:15:43
>>820
そんなに意地張ったりしないでそろそろマイクロソフトに降伏したらどうですか?
javafxなんかよりもアドビの方が断然いいんですよね・・・
827デフォルトの名無しさん:2010/05/18(火) 19:28:59
>>817
他のソフトがインストール途中ってそれどうやったら確認できます?
828デフォルトの名無しさん:2010/05/18(火) 19:33:28
簡単に確認できるよ。
829デフォルトの名無しさん:2010/05/18(火) 20:19:39
>>821
嫌われたら嫌い返せばよい
それだけのことだ
バカの発言を恐れたらそれで終わり
830デフォルトの名無しさん:2010/05/18(火) 20:21:02
>>824
叩くのではない
間違いを正すのだ

>>813は明らかにwikiとwikipediaに対するミスリードを行っていた。
831デフォルトの名無しさん:2010/05/18(火) 20:22:16
>>826
お前は数年前に死滅スレで暴れていたMS厨房の餓鬼みたいだな

Adobeなんかほとんど使わないだろ
個人で買う奴もそうそういない
芸術家やデザイナーでもなきゃ誰も買わない
大規模開発には不向き
832デフォルトの名無しさん:2010/05/18(火) 20:23:00
>>827
なんでもいいからmsiをダブルクリック
するとメッセージがでる
そのメッセージをよめばわかる
833デフォルトの名無しさん:2010/05/18(火) 20:55:58
>>832
すいません
どこにあるの?
834デフォルトの名無しさん:2010/05/18(火) 21:06:20
http://imepita.jp/20100518/756440
ちなみにこんな画面がでて進みません
835デフォルトの名無しさん:2010/05/18(火) 21:14:42
>>818
顔真っ赤にして何やってんの?w
おまえ真性馬鹿だろ(笑)
836デフォルトの名無しさん:2010/05/18(火) 21:35:45
>>834
選択した機能は現在使用できないネットワークリソースにあります - Google 検索
http://bit.ly/dtuJ5v
837デフォルトの名無しさん:2010/05/18(火) 22:28:58
>>818
バカ乙
838デフォルトの名無しさん:2010/05/18(火) 22:30:15
サンクスです
やっぱり解決方がみつかりません
同じ症状になって解決した人がいたらアドバイスください
839783:2010/05/18(火) 22:30:29
以下の方法で可能でした、ありがとうございました。

// 継承元の情報も出力する
Class<?> clazz = this.getClass().getSuperclass();
while (true) {
  if (Object.class == clazz) break;
  Field[] fields_ = clazz.getDeclaredFields();
  for (int i = 0; i < fields.length; i++) {
    if (fields.length > 0) buf.append(", ");
    String fieldName = fields_[i].getName();
    buf.append(fieldName).append("=");
    try {
      buf.append(PropertyUtils.getSimpleProperty(this, fieldName).toString());
    } catch (IllegalAccessException e) {
      buf.append("IllegalAccessException !!");
    } catch (InvocationTargetException e) {
      buf.append("InvocationTargetException !!");
    } catch (NoSuchMethodException e) {
      buf.append("NoSuchMethodException !!");
    } catch (NullPointerException e) {
      buf.append("null");
    }
  }
  clazz = clazz.getSuperclass();
}
840デフォルトの名無しさん:2010/05/18(火) 22:50:48
>>818
おい、まずHPという言葉を使うのやめろ。HPといえばホームページのことだ。
それにヒューレットパッカードのことをHPと呼ぶな。
841デフォルトの名無しさん:2010/05/18(火) 22:53:33
全くだ
HPじゃなくてhpだしな
842デフォルトの名無しさん:2010/05/18(火) 23:01:54
>>841
あ〜
雑学君だったから黙ってたのに・・・
それ言っちゃ駄目だよ
843783:2010/05/18(火) 23:03:07
誤 if (fields.length > 0) buf.append(", ");
正 if (i > 0) buf.append(", ");

完成した部分から切り取ってきたので、もしかしたら他にもおかしな箇所があるかもしれませんが・・・
アイディアを下さった>>785、他、ありがとうございました。
844デフォルトの名無しさん:2010/05/18(火) 23:07:11
          ____   
       / \    /\  キリッ
     / (ー)  (ー)\      
     /   ⌒(__人__)⌒ \  
    |      |r┬-|    |  ウェッブサイトのことをホームページとかHPと呼ぶな
     \     `ー'´   /
    ノ            \
  /´               ヽ              
 |    l             \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.    
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))



          ____
        /_ノ  ヽ、_ \
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /     |r┬-|    | (⌒)/ / / //    だっておwwwwwwwww
| :::::::::::(⌒)    | |  |   /  ゝ:::::::::::/
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー'´      ヽ /    /     バ
 |    |   l||l 从人 l||l      l||l 从人 l||l  バ   ン
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、    ン
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))
845デフォルトの名無しさん:2010/05/18(火) 23:11:49
jmfはsunのページで十分。
あれだけ詳しく書いてあるのにほかに何が必要なのか
846デフォルトの名無しさん:2010/05/18(火) 23:16:54
847デフォルトの名無しさん:2010/05/18(火) 23:49:15
> WikipediaとWikiを一緒にするな
携帯電話を「携帯」と略さない人だけが許される主張だね
848デフォルトの名無しさん:2010/05/18(火) 23:55:50
JavascriptをJavaと略す人は許されますか!?!?!?!?!?
849デフォルトの名無しさん:2010/05/19(水) 00:00:17
>>831
私は芸術家じゃありませんけどコカコーラをよく買います
850デフォルトの名無しさん:2010/05/19(水) 00:22:11
このプログラムがなぜ
System.out.println(j.getValue());
で 5 ではなく 4 が出力されるのか理解できません、どなたかお願いします

class ArgTest2 {
void run() {
int i = 1;
myInt j = new myInt(2);
iMod(i);
jMod(j);
System.out.println(i);
System.out.println(j.getValue());
}
void iMod(int val) { val = 3;}
void jMod(myInt val) {
val.setValue(4);
val = new myInt(5);
}
public static void main(String[] args) {
ArgTest2 app = new ArgTest2();
app.run();
}
}

class myInt {
private int i;
myInt(int val) {i = val;}
void setValue(int val) {i = val;}
int getValue() {return i;}
}
851デフォルトの名無しさん:2010/05/19(水) 00:29:12
>>850
4をsetValしたから
852デフォルトの名無しさん:2010/05/19(水) 00:36:49
>>851
ちゃんとおしえてやれよww

>>850
簡単にいうと参照を値渡ししてるから4になるんだ。
853デフォルトの名無しさん:2010/05/19(水) 00:37:50
パラメータで渡されたオブジェクト型は、
渡し先でnewなどをして参照先を切り替えると、
呼び出し元では切り替えたはずの参照先は取得できず、
古い情報への参照を保持し続ける。

>>851
それじゃ足りてねえだろww
854852:2010/05/19(水) 00:53:26
そう?参照を値渡ししてるって情報だけで十分だと思うけど。
たしかに、>>853の説明は丁寧だとは思うよ。

引数としてもらった参照に、別の参照を(←newしたもの)代入している。
そしたら元々引数としてもらった参照の先の変数は変化しない。
って理屈だから、足りてないという認識はないなぁ。
855デフォルトの名無しさん:2010/05/19(水) 01:04:01
5が出るはずなのに4が出る
├ >>851 そりゃ4をセットしたからだ ← 4が出る原因のみを提示
├ >>852 値が参照渡しだからだよ ← 原因の概要を提示
├ >>853 5が出ると思っている原因を推測 ← 原因の具体箇所を提示
└ >>854 騙り
856デフォルトの名無しさん:2010/05/19(水) 01:05:57
>>851-854
なるほど、恥ずかしながら初めて知りました
みなさんご丁寧にありがとう!
857デフォルトの名無しさん:2010/05/19(水) 01:07:10
>>855さんもサンキュー!!
858デフォルトの名無しさん:2010/05/19(水) 01:07:10
859デフォルトの名無しさん:2010/05/19(水) 10:02:48
HP=ヒューレット・パッカードであって読む方はまず最初はホームページとは読まない
Wiki=ウィキであってウィキペディアでは無い
あながち間違ってないと思うおw ちゃんと社会に出て働いていればの話だけどw
860デフォルトの名無しさん:2010/05/19(水) 10:06:42
社会に出てれば両方の可能性を考えて文脈からどちらか判断する。
それができないならよほどコミュニケーション能力に欠けてる。
861デフォルトの名無しさん:2010/05/19(水) 10:49:51
ただドキュメントにHPなんて書いたら修正させるけどね
862デフォルトの名無しさん:2010/05/19(水) 11:11:33
【コラム】定時の2時間以上も前に出社する『早起き社員』が増加…追い込まれるギリギリ社員 [05/17]
http://anchorage.2ch.net/test/read.cgi/bizplus/1274074988/
863デフォルトの名無しさん:2010/05/19(水) 11:25:39
グラマースレでどうぞ。
864デフォルトの名無しさん:2010/05/19(水) 11:43:45
芸術家乙
865デフォルトの名無しさん:2010/05/19(水) 18:10:37
>>835 >>837 >>840 >>844
お前>>803本人か?
図星か
一連の流れをみるとお前のほうが顔真っ赤にしてるように見えるんだが


>>841
hpはヒューレット・パッカードのロゴ。「HP」と書いて解説している書籍やサイトも
いくらか存在するわけだが


>>847
それは誤解をうけなければ問題ないんだが。
>>803の言い方は明らかに誤解を招くもの。
バカが読めばウェブサイトのことをホームページとかHPと書いても
かまわないと思い込み、Wikipediaのことを他のWikiとの区別も意識せず
Wikiと読んでもかまわないと思い込む。
バカが第二のバカ、第三のバカを量産する。

こういうときは、これ以上誤解やこじれを減らすためにできるかぎり早めに指摘しておくべきことだ。
間違った言葉が当たり前のように使われる前にな。

>>860
この場合、質問者としてコミュニケーション能力に欠けているのは>>803のほうだな。
クラッカーやコンピューター犯罪者のことをハッカー同一視する無礼な輩や
ハンドルのことをハンドルネームとかHNとほざく輩のように相手に不快感を与えている。
866デフォルトの名無しさん:2010/05/19(水) 18:12:52
アフォウヨが出たぞー
867840のみ:2010/05/19(水) 18:24:22
>>865
ハズレ
hp・HPの違いは気付たので840に入れなかった

>>803の言いたいことはwiki・wikipedia・blog・ホームページだろうがどうでもいい
Apache POIとcommonsが体系だってまとめてあればいいこと blogじゃあ難しいだろうけどね
868デフォルトの名無しさん:2010/05/19(水) 18:27:53
>>866
いいからお前は巣に帰れ
で、その「アフォウヨ」って何だ?
朝鮮語か?
869デフォルトの名無しさん:2010/05/19(水) 18:29:04
>>867
日本語しゃべれ
870デフォルトの名無しさん:2010/05/19(水) 18:33:26
こういうやつじゃね?
ある人物がネットで民主党を批判したら>>866みたいなバカが
ネトウヨのレッテルを張った。

ところが、まさかの朝日新聞がそのある人物とまったく同じ主張で民主党を批判した。
「朝日新聞はネトウヨ」

そして、ネトウヨ連呼厨の論理的矛盾から次々と「〜はネトウヨ」というパターンがいくつも生まれていった。
「Javaプログラマーはネトウヨ」
「オバマはネトウヨ」
「TBSはネトウヨ」
「共産党はネトウヨ」
「中国はネトウヨ」

それをこう置き換えたというやつじゃね?

「朝日新聞はアフォウヨ」
「Javaプログラマーはアフォウヨ」
「オバマはアフォウヨ」
「TBSはアフォウヨ」
「共産党はアフォウヨ」
「中国はアフォウヨ」
871デフォルトの名無しさん:2010/05/19(水) 18:34:06
何だこの臭ぇ奴。
872デフォルトの名無しさん:2010/05/19(水) 18:40:46
ここはどこ?
873デフォルトの名無しさん:2010/05/19(水) 18:55:07
Javaの質問スレッドじゃないことだけは確か。
874デフォルトの名無しさん:2010/05/19(水) 19:33:01
反論できなくなるとこうなるのか
支那キムチは
875デフォルトの名無しさん:2010/05/19(水) 21:11:15
おまいが来てると必ずこういう展開だな。
876デフォルトの名無しさん:2010/05/19(水) 21:13:48
海外のプログラマの質って日本と比べてどうなんだろうな
877デフォルトの名無しさん:2010/05/19(水) 21:42:41
プログラマ板で語れ

だが中韓の評判で良い話は聞いたことが無い
878デフォルトの名無しさん:2010/05/19(水) 21:44:02
お前が特亜に行けよ池沼
879デフォルトの名無しさん:2010/05/19(水) 21:52:04
サーブレットの入門書で良いものありますか
880デフォルトの名無しさん:2010/05/19(水) 21:53:54
>>879
10日でおぼえる JSP/サーブレット入門教室
881デフォルトの名無しさん:2010/05/19(水) 22:50:48
>>880
勉強になりました。ありがとうございます
882デフォルトの名無しさん:2010/05/19(水) 23:30:02
君はジャバに向いてないだろうな
883デフォルトの名無しさん:2010/05/19(水) 23:31:32
それはおまえが決める事じゃないな
884デフォルトの名無しさん:2010/05/19(水) 23:33:48
>>818
          ____   
       / \    /\  キリッ
     / (ー)  (ー)\      
     /   ⌒(__人__)⌒ \  
    |      |r┬-|    |  ウェッブサイトのことをホームページとかHPと呼ぶな
     \     `ー'´   /
    ノ            \
  /´               ヽ              
 |    l             \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.    
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))
885デフォルトの名無しさん:2010/05/19(水) 23:37:49
>>865
キーボードクラッシャーの動画をジャバで見たいのですがどこにありますんでしょうか?
886デフォルトの名無しさん:2010/05/19(水) 23:54:46
Javaで見てどうすんだ
887デフォルトの名無しさん:2010/05/19(水) 23:55:28
>>878
むしろお前が逝けよ池沼
888デフォルトの名無しさん:2010/05/20(木) 08:29:41
Hashmap は初期化時にまとめてkeyとvalueを設定できないのでしょうか?

リファレンスを見る限りみつかりませんでしたが、
もし一気に追加するうまい方法があれば教えて頂けないでしょうか?
http://www.ea.u-tokai.ac.jp/~sakata/jdk6/docs/ja/api/java/util/HashMap.html
889デフォルトの名無しさん:2010/05/20(木) 08:36:01
>>888
初期の確保領域なら指定できる。
あとはaddAllするしかない。
890デフォルトの名無しさん:2010/05/20(木) 08:53:09
>>889
ありがとうございます。 addAll の使い方を調べてみます。
891デフォルトの名無しさん:2010/05/20(木) 10:11:42
SwingGUIでメインのフレームとは別に設定画面的なダイアログ出すとして
ダイアログに設定対象のオブジェクトを丸投げして叩いてもらうのか、
設定終了ボタンかなんか押されたときに設定されたデータを回収して
設定対象のほうで処理するのか、とか悩んでいるんですけど何か定石ありますか
892デフォルトの名無しさん:2010/05/20(木) 10:20:58
EJB3の勉強中なんですが、webアプリでいうところのアプリケーションコンテクストに当たるものはあるのでしょうか。
また、あった場合はどうやってパラメータ設定等を行うのでしょうか。

EJB用ののweb.xmlみたいな存在があるのか気になってます。
893デフォルトの名無しさん:2010/05/20(木) 13:17:17
>>891
定石はない。俺はダイアログにオブジェクトの設定を任せる作りが多いが。
894デフォルトの名無しさん:2010/05/20(木) 17:04:26
>>893
設定を保存する可能性を考えると、設定データをまとめたクラス
のほうがいいのかなとかは考えたりしましたけど、必要がなさそうなら
多少気を使うことになっても丸投げのほうが簡単そうですね……。

ありがとうございました。
895デフォルトの名無しさん:2010/05/20(木) 21:45:37
x64で安定して使えるgdi++亜種gdipp
気が向いたらどうぞ
http://pc12.2ch.net/test/read.cgi/win/1259598381/734
896デフォルトの名無しさん:2010/05/20(木) 21:49:26
>>892
JNDI
897デフォルトの名無しさん:2010/05/20(木) 22:55:48
>>892
JNDIがありますよ
898デフォルトの名無しさん:2010/05/20(木) 23:54:27
>>892
JNDI はどうよ
899デフォルトの名無しさん:2010/05/21(金) 03:32:59
>>818
          ____   
       / \    /\  キリッ
     / (ー)  (ー)\      
     /   ⌒(__人__)⌒ \  
    |      |r┬-|    |  ウェッブサイトのことをホームページとかHPと呼ぶな
     \     `ー'´   /
    ノ            \
  /´               ヽ              
 |    l             \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.    
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))
900デフォルトの名無しさん:2010/05/21(金) 05:34:44
>>803はまだ粘着しているのか

>>891
Coleagueパターン、Mediatorパターン
901デフォルトの名無しさん:2010/05/21(金) 07:18:39
892です。

JNDIはコンテクストとは別物な感じがするのですが…
やりたいことはふたつあって、
ひとつはEJBへのアクセスに対してfilterを適用したいのです。
もう一つはEJBからさらに別のEJBをjava:comp/env名で呼ぶ時に、
web.xmlの<ejb-ref>にあたる情報をどこに書くのか知りたいのです。

引き続きよろしくお願いいたします。
902>>891:2010/05/21(金) 08:51:15
>>900
Mediatorパターン理解してきました。
種々の対象に対して一手に設定を加えられるようですね。
気を使う箇所がひとつで済むのもとても救いになりそうです。

とても参考になりました。ありがとうございました
903デフォルトの名無しさん:2010/05/21(金) 18:33:24
Integer[] i = new Integer[2]
i[0] = new Integer(1);

object[] array = i;
array[1] = "Hello"

上記のようにInteger型の配列をObject型の配列にキャストして
Object配列にStringオブジェクトを追加しようとすると実行時エラーが発生して追加できません。
オブジェクト型にキャストしてるのになぜ追加できないのでしょうか?
904デフォルトの名無しさん:2010/05/21(金) 18:37:49
arrayの本当の型がInteger[]だから
905デフォルトの名無しさん:2010/05/21(金) 18:37:54
arrayが指している配列の実体はInteger[2]のままだから
906デフォルトの名無しさん:2010/05/21(金) 21:47:57
>>901
ejb-jar.xmlにejb-refを追加
907デフォルトの名無しさん:2010/05/22(土) 00:14:06
j2eeのソースをみたいのですが、sunのサイトからダウンロードすると
SDK一式インストールさせられるみたいなので止めました。
ttp://kickjava.com/src/javax.index.htm
ここは見づらいのですが、簡単にj2eeのソースを見られるところはないでしょうか
908デフォルトの名無しさん:2010/05/22(土) 02:23:06
j2eeって何だ? J2EEなら知ってるが
909デフォルトの名無しさん:2010/05/22(土) 02:37:39
アホだこいつwww
910デフォルトの名無しさん:2010/05/22(土) 03:15:26
>>818
          ____   
       / \    /\  キリッ
     / (ー)  (ー)\      
       /   ⌒(__人__)⌒ \  
    |      |r┬-|    |  ウェッブサイトのことをホームページとかHPと呼ぶな
     \     `ー'´   /
    ノ            \
  /´               ヽ              
 |    l             \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.    
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))
911デフォルトの名無しさん:2010/05/22(土) 08:29:11
構成についてアドバイスをお願いします。

■現状
現在個人で、Webから情報を収集し、それを解析してWebで公開する
プログラムを組んでいます。言語は、VB.netでIDEはVisualStodio、DBはSQL SERVERです。

■相談内容
当初の予定では、静的ページのみにする予定でしたが、色々と欲張った結果
動的ぺージも利用することにしました。IDEはVisualStodioですのでIISを利用しようかと
思ったのですが、いかんせんOSの制限で厳しそうなので

Eclipse+ApacheTOMCATでの開発を考えております。
機器構成はPC2台でAP+DBサーバとWEBサーバを考えています。

VB.net+SQL SERVER+JSP+Apacheという組み合わせに気持ち悪さ全開なのですが
もうちょっとベストな方法はありませんでしょうか?

■要望
@VB.net+SQL SERVERはかなりの工数を割いて愛着もあるので変更したくありません。
A動的ページの利用方法は、自サイト内のアクセス解析からランキングリンクを表示したり
 新着を表示する予定です。


912デフォルトの名無しさん:2010/05/22(土) 08:56:21
PHPがいいよ。そのうちIISにも乗るし
913デフォルトの名無しさん:2010/05/22(土) 09:08:01
ASP 使えよ。
914903:2010/05/22(土) 09:45:12
>>904-905
レスありがとうございます。

とうことは
配列では、本来の型の配列を別の型でキャストした場合、別の型の値は代入できないってことなのでしょうか?
915デフォルトの名無しさん:2010/05/22(土) 09:47:48
Object[] にキャストしてみたところで実体は Integer[] のまま。
代入できません。
916デフォルトの名無しさん:2010/05/22(土) 09:58:51
VB.net + PostgreSQL + linux(apache+php)がいいよ。
917デフォルトの名無しさん:2010/05/22(土) 10:29:14
>>916
DBをPostgresSQLにリプレースすることにします。
WebサーバはCentOSにしときます。
動的ページはphp書いたことないので、やっぱりJSPでいくことにします。

■構成
@APサーバ
WindowsXP Pro+VB.net+PostgresSQL

AWebサーバ
CentOS+ApacheTomcat+JSP

■参照URL
http://itpro.nikkeibp.co.jp/article/NEWS/20070624/275673/?SS=imgview&FD=-309525945&ST=oss
http://itpro.nikkeibp.co.jp/article/NEWS/20070624/275673/?SS=imgview&FD=1730598997&ST=oss
http://q.hatena.ne.jp/1138334611

アドバイスありがとうございました。
918デフォルトの名無しさん:2010/05/22(土) 10:36:21
>>907
なんでいまどきJ2EEなんだ
Java EEならわかるが
919デフォルトの名無しさん:2010/05/22(土) 10:37:30
どっちでも良いんじゃねぇの。
920デフォルトの名無しさん:2010/05/22(土) 10:44:39
921デフォルトの名無しさん:2010/05/22(土) 12:48:19
ファイルのクローズ処理のことで質問です。
ファイルから文字を読みこむ処理をしたく、次のプログラムを書きました。

//入力ストリームと入力リーダ
FileInputStream fis;
InputStreamReader isr;
BufferedReader br;

try{
   fis = new FileInputStream(file_name);
   isr = new InputStreamReader(fis);
   br = new BufferedReader(isr);
   ・
   ・
}//try
catch (Exception e) {
   System.out.println(e);
}
finally{
   //ストリームとリーダのクローズ
   fis.close();
   isr.close();
   br.close();

   //異常終了
   System.exit(1);
}

この場合fisの生成時に例外が発生した場合、isrとbrは生成してないから
closeする時にまた例外が発生してしまうのでしょうか?
何かいい書き方があれば教えてください。
922デフォルトの名無しさん:2010/05/22(土) 13:01:14
>>916
普通はLAMPかLAPPをすすめるものだと思うんだけどな
923デフォルトの名無しさん:2010/05/22(土) 13:09:54
>>921
FileInputStream fis = null;
InputStreamReader isr = null;
BufferedReader br = null;
・・・
if (fis != null) fis.close();
if (istr != null) isr.close();
if (br != null) br.close()

とでもすれば

それにしても Java の close() って IOException 投げるのが糞仕様だな;
924デフォルトの名無しさん:2010/05/22(土) 13:13:34
>>922
すすめてるように見えるけど
925デフォルトの名無しさん:2010/05/22(土) 13:30:42
>>923
レスありがとう。
あぁそっか。それでいいですね。
開いてないファイル閉じようとしてたら例外投げないとダメってことじゃないですかね。私は自然だと思いましたけど
926デフォルトの名無しさん:2010/05/22(土) 15:27:23
口を閉じてろって言われて、喋ってなんかいませんなんて回答したりしたら
それは相手を小馬鹿にしていると、一般的な解釈では思われるぞ。
927デフォルトの名無しさん:2010/05/22(土) 15:34:16
928デフォルトの名無しさん:2010/05/22(土) 15:53:51
>>916
LAPPをすすめるならVB.NETを進めないでPHPをすすめるだろ

これじゃLAPVだ
929デフォルトの名無しさん:2010/05/22(土) 16:43:38
>>928
PHPすすめてるやん
VBはデータを収集するツールだろ。それは変えたくないって
いってるやん
なんなのいったい。
930デフォルトの名無しさん:2010/05/22(土) 17:36:41
変なところにphpの文字が

+両端に空白がないから見落とした
931デフォルトの名無しさん:2010/05/22(土) 17:57:48
眼科行け
932デフォルトの名無しさん:2010/05/22(土) 21:05:46
もう次スレだね
まともな書込みと病気っぽい書込みが5:5ぐらいになってきたね
933デフォルトの名無しさん:2010/05/22(土) 22:06:52
>>932
病的書き込み厨乙
934デフォルトの名無しさん:2010/05/22(土) 22:16:01
アフォキティが常駐してからだろ。
935デフォルトの名無しさん:2010/05/23(日) 00:33:00
>>934
こんなスレにまで工作活動のために出張しにきたアフォチョン乙
936デフォルトの名無しさん:2010/05/23(日) 00:34:35
>>935
ふざけんな。俺の方がアホだぞ。
937デフォルトの名無しさん:2010/05/23(日) 00:35:50
簡単にあぶり出されてほんと分かりやすいねぇこのバカウヨ。
938デフォルトの名無しさん:2010/05/23(日) 00:37:58
マ板でやれ。
何度も言わせんな。
939デフォルトの名無しさん:2010/05/23(日) 00:43:01
気をつけろ友愛されるぞ。
940デフォルトの名無しさん:2010/05/23(日) 00:44:13
ウヨかサヨかは知らんが質問の趣旨から外れた力説始めて
gdgdにするバカは常駐してるな。
941デフォルトの名無しさん:2010/05/23(日) 02:07:42
おまえらMetaTrader4やってみろよ
http://www.odls.co.jp/mt4/index.html
プログラミングできるトレーディングツールで
JAVA経験者なら言語的に苦はないと思うぞ
相場用語が多々あって覚えなきゃならんことも多いが
新しいフレームワークやライブラリを勉強し続けてるおまえらなら大丈夫だよ
ドキュメントとしては
http://www.metasys-seeker.net/MQL4_Reference_ver1/MQL4_Reference_Contents.html
ITドカタで身に着けたプログラミング力をカネにできるぞ
942デフォルトの名無しさん:2010/05/23(日) 08:17:23
JDBC関連の質問です。
以下のように複数のSELECT文を実行してそれぞれの結果セットを取得することはできますか?

Stamement s = ...;
s.execute(Select文1);
s.execute(Select文2);
s.execute(Select文3);
ResultSet rs1 = s.getResultSet();
ResultSet rs2 = s.getResultSet();
ResultSet rs3 = s.getResultSet();
943デフォルトの名無しさん:2010/05/23(日) 08:36:29
>>942
できない
使えるSQLは1個だけ
944デフォルトの名無しさん:2010/05/23(日) 09:01:51
byte型の値はint型の変数に代入可能なのに
なぜbyte型の配列はint型の配列に代入できないのでしょうか?
945デフォルトの名無しさん:2010/05/23(日) 09:05:21
インタフェースの存在意義がわかりません。
メソッドも宣言だけで空っぽ・・・。
多態性とかいうのを実現していますよ!っとアピールするためにSUNが実装した機能ではないでしょうか?
946デフォルトの名無しさん:2010/05/23(日) 09:08:57
>>944
byte は 1 バイト。new byte[10] なら 10 バイトの配列。
int は 4 バイト。new int[10] なら 40 バイトの配列。
そもそも物理的に違うものだから代入はできません。

>>945
違います。存在意義が分からないうちは多態性は理解できてませんよ。
947デフォルトの名無しさん:2010/05/23(日) 09:53:54
多重継承を回避できるのが一番の導入理由じゃね
インタフェースはそれだけのものではないが
948デフォルトの名無しさん:2010/05/23(日) 10:31:20
>>946
はあ?
949デフォルトの名無しさん:2010/05/23(日) 10:44:26
>>945
「インタフェース 抽象クラス 違い」とかでぐぐったらいいかも。
俺それで理解したから。
950デフォルトの名無しさん:2010/05/23(日) 10:50:04
>>945
定数を大量に定義して、そこら中にImplementsする
嫌がらせに使える
951デフォルトの名無しさん:2010/05/23(日) 10:53:42
よっぽどそのネタ気に入ったのか。
952デフォルトの名無しさん:2010/05/23(日) 11:06:06
よっぽどそのネタ気に入ったのか。
953デフォルトの名無しさん:2010/05/23(日) 11:20:54
大量に定数を定義したインタフェース同士をextendsして
スーパークラスとサブクラスにそれぞれimplementsすると良いよ
954デフォルトの名無しさん:2010/05/23(日) 11:26:04
質問です。
今ArrayList使おうとして「import java.util.ArrayList;」と書いたら、
Eclipseに「インポートしたjava.util.ArrayListは見つかりません」と怒られちゃいました。
考えられる原因って何がありますかね・・?

JDKのバージョンは6です。一応再インストールしても変わりませんでした。
よろしくお願いします。
955デフォルトの名無しさん:2010/05/23(日) 12:09:33
>>944
配列の要素は、構成要素型と呼ぶ同じ型を持つ必要がある。
つまり、これは配列にとっての型に相当する。

プリミティブ型の配列に関して拡大縮小変換は言語として存在しない。
参照型の配列に関しての拡大縮小変換は構成要素型同士の拡大縮小変換の有無に従う。

Byte[] ba = new Byte[] { 1, 2, 3 };
byte[] pba = new byte[] { 1, 2, 3 };
Number[] na;

na = ba;
// 不可 Integer[] ia = na;
// 不可 na = pba;
956デフォルトの名無しさん:2010/05/23(日) 12:12:49
最近、いろいろすっとばし過ぎて意味不明になってる回答が多いが同一人物か?
957デフォルトの名無しさん:2010/05/23(日) 12:28:50
          ____   
       / \    /\  キリッ
        / (ー)  (ー)\      
     /   ⌒(__人__)⌒ \  
    |      |r┬-|    |  ウェッブサイトのことをホームページとかHPと呼ぶな
     \     `ー'´   /
    ノ            \
  /´               ヽ              
 |    l             \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.    
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))



          ____
        /_ノ  ヽ、_ \
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /     |r┬-|    | (⌒)/ / / //    だっておwwwwwwwww
| :::::::::::(⌒)    | |  |   /  ゝ:::::::::::/
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー'´      ヽ /    /     バ
 |    |   l||l 从人 l||l      l||l 从人 l||l  バ   ン
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、    ン
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))
958デフォルトの名無しさん:2010/05/23(日) 12:58:53
>>956
うん。済まない、俺のことだな。
簡潔かつエレガントに回答出来ないから、言語規定からつぎはぎ超解釈回答。
いっそ突き放して
http://www.y-adagio.com/public/standards/tr_javalang2/arrays.doc.html
http://www.y-adagio.com/public/standards/tr_javalang2/conversions.doc.html
嫁。とでも言うほうがいいか。
959286:2010/05/23(日) 13:31:12
Junitで戻り値がないようなメソッドってどうやってテストするんだ?
960デフォルトの名無しさん:2010/05/23(日) 13:34:55
>>958
なんでジャヴァなんかに関心を持ったんですか?
今も昔もマイクロソフトやアドビの方が業界をリードしてるわけだからジャヴァなんかよりそっちをマスターしたほうがいいじゃないですか。
961954:2010/05/23(日) 13:36:42
ダメだ・・どうしても分かんない。
インポートするクラスが入ってるのってJDKで合ってますよね?違うものをインストールしなきゃだめなのかな。
962デフォルトの名無しさん:2010/05/23(日) 13:39:09
>>959
仕様で想定されるパラメータを渡して例外が出ないことを確認する。
あるいは想定した例外が発生することを確認する。
アウトプットが無いという事は大抵何かの状態 (インスタンス変数なりディスクなり
DB なり) が変わる機能だろうから、その状態が正しく遷移しているかを確認する。
963デフォルトの名無しさん:2010/05/23(日) 13:42:39
>>961
プロジェクトのプロパティからビルドパス-ライブラリで JRE システムライブラリが参照されているか確認。
なければライブラリの追加。JDK 1.6 がちゃんと設定のインストール済み JRE に登録されてるか?
964954:2010/05/23(日) 13:56:49
>>963
あー・・・すごく申し訳なかった。
1.6はちゃんと登録されてたんですが・・・J2MEでの開発時はArrayListは非サポートでした;
J2ME初めてだったので普通のアプリと同じで開発進めてました・・・。
965デフォルトの名無しさん:2010/05/23(日) 13:58:24
お兄さんそんなことは分かってたよ。
966デフォルトの名無しさん:2010/05/23(日) 14:59:52
Javaでお勧めの正規表現のライブラリってある?
967944:2010/05/23(日) 15:07:58
>>946さん
あまりわかって無いような気がします・・。

byte型の値をint型の変数に代入するとき、int型に変換された後、代入されますよね?
同じくbyte型の配列の値ではなぜそのような型変換が行われないのでしょうか?
968デフォルトの名無しさん:2010/05/23(日) 15:11:39
>>964
MIDPならMIDPスレに行けCDCならスレがないからあきらめろ。
それ以前にJavaMEの仕様を読め。
JSR 139,118,218,219,217,216とあとは185あたりも覚えておくといい。
969デフォルトの名無しさん:2010/05/23(日) 15:13:24
配列の代入というのは参照の代入なわけだが
変換が入ると単なる参照の代入じゃなくなっちゃうよね
970デフォルトの名無しさん:2010/05/23(日) 15:29:32
プログラミングの超初心者ですが、昔のN88-BASICの命令の大部分は
Visual Basic でも使えるのですか? 誰か、教えて下さい。
    
971デフォルトの名無しさん:2010/05/23(日) 15:32:22
2chの初心者の間違いではw
972デフォルトの名無しさん:2010/05/23(日) 15:39:47
>>971
そんなこと言って教えてやらないのは、オマイも分からないのだろう!
  
973デフォルトの名無しさん:2010/05/23(日) 15:40:27
>>967
配列はオブジェクトだから、継承関係のない物には
キャストできないって事では。

Byte b = new Byte("127");
Integer i = (Integer)b;
が、出来ないのと同じ理由だと思うよ。
974デフォルトの名無しさん:2010/05/23(日) 15:43:06
>>972
いや、しらねーよw
975デフォルトの名無しさん:2010/05/23(日) 16:00:41
>>972
そもそもVBとかスレ違いだろ
976デフォルトの名無しさん:2010/05/23(日) 16:02:16
>>975
そうなの?すごいな!
977デフォルトの名無しさん:2010/05/23(日) 16:29:19
>>970
basicに限らず、もう別物だと思って一からやり直したほうがいいですよ。
978デフォルトの名無しさん:2010/05/23(日) 16:38:05
How many files(0-15)?
979デフォルトの名無しさん:2010/05/23(日) 17:16:57
How many failures did you have, when you were making the soft (0-15)?
980デフォルトの名無しさん:2010/05/23(日) 17:18:40
981デフォルトの名無しさん:2010/05/23(日) 17:27:11
>>967,944
>955で拙い説明で詳しく書いてる。
説明が分からなければ>958が情報元へのリンク。
982デフォルトの名無しさん:2010/05/23(日) 17:38:34
馬鹿にはjavaは無理。

膿め。
983デフォルトの名無しさん:2010/05/23(日) 17:52:55
世界でjava人口やc++,c#人口はどれぐらいかご存知ですか?
984デフォルトの名無しさん:2010/05/23(日) 18:23:05
俺は全部使うから最低でもそれぞれ一人。
985デフォルトの名無しさん:2010/05/23(日) 18:24:17
俺はjavaしか使わない
986デフォルトの名無しさん:2010/05/23(日) 18:43:32
C#使ったことないなー
987デフォルトの名無しさん:2010/05/23(日) 19:05:05
どちらにしろ低能には使えないから安心して
988デフォルトの名無しさん:2010/05/23(日) 19:14:42
響きは悪いが低脳にも使えるから普及したんだろJavaとかC#は
Java使えてる俺頭いいってかw
989デフォルトの名無しさん:2010/05/23(日) 19:25:19
むしろどれか一つでも使えないっていうのは終わってるな。
990デフォルトの名無しさん:2010/05/23(日) 19:35:52
>>941
ほうほう、おもしろそうっだな

だがJAVAはない
Javaな
991デフォルトの名無しさん:2010/05/23(日) 19:37:03
>>942
ひとまず、O/Rマッピングフレームワークを使うことをおすすめする
992デフォルトの名無しさん:2010/05/23(日) 20:15:04
>>945
存在意義を知りたければデザインパターンについて勉強してこい!
993デフォルトの名無しさん:2010/05/23(日) 20:16:50
>>950
まるで悪しきグローバル変数だな
994デフォルトの名無しさん:2010/05/23(日) 20:18:28
>>959
MockObjectを使う
995デフォルトの名無しさん:2010/05/23(日) 20:21:49
>>993
定数だから問題は無いだろう
996デフォルトの名無しさん:2010/05/23(日) 20:42:49
>>968
諦めろじゃなくて携帯電話開発スレあたりかそのスレで質問するか
新たにスレ立てるかすることを勧めろよ
997デフォルトの名無しさん:2010/05/23(日) 21:35:22
次スレ立てた

★★Java質問・相談スレッド139★★
http://pc12.2ch.net/test/read.cgi/tech/1274617383/
998デフォルトの名無しさん:2010/05/23(日) 21:35:45
乙うめ
999デフォルトの名無しさん:2010/05/23(日) 21:50:42
うめ
1000デフォルトの名無しさん:2010/05/23(日) 21:55:00
1000!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。