2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

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

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

前スレッド
【初心者】Java質問・相談スレッド129【歓迎】
http://pc12.2ch.net/test/read.cgi/tech/1247322478/
次スレは>>990あたりで。

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

2 :デフォルトの名無しさん:2009/08/02(日) 23:48:39
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 8
ttp://pc11.2ch.net/test/read.cgi/tech/1227234261/l50
■ SWT は --
Java 高速GUI SWT 3
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50

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

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

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

**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
ttp://www.java.com/ja/


3 :デフォルトの名無しさん:2009/08/02(日) 23:50:13
環境の話題は荒れるので言語依存でない(生産性の話とか)なら他行って下さい

■NetBeans Part5【Java/C++/Ruby/Python/PHP】
http://pc12.2ch.net/test/read.cgi/tech/1247926906/
■Eclipse統合M28【Java/C++/Ruby/Python/Perl】
ttp://pc12.2ch.net/test/read.cgi/tech/1247051216/

4 :デフォルトの名無しさん:2009/08/03(月) 00:00:29
それならIDEスレ誘導のアドレスも張っとけ

5 :デフォルトの名無しさん:2009/08/03(月) 00:08:34
土方お断りとも書いてよ

6 :デフォルトの名無しさん:2009/08/03(月) 00:16:01
童貞もお断りで。

7 :デフォルトの名無しさん:2009/08/03(月) 00:53:58
>>前スレ982
4行目を
int[] d = new int[]{5,2,3,9};
と書いたのと同じ。

たったこれだけのためにいくつレス使ってんだ。

8 :デフォルトの名無しさん:2009/08/03(月) 02:46:37
童貞は許していただけませんか・・・

9 :デフォルトの名無しさん:2009/08/03(月) 06:37:52
素人童貞は、OK?

10 :デフォルトの名無しさん:2009/08/03(月) 07:24:26
JAVAでGUIのツールって簡単に作れるかいマスター

11 :デフォルトの名無しさん:2009/08/03(月) 09:01:58
>>7
ご回答ありがとうございます。
つまり、配列をnewした時に、配列内の要素に割り当てた値は
その要素の初期値であるという理解でいいですかね

変数a,b,cが動いていても配列内のd[2]に格納されるのは
dがnewされる直前の状態のa+b-2つまり3であって
その後a,b,cが変動しても、再びdをnewするかd[2]に値を代入しない限りは、d[2]には影響しない
ということですね

12 :デフォルトの名無しさん:2009/08/03(月) 09:43:57
>>11
そのとおり。配列かどうかは関係なくて、ふつうのint変数でも同じでしょ。
int a = 2
int b = 3
int c = a + b;
の後に a = 3; としても c の値に影響はない。cに入っているのは値であって式ではない。






13 :前スレ954:2009/08/03(月) 10:16:42
前スレ>>967
お返事感謝します
わかりました。ありがとうございます

14 :デフォルトの名無しさん:2009/08/03(月) 10:18:55
>>11
逆に遅延評価の直接的な表現方法はないので
もし式に含まれる変数に連動して式の値を変えたいのなら
式をどう評価するかのメソッドを持ったクラスを作成して
式の値が必要な場所では式を直接記述せず評価メソッドを呼ぶようにする

15 :デフォルトの名無しさん:2009/08/03(月) 10:22:35
複雑過ぎてすぐにエンバグしそう。

16 :デフォルトの名無しさん:2009/08/03(月) 11:41:06
eclipseでアクションフォームBeansのコンパイルが通りません。
package struts01;
import org.apache.struts.action.*;
public final class BeginForm extends ActionForm {
と書くと、org.apache.struts.action.*;が無いと言われます。
解決方法を教えて下さい。

17 :デフォルトの名無しさん:2009/08/03(月) 12:11:15
>>16
WEB-INF/lib
の下に必要なjarがないのでは?

18 :デフォルトの名無しさん:2009/08/03(月) 12:20:38
>>17
WEB-INF/libの下にjarを入れているけど効いてないみたいですね。
以前作った動的webプロジェクトはビルド構成を見るとWEBAPPライブラリに
servlet関連のjarなどが登録されているけど、今回作ったStruts1用の
プロジェクトではWEB-INF/libの下にjarを入れても自動的に
WEBAPPライブラリに登録されていないみたいです。
StrutsもServletもともにコンパイルが出来なくなっています。
原因と対策を教えて下さい。

19 :デフォルトの名無しさん:2009/08/03(月) 12:49:07
>>18
原因は知らん。
対策は
プロジェクトを右クリックしてプロパティを選択。
「Javaのビルドパス「→「ライブラリー」タブにて「JARの追加」
でWEB-INF/libの下のjarを全部追加。

20 :デフォルトの名無しさん:2009/08/03(月) 13:21:14
>>19 うまくいきました。ありがとうございました。

21 :デフォルトの名無しさん:2009/08/03(月) 14:31:35
>>15
固定式なら関数オブジェクトってだけだろ
public class Sample {
public static void main(String[] args) {
Var a = new Var(2);
Var b = new Var(3);
Expr[] d = new Expr[]{a,b,new ExprApBm2(a,b)};
Expr e = d[2];
System.out.println("e="+e);
a.set(4);
System.out.println("e="+e); }
static abstract class Expr {
abstract int get();
public String toString() { return ""+get(); }}
static class Var extends Expr {
private int v;
Var(int v) { this.v=v; }
public void set(int v) { this.v=v; }
public int get() { return v; }}
static class ExprApBm2 extends Expr {
private Expr a, b;
ExprApBm2(Expr a, Expr b) { this.a=a; this.b=b; }
public int get() { return a.get()+b.get()-2; }
}}

22 :デフォルトの名無しさん:2009/08/03(月) 14:46:30
eclipseからservletを作成するときは新規でサーブレットを、
JSPを作成するときはJSPを選択するけど
アクションフォームBeansやアクションクラスを作成するときには、
それらしい選択肢が無いのですけど、普通にサーブレットととして
新規作成して良いものなのでしょうか。

23 :デフォルトの名無しさん:2009/08/03(月) 15:35:02
Struts1.3 API日本語が、無いみたいなんですけど
ないんですか?

24 :デフォルトの名無しさん:2009/08/03(月) 17:58:03
Javaでは、変数や配列もオブジェクトなんですか?

25 :デフォルトの名無しさん:2009/08/03(月) 17:59:21
配列はオブジェクトです

26 :デフォルトの名無しさん:2009/08/03(月) 18:16:12
>>22
これはOKでした。

27 :デフォルトの名無しさん:2009/08/03(月) 21:46:50
プログラミング環境に関しては
ここで質問していいんでしょうか?

28 :デフォルトの名無しさん:2009/08/03(月) 21:48:42
>>6

29 :デフォルトの名無しさん:2009/08/03(月) 21:57:40
javaの色々な設定とかするのにXMLがよく使われているけれど
XMLのコンパイラーといいますか、解釈するエンジンは何が担当しているんでしょうか。

30 :デフォルトの名無しさん:2009/08/03(月) 22:06:18
JavaSuperXML

31 :デフォルトの名無しさん:2009/08/03(月) 22:06:54
xmlパーサ

32 :デフォルトの名無しさん:2009/08/03(月) 22:13:22
>>30 >>31
Microsoft XML Parser というのがヒットしました。
OSで管理してるんですね。ありがとうございました。

33 :デフォルトの名無しさん:2009/08/03(月) 22:14:55
ワロタw








ワロタww

34 :デフォルトの名無しさん:2009/08/03(月) 22:15:55
ギャグだろ。

35 :デフォルトの名無しさん:2009/08/03(月) 22:17:29
もうダメだろこのスレ

36 :デフォルトの名無しさん:2009/08/03(月) 22:22:12
むしろ始まった。

37 :デフォルトの名無しさん:2009/08/03(月) 22:43:36
>>29
javax.xmlというパッケージがあってね…


38 :デフォルトの名無しさん:2009/08/03(月) 22:57:49
http://pc11.2ch.net/test/read.cgi/prog/1248441946/176

OOPってこうやって使うの?

39 :デフォルトの名無しさん:2009/08/04(火) 00:49:51
そういう風にも使える。
実装の隠蔽は結合度を弱めてくれる良い方法なんで、普通に行うテクニック。

気の利いた奴なら実装やらをコピペして使うんだが、逆にデバッグしてメールされた日には、キーッ!

40 :デフォルトの名無しさん:2009/08/04(火) 01:27:13
  ∧_∧ クワッ!
 ∩`iWi´∩
 ヽ |m| .ノ
  |. ̄|
  U⌒U

41 :デフォルトの名無しさん:2009/08/04(火) 01:44:39
>>29
ま・・・



向き不向きってのはあるからな

42 :デフォルトの名無しさん:2009/08/04(火) 11:16:30
Pattern p = Pattern.compile(regexp, Pattern.MULTILINE);
Pattern.MULTILINEというのは
ABCZXY
DEFZXY
という2行になっている文字列を1行として扱う。
そして、regexpが.*ZXY$だったら何度もZXYにマッチするということなのですか?

43 :デフォルトの名無しさん:2009/08/04(火) 12:13:47
複数行モードでない場合: $ は文字列全体の終端にだけマッチ
複数行モードの場合: $ は各行の終端にマッチ
だけの違いのはず

44 :デフォルトの名無しさん:2009/08/04(火) 12:17:45
>>42
そんなこと考えるよりJAVADOCの読み込み練習しといたほうがいいんじゃね?w


45 :デフォルトの名無しさん:2009/08/04(火) 14:29:18
DOMでXMLファイルを読み込み終った場合、その後は完全にファイルにアクセスしなくなるわけ?

46 :デフォルトの名無しさん:2009/08/04(火) 14:32:19
>>42
試せよ


47 :デフォルトの名無しさん:2009/08/04(火) 14:49:35
Struts1のblankのSRCの中のbuild.xmlは、Antを使えるようにしたとき
だけに有効になるものですか?

48 :デフォルトの名無しさん:2009/08/04(火) 14:59:31
このスレも夏だな〜
あぼーんの嵐だ

49 :デフォルトの名無しさん:2009/08/04(火) 18:16:31
サンプルプログラム組んで実行すれば分かるような事を
なぜわざわざ質問しようとするのか?

以後そういう質問は禁止にします

50 :デフォルトの名無しさん:2009/08/04(火) 18:19:46
面倒くさいからに決まってるじゃんそんなの
そんなことこそ聞かなくても分かるじゃん

51 :デフォルトの名無しさん:2009/08/04(火) 18:33:10
数分程度の面倒を惜しんで何時間も回答を待つってのはあまり賢い選択とは思えないが

52 :デフォルトの名無しさん:2009/08/04(火) 18:35:26
その間は別のことをしているので問題ないです

53 :デフォルトの名無しさん:2009/08/04(火) 18:43:49
夏休みの宿題は自分でやらないのね〜
いつになっても身につかないお

54 :デフォルトの名無しさん:2009/08/04(火) 18:52:01
別に身に付かなくていいのですわ

55 :デフォルトの名無しさん:2009/08/04(火) 18:59:08
見当外れのことを自信たっぷりに書けば全力で訂正してもらえるよ。
ボランティアで。

56 :デフォルトの名無しさん:2009/08/04(火) 19:08:13
便利だよな・・・

57 :デフォルトの名無しさん:2009/08/04(火) 19:19:07
でもここの奴らってあまり性能良くないんだよね〜
使えねーって言うかw

58 :デフォルトの名無しさん:2009/08/04(火) 19:32:42
使えないものを無理して使おうとする試みは大抵無駄に終わるから最初からやめておくべき

59 :デフォルトの名無しさん:2009/08/04(火) 19:37:35
かなり程度は低いよなこのスレ

60 :デフォルトの名無しさん:2009/08/04(火) 19:42:45
初心者が集まるからな

61 :デフォルトの名無しさん:2009/08/04(火) 19:49:10
初心者本ぐらいはわかるようになったけど、次のすてっぷにいけ無いぽ。
どうすればよかんべ?

62 :デフォルトの名無しさん:2009/08/04(火) 19:50:43
とりあえず結城本でも読んでみたら?

63 :デフォルトの名無しさん:2009/08/04(火) 19:57:17
目的無くプログラミングしてたって進むはずない

64 :デフォルトの名無しさん:2009/08/04(火) 20:57:47
javaの勉強のために、2ちゃんねるのdatを専ブラのようにまとめ表示するプログラムを作りたいと考えています。
>デフォルトの名無しさん<>sage<>2009/08/02(日) 23:47:15 <> プログラミング言語Javaに関する質問スレです。
public class Res { String from; String mail; String date; String message・・・}
public class CreateResList {
   public List<Res> getResList() {}
}
みたいな感じでレスをまとめます。また、レスを表示するクラスpublic CreateThreadView{}みたいなクラスを作って
CreateResList#getResList()の戻り値を利用したい考えています。
しかし、ResクラスはC言語で言う構造体のような使い方をしているので、コンストラクタ以外の操作(メソッド)が思いつきません
javaなのにクラスを構造体のように使っているので、Resクラスに違和感があってたまりません。
Resクラスの代わりにenumを使おうかと考えましたが、
今まで使った事がないのでenumについてはほとんど知らないので止めることにしました
ツッコミどころ満載ですいませんが、何方様かアドバイスお願いします

65 :デフォルトの名無しさん:2009/08/04(火) 21:02:36
>ResクラスはC言語で言う構造体のような使い方をしている

いいじゃん別に

66 :デフォルトの名無しさん:2009/08/04(火) 21:03:08
そのレスを表示用にフォーマットするメソッドとか
a<>b<>c<>d 形式の文字列を分解して各フィールドに格納するメソッドとか

67 :64:2009/08/04(火) 21:14:25
>>66
それは、考えていませんでしたorz
public class CreateResList {
   List<String>line;
   public CreateResList(InputStream in) {
      line = 1行ずつ読み込んで、lineに格納する処理
   }
   public List<Res> getResList() {
      List<Res> resList() = new ArrayList<Res>();
      resList&Resクラスにレスを格納する処理
   }
みたいにした方が、Resの独立性が高くなって後々使いやすいんじゃないかなと考えたからです。


68 :デフォルトの名無しさん:2009/08/04(火) 21:16:21
getResListする度にArrayList生成する気なの・・・?

69 :デフォルトの名無しさん:2009/08/04(火) 21:19:36
Y田くんへ
ちょっと、困ったことがあって別のスレで質問をしているよ
暇だったら、スレで回答頼むっちょ
ttp://pc12.2ch.net/test/read.cgi/tech/1249224435/64


70 :64:2009/08/04(火) 21:20:51
>>69
違うスレの住人にも書き込もうとしたら
誤爆したorz

71 :デフォルトの名無しさん:2009/08/04(火) 21:21:36
何してんだお前は。

72 :デフォルトの名無しさん:2009/08/04(火) 21:27:55
>>67
データと操作を分離するそういうやり方もあってそれでもOKだけど、
もしオブジェクト指向初心者なら>>66のようにするのがお勧め。
enumは関係ない。


73 :64:2009/08/04(火) 21:31:49
>>68
List<Res> resList;
private static void createResList() {}
public List<Res> getResList() { return resList;}
みたいに、作っている間にちゃっかり分離すると思います。
思いつきで書いたので、申し訳ありません
>>71
すいません...
職業プログラマだった人が別のスレを見ているもので....

74 :デフォルトの名無しさん:2009/08/04(火) 21:39:00
>>68
コストがさして重要でない場面なら、getの度に防御的コピーしておく方が安全でいいという考え方も
もしくは Collections.unmodifiableList で囲むとか

75 :64:2009/08/04(火) 21:49:40
>>72
お返事ありがとうございます
やっぱり、>>66のようにようにした方がいいのですか
わかりました。そっちの方向で作りたいと思います

>もしオブジェクト指向初心者なら
Linuxばっかりで遊んでいたので、プログラミング苦手です

練習なので、まぁまぁの完成度ならばうpロダにあげるかもしれません
その時はよろしくお願いします

76 :デフォルトの名無しさん:2009/08/04(火) 21:55:38
環境設定に関してなんですが、CLASSPASSは変数値を空欄に
するんでしょうか?
ttp://www.db.is.kyushu-u.ac.jp/rinkou/javaintro/javac.html
を見たんですが。

77 :デフォルトの名無しさん:2009/08/04(火) 21:57:48
classpassなんて変数使って何がしたいんだ

78 :デフォルトの名無しさん:2009/08/04(火) 21:59:57
何をしたいのかはともかく、
>>76 そのページの絵は空欄じゃなくてピリオド1個

79 :デフォルトの名無しさん:2009/08/04(火) 22:01:44
>>76
その例では「.」が入ってるんだよ。
見づらいけどちゃんと書いてあるだろ?

80 :デフォルトの名無しさん:2009/08/04(火) 22:05:08
>>77
とうぜんシロウトクラッキングっしょw

81 :76:2009/08/04(火) 23:43:12
HelloWorldからやってる素人なんですが、
コンパイル時にエラーがでたのでCLASSPASS
を上のサイトのとおりにいじったのですが
CLASSPASSは関係ないんですかね?指定された
パスが見つからないというエラーがでたのですが。

82 :デフォルトの名無しさん:2009/08/04(火) 23:45:27
CLASSPASSなんて変数使って何がしたいんだ

83 :デフォルトの名無しさん:2009/08/04(火) 23:46:29
しつごい

84 :デフォルトの名無しさん:2009/08/04(火) 23:59:07
関係ある
classpath使うと
現在居るフォルダー見に行かなくなる
両方書けば良いだけだろうけど

85 :デフォルトの名無しさん:2009/08/05(水) 00:01:11
CLASSPASSとCLASSPATH両方必要と申すか

86 :デフォルトの名無しさん:2009/08/05(水) 00:05:46
http://www.javaroad.jp/java_basic2.htm


87 :デフォルトの名無しさん:2009/08/05(水) 00:41:58
最近は答える側まで初心者みたいだな

88 :デフォルトの名無しさん:2009/08/05(水) 00:59:49
Javaにはあまりくわしくないのですが
なんでほとんどのレンタルサーバってJavaって使えないんですか?
PythonやRubyやCでCGI可能なとこはありますがJavaでCGIというのは無理なのでしょうか?
Tomcatなどの専用のアプリケーションサーバが必要だからですか?
クロスプラットフォームでASPのようにコスト面でもそんなに問題にならないと思うのですけど
何が弊害となってレンタルサーバにはJavaが入っていないのでしょう?
あまりサーバ関連とかも詳しくないので識者の方の意見を聞きたいです

89 :デフォルトの名無しさん:2009/08/05(水) 01:35:29
レンタルサーバの業者に聞け

90 :デフォルトの名無しさん:2009/08/05(水) 02:27:11
年に36,540円ほど払うなら無いわけでも無い。
http://www.akira.ne.jp/ とか。

91 :デフォルトの名無しさん:2009/08/05(水) 02:42:47
だいたい利用可能なのはLLだからなあ
面倒くさいんだろ

92 :デフォルトの名無しさん:2009/08/05(水) 03:02:27
個人でやる人は自鯖立てるんじゃないかね?

93 :デフォルトの名無しさん:2009/08/05(水) 05:27:07
自鯖立てるかフリーのダイナミックDNSだろうな


94 :デフォルトの名無しさん:2009/08/05(水) 10:17:20
>>88
メモリだろ、Tomcat動かすとした場合、最低でも256MBくらいはないと困る
おまけにTomcatをシェアして、各ユーザにウェブアプリを配備させたとしても、落ちるときは全部巻き込むわ、細かい設定は各アプリで制御できないわで、まったくの第三者がシェアするのには向かない。
そもそもCGIにするのは無謀。

で、月2000円くらい出せばJava使えるVPSとかあるけど、それも出せないならPHP仕えという話。

95 :デフォルトの名無しさん:2009/08/05(水) 16:30:34
JPanelのレイアウトをBoxLayoutにしたら、pane.add(何か)をすると中央に表示されます
これをどうにか左寄せにしたいのですが、どなたか教えてください

96 :デフォルトの名無しさん:2009/08/05(水) 17:08:30
アクションフォームBeanのゲッターとセッターメソッド名と、
入力画面JSPの項目名は同じ名前じゃないといけないのですか?

97 :デフォルトの名無しさん:2009/08/05(水) 18:39:15
違う名前でできるようにするとして、別の方法で関連付けなきゃ使えるわけがない。
あるかもしれないけど、別の方法は使ったことないな。

98 :デフォルトの名無しさん:2009/08/05(水) 19:08:47
>>97 ありがとうございました。昨日からはまっていました。



99 :デフォルトの名無しさん:2009/08/05(水) 20:22:38
eclipseでJSPを実行しようとしたらサーバで実行という表示が出ず
実行が出来ないのですけど、何がいけないのでしょうか。

100 :デフォルトの名無しさん:2009/08/05(水) 20:33:12
何かがいけない

101 :デフォルトの名無しさん:2009/08/05(水) 20:41:24
>>95
pane.add(Box.createGlue());

102 :デフォルトの名無しさん:2009/08/05(水) 20:42:20
Tomcatプラグインで、配備だったか設定だったかはやった?

103 :デフォルトの名無しさん:2009/08/05(水) 20:57:36
Tomcatプラグインは使ってないです。Tomcat側でコンテキストを
書いてます。サーブレットは動くんですけど。JSPもブラウザから
直接にURLでアクセスは出来ます。eclipseから実行したいけど、
サーバで実行という選択が表示されないんですよね。

104 :デフォルトの名無しさん:2009/08/05(水) 21:04:28
>>101
ありがとうございます

105 :デフォルトの名無しさん:2009/08/05(水) 21:07:46
Javaの初心者です。
1つ質問があります。
J2SEで用意されているクラスのフィールド(定数)を設定して、
そのフィールド(定数)の持っている機能を使えるようにするにはどうしたら良いですか?
因みに使おうとしているのは「ResultSet」クラスのフィールドです。
プリペアドステートメントでSQLを実行して「ResultSet」型のオブジェクトを返します。

106 :デフォルトの名無しさん:2009/08/05(水) 21:16:10
>>88
質問なら他にいけ

107 :デフォルトの名無しさん:2009/08/05(水) 21:24:56
eclipseの中のStruts用のプロジェクトからは、サーブレットやJSPを
eclipseから実行できないとかあるんでしょうか?

108 :88:2009/08/05(水) 21:28:11
遅くなりましたがレスありがとうございました
別に金額とかはどうでもいいのです
なんで入ってないのか疑問に思っただけなので
Javaの欠点みたいなものが弊害で導入できないのだろうと思い
Javaに詳しそうなこのスレで質問してみました

>>91
単にめんどくさいというのもあるのかなと思いましたがそうなんですかね?
LLっていうのは何のことかわかりませんすみません

>>94
そういう仕様では確かに共有サーバでは厳しいですね
メモリもそんなにつかうということは結構動かすのにもコストもかかるんですね

貴重な意見どうもありがとうございました

109 :デフォルトの名無しさん:2009/08/05(水) 21:33:40
Javaの多重配列は「配列の配列」であり、
int[] mAndD = new int[12][31];
は『31個の要素を持った配列を12個持っている配列を作成』
という意味だということです。

ここで疑問なのですが、多重配列が「配列の配列」だとすると、
『2次元配列が行列』というのは間違いで
『@まず長さ12の配列オブジェクトを用意⇒12個の要素それぞれが、長さ31の配列オブジェクトを参照している』
という解釈で良いのでしょうか?

図で表すとこんな感じ。http://kita.kitaa.net/10/s/10mai107.jpg

110 :デフォルトの名無しさん:2009/08/05(水) 21:35:17
>>107
できんの?

ほんとに答えてほしいなら、
もーちょっと環境とかやった手順とか詳細を書けよ。
その質問で答えかえってくると思うか?


111 :64:2009/08/05(水) 21:36:50
昨日、2ちゃんねるスレを綺麗に表示したいとレスした者です
ひとまず、スレッドを表示しながら考えようと思い、swingの所も少しだけ作りました
最初はJLabelで作っていたのですが、JEditorPaneの方が後々楽になりそうな気がしてJEdtiorPaneを使いました
そして、IDEで試しに動かしてみたら、CPUに高い負荷が係ります
同じjavaのV2C(専ブラ)と負荷を比べてみましたが、あきらかにこのコードの方がCPUへの負荷です
すいませんが、何方かヒントをください

長々スレを使うのは悪いので、アップロードしました
まだ、作っている段階なのでJLabelとJEditorPaneが混在する意味不明な所もあります....orz
ttp://www.dotup.org/uploda/www.dotup.org8121.zip.html

112 :デフォルトの名無しさん:2009/08/05(水) 21:37:18
>>103
それは・・・既に「Eclipse とは無関係に」サーバで実行してるからではないだろうか?
というか、Tomcat プラグイン使わなくても Eclipse から Tomcat サーバ実行って、
できるんだっけ?

>>105
イミフ。
操作するもなにもResultSetは「結果」セット。

設定できるのはFetchする方向だけ。
ResultSet#setFetchDirection()

あとは既に設定されてしまっている結果にすぎない。
ResultSet#getConcurrency()
ResultSet#getType()
ResultSet#getHoldability()

これを変えたければMySQLだかOracleだか何かのドライバと相談しる。

113 :デフォルトの名無しさん:2009/08/05(水) 21:37:44
>>105
もーちょっと具体的になにがしたいかを。
ResultSetのどの機能を使いたいん?

114 :デフォルトの名無しさん:2009/08/05(水) 21:51:04
>>106
スレタイ

115 :デフォルトの名無しさん:2009/08/05(水) 21:54:27
>>109
あってる。

116 :デフォルトの名無しさん:2009/08/05(水) 21:54:42
>>109
そう。こんなことも可能。

public static void main(String[] args) {
int[][] ia;
ia = new int[3][];
ia[0] = new int[1];
ia[1] = new int[3];
ia[2] = new int[2];
ia[0][0] = 1;
ia[1][0] = 2;
ia[1][1] = 3;
ia[1][2] = 4;
ia[2][0] = 5;
ia[2][1] = 6;
}

をデバッガで実行して、変数を見てみるといい。

117 :デフォルトの名無しさん:2009/08/05(水) 22:29:45
>>111
だったらV2Cのソースを手に入れろ

118 :デフォルトの名無しさん:2009/08/05(水) 22:50:51
>>113
携帯からの書き込みであまり詳しいことが書けなかったので申し訳ございません。

Class.forName("org.postgresql.Driver");
Connection con =
DriverManager.getConnection("jdbc:postgresql://サーバーのIP/DB名",
"ユーザー",
"パスワード");
String sql = "SELECT id FROM aaa WHERE id = ?";

PreparedStatement ps = con.prepareStatement(sql);
ps.setInt(1,bbb);

ResultSet rs = ps.executeQuery();

rs.first();
<処理>

rs.last();
<処理>

でSQLクエリーを実行し、ResultSetを取得した後、
firstメソッドやlastメソッドを実行したら、
「SQLException」例外が発生して実行できません。
おそらく結果セットの型がデフォルトで「TYPE_FORWARD_ONLY」
となっていると思われます。
「TYPE_FORWARD_ONLY」は「ResultSet」クラスのフィールドの
一つですが、違うフィールドに指定を変更することは出来るのでしょうか?
(DBの種類はPostgreSQLです。)

ちなみにJ2SEの「ResultSet」クラスの仕様は下記URLです。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/sql/ResultSet.html#first()

119 :デフォルトの名無しさん:2009/08/05(水) 22:58:12
できませんので諦めてforでまわしてください

120 :デフォルトの名無しさん:2009/08/05(水) 23:06:36
オラクル関連になったようですが、
Javaは今後どうなりますか。未来が心配です。

121 :デフォルトの名無しさん:2009/08/05(水) 23:11:23
>>111
CPUの負荷だ?
単に画面が出るのが遅いだけなんじゃないのか
ファイル読んでから表示じゃなくて、読みながら表示しろ

122 :デフォルトの名無しさん:2009/08/05(水) 23:24:04
>>118
TYPE_FORWARD_ONLY 以外を指定することはJDBCドライバ次第では可能だが、
できる限りやるべきではない。
結果の件数が多いとメモリを馬鹿食いして落ちるからだ。

あと、その情報は問い合わせ処理の結果として設定される情報だから、
ResultSetが返って来てから操作しても無意味だ。getType()の説明をよく読め。


123 :111:2009/08/05(水) 23:34:31
>>121
なるほど、読みながら表示ですか
明日はそこら辺を中心に考えてみたいと思います。

CPUは単純に負荷を見ていただけなので、正確な所まではわかりません
javaは起動する時にCPUの負荷が負荷が大きいから、そう感じたのかな?

124 :118:2009/08/06(木) 00:01:47
>>122
ご教授ありがとうございます。

getType()はResultSetの型を取得するメソッドで、
型はexecuteQueryメソッドを実行しResultSetを返す段階
で決まってしまうので返した後では無意味ということですね。

少し調べましたがどうやらConnectionクラスの
prepareStatementメソッドでSQL文の設定と同時に
ResultSetの型を指定できるみたいですね。

TYPE_FORWARD_ONLY 以外の型を指定するのが良くないようなので
方法についてもう一度再検討してみます。

125 :デフォルトの名無しさん:2009/08/06(木) 00:03:46
どうでもいいけど、「ご教示」じゃないのか?

126 :デフォルトの名無しさん:2009/08/06(木) 00:04:30
実にどうでもいいな
実にどうでもいいな

127 :デフォルトの名無しさん:2009/08/06(木) 00:05:10
どうでもいいなら言わなきゃいいのに

128 :デフォルトの名無しさん:2009/08/06(木) 00:08:39
ああ、悪かった。
どうでもいいと書きつつ、バカかといいたかった。

129 :デフォルトの名無しさん:2009/08/06(木) 00:11:57
>>128
どうでもいいことを書き垂らすお前のが馬鹿だと思う。

130 :デフォルトの名無しさん:2009/08/06(木) 00:12:53
>>129
まあまあ落ち着け。
馬鹿かどうかは学歴で決まるんだ。
こんなところで馬鹿かどうかなんて言い合ったってしょうがない。

131 :デフォルトの名無しさん:2009/08/06(木) 00:14:35
>>128=130

132 :デフォルトの名無しさん:2009/08/06(木) 00:16:03
低学歴乙!

133 :デフォルトの名無しさん:2009/08/06(木) 00:18:55
しかしここのスレって「ご教示」とか「ご教授」とか細かいことまで要求されるの?
2ちゃんねるなんだし、そんなことどうでもよくね。
「ねこ」を「ぬこ」と言うのなんて2ちゃんねるでは一般化されているんだし。
ここはJavaの質問スレなんだし、質問の意味・意図が相手に伝わるような書き方・内容であればいいんじゃね。
細かいことはどうでも良いよ。

134 :デフォルトの名無しさん:2009/08/06(木) 00:25:41
133のようなカモを待っているんだと気づかないといけない
構ってくれということ。

135 :デフォルトの名無しさん:2009/08/06(木) 00:30:30
Double a;
Double b;
a=0;
a= a+b;
とやったら、文法がおかしいというエラーがでてしまいました。
bの累積を求めたいのですが、よいやり方はないでしょうか


136 :デフォルトの名無しさん:2009/08/06(木) 00:34:55
Double a;
Double b;
a=0.;
b=0.;
a= a+b;


137 :デフォルトの名無しさん:2009/08/06(木) 00:34:58
>>133

125が言わなかったら122は間違ったままだったんだからよかったじゃないか。

「ぬこ」に関してはわざと言ってるんだし別のはなし。

138 :デフォルトの名無しさん:2009/08/06(木) 00:36:12
>>136
Doubleをdoubleに変えてみる。

139 :デフォルトの名無しさん:2009/08/06(木) 00:39:54
>>138
変えなくてもオートボクシング、オートアンボクシングで通る
代入時にintのリテラルは通らないのとbが初期化されていないからコンパイルできない

140 :デフォルトの名無しさん:2009/08/06(木) 01:04:28
>>133
お前がこの世に存在してること自体どうでもいいよ。はよ死ねカス

141 :デフォルトの名無しさん:2009/08/06(木) 01:17:30
>>140
必死だな。お前こそ死ねよカス。

142 :デフォルトの名無しさん:2009/08/06(木) 01:37:44
最近の学生は低レベルだな

143 :デフォルトの名無しさん:2009/08/06(木) 01:58:46
ご教授ください

144 :デフォルトの名無しさん:2009/08/06(木) 02:07:58
一昔前の学生は同じ荒らすんでも知性を感じさせたが
今年の荒らしには全く感じられないよな

145 :デフォルトの名無しさん:2009/08/06(木) 02:12:32
荒らすことしかできない知障は放置がベスト

146 :デフォルトの名無しさん:2009/08/06(木) 03:05:36
>>133
おまえがageたから荒れたんだろ。スレのみんなに誤れ。

147 :デフォルトの名無しさん:2009/08/06(木) 05:54:48
┐(´〜`)┌

148 :デフォルトの名無しさん:2009/08/06(木) 07:43:51
>>146
死ね。

149 :121:2009/08/06(木) 14:10:22
>>123
CPUの負荷がどうのこうのなんて大雑把なことで心配するようなレベルか?って言ってんだ。
既存のは1秒で表示するのに自分のは10秒かかります、なんで?ってのなら多少構造を疑うが、
システム全体のサマリであるCPUの負荷なんてので言われたって環境のほうが気になるだろ。

150 :デフォルトの名無しさん:2009/08/06(木) 17:44:46
教授をください

151 :デフォルトの名無しさん:2009/08/06(木) 18:20:49
下らない質問ですいません
どうして、staticな内部クラスはnewできるのですか?
アウタークラスのstaticなメソッドはnewできななかったような....
public class Outer {
  public void innnerAcces() {
Inner in = new Inner();
}
static class Inner {}
}

152 :デフォルトの名無しさん:2009/08/06(木) 18:40:00
staticなので、(外部クラスの)インスタンスを必要としないからです
staticが付いてないものは、インスタンスを必要とします
staticフィールドと普通のフィールドもそうでしょ?

153 :デフォルトの名無しさん:2009/08/06(木) 19:19:41
>>151
staticじゃなくてもメソッドはnewできんだろ

154 :デフォルトの名無しさん:2009/08/06(木) 19:41:17
サーブレットを動かすのに、
eclipseから内部のtomcatサーバを起動させて動かすとサーブレットは動き
通常のtomcatを起動して動かすとサーブレットが見当たらないとなります。
URLは同じです。通常のtomcatとeclipseが内部で動かす状況が違う
みたいです。
もう一つのプロジェクトは全く逆ので、通常のとtomcatからは動いて、
eclipse内部のtomcatからは動かないです。
両方ともうまく動くようにできないものでしょうか。

155 :デフォルトの名無しさん:2009/08/06(木) 20:01:51
>>151
実は、メンバクラスに static を付けることは InnerClass では無いことを宣言していたのだ。
ttp://www.y-adagio.com/public/standards/tr_javalang2/classes.doc.html#246026

156 :デフォルトの名無しさん:2009/08/06(木) 20:22:17
>>155
staticな内部クラスは普通のクラスと同じなんだけど、
どこににクラスが作られているか(パッケージorクラスの中)以外は同じ
ってことでいいんですか?

157 :デフォルトの名無しさん:2009/08/06(木) 20:41:49
>>154
conf/caterina ... えーと、忘れたが、外部版のconf以下にプロジェクトの
WEB-INFを参照させる設定ファイルを書いて再起動すれば動く。
ただ、両方動かすなら片方のポートは8081とか別のポート番号にしないと、
起動時にそのポートは使われてるとかなんとか英語で怒られる。

158 :デフォルトの名無しさん:2009/08/06(木) 20:57:07
dateListに1つ以上のデータが入っていた場合は、スレッド(


TestThread tt = new TestThread();
tt.run();
while((str = br.readLine) != null){
tt.add(str);

public class TestThread extends Thread {
    LinkedList<String> dateList;
    public void run (){

    }
    public void add(String str) {
      dateList.addLast(str);
      while(dateList.size != 0) {
      //dateListが1件以上ある場合何かの処理する、処理が終ったデータはdateListから削除
   dateList.removeFirst();
      }
      //自分自身のスレッドをwait

159 :158:2009/08/06(木) 20:57:55
すいません、途中で書き込んでしまいましたorz
無視してください

160 :デフォルトの名無しさん:2009/08/06(木) 20:58:22
えっ?

161 :デフォルトの名無しさん:2009/08/06(木) 21:02:03
長くなりそうならどこかにうpした方がいい

162 :デフォルトの名無しさん:2009/08/06(木) 21:07:53
>>158
run()の中に"何かの処理"を書かないと意味ないだろ

163 :デフォルトの名無しさん:2009/08/06(木) 21:22:43
アプレットを作りたいと考えています。
WindowsXPのIE6に搭載されている、デフォルトのJavaVMの
バージョンっていくつなんでしょうか。

自分自身の環境では、すでにJRE6を入れてしまっているため
よくわかりません。
ご存じの方いたら教えてください。

164 :デフォルトの名無しさん:2009/08/06(木) 21:26:46
>>163
IEのメニュー、[ツール][アドインの管理]で、[許可無しに実行されるアドイン]の
Java Plug-in 1.x.xx って見てみ。

165 :163:2009/08/06(木) 21:55:59
>>164
確認してみました。
Java Plugin 1.6.0_13 と表示されていました。
これは自分がインストールしたJDKのバージョンと同じものです。

もしかして、デフォルトではJavaVMなんて入ってないんでしたっけ??

166 :デフォルトの名無しさん:2009/08/06(木) 21:56:41
>>156
そのような短絡的に安易な共通点を求めることはお勧めしない

で、内部クラスの説明をしていないわけだが軽くスルーで、
とりあえず、ネストクラスは一番簡単な static を使うべき、と。

167 :156:2009/08/06(木) 22:00:53
>>166
わかりました。ありがとうございます

168 :デフォルトの名無しさん:2009/08/06(木) 22:19:08
質問です

BigDecimalの20090806を
yyyy/mm/ddにフォーマットするにはどうすればよいでしょうか?

すみませんがご指導のほどお願いします

169 :デフォルトの名無しさん:2009/08/06(木) 22:27:47
>>168
それ結果は文字列でいいのか?
だったら、toStringして切り取れば?

BigDecimal bd = new BigDecimal(20090806);
String tmp = bd.toString();

String yyyy = tmp.substring(0, 4);
String mm = tmp.substring(4, 6);
String dd = tmp.substring(6, 8);

String ymd = yyyy + "/" + mm + "/" + dd;




170 :デフォルトの名無しさん:2009/08/06(木) 22:28:06
>>168
そもそも日付をBigDecimalで扱う意味がわからない。

171 :デフォルトの名無しさん:2009/08/06(木) 22:31:25
小数点以下で時分秒もいずれ計算するんだよ

172 :デフォルトの名無しさん:2009/08/06(木) 22:35:03
>>168
DecimalFormat decimalFormat = new DecimalFormat("00000000");
DateFormat dateFormat = new SimpleDateFormat("yyyymmdd");
DateFormat slashDateFormat = new SimpleDateFormat("yyyy/mm/dd");

BigDecimal value = new BigDecimal(20090806);
String result;

try {
String strValue = decimalFormat.format(value);
Date dateValue = dateFormat.parse(strValue);
result = slashDateFormat.format(dateValue);
System.out.println(result);
} catch (ParseException e) {
e.printStackTrace();
}

冗長だけど、日付チェックもしたいならこんなのもアリ。

173 :デフォルトの名無しさん:2009/08/06(木) 23:05:39
>>168
BigDecimal date = new BigDecimal(20090806);
StringBuilder sb = new StringBuilder(date.toString());
sb.insert(sb.length()-4, '/').insert(sb.length()-2, '/');
System.out.println(sb.toString());
こんなんとかも。

174 :デフォルトの名無しさん:2009/08/06(木) 23:07:40
早速の回答どうもです

いろいろ参考になりました
自分なりにここから色々試して見ます

本当にありがとうございました

175 :デフォルトの名無しさん:2009/08/06(木) 23:09:05
>>165
インターネットオプション→詳細→Microsoft VMの項があればインストールされている。
されている場合はコマンドプロンプトからjview.exe。

JViewはXPの初期の段階で排除された。今はもうダウンロードすら出来ない。
それは踏まえてレスするがJViewのjavaの言語仕様は1.1。
それとSun Java VMとMicrosoft VMには互換性がないのでそもそもJ++が吐いたclassファイルくらいしかまともに動かない。
さらに、JViewの外部バージョンが同じでも内部バージョンが違うと動かない。
もう一つ、バージョンを完全に揃えたところでJViewがリンクするDLLのバージョンが完全に一致しなければ動かない。
んで、JViewではSwingがまともに使えないからsun java pluginを入れるんだがこの状態でアプレットを使うと変な挙動をすることがある。
その場合はアンインスコしてsun javaの JREを使う。

方法は↓
ttp://www.java.com/ja/download/help/uninstall_msvm.xml

176 :デフォルトの名無しさん:2009/08/06(木) 23:17:42
言い忘れた。JViewはコマンドラインインタプリタだがIEにはJViewとは別のランタイムが組み込まれててそっちの言語仕様は1.3で止まってる。どっちにしてもSwingがryなので以下略。
んでバグフィックスだけC#が出るまで密かに続いてたが今は放置されてるはず。
だからまともに動かない。

177 :デフォルトの名無しさん:2009/08/06(木) 23:27:33
>>175

Microsoft (R) Command-line Loader for Java Version 5.00.3810
Copyright (C) Microsoft Corp 1996-2000. All rights reserved.

使用法 : JView [オプション] <クラス名> [引数]


こんなのだろ?苦労してたんだな。お前

178 :165:2009/08/06(木) 23:33:31
>>175
詳細な解説ありがとうございます。事情を理解できました。

手元の環境WindowsXP SP3で、
jview.exe を叩いてみましたが見つかりませんでした。
インターネットオプションから、Microsoft VMも探してみましたがありませんでした。

アプレットは、Java6で作ってから、
ランタイムのインストールを促す作りにしたいと思います。
ありがとうございました。

179 :165:2009/08/06(木) 23:40:31
>>176
対応してて1.3ですか。
Javaは1.4以降しか触ったことないので残念です…。

アプレットについては、私は仕事でなく趣味なので
ぜんぜん大丈夫ですが、おっしゃる互換性のなさは
仕事だと苦労が絶えなそうですね…。

180 :デフォルトの名無しさん:2009/08/06(木) 23:45:19
そして誰も使わなくなった。よって大丈夫。

181 :デフォルトの名無しさん:2009/08/06(木) 23:53:24
>>177
Java1.1→1.2→1.3の過程で皆通った道だが?だから今は>>180なわけだが。

182 :デフォルトの名無しさん:2009/08/06(木) 23:56:54
Microsoftアプデートで、JVMもサポートしてくれりゃいいのにな・・正直なところ。

183 :デフォルトの名無しさん:2009/08/07(金) 00:05:23
もともとappletはアニメーションやキャンバス2Dが売り(得意)だったはず。
さらにwebアプリと同様、<form>程度ならawtのコンポーネントで十分だし別に今でも廃れてないんだが。

変なIT記事読んで流行に流されてるようなら技術というものはちゃんと勉強しないといつまでも身につかないよ。

184 :165:2009/08/07(金) 00:17:13
実は普段は流行に流されてFlashをいじっているんですが、
先ほどふと思いついて10年振り?に先行者ゲームをやりまして。
あまりの軽さに驚き、アプレット作ってみたいなと…。

こんなに軽いなら、今もっとモダンなJavaアプレットが沢山あってもいいと思うんですけどね。

185 :デフォルトの名無しさん:2009/08/07(金) 00:22:23
>>183
アプレットの話じゃなくてMS VMの話だ。

>>184
sun自体がアプレット=Java FX、従来のアプレットの役目はJWSに徐々に移行させている。

186 :デフォルトの名無しさん:2009/08/07(金) 00:32:01
アプレットでは有用なライブラリが無いから、開発者のうちライトユーザはflashの方に流れていった。
javafxのようにアプレットとライブラリを一緒にリリースしてたら、たぶんアプレットはサーブレット(とwebコンテナ)同様にトレンドになってたと思うけどね。
もし2D,3DやUIやイベントについてのスキルがあるなならアプレットはかなり自由度が高いよ。

いまは、javascriptとflashを使えてVBとは違った意味でUIについて多少経験があるユーザが増えたから、
アプレットはそのユーザが戻ってくることを期待して整備が進んでいる。
たとえば、appletとjsがさらに強く連携してDOMが簡単にいじれたりする。
ただ、webやappletはブラウザのJS実装に強く依存するけど、webやnetを主体としたアプリを考えてるなら、
IE以外のmozilla,chrome,operaとかの方がMSの俺様ネイティブルールがないぶん素直でいいんじゃないか。

187 :デフォルトの名無しさん:2009/08/07(金) 00:34:24
>>185
お前はjava.applet.Appletや<applet>タグしか頭に無いのか?
旧式な奴だなw

188 :デフォルトの名無しさん:2009/08/07(金) 00:36:05
>>185
MSVMなんてもう使ってる奴いねーってw
脳味噌腐っちまってんじぇね?ww

189 :デフォルトの名無しさん:2009/08/07(金) 00:58:26
>>187-188
こいつら同一人物か?
165からのスレの流れ読んでないし日本語理解できてないし。

>>186
mozilla系以外でLiveConnectって使えるの?
IEだとActiveX ScriptでJava呼べるけどさ。

190 :デフォルトの名無しさん:2009/08/07(金) 01:31:28
>>189
もともとお前に対してのレスじゃないだろ
お前は日本語を理解できず状況把握も出来ない落ちこぼれ
一回糞まみれになって死んだほうがいいんじゃね?w

191 :デフォルトの名無しさん:2009/08/07(金) 01:47:16
夏厨元気だな

192 :デフォルトの名無しさん:2009/08/07(金) 01:59:57
>>189
ここは学校じゃないんだし、そういう態度のままだとこの業界では落ちこぼれになっちゃいますよ?!

193 :デフォルトの名無しさん:2009/08/07(金) 02:26:51
しかし188が文脈読めてないのは間違いないがな。

194 :デフォルトの名無しさん:2009/08/07(金) 08:36:32
>>193
ageるなザコw

195 :デフォルトの名無しさん:2009/08/07(金) 14:01:15
質問なんですが、BufferedReaderのreadLine()でユーザーの入力を待っている状態で、
一定時間が過ぎたら"時間切れです"と表示させて処理を進行させたいんですが、
どうすればいいんでしょうか?

196 :デフォルトの名無しさん:2009/08/07(金) 14:02:19
>>195
マルチスレッドで処理する

197 :デフォルトの名無しさん:2009/08/07(金) 14:55:00
>>196
ありがとうございます。
スレッドを作って、そっちで10秒時間を計って"時間切れです"と
表示させる事はできるんですが、readLine()の入力待ち状態を強制的に終了させる方法が
わかりませんでした。

198 :デフォルトの名無しさん:2009/08/07(金) 17:26:21
>>197
データが読めなくなってから10秒後にIOException(を継承したInterruptedIOExceptionとか)
を発行するようなread()を持つFilterInputStreamを作って、間にかませたらどうだ

199 :デフォルトの名無しさん:2009/08/07(金) 18:11:13
ready() で入力があるか確認してから読めば?

200 :デフォルトの名無しさん:2009/08/07(金) 18:23:00
空文字列のチェック
(1)str.equals("")
(2)str.length() == 0
(3)str.isEmpty ←Java6以降
(×)str == "" ←!!!間違い!!!
で、(1)(2)(3)それぞれの使い方のメリット・デメリットを教えて欲しいのですが

201 :デフォルトの名無しさん:2009/08/07(金) 18:32:12
こういうのもあるよ
(4) "".equals(str)

202 :デフォルトの名無しさん:2009/08/07(金) 18:38:55
あるけど(4)じゃない。

203 :デフォルトの名無しさん:2009/08/07(金) 18:49:16
うまくいかないです。そもそもうまくいうものかどうかさえわかりません。
eclipseで動的WEBプロジェクトを作成してeclipse内部のtomcatサーバを
起動して、プロジェクトエクスプローラからサーブレットのxxx.javaを
右クリックして実行すれば正常に動いてくれます。
しかし、eclipse内部TOMCATサーバを終了させて、通常のTOMCATを起動して
URLを入力してアクセスするとNOTFOUNDになります。
お聞きしたいのは。一つの動的WEBプロジェクトで、
eclipse内部のTOMCA起動でもサーブレットを実行できて、
その動的WEBプロジェクトをコンテキストで参照する外部のTOMCATでも
実行できるようにするのは可能なのでしょうか。いろいろやってみましたが
外部TOMCATで動けるような構成にすればeclipse内部tomcatでは動けず、
eclipseで普通に作れば内部tomcatでは動くければ外部TOMCATでは動かない。
今思っているのは、開発用にはeclipse内部tomcatで動くようにして
(テストがしやすいです)、もう一つ外部tomcatで動く別の
動的WEBプロジェクトを作って、そちらにサーブレットを公開用に持ってくる
というような二重管理するしかないのかなあと思っていたりします。
みなさまは、どのような感じになっているんでしょうか?

204 :デフォルトの名無しさん:2009/08/07(金) 18:50:04
うるさい

205 :デフォルトの名無しさん:2009/08/07(金) 19:09:05
>>203
外部のTOMCATは公開用?
ふつーは開発は手元のマシンでやって、
公開用は別のマシンだぞ?

ふつーは開発と公開用は別物。
それを二重管理とは言わん。


206 :デフォルトの名無しさん:2009/08/07(金) 19:15:01
>>205
eclipse内部のtomocatと、インストールしたtomcatの違いです。
別物らしいです。

207 :デフォルトの名無しさん:2009/08/07(金) 19:20:08
eclipseはそういう部分でもポンコツだからね

208 :デフォルトの名無しさん:2009/08/07(金) 19:21:42
swingでボタンとかをクリックした瞬間に、イベントを発生させられます
これを任意のコードの中で発生させたいのですが、どうすればいいのですか?


209 :デフォルトの名無しさん:2009/08/07(金) 19:22:48
公開用サーバに配備するときは.war形式にしない?

210 :デフォルトの名無しさん:2009/08/07(金) 19:23:25
>>206
だからそのインストールしたtomcatを動かす必要がない。
公開するのであれば別のマシンでやれ。

211 :デフォルトの名無しさん:2009/08/07(金) 19:24:30
>>208
ボタン 「とか」 って言われてもこまるけど、
JButton には doClick() メソッドがあるよ

212 :デフォルトの名無しさん:2009/08/07(金) 19:29:41
>>211
言葉が足りませんでした。例ではswingを出しましたが、
自作イベントを作って、それを任意の場所で発生させられるか?
という所が知りたい事です

213 :デフォルトの名無しさん:2009/08/07(金) 19:34:56
>>210
eclipseで作ったプロジェクトは、あくまで開発用であるから
eclipse内部のtomocatのみで開発は終始すればいいということですよね。
203に書いたことが出来ないようなので、そうしようかなあと思います
ありがとうございました。

214 :デフォルトの名無しさん:2009/08/07(金) 19:37:30
>>212
自作のXxxListenerインタフェイスを定義して、
それをaddXxxListenerメソッドで登録できるようにして、
その登録されたものを普通に呼び出すだけでは?

215 :デフォルトの名無しさん:2009/08/07(金) 19:37:45
>>212
イベントとは何かといえば、単なるメソッドの呼び出しだ。
XxxListener の実装やそのイベントの発生元のコードを真似すればいい。

216 :デフォルトの名無しさん:2009/08/07(金) 19:45:49
>>200
なぜ1,2で出来ることにわざわざ3を作ったか考えろ

217 :デフォルトの名無しさん:2009/08/07(金) 19:52:36
まeclipseは元来素人向けだから
その辺注意しながら使わんとね

218 :デフォルトの名無しさん:2009/08/07(金) 20:44:49
だからIDEがらみは該当スレでやれ。アンチまで連れてくるな。

219 :デフォルトの名無しさん:2009/08/07(金) 20:49:17
>>200->>202答えてくれる人いませんか?

220 :デフォルトの名無しさん:2009/08/07(金) 20:51:05
いませんよアホらしい

221 :198:2009/08/07(金) 20:52:52
>>197
すまん。
出来るかどうかやってみたんだが、どうも一旦 in.read() で待ちに入ってしまうと
interrupt しようが close しようが戻ってこないようだ。
ポーリングするしかないのかねぇ。

222 :デフォルトの名無しさん:2009/08/07(金) 20:55:10
>>200
1と2は間違えて
str.equals(" ")
str.length() == 1
としてもコンパイルエラーにならない。
3はメソッド名間違えたらコンパイルエラーになるので
間違いに気付くことができる。

223 :デフォルトの名無しさん:2009/08/07(金) 21:09:14
>>213
eclipseのtomcatでも、
インストールしたtomcatでも、
同じwebプロジェクト参照することはできるよ。

eclipseで普通に作ってから、
インストールしたtomcatで動くよう設定ファイルを書けばいい。

だけどみなさんはあまりそういうことしない。
意味がないから。

224 :デフォルトの名無しさん:2009/08/07(金) 21:10:59
System.out.println("タムをしらんかのう タムをしらんかのう");

225 :212:2009/08/07(金) 21:25:14
>>214-215
わかりました。ありがとうございます

226 :デフォルトの名無しさん:2009/08/07(金) 21:32:03
なあ、なんでEclipseみたいなくそIDEがそんなに人気あんの?

マジでわけわかめだわ。

227 :デフォルトの名無しさん:2009/08/07(金) 22:10:13
>>226
残念ながら
なんでWindowsが人気あるかとか
なんでMicrosoft Officeが人気あるかとか
なんで今のキーボード配列が人気あるかとか
そーいったレベルになっちゃったね。

デファクトスタンダードだ。
新しいプロジェクト入ったとして、
一人だけeclipseじゃなくてnet beansでやります!
みたいなのが通用しないし。

228 :デフォルトの名無しさん:2009/08/07(金) 22:13:57
Sun的にはどうなんだろうか
名前も含めてw

229 :デフォルトの名無しさん:2009/08/07(金) 22:27:21
名前、メールアドレス、電話番号が規則的に書いてあるテキストがあります
これを、今まではStringBuilderでちまちまとHTMLに変換してswingで表示してきました
しかし、StringBuilderで結合してHTMLを作るのは大変です
何か楽をしてHTMLを作り出す方法はないでしょうか?

230 :デフォルトの名無しさん:2009/08/07(金) 22:42:14
まて。

プログラムにやらせてるんだから、一件分の出力部分を書いてループで回す
だけなんだから、大変もなにも無いと思うんだが。


強いて言えばXHTMLっていうものをググると幸せになれ・・・Swingで表示なら
XSLTのほうかな?

231 :デフォルトの名無しさん:2009/08/07(金) 22:47:06
>>230
ループはちゃんと使っています
でも、目的の画面を表示するためにはHTMLをけっこう書かなきゃいけないんです(ループでは表現出来ない)
だから、StringBuilderでやっていると何がなんだかてことになるわけです

XHTMLで調べてみます
ありがとうございました

232 :デフォルトの名無しさん:2009/08/07(金) 22:49:54
>>226
ところどころイマイチであるところもEclipseのいいところだからなぁ

233 :デフォルトの名無しさん:2009/08/07(金) 23:02:15
>>231
イミフ

234 :デフォルトの名無しさん:2009/08/07(金) 23:08:42
多分、今どきのスタイルシート頼り切りのHTML記述に染まっていないピュア
な心根の持ち主なんだよ。一つ一つ丁寧に心を込めて属性を書きました。

235 :デフォルトの名無しさん:2009/08/07(金) 23:16:45
何か楽をしてHTMLを作り出す方法はないでしょうか?

236 :デフォルトの名無しさん:2009/08/07(金) 23:22:47
雛形を作っておいてreplaceする

237 :デフォルトの名無しさん:2009/08/07(金) 23:35:28
>>235
すまんがおまいさんの状況がわからん。
そんなに大変だと思えない。
HTMLが複雑なのか?
Velocityなんてものがあるぞ。

238 :231:2009/08/07(金) 23:55:45
>>237
>>235はオイラじゃないんだけど
なんか、最近なりすましが多いな〜

239 :デフォルトの名無しさん:2009/08/08(土) 00:17:05
なまけもの再登場w

240 :デフォルトの名無しさん:2009/08/08(土) 00:39:10
その、楽にHTMLを作るために、属性はグループ化してスタイルシートにまとめて、
構造はXMLな元データを取り出してXSLTで変換して、という技術が作られた。
たとえば
<住所録>
<名前>xxx</名前><メールアドレス>xxx</メールアドレス><電話番号>xxx</電話番号>
<名前>xxx</名前><メールアドレス>xxx</メールアドレス><電話番号>xxx</電話番号>
・・・・
<住所録>
という感じのデータを入力として、XSLTスタイルシートで指定した任意のHTMLに
変換することができる。

241 :デフォルトの名無しさん:2009/08/08(土) 00:43:19
>>231
HTMLがXHTMLになったって大して変わるもんじゃなさそうだが…。
個人情報を出さない程度に実際のコード一式をうpろだに出してみたらどうだ。

242 :デフォルトの名無しさん:2009/08/08(土) 00:43:43
>>212
http://java.sun.com/javase/ja/6/docs/ja/api/java/awt/Component.html#dispatchEvent%28java.awt.AWTEvent%29

243 :デフォルトの名無しさん:2009/08/08(土) 00:43:43
本家ならパッケージ javax.xml.transform 参照。
他のプロジェクトからも色々とライブラリが公開されてる。

244 :デフォルトの名無しさん:2009/08/08(土) 00:58:48
Eclipse IDE for Java EE Developers (189 MB)

Eclipse IDE for Java Developers (92 MB)

どういった点が異なるのでしょうか?
どちらがお勧めですか?

245 :デフォルトの名無しさん:2009/08/08(土) 01:03:40
>>244
>>3

246 :デフォルトの名無しさん:2009/08/08(土) 01:09:47
>>245
一応言語依存だからいいのでは?

>>244
Java EE Developersのほうはなんかいろいろついてくる。
マシンのスペックが悪くないなら
Java EE Developersいれとけば後々めんどくさくないよ。


247 :デフォルトの名無しさん:2009/08/08(土) 01:15:40
iアプリを作成しているのですが、java.awt.geom.Point2Dが使えないため同機能のクラスを自作したいと思っています。

似た機能(の1部)は作成済みなのですが使ってみるとヌルポが返されたりして1部機能しかまともに使えません。

どのようにすれば、同機能のクラスとして使えるのでしょうか?

作成済みソース。
public class Point {
double x;
double y;
Point location;

Point(Point p){
location = new Point();
location.equals(p);
}
Point(double X,double Y){
x = X;
y = Y;
}


248 :デフォルトの名無しさん:2009/08/08(土) 01:17:39
void setLocation(Point p){
location = new Point();
location.equals(p);
}
void setLocation(double X ,double Y){
x = X;
y = Y;
}
double getX(){
return x;
}
double getY(){
return y;
}
}

お願いします。


249 :デフォルトの名無しさん:2009/08/08(土) 01:21:41
>>247
ぉぃぉぃぉぃぉぃ

250 :デフォルトの名無しさん:2009/08/08(土) 01:25:16
>>245
申し訳ありませんでした。
気をつけます。

>>246
ありがとうございます。

251 :デフォルトの名無しさん:2009/08/08(土) 01:30:00
eclipseで動的WEBプロジェクトでStruts1が無事に動くようになりました。
一週間苦しみました。3月からjava勉強始めてちょうど5か月です。
ここでの質問は100回以上してます。7割くらいは返答いただきました。
ありがとうございました。一通り概要が理解できたので、もう一度、
Javaアプリケーションに戻って、理解を深めようと思います。

252 :デフォルトの名無しさん:2009/08/08(土) 01:34:06
>>251
それなら今度は答える側になってこのスレに貢献することで恩返ししないとね

253 :デフォルトの名無しさん:2009/08/08(土) 01:35:22
>>251
5ヶ月だろうが50ヶ月だろうが、習うしかしてないのなら違いは無い。

254 :デフォルトの名無しさん:2009/08/08(土) 01:38:18
>>252 >>253 がんばります。

255 :デフォルトの名無しさん:2009/08/08(土) 01:45:14
>>244
そんな質問してるうちは上には縁がないので下でいいよ
上はJ2EEね
EコマースとかWeb開発で使う

256 :255:2009/08/08(土) 01:46:20
まじすまん
リロードしてなかった
スルーしてちょうだい

257 :デフォルトの名無しさん:2009/08/08(土) 02:05:03
>>247
JDKのオープンソースな実装から持ってきた方が早い気がする。
OpenJDK
http://openjdk.java.net/

Apache Harmony
http://harmony.apache.org/

ライセンスとかは自分で調べてくれ。

258 :デフォルトの名無しさん:2009/08/08(土) 02:22:22
>>255
でもそれってライセンス料が必要になるでしょ。支払いはどうするの?

259 :デフォルトの名無しさん:2009/08/08(土) 02:30:11


260 :デフォルトの名無しさん:2009/08/08(土) 04:37:12
>>207
IDEの管轄外にある環境をIDEが管理にするわけないのに何言ってんだこの馬鹿は。
EclipseだろうがNetBeansだろうが関係無いわ。

>>219
(1)str==nullのときぬるぽ。内部的に""の実体を探しに行く分、極めて少しだけ時間がかかる可能性がある。
(2)str==nullのときぬるぽ。str以外の実体にメモリアクセスをともなわない分、(1)より極めて少しだけ速い可能性がある。
(3)str==nullのときぬるぽ。古い環境だと動かない。おそらく最速だが(2)と変わらないような気もする。
(4)str==nullでもぬるぽにならない以外は(1)と同じ。

>>255
ライセンスよく嫁。自分で使うだけなら全部無償。

261 :デフォルトの名無しさん:2009/08/08(土) 05:26:33
ずいぶん昔のレスを引きずってんだなこいつw

EEを自分で使うんなら素直にMS使ったほうがいいんじゃね?
それともUNIX使うスキルもねーのかよ
お前はただの「おのぼりさん」だろお前?w

262 :デフォルトの名無しさん:2009/08/08(土) 07:41:55
>>260
>>219ですが、ありがとうございます。
見易さ優先の(1)、速さを優先の(2)といったところでしょうか。
空文字列チェックを行うからには、前の行でnullでないことをチェックしておくので、ぬるぽに関しては気にしなくて良いと思いますが。

263 :デフォルトの名無しさん:2009/08/08(土) 08:22:02
>>262
260じゃないけど横から。
str != null && str.equals("")
って書くよりは
"".equals(str)
って書く方がソースとしてもバイトコードとしてもコンパクト。
equalsの引数にはnullを渡してもよいからこう書けるわけです。

str != null && str.length() == 0
よりは遅いかもしれないけど、毎回こう書くのは面倒でしょ。
特に1つのif文内で複数の変数をチェックする場合とか。

とはいえ、両方変数なら結局は
str1 != null && str1.equals(str2)
って書くはめになるんだけど。
あるいはorg.apache.commons.lang.StringUtils.equals(String, String)を使う。


264 :デフォルトの名無しさん:2009/08/08(土) 10:56:35
開発環境での実行時のメモりの使用量をコントロールするツールとかってありますか?
ソースの書き方でパフォーマンスを違いを知りたいのですが

265 :デフォルトの名無しさん:2009/08/08(土) 11:24:54
>>201
>>263
もし実際に自分でそう書いているのなら、これを機会に改めた方がいい。
if("".equals(str)){
//処理
}else{
System.out.println("length=" + str.length());
}
とか書かれたときのことを考えるべき。

266 :263:2009/08/08(土) 12:01:56
>>265
そりゃstrのメソッド呼ぶ気なら事前にnullチェックするでしょうよ。
でもその場合は、
if (str != null && str.equals("")) {
//処理
} else {
}
と書いてもelseにはnullでも来てしまう訳で、
if (str != null) {
if (str.equals("") {
} else {
}
}
とか、
if (str == null) {
return;
}
if (str.equals("")) {
} else {
}
と書く事に。

もし、nullまたは空文字とそれ以外を分けたいなら
if (str == null || str.equals("")) {
} else {
}
って書きますけどね。

267 :デフォルトの名無しさん:2009/08/08(土) 12:02:58
良く話題になる文字列のチェックだが、nullチェックはそこでするのか?と思う。
例1)
public void method(String str) {
if(str != null && str.eqals("XXX") {
// 処理
}
}
はおかしくて
public void method(String str) {
if(str == null) throw new IllegalArgumentException();
if(str.eqals("XXX") {
// 処理
}
}
だろ?
String str = buf.toString();
ならば、nullチェックしないだろ?

nullチェックと比較はまとめる方が珍しいと思う


268 :デフォルトの名無しさん:2009/08/08(土) 12:04:43
>>266
どんな状況でもこうやればいいという感じで書いておきながら屁理屈こねるなや
後出しで色々いっても見苦しいぜ

269 :デフォルトの名無しさん:2009/08/08(土) 12:06:44
これだからJavaやってる奴は

270 :デフォルトの名無しさん:2009/08/08(土) 12:09:21
これだからプログラムやっている奴は

271 :デフォルトの名無しさん:2009/08/08(土) 12:11:50
>>268
こんなザコために定石なことをわざわざ丁寧に答えたお前の方が「マヌケ」だと思うが?

272 :デフォルトの名無しさん:2009/08/08(土) 12:13:19
別に>>263の書き方に賛成ってわけではないが、
>>263>>265,267は検査する内容が異なってる。

273 :デフォルトの名無しさん:2009/08/08(土) 12:20:08
>>271
スレの趣旨に反しない限り、別に何書いたっていいだろ?

274 :デフォルトの名無しさん:2009/08/08(土) 12:26:06
>>271
まあまあ人格攻撃はやめようよ。

>>265
で、どう書くのが良いのか見せてよ。

275 :デフォルトの名無しさん:2009/08/08(土) 12:29:43
暑苦しいなあ

276 :265:2009/08/08(土) 12:43:21
>>274
nullをどうするかによる。
nullを許すなら>>267の上のように書くし
nullを許さないなら>>267の下のように書く。


277 :デフォルトの名無しさん:2009/08/08(土) 12:51:23
jframe→jscrollpane→jpanel→jeditorpaneの順番で張り付けていくと、
jframeでは何も表示されません
jscrollpaneを経由せずに、jpanelをjframeに張り付けるとちゃんと表示されるのですが
なぜですか?

278 :デフォルトの名無しさん:2009/08/08(土) 12:54:39
自演多すぎ。

279 :デフォルトの名無しさん:2009/08/08(土) 12:58:25
>277
jpanelいらん

280 :デフォルトの名無しさん:2009/08/08(土) 13:05:54
>>279
あの〜、まったく表示され無いんですけど
JFrame mainFram = new JFrame();
mainFram.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JScrollPane scrollPane = new JScrollPane();
mainFram.add(scrollPane);

for(JEditorPane view : viewList) {
scrollPane.add(view);


281 :デフォルトの名無しさん:2009/08/08(土) 13:12:44
全部はれやカス

282 :デフォルトの名無しさん:2009/08/08(土) 13:18:11
>>281
全部貼れと言われても、JEditorPane pane = new JEditorPane("text/plain",str);
viewList.add(pane);
しているだけなんだけど
これ以上コードは無い

283 :デフォルトの名無しさん:2009/08/08(土) 13:29:02
jframe→jpanel→jscrollpane→jeditorpane
じゃないの?

284 :デフォルトの名無しさん:2009/08/08(土) 13:31:29
つかこれ以上ないってsetVisivle(true)はしてるだろ。全部貼れよ。

285 :デフォルトの名無しさん:2009/08/08(土) 13:33:02
>>277
Swing知らないが、この辺関係あるのでは?
ttp://iiyo-tabun.blogspot.com/2008/10/jscrollpanejpanel.html

286 :デフォルトの名無しさん:2009/08/08(土) 13:42:29
>>284
お前、そんくらい誰でもわかるだろJK
お前、本当にプログラミングやってんの?

287 :デフォルトの名無しさん:2009/08/08(土) 13:59:49
>>274
自演乙

288 :デフォルトの名無しさん:2009/08/08(土) 14:06:13
>>286
あのな、そーゆー当たり前だと思ってることをやってないってことが結構あるんだよ。
経験者ほどそれを知ってるから、284は全部貼れっていってるんだよ。



289 :デフォルトの名無しさん:2009/08/08(土) 14:13:31
>>285
やってみましたが、表示されませんでした

290 :デフォルトの名無しさん:2009/08/08(土) 14:28:54
>>288
自演乙

291 :279:2009/08/08(土) 14:45:37
JScrollPane scrollPane = new JScrollPane(mainPanel);
としたら、なぜか表示されました
>>283,>>285
本当にありがとうございました

>>280で、ちゃんとコードを表示したのにヒントもくれなかったので
>>281,>>284,>>288、口だけは達者なのがわかりました
威張っているだけならレスしないでください

292 :デフォルトの名無しさん:2009/08/08(土) 14:45:54
>>282
mainFram.pack();
mainFram.setSize(800,600);

どこがおかしいか分からないくせに勝手に省略すんなってんだ。
ポカミスは誰だってやるんだよ。
一行違うだけで結果は全く違う。お互い推測でおかしいおかしいって
時間食っても仕方ないだろう。
百聞は一見に…ってことだ。

293 :デフォルトの名無しさん:2009/08/08(土) 14:51:52
>>291
280のコードのどこに mainPanel があるんだよw

294 :281:2009/08/08(土) 15:40:47
>>279
なんで俺がお前さんのために、ずっと2chに張り付いていなければいけないのか教えてくれw

295 :デフォルトの名無しさん:2009/08/08(土) 16:09:41
>>291
そうやって調子の乗るならちゃんと質問料を収めてくれますか?
あなたはスレに貢献すらしてませんよね。

296 :デフォルトの名無しさん:2009/08/08(土) 16:12:38
醜悪だなあ

297 :デフォルトの名無しさん:2009/08/08(土) 16:25:49
貧乏人がくぶる

298 :デフォルトの名無しさん:2009/08/08(土) 16:52:27
>>291
クレジットで一括にしてくれますか?

299 :デフォルトの名無しさん:2009/08/08(土) 17:03:37
まあEclipse使うってことは周りから10年取り残されるって言うのと同じ意味だからな
覚悟は要るよな

300 :デフォルトの名無しさん:2009/08/08(土) 17:21:26
Javaの勉強を始めたばかりのものです。
Eclipseで今学習中なのですが、違うものに変えたほうがいいでしょうか?

ひとまず基本情報の午後問題、Javaを解けるレベルまでを考えています。

301 :デフォルトの名無しさん:2009/08/08(土) 17:33:28
>>300
まったくない。
世界で一番使われてるIDEだし、
大抵の職場でつかわれてる。
一部アンチがいるだけだ。
気にするな。

302 :デフォルトの名無しさん:2009/08/08(土) 17:42:39
>>300
javaの勉強なら、eclipseだろうがなんだろうが関係ない。
IDEの機能に惑わされなければな。

303 :デフォルトの名無しさん:2009/08/08(土) 17:53:51
>>301,302
お二方ありがとうございます。

急に不安になったので書き込みましたが、
引き続きROMりながら勉強に励みます。

304 :デフォルトの名無しさん:2009/08/08(土) 18:19:30
>>303
ちゃんと勉強したいなら2ちゃんねるを見るなんて馬鹿なことはするな

305 :デフォルトの名無しさん:2009/08/08(土) 19:44:00
夏になったらおかしいのが沢山発生した

306 :デフォルトの名無しさん:2009/08/08(土) 20:52:11
public final class Struts1Process extends Action {
public ActionForward execute
(ActionMapping map, ActionForm frm, HttpServletRequest request, HttpServletResponse response) {
Struts1Form outFrm = (Struts1Form) frm;
request.setAttribute ("outFrm",outFrm);
return map.findForward ("success");
この場合に、ActionForm frm のオブジェクトとしてアクションフォームBeanの
内容を引き継いでいると考えていいのでしょうか。

307 :デフォルトの名無しさん:2009/08/08(土) 20:54:19
はい

308 :デフォルトの名無しさん:2009/08/08(土) 20:57:08
パッケージってネーム空間みたいなもん?

309 :デフォルトの名無しさん:2009/08/08(土) 20:58:28
コンポーネントを複数重ねあわせた際、マウスイベントを
全コンポーネントに処理させるのはどうすればいいですか?
トップのコンポーネントにイベントが持って行かれちゃって困っております

310 :デフォルトの名無しさん:2009/08/08(土) 20:59:08
>>307 ありがとうございました。

311 :デフォルトの名無しさん:2009/08/08(土) 21:02:36
>>308
http://ja.wikipedia.org/wiki/%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8_%28Java%29

312 :デフォルトの名無しさん:2009/08/08(土) 21:10:03
>>311
ありがとう!

313 :デフォルトの名無しさん:2009/08/08(土) 22:06:17
>>308
パッケージってディレクトリ(フォルダ)のことだよ

314 :デフォルトの名無しさん:2009/08/08(土) 23:03:20
>>308
>>313
ディレクトリと違って階層構造になってないから気をつけて。

315 :デフォルトの名無しさん:2009/08/08(土) 23:52:55
階層構造になってるだろ(´・ω・`)

316 :デフォルトの名無しさん:2009/08/08(土) 23:54:21
>>292
>mainFram.pack();
>mainFram.setSize(800,600);
これだとフレームの中のコンポーネントのサイズが狂うからパネルのサイズを設定した後フレームをパックじゃないか?


317 :292:2009/08/09(日) 00:30:25
>>316
推測してた名残だと思って無視してくれ、すまん。
ちなみにsetSize→packだと、packで再計算されるからsetSizeの意味が無い。

318 :デフォルトの名無しさん:2009/08/09(日) 01:23:03
>>317
packに任せるにはsetSizeではダメで、setPreferredSizeが必要なんじゃ?

319 :デフォルトの名無しさん:2009/08/09(日) 01:26:46
>>315
http://www.atmarkit.co.jp/bbs/phpBB//viewtopic.php?mode=viewtopic&topic=44675&forum=12&start=0
こーゆーことがいいたかったわけで。

まぁ、ごめん気にしないでくれ。
初心者はパッケージ≒ディレクトリだと考えてくれれば。

320 :デフォルトの名無しさん:2009/08/09(日) 02:33:30
JDK6u14って日本語版ないみたいだけどこれって内部メッセージはちゃんと日本語なんだよね
あとJREの最新版はu15みたいだけどSDKのバージョンとJREのバージョンが違うことってあるの?

321 :デフォルトの名無しさん:2009/08/09(日) 02:35:51
>>320
http://java.sun.com/javase/ja/6/download.html

322 :デフォルトの名無しさん:2009/08/09(日) 03:09:44
>>321
バカ?
そこのダウンロードするとlanage選択でEnglishしか選べないんだよ!
死ねかす!

323 :デフォルトの名無しさん:2009/08/09(日) 03:27:15
>>322
眠いなら寝ろ

324 :デフォルトの名無しさん:2009/08/09(日) 04:12:34
lanageってwww

325 :デフォルトの名無しさん:2009/08/09(日) 04:41:42
>>322
脊髄反射して上げるなカス

326 :デフォルトの名無しさん:2009/08/09(日) 11:21:24
「ねかす!」ってなに?

327 :デフォルトの名無しさん:2009/08/09(日) 11:23:13
あげないローカルルールってどこ?

328 :デフォルトの名無しさん:2009/08/09(日) 11:30:41
教えてくんはカエレ

329 :デフォルトの名無しさん:2009/08/09(日) 12:55:24
javaで簡単なwebブラウザを作ろうと考えているのですが
JEditorPaneを使うと遅い気がします、何か他に良いライブラリを知っていたら教えてください

330 :デフォルトの名無しさん:2009/08/09(日) 13:49:46
>>326-327
上げるな
むさくるしいだろ!

331 :デフォルトの名無しさん:2009/08/09(日) 14:21:11
JavaでClass.forNameを使ってクラスオブジェクトを作った場合、
プロセスを落とすまでJavaVMにクラスはキャッシュされたままでしょうか?

332 :デフォルトの名無しさん:2009/08/09(日) 15:08:03
>>331
ttp://d.hatena.ne.jp/higayasuo/20090716/1247702860

333 :デフォルトの名無しさん:2009/08/09(日) 16:23:55
テストのときだけ実行したいメソッドがあります。
C言語ではテストかどうかを外部の設定ファイルを見て、実行するかしないかを制御してたのですが、
Javaも同様の制御が無難でしょうか?
もっとよい方法はありますでしょうか?

334 :デフォルトの名無しさん:2009/08/09(日) 16:32:42
>>333
リフレクションとかアノテーションとかを使うことになるのかもしれないが、
テストのときというのがどんなことをするかによるだろ。
設定ファイルにクラス名.メソッド名を羅列して、その順番に実行するのか?
それとも単にランチャーからどのクラスのmain()メソッドを実行するかだけなのか?
とかな。

335 :デフォルトの名無しさん:2009/08/09(日) 16:34:32
static final boolean debugFlag = true;
を定義して

普通にリリースするときに
falseにすればいいだろ・・・


336 :デフォルトの名無しさん:2009/08/09(日) 16:36:58
>>334
言葉足らずでした。
本番時は他社のシステムに接続し(SOAPで)データを受け取るのですが、
テスト時は外部システムに接続できないので、適当な値を変数に設定したいのです。
そこで、処理を分岐させたいのです。

>>335
Javaは新しい言語なので、何かしぶいやり方があるのかと思いまして。

337 :デフォルトの名無しさん:2009/08/09(日) 16:43:41
JAVA AWTに関しての質問なのですが
最初のウィンドウ?に
コンポーネントをextendsして作成したクラスを追加した後
追加したコンポーネント上でマウスがクリックされた等の動作を最初のウィンドウのクラスで検知することはできるのでしょうか?


(よく分からないため 用語の使い方等がおかしい可能性が高いです。)
ttp://www.dotup.org/uploda/www.dotup.org18518.jpg イメージ


338 :デフォルトの名無しさん:2009/08/09(日) 17:11:16
最初のウィンドウクラスにリスナー追加したらおk

339 :デフォルトの名無しさん:2009/08/09(日) 17:14:50
>>336
今どきならばJUnitでモックとか使う。
というか、大昔からそれしかないが・・・(C言語でも似たようなことやってた)

340 :デフォルトの名無しさん:2009/08/09(日) 17:17:32
>>336
おおざっぱに
「他システムに接続してデータ取得」の部分を一つのオブジェクトにしておいて、
interface Transfer { Data receiveData(Param param); }
class RealTransfer impliments Transfer {
public Data receiveData(Param param) { /*他システムと接続してDataを得て返す*/ }
}
class MockTransfer impliments Transfer {
public Data receiveData(Param param) { /*テスト用のDataを適当に生成して返す*/ }
}
class Main {
public static void main(String args[]) {
//転送用オブジェクトを選択生成
Transfer trans = null;
if(args.length == 1 && args[1].equals("test")) {
trans = new MockTransfer();
} else {
trans = new RealTransfer();
}
//本番かテストか気にせず使用
Param param = 〜;
Data data = trans.receiveData(param);
}
}
てな感じ。

341 :デフォルトの名無しさん:2009/08/09(日) 17:20:59
>>337
すみません その方法を教えていただけないでしょうか。

感で
addMouseListener(追加したキャンバスクラス);
と書いてみたものの駄目でしたorz

また、最初のウィンドウクラスに
public void mouseClicked(MouseEvent e) {
System.out.println("click");
}
と書いても追加コンポーネントをクリックした時は反応がありませんでした。
(ウィンドウ上コンポーネント外では反応しました。)

342 :340:2009/08/09(日) 17:27:42
>>340
うああ "args[1]"→"args[0]"
その場書きだからとゆるしてやってくれ…汚しスマ

343 :デフォルトの名無しさん:2009/08/09(日) 17:31:17
>>341
”感”じゃなくて”勘”だろうw
未確認だが
 追加したキャンバス.addMouseListener(最初のウインドウ);
ではどうだ?

344 :デフォルトの名無しさん:2009/08/09(日) 17:37:48
Javaって機能ごとにクラスを分割するじゃん。(入力チェッククラス、ファイル書き込みクラス・・・)
でも、これらって1つのおおもとになるクラスから、いちいちnewして呼ぶんでしょ。
1つのクラスに書いたほうが、たくさんインスタンスを作らなくてよい分、性能がいいんじゃないの?
クラスが増えるとメンテナンスも悪くなるし。
きちんとメソッドごとに機能をわけていればよいと思うんだけど。

345 :デフォルトの名無しさん:2009/08/09(日) 17:42:35
>>343
上手くいきました
ありがとうございます。

346 :デフォルトの名無しさん:2009/08/09(日) 17:48:00
>>344
んなこた無い。再利用性ってググってみよう。

347 :デフォルトの名無しさん:2009/08/09(日) 17:55:37
/home/ユーザー/hoge1/hoge2/hoge.txtというパスにあるファイルを作りたいと考えています
どこのディレクトリまで存在しているか?ということをどうやったら、調べられますか?
例えば/home/ユーザー/まではちゃんとディレクトリが存在して、hoge1以下は存在しないよ〜
って感じです。

348 :デフォルトの名無しさん:2009/08/09(日) 17:58:40
>>344
正解。皆騙されているだけ

349 :デフォルトの名無しさん:2009/08/09(日) 18:09:57
>>347
File file = new File("/home/ユーザー/hoge1/hoge2/hoge.txt");
while(!file.exists()) file = file.getParentFile();
//この時点のfileはあるらしい
//rootもなけりゃぬるぽ
もちろん未確認


350 :デフォルトの名無しさん:2009/08/09(日) 18:20:26
>>347
作りたいだけなら
file.getParentFile().mkdirs();
file.createNewFile();

351 :デフォルトの名無しさん:2009/08/09(日) 18:22:10
>>348
やっぱりそうですよね。
僕はそう簡単にだまされません。
先日、入力チェッククラスを作っている童貞がいました。
C++神の僕にはそんなクラスはかっこ悪くて作れません。

352 :デフォルトの名無しさん:2009/08/09(日) 18:24:07
>>344
>>348
一人で全部作ってろ

353 :デフォルトの名無しさん:2009/08/09(日) 18:24:20
部品化(Bean)など上手くいっている現場は珍しい。
ほとんどはウンコ。わけわかめ。分けりやあいいってもんじゃない。
かえって思考が分散する。以上だ。

354 :デフォルトの名無しさん:2009/08/09(日) 18:27:05
太古の昔から部品の共通化などと能書きは垂れるが
細部にまで一貫性を保ってプロジェクトを運用し、設計思想を貫けるような
SEは殆どいない。理想はそうだろうが人間の頭は付いて来ない。
わかったか。

355 :デフォルトの名無しさん:2009/08/09(日) 18:27:44
俺できるよ?

356 :デフォルトの名無しさん:2009/08/09(日) 18:28:47
>>351
何で入力チェッククラスがダメなの?


357 :デフォルトの名無しさん:2009/08/09(日) 18:32:39
分けなくていいもんまで分けたり、
分けられるもんを分けなかったり、
取っておけるもんを毎回作って消したり、
単にツクリが悪いだけだろ。

358 :347:2009/08/09(日) 18:50:47
>>349-350
わかりました。ありがとうございます
参考にします

359 :デフォルトの名無しさん:2009/08/09(日) 18:52:48
>>344
1つのおおもとになるクラスから他のクラスを呼ぶってのは、
最近あまりみないよ。

360 :デフォルトの名無しさん:2009/08/09(日) 18:57:42
>>336
Java言語向けのやり方としては、外部システム接続がらみの境界線で
interfaceを定義して、テスト環境ではモックオブジェクトに切り替える
ようにするのが定石。

で、その切り替え処理はある程度DIコンテナ(Spring, Seasar2,
Google Guice等)に任せるのが最近の傾向。

361 :デフォルトの名無しさん:2009/08/09(日) 19:08:33
テキストファイルを1行読み込んだら、読み込んだデータをテキストを処理するクラスに渡す
という作業をループを使用して実装したいと考えています。
速度向上のためにテキストを処理するクラスはThreadを継承しようと考えています。
しかし、IOの方が遅いので行を読み込み終る前にテキストを処理するスレッドが終了してしまいます
どうにかして、勝手におわらせないようにしたいのですが
どのようにすればいいのでしょうか?

362 :デフォルトの名無しさん:2009/08/09(日) 19:12:20
1行1スレッドという発想は神ですね。
感動しました。

363 :デフォルトの名無しさん:2009/08/09(日) 19:18:35
>>362
煽るの好きだな

364 :デフォルトの名無しさん:2009/08/09(日) 19:21:59
>>361
つBlockingQueue

365 :361:2009/08/09(日) 19:29:12
>>364
ありがとうございます。
早速ググってみます

366 :デフォルトの名無しさん:2009/08/09(日) 19:46:02
final String str = "str";str = "STR";はダメなのに
final ArrayList<String> list = new ArrayList<String>();list.add(str);
は問題なくadd()出きるのですか?

367 :デフォルトの名無しさん:2009/08/09(日) 19:54:55
Java には代入とメソッドの区別ができるから

368 :デフォルトの名無しさん:2009/08/09(日) 20:04:11
>>366
final はオブジェクトの参照そのものが変化しないことを要求するだけ。
String への代入は参照そのものが変化するから×
list.add は list への参照そのものは変化しないから○

369 :366:2009/08/09(日) 20:06:49
>>367-368
非常に参考になりました。ありがとうございます

370 :デフォルトの名無しさん:2009/08/09(日) 20:30:23
>>366
finalが制限するのは、変数とオブジェクトの結び付きだけなので、オブジェクト自身に対する操作には影響しない。
絶対切れない紐の先に犬を結び付けたら別の犬に取り替えることはできないけど、犬がモノを食っても紐の種類には関係ない。

371 :デフォルトの名無しさん:2009/08/09(日) 21:53:02
1つのメインのクラスから、色々なクラスをよぶとき、
クラス図はどう表現すればよいのでしょうか?
1つのメインになるクラスから、使用しているクラスに矢印をひっぱるのでしょうか?

372 :デフォルトの名無しさん:2009/08/09(日) 22:03:19
アノテーションについて質問です。
アノテーションはあくまでクラス(Class<?>)が持つもので
例えば
class Hoge {
 @Anno
 Integer i;
}
Hoge h = new Hoge();
としたとき
h.iからそのフィールドに付いてる@Annoを取得(h.getDeclaredFields()してFieldを取得することなく)することはできないという認識でよいのでしょうか?

373 :デフォルトの名無しさん:2009/08/09(日) 22:23:59
>>371
適当にやじるし引っ張っとけ。
あってもいないし間違ってもいないし、理解もしていない。

>>372
正しい。h.iは単なるInteger型の参照でそれからは情報を取ることはできない。
Hogeのクラス情報(h.getClass, Hoge.class)から取得する。
ちなみに、アノテーションはRuntime属性にしておかなければ実行時には情報がなくなるので注意されたし

374 :デフォルトの名無しさん:2009/08/09(日) 22:37:45
アノテーションって何が出来るのですか

375 :デフォルトの名無しさん:2009/08/09(日) 22:38:23
>>373
アノテーションの意味的には取得できてもよさそうなものですが、やはり無理なのですね。
ありがとうございます。

376 :デフォルトの名無しさん:2009/08/09(日) 22:46:24
>374
一言で言えばフィールドやメソッドにラベルを付けられる
ラベルが付いているか付いていないかでIDEやフレームワークが「なにか」をするかもしれない

>375
いやできないのが自然だろう。
アノテーションは商品の値札のようなもの。
値札はパッケージや陳列棚にはつけるが、商品そのものには付けない
が、他の店で等々の品はある。

377 :デフォルトの名無しさん:2009/08/09(日) 22:51:09
javaにはRTTIがないから>>372の動作が自然だと思ってたんだが>>375はなんでそう思うの?

378 :デフォルトの名無しさん:2009/08/09(日) 22:52:00
>>371
それは依存なので破線の矢印で表す。
矢印の方向はそれであってる。

379 :デフォルトの名無しさん:2009/08/09(日) 23:00:58
@deprecateは取り消し線が付いて有益だと思う
@supressは黄色いびっくりwarningが消えるので有益
他に何かある?

380 :>>375:2009/08/09(日) 23:07:10
>>376-377
考えがかなり浅かったようです。
>>376の例を考えると納得でした。

勉強になりました。重ねてお礼を申し上げます。

381 :デフォルトの名無しさん:2009/08/10(月) 05:15:08
株やFXの業者サイトを開くと有名なjavaのマークの周りを■がぐるぐる回るアイコンが表示され
その後チャートなどが表示されますが、あれは「JAVAで作成されたプログラム準備中」という意味でしょか?


382 :デフォルトの名無しさん:2009/08/10(月) 12:12:04
BlockingQueueを教えてもらった者ですが、確認させていただきます
BlockingQuequeに何も無くなったら、
自分自身(BlockingQueque)があるスレッドを自分自身で止めるということでいいんですよね?

383 :デフォルトの名無しさん:2009/08/10(月) 12:20:40
>>374
DI

384 :デフォルトの名無しさん:2009/08/10(月) 13:00:29
ファイル読込で、BufferedReaderとInputStreamReaderを使用すると読み込むことは可能ですが、UTF8に変換されるのが困ってます。

SJIS読込→UTF8となって後の処理 SJISファイル出力でファイルを出力すると一部文字が文字化けしてしまいます。

これを解決するために、SJISファイルを読み込んで、内部的にもSJISの状態を保持して読み込むことは可能でしょうか?



385 :デフォルトの名無しさん:2009/08/10(月) 13:03:54
>>382
自分自身(BlockingQueque)があるスレッド、などというものは存在しないよ
BlockingQueue自身はスレッドを持っていない
止めるのは要素を取り出そうとした(takeを呼び出した)スレッド
あとついでに、満杯のキューにputしようとしたスレッドも空きが出来るまで止められる

386 :デフォルトの名無しさん:2009/08/10(月) 13:08:37
>>384
そもそもInputStreamReaderというのは、byte(バイト)をchar(Unicode文字)に変換するためのクラス
変換を通さずInputStreamから直にbyteを読み取ってOutputStreamに出力すればよいのでは

387 :デフォルトの名無しさん:2009/08/10(月) 13:20:19
>>386

やっぱりそうなりますよねぇ。
一行読込とかやりたかったんだけど、自前で組むしかなさそうですねぇ。

サンクスです。

388 :デフォルトの名無しさん:2009/08/10(月) 13:23:32
if(objFrm.get("idno")!=null && !objFrm.get("idno").equals("")){
このときに、!=nullはヌルじゃないを検査して、
!objFrm.get("idno").equals("")もヌルじゃないを検査しているのですけど
どうして2回繰り返すのでしょうか。

389 :デフォルトの名無しさん:2009/08/10(月) 13:24:39
s-jisのreader使って一行読み込んで,s-jisのwriter使ってoutputstreamに書き込めばいいんでない?

390 :デフォルトの名無しさん:2009/08/10(月) 13:25:51
ちゃんと読まなかった結果がこれだよ…

391 :デフォルトの名無しさん:2009/08/10(月) 13:29:58
>>384
もしかして "SJIS" じゃなくて "Windows-31j" とか "MS932" を指定すると上手く動いたりしないだろうか

392 :デフォルトの名無しさん:2009/08/10(月) 13:31:17
>>388
null と "" は別のものなので、2個チェックする必要があります

393 :382:2009/08/10(月) 13:33:58
>>385
わかりました、ありがとうございます

394 :デフォルトの名無しさん:2009/08/10(月) 13:43:53
>>384

"Windows-31j" と"MS932"は、試してみましたがだめでした。

2chのスレッド内容を取得しようと思ったんですけど、httpHeaderに設定されている「content-length」の値と
SJIS→UTF8→SJISファイル出力で取得したbyte長が異なるので困ってます。

うーんいい方法はないのかなぁ。


395 :デフォルトの名無しさん:2009/08/10(月) 13:53:40
>>394
改行コードの問題とかはない?
readLineは\nでも\rでも\r\nでも改行扱いするはずだけど、出力してる改行コードが元と違うとか
具体的に何がどう変わってるのか、バイナリダンプかなんかで比較して調べるべきかと

396 :デフォルトの名無しさん:2009/08/10(月) 14:19:09
>>387
>一行読込とかやりたかったんだけど
ttp://commons.apache.org/io/api-release/
こういうのがありますが、使えませんか?


397 :デフォルトの名無しさん:2009/08/10(月) 14:27:35
>>394
やりたいこととやってることが微妙に合っていないように聞こえるが。
2chのhtmlが文字列だからといって、Reader/Writerを使わなければならない訳じゃない。
そもそもContentLengthはhttpのボディ部が”バイナリとして”何バイトあるかを示しているはずだ。
だからReader/Writerじゃなく、InputReader/Writerでバイナリのままファイルに落とせ。

398 :397:2009/08/10(月) 14:29:48
>>397
ごめ、イキオイで間違った。
>inputRaeader/Writer
じゃなくて
InputStream/OutputStream


399 :デフォルトの名無しさん:2009/08/10(月) 14:45:36
>>396

ディレクトリ操作とか便利そうですが、今回のファイル入出力に関してはちょっと用途が違うなと思いました。

>>397,398

やっぱしstreamでI/Oするのがスマートそうですね。
ちょっと実装してみます。

400 :デフォルトの名無しさん:2009/08/10(月) 14:46:08
>>394
>「content-length」の値と
>SJIS→UTF8→SJISファイル出力で取得したbyte長が異なるので困ってます。
content-lengthの事を書いているのを見ると、差分データを取りに行きたいんでしょ?
スレッド番号.infoみたいなのを作ってレスポンスヘッダからconect-lengthの値を取得して、
<content-length>数値</content-length>とかやった方がいいと思うんだけど。

401 :デフォルトの名無しさん:2009/08/10(月) 14:46:16
>>394

改行コードは問題ありませんでした。LFなので特に困ってないです。


402 :デフォルトの名無しさん:2009/08/10(月) 14:49:46
>>400

ご名答。
ずばり2chスレッドの差分データを取得するために、content-lengthの値を設定したいのですが、思った通りに値を設定できなくて四苦八苦してます。

ちょっと悩んでみます。

403 :デフォルトの名無しさん:2009/08/10(月) 14:51:37
うるさい

404 :デフォルトの名無しさん:2009/08/10(月) 14:52:42
むしろHTTPなら java.net.HttpURLConnection とか import java.net.URL でまかなえるのでは

405 :デフォルトの名無しさん:2009/08/10(月) 15:01:25
>>402
自分で全体から一部を取り出さなくても、”新着レスの表示”リンクを見れば
URLにちょっと書くだけで差分が送られてくることが分かるだろ

全体を得たとしても、htmlを良く見ればレスがdat落ちと似た形式で一行毎になっているのが確認できるはずだ。
その部分を抜き出せば、レスの件数=行数。差分も得やすくなるだろ。

406 :デフォルトの名無しさん:2009/08/10(月) 15:02:19
受信した生データはいったんそのままStreamでファイルに保存しておいて、
あらためてファイルからReaderで1行ずつ読み込めばいい

407 :デフォルトの名無しさん:2009/08/10(月) 15:23:52
>>402
>>404 にも書いてある通りHttpURLConnection 使った方がいいと思うな
http://www.fk.urban.ne.jp/home/kishida/kouza/kishou/14net.html
てか、content-lengthを取得できないっってことはe-tagも取得できていないでしょ?
サーバに必要なデータを送らないと、ちゃんとデータを送り返してくれないような気がする
差分データはステータスコードを気にしながらコードを書かないいけないので注意

408 :デフォルトの名無しさん:2009/08/10(月) 15:28:35
>>405

それがdatファイルの扱いに関しては簡単ではないんです。

>>406,407

初回は、HttpURLConnectionで取得しているのですが2回目以降は、最初に取得した情報をファイルに出力しておいて
ファイルの差分をHttpURLConnectionで問い合わせようとしています。
そこで、content-lengthが重要になってくるんです。

javaじゃなければ簡単に処理できんだけど、なんでUTF8以外を扱おうとするとおかしくなるんだろ。


409 :デフォルトの名無しさん:2009/08/10(月) 15:32:26
>>392 ありがとうございました。

410 :デフォルトの名無しさん:2009/08/10(月) 15:48:57
>>408

とりあえず、初回読込はネットから取得してSJISファイル保存。
2回目以降のアクセスは、さきほどのファイルからbyteを取得して、ネットから差分取得でうまくいきました。

ありがとうございます。

411 :デフォルトの名無しさん:2009/08/10(月) 15:58:51
>>410
自分のレス番号は名前の欄に書いてください
アンカーは自分以外の人のレスをしたい時に使うものです
そのレスだと>>410>>408に感謝をしていると、ほとんどの人が勘違いします

412 :410:2009/08/10(月) 16:24:59
>>411

おっと、そうだったんですか。知らなかったです。
自分へのレスは、名前欄なんですね。


413 :デフォルトの名無しさん:2009/08/10(月) 16:29:08
>>408
難しく考え過ぎてるように思える。
たとえば、前回からの差分位置を、前回に取ったcontentを書き出したファイルのサイズから得る必要があるか?
HttpURLConnectionを使ってgetContentLengthで数値を得たのなら、その数値そのものを適当なファイルに書いておいて、
次に取る時にその値を読み込んでrangeヘッダに使ってもいいんだろう?
そうすればcontnetを書き出したファイルのサイズがcontent-lengthと違うとかいう問題は無くなるし、
文字コードがjavaで扱い易いUnicodeになってても問題ない。さらには元のままの形式である必要さえもない。

414 :デフォルトの名無しさん:2009/08/10(月) 16:40:37
>>410
出来たら、その出来たものをうpして見せて貰えないだろうか。

415 :414:2009/08/10(月) 16:51:08
「出来たら」は「完成したら」じゃなくて「他人に見せてもいいと思っていたら」ことで。念の為。

416 :デフォルトの名無しさん:2009/08/10(月) 16:56:44
お前うざすぎ

417 :デフォルトの名無しさん:2009/08/10(月) 17:01:18
>>415

アプリという形なら公開できますが、ソースは汚いですねぇ。

>>413

確かに簡単にできる方法を選択するのもありですね。
こっちでも実装してみます。

418 :414:2009/08/10(月) 17:45:36
>>417
試行錯誤してレスもいろいろ付いた結果どうなったかに興味があるんで、
綺麗なのは期待してないから気にするな。

419 :デフォルトの名無しさん:2009/08/10(月) 21:05:39
JavaでGUIを使ったプログラムを作っている者です。
GUIを記述するクラス(クラスA)と、他の処理をするクラス(クラスB)を分けているのですが、
クラスAに記述されているGUIコンポーネント(例えばTextField)を、
クラスBから操作するにはどういう方法があるでしょうか?

なお、クラスAでは、クラスBのインスタンスを生成して利用する形になっています。

初心者の私に思いつくのはクラスAのGUIコンポーネントをグローバル変数のようにしてしまうということくらいなのですが、
もっとスマートな方法は無いでしょうか?


420 :デフォルトの名無しさん:2009/08/10(月) 21:08:33
クラスの分け方がキモイ

421 :デフォルトの名無しさん:2009/08/10(月) 21:25:02
>>419
クラスAにクラスBのインスタンスをフィールドでもって、
クラスBにてクラスAを初期化する際にthisを渡すとか。

ClassA classA = new ClassA(this);

みたいな感じで。

まぁ、クラスの分け方に疑問を感じるが。
クラスAのGUIコンポーネントはクラスAにまとめるとか、
クラスの肥大化を嫌うのであれば、
クラスB→クラスAじゃなくてクラスA→クラスB、
もしくはクラスB→クラスA→クラスCとするとか。

422 :デフォルトの名無しさん:2009/08/10(月) 21:25:50
>>419
クラスBがクラスA(のGUIコンポーネント)に何をさせたいのかという単位で、
クラスAにメソッドを作ってそれをクラスBに呼ばせる。
例えば、一連のTextFieldをクリアするのなら、クラスAにclearAll()という
メソッドを作って内部で各TextFieldをクリアする。それをクラスBから呼ぶ。

423 :デフォルトの名無しさん:2009/08/10(月) 21:27:10
>>419
A -> B の参照はするが、A <- B の参照を持たせたくないという解釈でいいか?

幾つかの方法はあるが、古典的なパターンは
・Listenerインターフェイスを作成
・B(処理クラス)にLinstenerのaddメソッドを作成
・A(GUI)の初期化時に、Linstenerを無名クラスでnewしてBに追加
public A() {
b.addListener(new Listener() {
public void xxxChanged(Xxx x) {
// GUIの更新など
}
});
}
・B(処理クラス)では状態が変わったときに、linterを呼び出す
private notifyChanged(Xxx x) {
for(Linstener l: linteners){ l.xxxChanged(x); }
}

基本的なパターンなんで覚えておくといい

424 :デフォルトの名無しさん:2009/08/10(月) 21:30:41
クラスの分け方おかしいか?
419はViewとModelを分離したいのだと思ったけど

425 :デフォルトの名無しさん:2009/08/10(月) 21:33:07
MVで書き換えておく
View -> Model の参照はするが、View <- Model の参照を持たせたくないという解釈でいいか?

幾つかの方法はあるが、古典的なパターンは
・Listenerインターフェイスを作成
・Model(処理クラス)にLinstenerのaddメソッドを作成
・View(GUI)の初期化時に、Linstenerを無名クラスでnewしてModelに追加
public View() {
model.addListener(new Listener() {
public void xxxChanged(Xxx x) {
// GUIの更新など
}
});
}
・Model(処理クラス)では状態が変わったときに、linterを呼び出す
private notifyChanged(Xxx x) {
for(Linstener l: linteners){ l.xxxChanged(x); }
}


426 :デフォルトの名無しさん:2009/08/10(月) 21:35:25
Javaからデータベースを読むときは、数回しか読まないようなときでも
PreparedStatementを使うように習慣つけるのがいいのでしょうか。

427 :デフォルトの名無しさん:2009/08/10(月) 21:36:49
JDBCを直で使わないような習慣を付けるといいと思います

428 :デフォルトの名無しさん:2009/08/10(月) 21:57:46
Prepared使うようにした方が良いね
直で使うなとかいう変な書き込みは気にしなくて良い
素人の書き込みだから

429 :デフォルトの名無しさん:2009/08/10(月) 22:04:09
このスレ素人しかいねーじゃん。

430 :デフォルトの名無しさん:2009/08/10(月) 22:05:33
素人が素人に説教していると聞いて

431 :デフォルトの名無しさん:2009/08/10(月) 22:13:48
>>427 >>428 ありがとうございました。

432 :419:2009/08/10(月) 22:30:27
みなさんご教授いただきありがとうございます。

>>423-425
おっしゃるとおりで、
「A->Bの参照はするが、A<-Bの参照を持たせたくない」
↑これが核心です。
たどたどしい説明から汲み取っていただきましてありがとうございます。
Listenerインタフェースを使うという定石があるのですね。
教えていただいたやり方でやってみます、ありがとうございました。





433 :デフォルトの名無しさん:2009/08/10(月) 22:54:46
>>426
原則yes. 生JDBCじゃない場合でも、類似のものを使うケースはあるしな。

原則として、外部からやってきたパラメータはあらゆる意味で信用できない
ので、細心の注意(※)を払ってエスケープしながらSQLを組み立てるより、
最初からエスケープ自体が不要な方法を使うべき。

※細心の注意をはらっても、なお空隙を突かれるケースは少なくない。
不完全なマルチバイト文字でエスケープが破綻するとか、
冗長なUTF-8でエスケープを無効化されるとか……。

434 :デフォルトの名無しさん:2009/08/10(月) 22:58:04
type safeなのが欲しい

435 :デフォルトの名無しさん:2009/08/10(月) 23:15:08
>>433 ありがとうございました。
いまは勉強中とはいえ部品としてデータベース連携のJavaを作っているの
ですが、今までは気にならなかったのですがwhere句とかが並ぶときに、
アポストロフィと、+、が混在して複雑になりますね。
それと記憶するのでしょうから多少速度が早くなると思い、
さっそく部品を修正してみようと思います。

436 :デフォルトの名無しさん:2009/08/10(月) 23:47:16
夏厨が見事にスルーされててフイタw

437 :デフォルトの名無しさん:2009/08/10(月) 23:53:27
>>435を見て思わず背筋が寒くなったが、セキュリティ関係にも、よ〜く注意しような……。
少なくともXSS対策とSQLインジェクション対策は十分に行うように。

438 :デフォルトの名無しさん:2009/08/11(火) 00:13:29
TEST1というクラスは多くのスレッドでnewされます。
そのTEST1のAメソッドを、最初の1回目のインスタンスだけ実行をさせたいのです。
どういった方法があるのでしょうか。

439 :デフォルトの名無しさん:2009/08/11(火) 00:36:09
>>438

class TEST1 {
static { A(); }
private static void A() { ... }


440 :デフォルトの名無しさん:2009/08/11(火) 00:46:37
>>439

お返事ありがとうございます。
静的メソッドは使ってはだめだという規約があるのです。
やっぱり、静的メソッドにしないと駄目ですかね。。

441 :デフォルトの名無しさん:2009/08/11(火) 00:52:24
その規約書いた奴殺せばいい

442 :デフォルトの名無しさん:2009/08/11(火) 00:56:31
静的フィールドならいいのか?

class TEST1 {
private static final AtomicBoolean b = new AtomicBoolean();

{
if (b.getAndSet(true) == false) { A(); }
}

private void A() { ... }
}

443 :デフォルトの名無しさん:2009/08/11(火) 00:56:50
A()の実行記録を静的フィールドに持てば?

444 :デフォルトの名無しさん:2009/08/11(火) 01:01:41
>>442
あぁ、そういう単純な手があるんですね。
クラス変数はVMで一意ですからね。
フラグをアトミックに操作すれば問題ないですね。
参考になります。

445 :デフォルトの名無しさん:2009/08/11(火) 01:43:17
静的メソッド禁止、きたこれ

446 :デフォルトの名無しさん:2009/08/11(火) 02:05:12
何故の部分が忘れ去られて規則だけ残ると哀れな状態に成りがち。

447 :デフォルトの名無しさん:2009/08/11(火) 02:52:36
>>429
鼻糞

448 :デフォルトの名無しさん:2009/08/11(火) 04:53:04
このスレにふさわしくないかもしれませんが、
WindowsXPでJavaの使われているwebページを閲覧したい場合、
どれをインストールすればよいのでしょうか?


449 :デフォルトの名無しさん:2009/08/11(火) 05:52:39
ふさしくないので消えてください



ちなみに理解力のある人ならテンプレ読めばその質問の答えは見つかります
分からないならやっぱり消えてください

450 :デフォルトの名無しさん:2009/08/11(火) 06:40:52
>>448
http://www.java.com/ja/

451 :デフォルトの名無しさん:2009/08/11(火) 10:06:17
フィールドで初期化しても
コンストラクターのsuper()のあとで初期化されるみたいなのですが、
そのまえにする方法ありますか?

452 :デフォルトの名無しさん:2009/08/11(火) 10:33:55
まずは日本語でお願いします

453 :デフォルトの名無しさん:2009/08/11(火) 10:34:19
super(initializeField()); みたいに、明示的コンストラクタ呼び出しの引数に
フィールド初期化メソッド入れちゃうとか。

454 :デフォルトの名無しさん:2009/08/11(火) 10:36:36
クラスのフィールドのオブジェクトをフィールドで初期化しても
クラスのコンストラクターの中のスーパークラスのコンストラクターの
後でしょきかされるみたいなのですが、
その前にする方法ありますか?

455 :デフォルトの名無しさん:2009/08/11(火) 10:44:43
うるさい

456 :デフォルトの名無しさん:2009/08/11(火) 11:26:26
ヒドイです><

457 :デフォルトの名無しさん:2009/08/11(火) 11:43:12
マンモスヤッピー

458 :デフォルトの名無しさん:2009/08/11(火) 11:45:47
親クラスの初期化が子クラスに影響する状況ってあんまり考え付かないんだけど。
とりあえず、親クラスのメンバ変数を全部privateにしてから考え直すとか。

459 :デフォルトの名無しさん:2009/08/11(火) 11:51:44
>>458
いや、あるぞ。
親クラスのコンストラクタから呼ばれるメソッドをオーバーライドしてたら、
子クラスのそのメソッドは初期化前に実行されてしまう。
Swingの中にはこの前提で作られてるメソッドもあって、場合によっては知ってないとひっかかるかもしれん。

460 :デフォルトの名無しさん:2009/08/11(火) 12:02:31
>>454
クラスのフィールドを初期化ってサブクラスのフィールドだろ?
スーパークラスのフィールドで初期化されるのはスーパークラスのフィールドしかないだろ?
フィールドをオーバーライドしてんの?

>>459
コンストラクタからprivateでないメソッド呼んじゃいけない

461 :460:2009/08/11(火) 12:03:26
訂正
×コンストラクタからprivateでないメソッド呼んじゃいけない
○コンストラクタからprivateまたはfinalでないメソッド呼んじゃいけない

462 :デフォルトの名無しさん:2009/08/11(火) 12:07:37
スーパークラスのサブクラスなんていうのは無いんだよ。
クラスのサブクラス、クラスのスーパクラスならありますが。

463 :デフォルトの名無しさん:2009/08/11(火) 12:08:58
うぜえw

464 :デフォルトの名無しさん:2009/08/11(火) 12:14:57
呼んじゃいけないったって、それはSwingの中の人に言ってくれ
というか言っても互換性が失われるから今さら修正不可能だろうけど・・・
もはやありのまま受け入れるしかない現状

465 :デフォルトの名無しさん:2009/08/11(火) 12:16:55
呼んでしまっているのは仕方ない、
なのでオーバーライドしちゃいけない
する場合には決してサブクラスのフィールドには触らないが原則

466 :デフォルトの名無しさん:2009/08/11(火) 12:21:32
何でこんなゴミ作ったんだろう?

467 :デフォルトの名無しさん:2009/08/11(火) 12:45:45
いいかげん糞は黙れ

468 :デフォルトの名無しさん:2009/08/11(火) 12:49:30
おもいつきなんだけど、
public class A {
public A(){}
}
の継承クラスBを作るのに、
public class B extends A {
private A a;
public B(){
なんかの処理
a = new A();
}
}
とか外見は継承だけど、中はコンポジションのようなやり方をするとなんか問題ある?


469 :デフォルトの名無しさん:2009/08/11(火) 12:51:11
何に使うの?

470 :デフォルトの名無しさん:2009/08/11(火) 12:56:13
一般的なケースでは問題ないと思うけど・・・なんでそんなことを?
プロキシみたいにしたいとか?
一般的でない問題あるケースとしてはリフレクションを使えば外からAのprivateメンバに触れたりするはず
あとはAがコンストラクタで自分自身をどこかに登録してたりとか

471 :デフォルトの名無しさん:2009/08/11(火) 13:04:16
class B に対して
extends Aをする以上
意味がないのでは?

472 :デフォルトの名無しさん:2009/08/11(火) 13:23:37
>>467
はやく黙れよ。

473 :デフォルトの名無しさん:2009/08/11(火) 13:27:13
ええ?Javaだと親クラスのメソッドは呼べないの?
継承関係がA B C D E ... と深くなっているときthisがEとして、
Dのメソッドはsuper使えば呼べるけど、C,B,Aとかsuperより上のメソッドをオーバーライドしてるときはどうやって呼びだすの?


474 :デフォルトの名無しさん:2009/08/11(火) 13:34:27
DがCを、CがBを、BがAを呼んでくれるのを期待する
直接は呼べない

475 :デフォルトの名無しさん:2009/08/11(火) 13:41:38
threadでpublic void run()をオーバーライドした時に
InterruptedExceptionが発生したらどうしてる?
あと、run()をしていると中でIOExceptionが発生した時とか

476 :デフォルトの名無しさん:2009/08/11(火) 13:42:55
AがBに殺され、BがCに殺され、CがDに殺され、DがAに殺される。

477 :デフォルトの名無しさん:2009/08/11(火) 13:43:08
class Roof {
 public void Hoge() {}
}
class Floor extends Roof {
 public void Hoge() {}
}
class Base extends Floor {
 public void Hoge() { Floor.this.Hoge(); Roof.this.Hoge(); }
}

とかできなかったっけ?

478 :デフォルトの名無しさん:2009/08/11(火) 13:44:06
>>475
例外キャッチはどんな作業をしているかに寄るとなんども()

479 :デフォルトの名無しさん:2009/08/11(火) 13:50:16
>>475
(1) printStackTrace
(2) RuntimeExceptionにくるんで投げ直す
(3) スレッドの生成元もしくは結果を待ってるクラスに実行結果として通知する

1はまぁ手抜きコードではよくやるが実アプリではちょっと考えもの
2はスレッドの生成元がsetUncaughtExceptionHandlerで設定したかもしれないハンドラが何か上手いこと処理してくれるかもしれない
3は、実行結果を待ってる相手がちゃんと存在してるのなら、最も適切

480 :デフォルトの名無しさん:2009/08/11(火) 14:01:18
>>477
できない

481 :475:2009/08/11(火) 14:05:59
>>479
1行ファイルから読み込んでは、addQueue(line)するって処理を書いている
threadはシグナルみたいなのを受けとるまで処理を止めないってのを書いているんだけど
while((line = br.readLine()) != null) {
createList.addQueue(line);
}
class CreateList extends Thread {
private LinkedBlockingQueue <String> lineList = new LinkedBlockingQueue<String>();
private List<テスト> testList = new ArrayList<テスト>();
@Override
public void run() {
while(true) {
try {
String line = lineList.take();
testList.add(new テスト(line));
} catch (InterruptedException ex) {}
}}
public void addQueue(String line) {
lineList.add(line);}



482 :デフォルトの名無しさん:2009/08/11(火) 14:07:38
できなかった

でも最近はabstract class以外継承したことないから気にもならなかった

483 :デフォルトの名無しさん:2009/08/11(火) 14:09:05
Prepared用にデータベース連携部品を修正したのですけど、これで動いたのですけど
問題ないでしょうか。Connectionを呼び出し元に渡していることや、
this.pstmt = pstmt;としてクローズするためにprivate変数にセットしているんですけど、
こういうの、どうなのかなあと思います。
-------------------------
その1
public class XXMySQL_fishdb2 {
private Connection con = null; private PreparedStatement pstmt = null; private ResultSet rs = null;
// データベース接続 - PreparedStatement -
public Connection open() { String url = "jdbc:mysql://localhost:3306/fishdb"; String user = "*******"; String pass = "*******";
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url, user, pass);
} catch (Exception e) { e.printStackTrace(); System.out.println("Exception Open Err : " + e.getMessage()); }
return con; }
// オブジェクトを解放
public void close() {
try {
if (rs != null) { rs.close(); } if (pstmt != null) { pstmt.close(); } if (con != null) { con.close(); }
} catch (SQLException e) { e.printStackTrace(); System.out.println("SQLException Close Err : " + e.getMessage()); } }
// select文を実行
public ResultSet executeQuery (PreparedStatement pstmt) {
if (pstmt != null) {
this.pstmt = pstmt; //closeするときのためセット
try {
rs = pstmt.executeQuery();
} catch (SQLException e) { e.printStackTrace(); System.out.println("SQLException DML Err : " + e.getMessage()); } }
return rs; }


484 :デフォルトの名無しさん:2009/08/11(火) 14:10:26
その2
public final class FishInfo {

public static FishInfo getFishInfo (String id) {
FishInfo objFish = new FishInfo();
XXMySQL_fishdb2 db = new XXMySQL_fishdb2(); //Prepared使用
try {
// データベースへの接続を確立
Connection con = db.open(); //部品連携 OPEN
String mySql = "SELECT * FROM angel WHERE nameid = ?";
PreparedStatement pstmt = con.prepareStatement(mySql);
pstmt.setString(1, id);
ResultSet rs = db.executeQuery (pstmt); //部品連携 SELECT

if(rs.next()){
objFish.setnameid (rs.getString ("nameid") );
objFish.setname (rs.getString ("name") );
}
} catch(Exception e) {
e.printStackTrace();
} finally {
db.close(); //部品連携 CLOSE
}
return objFish;
}

485 :デフォルトの名無しさん:2009/08/11(火) 14:13:30
>>481
ループの中にcatchを入れたら受け取っても止まらないのでは
あと、スレッドが止まった以降はaddQueueを拒否する(例外を投げる)べきかと

486 :デフォルトの名無しさん:2009/08/11(火) 14:25:27
>>482
Connectionを外に見せるのがPreparedStatementを作るためだけなら、
それもクラス内で処理した方がいいと思うよ
public ResultSet queryAngel(String nameid) throws SQLException {
pstmt = conn.createPreparedStatement(........);
pstmt.setString(.......);
return pstmt.executeQuery();
}
こんな感じで

487 :486:2009/08/11(火) 14:26:45
レス番まちがった。>>483 です

488 :デフォルトの名無しさん:2009/08/11(火) 14:48:47
ああそうそう、Floor.this.hoge(); とかのC++みたいな呼び出し方法もあるけどこれでも駄目なのか。
言語仕様読んでみたけどずっと上にあるメソッドの場合は呼び出し方が書いてないね。
invalidate()とか適切な処理をしないでオーバーライドしてるクラスをどんどん派生したときはどうするんだろう。

489 :デフォルトの名無しさん:2009/08/11(火) 14:54:47
それは適切な処理をしないクラスが不適切
それをサブクラス側で面倒見なきゃいけないってのは何か間違ってる
ところでC++のは this->Floor::hoge() とかじゃないか
Floor.this.hoge() 的な呼び方はJavaで内部クラスから外部クラスを呼ぶときの書き方

490 :デフォルトの名無しさん:2009/08/11(火) 14:55:05
学生さんもう少し自分で調べてから質問した方が良いかも

491 :475:2009/08/11(火) 14:59:24
>>485
最初は、IO→読み込んだデータの処理と書いてました。
しかし、これでは遅い(IOの間にCPUが遊んでいる)のでもっと違うアルゴリズムを考えました。
考え出したアルゴリズムは「データを読み込みながら、データを処理する」というアルゴリズムです。
そのため、1行読み込んだら即座にデータを別のスレッドで処理をするというコードを書いています。

スレッドの開始→while((line = br.readLine) != null) {別のスレッドで読み込んだデータを処理する)}→スレッドの同期→処理したデータを取得

>あと、スレッドが止まった以降はaddQueueを拒否する(例外を投げる)べきかと
説明が不足していました、すいません

492 :デフォルトの名無しさん:2009/08/11(火) 15:00:08
問題はJavaがbeansでsetterをメソッドで行うように強要してるのに肝心のオーバーライド仕様がこれじゃ、自作クラスなど気軽に作れるはずは無い。
この一行が何のことを意味してるかも理解できないようじゃJavaは諦めたほうがいいな。
Javaがライトユーザから敬遠されてC#,javascript,rubyに流れていってしまう理由はこれかもしれない。

493 :デフォルトの名無しさん:2009/08/11(火) 15:06:21
>>491
別スレッド側で発生した例外はすべて(OutOfMemoryErrorなんかも含めてThrowableすべて)キャッチして、
最後の同期→取得のところでメインスレッド側に返すべき。

494 :491:2009/08/11(火) 15:10:59
>>493
>最後の同期→取得のところでメインスレッド側に返すべき。
大変申し申し訳ありませんが、簡単なコードを書いてもらないでしょうか

495 :デフォルトの名無しさん:2009/08/11(火) 15:23:09
>>494
こんな感じで
class CreateList extends Thread {
private LinkedBlockingQueue <String> lineList = new LinkedBlockingQueue<String>();
private List<テスト> testList = new ArrayList<テスト>();
private Throwable throwable;
public void run() {
try {
while(true) {
String line = lineList.take();
if (line == null) break; // 終了用
testList.add(new テスト(line));
}
} catch (Throwable ex) { throwable = ex; }
}
public void addQueue(String line) { lineList.add(line); }
public List<テスト> getResult() throws Throwable{
lineList.add(null); // 終了用
join();
if (throwable != null) { throw throwable; }
return testList;
}
}
メイン側
while((line = br.readLine()) != null) { createList.addQueue(line); }
try {
List<テスト> testList = createList.getResult();
...
} catch (Throwable ex) { ... }

496 :デフォルトの名無しさん:2009/08/11(火) 15:37:11
>>494
ついでにExecutorとFutureを使う方法もある
class CreateTest implements Callable<テスト> {
private String line;
public CreateTest(String line) {
this.line = line;
}
テスト call() throws Exception {
return new テスト(line);
}
}

ExecutorService executor = Executors.newSingleThreadPool();
List<Future<テスト>> futureList = new ArrayList<Future<テスト>>();
while((line = br.readLine()) != null) {
futureList.add(executor.submit(new CreateTest(line));
}
try {
for(Future<テスト> future: futureList) {
テスト test = future.get();
...... testを使って何かする .......
}
} catch (......) {
...... 例外の処理 ......
}
executor.shutdown();

497 :494:2009/08/11(火) 15:45:18
>>495
なるほど、こんな書き方があったのを知りませんでした
>>495が、頭がよく見えました

念の為に一つだけ質問させてください
createList.addLine(line);した瞬間にスレッドが起動する(起動していない場合)ということでいいんですよね

498 :デフォルトの名無しさん:2009/08/11(火) 15:49:04
>>495
疑問なのだが、これってなぜThrowableをcatchする必要があるの?

499 :デフォルトの名無しさん:2009/08/11(火) 15:50:09
元と大して変えてないけど・・・スレッドはあらかじめ起動しておかないとだめ
496の方は勝手に起動する

500 :デフォルトの名無しさん:2009/08/11(火) 15:53:34
>>498
処理中にOutOfMemoryErrorとかStackOverflowErrorとかでスレッドが死んだら、
そのこと(最後まで処理を正常に完了できなかった)をメイン側が知りたいだろ?
知りたくないなら別にいいが、不完全な実行結果が得られても俺は嬉しくない

501 :デフォルトの名無しさん:2009/08/11(火) 16:09:24
警告:[unchecked] raw 型 java.util.ArrayList のメンバとしての add(E) への無検査呼び出しです。

とはどういう意味の警告なのでしょうか?
コンパイルはできて、実行も問題なくできています

502 :デフォルトの名無しさん:2009/08/11(火) 16:11:16
>>501
Java Generics でぐぐってみるよろし

503 :デフォルトの名無しさん:2009/08/11(火) 16:17:05
>>486-487 ありがとうございます。

504 :497:2009/08/11(火) 16:21:05
>>499
ありがとうございます。
大体わかったので、あとは自分で考えたいと思います

505 :デフォルトの名無しさん:2009/08/11(火) 16:28:30
先生方はなんでこんな厨房ばかりが来るスレに常任してるんですか?
そんなに仕事無いんですか?

506 :デフォルトの名無しさん:2009/08/11(火) 16:33:22
>>502
ありがとうございました。
解決しました。

持ってた本が古かったようでした。

507 :デフォルトの名無しさん:2009/08/11(火) 16:45:46
>>495
>lineList.add(null); // 終了用

API DOC
>BlockingQueue は null 要素を受け入れません。null の add、put、または offer が試みられると、
>実装により NullPointerException がスローされます。null は、poll オペレーションが失敗したことを示す標識値として使用されます。


508 :デフォルトの名無しさん:2009/08/11(火) 16:54:38
>>491
自分でやろうとしている姿勢は評価できるが、パソコンの前でうじうじ弄る前に
もちょっと書籍を読んだらどうだ。
どんな機能があるかも分からないんじゃ検索もできんだろうし。
Workerスレッドなんて普通のことだし、javaでどう実装するかの
サンプル付きのがあちこちあるだろう。

509 :デフォルトの名無しさん:2009/08/11(火) 16:57:11
>>507
おおう。それは失礼。
なんか適当に代わりの方法を考えてやってください。

510 :デフォルトの名無しさん:2009/08/11(火) 17:06:06
といいつつ、自分で考えてみた。これでどうかな。邪道っぽいけど。
class CreateList extends Thread {
private static final String EOF = new String();
.....
String line = lineList.take();
if (line == EOF) break; // 終了用
.....
lineList.add(EOF); // 終了用
.....

511 :491:2009/08/11(火) 17:13:34
>>508
新幹線定期が切れていて政令指定都市に移動できない
オイラの街はjavaの本を売っている所すらないのさ
定期を買ったら、買いに行くよorz

512 :デフォルトの名無しさん:2009/08/11(火) 17:41:38
今日は珍しく大漁だな〜

513 :デフォルトの名無しさん:2009/08/11(火) 17:43:38
新幹線定期なんて贅沢な・・・うらやましす。

514 :デフォルトの名無しさん:2009/08/11(火) 17:50:51
>>513
新幹線使わないと、6:15分には家を出て着くのが9時ごろ
乗り換えとかいろいろ考えると、往復で4〜5時間くらいになるわけよ
住むより安いとか言われたけど、都市に住みたい

515 :508:2009/08/11(火) 18:24:58
>>511
それは酷なことを言ったようで、すまなかった。
↓この人の本は売れてるらしいから参考にしてくれ。サンプルも載ってるようだし
http://www.hyuki.com/dp/

516 :デフォルトの名無しさん:2009/08/11(火) 18:28:45
大学のとき、三島から品川まで新幹線で通ってる奴が居たけどそういうレベル?w

517 :デフォルトの名無しさん:2009/08/11(火) 18:44:25
>>516
94kmしか新幹線には乗らないけど、新幹線の駅まで13kmくらいあるよ
それに、学生だから原付で移動。冬場は更に駅で50分バスを待つわけだし
家が遠いと全然友達できないし、飲み会も誘われないよ〜orz

同じ駅から新幹線に乗る友達は、40kmくらい汽車(電車じゃない)に乗って来るよ
しかも、汽車に乗る前にも車運転して駅まで行っているみたい
その人は、片道150km(142km列車)くらいだから大変な感じだけど
もう一人、片道140km新幹線に乗っている友達もいるよ〜

ながながスマソ

518 :デフォルトの名無しさん:2009/08/11(火) 19:00:15
確か他の小田原あたりだったかに住んでるやつは、新幹線使わずにマイカー(東名)で来てたけどね。
悪いがそういう田舎もんは「おのぼりさん」程度にしか思ってないわw

君さ、一回原宿とかいってみれば君がどれほど田舎もんなのか分かるよ。最近話題の「女装系男子」とかいるだろうし。

519 :デフォルトの名無しさん:2009/08/11(火) 19:03:36
ここは、遠距離通勤質問・相談スレだったか

520 :デフォルトの名無しさん:2009/08/11(火) 19:06:09
ウエルカム・ツー・TOKIOジャングル

521 :デフォルトの名無しさん:2009/08/11(火) 19:21:34
>>520
東京行ってコンピュータに詳しくなりたいとは思うけど
往復すると新幹線だけで2万円以上かかるよ(朝・夕以外は新幹線、1本/時だし)
東京なんて中学/高校(通過)の就学旅行でしか行ったことない(笑えますね)

田舎に住んでいてもネットがあればプログラミングできるとか言っている人いるけど
そんなの大嘘で田舎はADSLすら出来ない所もある、ADSLも1Mbps以下とかある
とある友達の家は圏外で、メール出しても3週間後に返信がとか
都会に住んでいるコンピュータ好きの皆さんは恵まれてますよ

話がそれてきたので、オイラの家がどんだけ田舎かという話はやめます

522 :デフォルトの名無しさん:2009/08/11(火) 19:25:03
田舎かどうかは単なるいいわけでしかないな

523 :デフォルトの名無しさん:2009/08/11(火) 19:32:09
そう思うなら住んでみるといいよ
話はそれから

524 :デフォルトの名無しさん:2009/08/11(火) 19:57:31
>>511雨損で買え

525 :デフォルトの名無しさん:2009/08/11(火) 20:02:34
東京ミレナリオはやっぱり綺麗だったな・・・
そもそも田舎もんじゃおうちに帰れない時間だしな・・・

526 :デフォルトの名無しさん:2009/08/11(火) 20:04:55
家賃考えると朝夕の苦労のほうがいいときもある
地元に遊べるところがないのが苦痛だなー

527 :デフォルトの名無しさん:2009/08/11(火) 20:07:29
貧乏人は藁を食ええ

528 :デフォルトの名無しさん:2009/08/11(火) 20:09:40
>>518
ちょwwwwww「女装系男子」とかキモいネーミング勝手につけて知ったかしないでくれw
お前が言いたいのはユニセックスとかモード系だろ?wwwwwwwwww

「女装系男子」って何だよwwって検索してみてビックリ!
原宿とはほど遠い「アキバ系女装男子」しか引っかからないじゃねーかwwwwwwww

529 :デフォルトの名無しさん:2009/08/11(火) 20:13:11
まぁここはアキバ系ばかりだから許してやれよ

530 :デフォルトの名無しさん:2009/08/11(火) 20:14:08
>>521オラんとこもすげー山ん中だけど村役場がCATV引いてくれたんで、ケーブルモデムでバリバリ
高速インターネットが可能だぞ。(総務省か何かの補助金があるらしい)

531 :デフォルトの名無しさん:2009/08/11(火) 20:28:59
>>530
オイラの家なんか、1.5Mbpsしかでないよ
CATVなんてないお

532 :デフォルトの名無しさん:2009/08/11(火) 20:35:10
>>531
CATVはただ、ネットは2400円/月で使い放題.
ま、村長か村会議員に陳情することだ。

533 :デフォルトの名無しさん:2009/08/11(火) 20:36:58
>>528
アキバだとコスプレなんだけど、今じゃ原宿の方ではコスプレの感覚がさらに進化して女装になってんだけど
R25とかTOKIOウォーカーあたりが君たちの情報源だと思ってたんだけど。
君の村はR25とか配ってないほど田舎じゃないよね?w

534 :デフォルトの名無しさん:2009/08/11(火) 20:38:23
ま、田舎もんに話題振ってみてもこの程度かw

535 :デフォルトの名無しさん:2009/08/11(火) 20:49:14
>>534
田舎者を馬鹿にするなら、餓死すればいいと思うよ
どうせ、いつかは外国から日本に食べ物が来なくなるわけだし

536 :デフォルトの名無しさん:2009/08/11(火) 20:51:45
>>518
田舎者を馬鹿にしようとして、>>528に馬鹿にされてやんの
ただのアキバ系なんだ、キモい。こっちくんな

537 :デフォルトの名無しさん:2009/08/11(火) 20:52:04
>>534
都会のニートにバカにされるいわれはない。

538 :デフォルトの名無しさん:2009/08/11(火) 20:57:15
>>534
都会のキモヲタにもばかにされるいわれはない。

539 :デフォルトの名無しさん:2009/08/11(火) 21:08:28
このスレは,とかいはといなかもののありすによってゆっくりプレイスとなりました

540 :528:2009/08/11(火) 21:19:51
>>533
おれ東京住みなんだがwwあまりにも>>518の書き込みが恥ずかしすぎて・・・ネ!
たぶん東京に憧れてるだけの人なんだろうけど。

コスプレの感覚が進化して女装とか、勝手にあなただけの持論展開しないでください><;ww
ユニセックスが「記事」として取り上げられたのは最近だけど、割と前からありますよ^^^^^
そこから察するに実際に原宿を歩いて得たわけではなく、「記事」から得た知識でしょう。
それから、>>533「〜んだけど〜んだけど〜んだけど」って連発されると流石にマヌケです。

まぁそれよりプログラムの話題をしてくださいよ。
関係ない話題なのに「無知さに吹いた」だけで突っ込んで申し訳なかった。
ちなみに田舎は虫が多いという事を除けば好きです^^

541 :デフォルトの名無しさん:2009/08/11(火) 21:19:57
InputStreamの変数名はisだろ
でも、お前らだったらGZIPInputStreamの変数名は何にする?

542 :デフォルトの名無しさん:2009/08/11(火) 21:24:18
@ String[] str;
A String str[];

どっちのほうが一般的な書き方?

543 :デフォルトの名無しさん:2009/08/11(火) 21:26:23
Aは老害

544 :デフォルトの名無しさん:2009/08/11(火) 21:30:19
533のいじめられ具合にワロタ

545 :デフォルトの名無しさん:2009/08/11(火) 21:30:37
>>540
で、そこまで言うならミレナリオンはどうだった?

546 :デフォルトの名無しさん:2009/08/11(火) 21:32:06
>>540
東京在住って、オレの住んでるところ知っちゃうとたぶんオシッコちびっちゃうよ。それでもいいの?w

547 :デフォルトの名無しさん:2009/08/11(火) 21:32:34
>>542
String[] str[];って書き方もあるらしいよ
試したことないけど

548 :デフォルトの名無しさん:2009/08/11(火) 21:36:04
知ったかした挙句叩かれて>>546の有様とは
「僕のパパはお偉い人だよ?だから僕はスゴイんだよ?w」と同レベルだな
田舎者の俺から見てもそれはないわ。

549 :デフォルトの名無しさん:2009/08/11(火) 21:43:27
>>548
無理しなくていいから(笑いい)

550 :デフォルトの名無しさん:2009/08/11(火) 21:44:18
>>541
ぱっと考えるとgisなんだけど、使う側が、クラスの実体はどうでも
よくて、InputStreamの仕様を満たしてることだけが重要な場合は、
InputStream is = ... で受けちゃうかも。
List list = new ArrayList(); な感じで。

551 :デフォルトの名無しさん:2009/08/11(火) 21:44:59
なんかさ、新幹線の定期を買ってさ、いつも往復3時間かけて通ってるなんて・・・なんか俺が出来そこないみたいだよな・・・

552 :541:2009/08/11(火) 21:46:00
>>550
やっぱり、そうだよな〜
わかった、ありがとう

553 :デフォルトの名無しさん:2009/08/11(火) 21:46:27
>>548
おまえは「田舎もん」ケッテー!

554 :デフォルトの名無しさん:2009/08/11(火) 21:47:09
>>543
ありがとう。 @でいきます。

>>542
ありがとう。 2次元配列になるんだね。
じゃあ String[][] str[][]; だと4次元だね。

555 :デフォルトの名無しさん:2009/08/11(火) 21:52:55
>>546,549,553
負け犬の遠吠えにしても内容無さ杉
相当頭弱いな。夏厨失せろ

556 :デフォルトの名無しさん:2009/08/11(火) 22:12:49
>>540
長文キモオタ死ね

557 :デフォルトの名無しさん:2009/08/11(火) 22:22:19
>>515
http://www.hyuki.com/dp/
これは高橋まなさんの本が終わった直後のレベルで読み進められますか?

558 :515:2009/08/11(火) 22:40:19
>>557
「やさしいJava」のことか?
デザインパターンの本は”読む”もんじゃなく辞書的なもんだと思う。
こういう場合はどうするのがいいかな?って時に、こういう方法があって
javaではこう書ける、というのの集まりだな。
だから、”読む”感覚で最初から最後まで眺めるだけじゃ意味が無い。
先の、2chスレを扱うプログラムを作ろうとしているようなやつなら、
役に立つ部類だろう。

559 :デフォルトの名無しさん:2009/08/11(火) 22:49:41
>>558
>>515じゃないけど、デザインパターン読んでみるよ

>先の、2chスレを扱うプログラムを作ろうとしているようなやつなら、
昨日、オイラ以外にも2ちゃんねるのレスを扱おうとしている人が居てビックリした
なんで、windowsユーザなのにdatを取得しようと考えているかは不思議だったけど

560 :デフォルトの名無しさん:2009/08/11(火) 23:23:06
質問です。
人狼っていうBBSを利用するような
ブラウザーゲームをJava絡みで、つくるとしたらどうしたらいいんでしょうか?


561 :デフォルトの名無しさん:2009/08/11(火) 23:33:05
>>560
作らないのが一番いい

562 :デフォルトの名無しさん:2009/08/11(火) 23:39:53
つくるとしたらどうしたらいいんでしょうか?

563 :デフォルトの名無しさん:2009/08/11(火) 23:42:10
人狼のルール見てきたけど、
Javaを使ってやるような部分はないんじゃないか?

564 :デフォルトの名無しさん:2009/08/11(火) 23:52:14
>>563
Javaの勉強がてらにつくってみようとおもいまして・・・
でもcgiとかphp、jspのほうがよさそうな気もします・・

565 :デフォルトの名無しさん:2009/08/12(水) 00:04:18
>>564
勉強というレベルなら、httpを使わず垂れ流し的な多人数チャットに
すりゃいいんじゃないか?

566 :デフォルトの名無しさん:2009/08/12(水) 00:10:00
携帯でもできるようにMIDPでもやってみたいんだけど、おかしいのかな?
PC側cgiのままになるのかな・・・

567 :デフォルトの名無しさん:2009/08/12(水) 00:15:59
>>566
やりたいやりたいだけ言ってたって何にも始まらない
占い師にでも聞いて来いよ

568 :デフォルトの名無しさん:2009/08/12(水) 00:49:44
>>566
なんにせよ、サーバー側のモジュールは必要だろ。
サーブレットで作成して、
そのクライアントをなんにするか。
とりあえず、HTMLで作ってそのうち携帯のアプリやらでも対応させたほうがよいかと。


569 :デフォルトの名無しさん:2009/08/12(水) 00:49:54
eclipseの質問はここでもよいでしょうか?

570 :デフォルトの名無しさん:2009/08/12(水) 00:52:18
駄目

571 :デフォルトの名無しさん:2009/08/12(水) 00:53:56
>>569
Eclipse統合M28【Java/C++/Ruby/Python/Perl】
http://pc12.2ch.net/test/read.cgi/tech/1247051216/

572 :デフォルトの名無しさん:2009/08/12(水) 00:54:50
まぁでもとりあえずここで質問します

573 :デフォルトの名無しさん:2009/08/12(水) 00:54:53
>>571
さんきゅー

574 :デフォルトの名無しさん:2009/08/12(水) 02:35:16
どういたしまして

575 :デフォルトの名無しさん:2009/08/12(水) 06:52:35
へ〜
田舎者はわざわざ新幹線つかって来るのか〜
ゴキブリみたいな執念だなw

576 :デフォルトの名無しさん:2009/08/12(水) 06:56:12
どこの誤爆だ
時期的にコミケスレか?

577 :デフォルトの名無しさん:2009/08/12(水) 07:02:48
>>576
くやしいのぉぉwwぉw

578 :デフォルトの名無しさん:2009/08/12(水) 07:17:26
うん悔しい

579 :デフォルトの名無しさん:2009/08/12(水) 07:39:29
>>578
で、コキブリさんはどこに住んでるんですか?

580 :デフォルトの名無しさん:2009/08/12(水) 07:41:35
フロリダ州

581 :デフォルトの名無しさん:2009/08/12(水) 07:42:26
豊洲3丁目-5

582 :デフォルトの名無しさん:2009/08/12(水) 07:50:15
アフガニスタン

583 :デフォルトの名無しさん:2009/08/12(水) 07:53:51
習志野市

584 :デフォルトの名無しさん:2009/08/12(水) 07:57:09
悔しい?

585 :デフォルトの名無しさん:2009/08/12(水) 09:17:28
>>580
フロリダって黒人ばっかりですよね
やっぱり真っ黒い巨大ゴキブリみたいな感覚なんですか?

586 :デフォルトの名無しさん:2009/08/12(水) 09:33:50
そんな感じ


587 :デフォルトの名無しさん:2009/08/12(水) 11:34:32
http://nextindex.jp/java/
浅煎り珈琲Java アプリケーション入門は復活しているが
ウイルスが埋め込まれている。注意されたし。
ウイルス名TROJ_GENERIC.DIT

588 :デフォルトの名無しさん:2009/08/12(水) 11:41:12
GENERICはかなり胡散臭い
本当にウィルスかよ

589 :デフォルトの名無しさん:2009/08/12(水) 12:37:42
>>587
一番上のhtml見てみたけど怪しそうなところは無かった気がする。

590 :デフォルトの名無しさん:2009/08/12(水) 12:49:20
int[]などのプリミティブな配列からVectorなどの可変長配列を生成するときは
1要素ずつObjectにしてadd()するしかないのでしょうか?
一気に変換したいのですが・・・

591 :デフォルトの名無しさん:2009/08/12(水) 12:56:03
>>590
簡単に言えばチマチマやってください。
for (int i : intArray) { list.add(i)

592 :デフォルトの名無しさん:2009/08/12(水) 13:04:06
ありがとうございます

593 :デフォルトの名無しさん:2009/08/12(水) 14:12:18
Vector(笑)

594 :デフォルトの名無しさん:2009/08/12(水) 14:23:42
>>593
iアプリを作っとるのかもしれん。

595 :デフォルトの名無しさん:2009/08/12(水) 15:12:08
>>593-594
>>590じゃないですが、何がおかしいか気になるので、教えてください。

596 :デフォルトの名無しさん:2009/08/12(水) 15:13:45
iアプリって難しい?

597 :デフォルトの名無しさん:2009/08/12(水) 15:16:48
>>595
Vectorは実装されたクラスだし,1.3くらいまではCollectionを継承してなかったような気がする
つまり古い実装で最近は見なくなってきた

といっても使えないことはないんだけどね!ね!

598 :デフォルトの名無しさん:2009/08/12(水) 15:18:19
そういえばSimpleDateFormatさんはいつになったらマトモになるの?
マルチスレッドで同時に使うとアウトなんだけどー

599 :デフォルトの名無しさん:2009/08/12(水) 15:21:35
>>595
java1.2以降なら
Vector→List、ArrayList
Hashtable→Map、HashMap
あたりに置き換えるべき。

>>596
Javaの基本ができてれば難しくないよ。
自分で作ったものが携帯で動くのはおもしろいし。

600 :デフォルトの名無しさん:2009/08/12(水) 15:32:17
>>598
スレッドごとに作りゃいいんじゃ?
マルチスレッドで同時に使うとアウトなクラスなんて山ほどあると思う

601 :デフォルトの名無しさん:2009/08/12(水) 15:41:19
さすがに来年は2010年だってのにVectorはないわな

602 :デフォルトの名無しさん:2009/08/12(水) 15:45:28
>>599
一律置き換えなんてことは・・・

603 :デフォルトの名無しさん:2009/08/12(水) 15:45:43
>>601
・・・

604 :デフォルトの名無しさん:2009/08/12(水) 15:46:15
>>600
スレッドごとに作っても無駄ですぅ
synchronizeして単一時間にアクセスするのは1スレッドにしないとアウト

605 :デフォルトの名無しさん:2009/08/12(水) 15:50:13
>>600
俗に言うスレッドセーフでないオブジェクトはインスタンスを複数使うか
>>604の様にsynchronizedで囲めばいいけど

SimpleDateFormatはインスタンス内部でスタティックフィールドが共有されているのでsynchronizedで囲んでも無駄
実装を見て判断するしかない

606 :デフォルトの名無しさん:2009/08/12(水) 15:51:53
やべぇwww
SimpleDateFormatにそんな罠があるのかよwww
リリースしちまったよwwwww

607 :デフォルトの名無しさん:2009/08/12(水) 15:56:57
これから>>606は時々現れる原因不明のシステムエラーに対処するようです
がんばってね!

俺のときはSimpleDateFormat#format()をWrapした,新たなクラスに置き換えた

608 :デフォルトの名無しさん:2009/08/12(水) 16:06:47
原因不明の原因がここのおかげでわかってるんだから
「調査」という名目で仕事がサボれるじゃないかうらやましい

609 :デフォルトの名無しさん:2009/08/12(水) 16:19:55
ヽ(`Д´)ノ

610 :デフォルトの名無しさん:2009/08/12(水) 16:27:52
基本情報のJavaの午後問題への対策として、良い教本は何かありますか?
結城本のプログラミングレッスン(下)を考えていますが、どうでしょうか。

611 :デフォルトの名無しさん:2009/08/12(水) 16:52:05
>>567-568
ありがと

612 :デフォルトの名無しさん:2009/08/12(水) 17:03:54
本の著者が紛れ込んでいるようだなあ

613 :590:2009/08/12(水) 17:34:11
>>594
ご名答

614 :デフォルトの名無しさん:2009/08/12(水) 18:12:52
>>601
普通にVector使ってる俺って一体....

615 :デフォルトの名無しさん:2009/08/12(水) 18:15:39
>>614
使えるところではArrayListの方が良いのでは?
どちらの選択も、無分別と言うのはダメだろ。

616 :デフォルトの名無しさん:2009/08/12(水) 18:21:21
>>615
にしてもVectorは使わない。
同期化したい場合は
Collectionsの
synchronizedListやらsynchronizedMap
を使うべき。
Collectionフレームワークが使えるのに
Vectorを使う理由はひとつもない。


617 :デフォルトの名無しさん:2009/08/12(水) 18:21:46
StrigBufferについてはあまり文句いわないのに、なんでVectorだけこんな酷い仕打ちを受けるわけ?w
インスタンス変数で持つときはArrayListなんかよりも安全(同期)のために良く使うけどね。
PGスタイルの違いか。

618 :デフォルトの名無しさん:2009/08/12(水) 18:26:47
いまどきStringBuffer使ってる奴は信用しない

619 :デフォルトの名無しさん:2009/08/12(水) 18:30:10
>>616,618
というか、Vectorもそのフレームワークの一員なんだが・・・
たぶん君は3流IT記事の戯言に洗脳されてんだろうけど、君ってとっても頭弱いんだね

620 :デフォルトの名無しさん:2009/08/12(水) 18:37:28
>>597>>599
ありがとうございます。

621 :デフォルトの名無しさん:2009/08/12(水) 18:51:23
StringBufferも使わんだろ
とはいえ、Java5で追加された部分だからJava1.2での追加されている部分に対応できていないよりはマシだな

622 :デフォルトの名無しさん:2009/08/12(水) 18:53:21
Vector使ってればスレッドセーフだ、とか思って使ってるならやめた方がいいんじゃね?

623 :デフォルトの名無しさん:2009/08/12(水) 18:59:50
>>622
スレッドセーフってのが一体どういうのか分かってないくせにお前は死ねw

624 :デフォルトの名無しさん:2009/08/12(水) 19:04:43
>>621
だから、synchornizedコストがうんたらとか言う理由でVector止めろというならVectorよりStringBufferの方を止めさせたほうがいいだろう。
Vectorももともとフレームワークの一員だしEnumerationとは違って否定される理由は無いな。
そんなに目くじら立てる辺りが、君って人の意見に左右されやすくて頭弱いって感じだよね。
コレクションは頻繁に使うんだからもっと骨の髄までしゃぶりつくように勉強したほうがいいんじゃないの?w

625 :デフォルトの名無しさん:2009/08/12(水) 19:20:41
Vector(笑)

626 :デフォルトの名無しさん:2009/08/12(水) 19:35:45
>Vectorももともとフレームワークの一員
あとから一員にしてもらったのは元々とは言わない

627 :デフォルトの名無しさん:2009/08/12(水) 19:39:08
コレクションフレームワークを作ったときに編入されたんじゃなかったっけ

628 :614デフォルトの名無しさん:2009/08/12(水) 19:39:14
いろいろ細かい事が議論されとるが、
おれとしては、add(),get(),iterator()が必要な場合は、
new Vector<hoge>()としてしまうわけだ。つーか勝手に手が動いてし
まうんだな。昔から世話になっとるし、いまさら裏切るわけにもいかんからの
う。
こうなったら死ぬまでVectorを使い続けてやるぞ。

629 :デフォルトの名無しさん:2009/08/12(水) 19:45:30
Vectorはベクトル?、ベクター?

630 :デフォルトの名無しさん:2009/08/12(水) 19:46:21
べくたーに一票!

631 :デフォルトの名無しさん:2009/08/12(水) 19:59:08
>>628
残念ながらVectorだけではスレッドセーフにはならないのです。

同期が必要な一連の操作を synchronized(list) のブロックに入れてあげてください。

632 :>>628 デフォルトの名無しさん:2009/08/12(水) 20:07:35
>>631
だれもVectorだけでスレッドセーフとはいっとらんぞ。
ただわしは、Vectorが好きといっただけだ。
JavaAPIにもVectorのIteratorはフェイルファスト書いてある。


633 :デフォルトの名無しさん:2009/08/12(水) 20:59:57
正規表現というのは、java用の正規表現や他言語の正規表現とかが
あるものなのでしょうか。それとも共通のものなのでしょうか。

634 :デフォルトの名無しさん:2009/08/12(水) 21:02:41
>>633
grepとかsedとかperlとかいろいろ派生があります
全量子がなかったり不思議なのもあります

むしろVectorだのArrayListだの言っている前に受ける型をList<T>にしろよばかぁ!

635 :デフォルトの名無しさん:2009/08/12(水) 21:07:26
デザインパターンの解説を読んでみたけど、ふーんって感じだった

636 :デフォルトの名無しさん:2009/08/12(水) 21:13:24
なあ、もまえら、暇なやつ教えてくれ。

先輩がさActionServletは触っちゃだめだって言うくせにAjaxでどうにかしろとかいうんだよ。

どうしろっていうんだ?

637 :デフォルトの名無しさん:2009/08/12(水) 21:15:08
まあ人によるだろうね
古くからやってる人はArrayListよりVectorのほうが使い勝手が良いと思ってる人も多いかも
簡単に変換できるしね

638 :デフォルトの名無しさん:2009/08/12(水) 21:23:13
>>635
「ふーん。こんなん当たり前じゃん」
なら、そーゆーものだ。
みんなが思ってたことを共通認識としたことに価値がある。

「ふーん。こんなんいつ使うの?」
なら、実践不足。
もっとたくさんコード組むとありがたみがわかるよ。

639 :デフォルトの名無しさん:2009/08/12(水) 21:38:46
>>605
APIのドキュメントにはスレッド毎に作ればいいって書いてあるし、
問題になる静的フィールドもあるように見えないんだけど、
具体的にはどの静的フィールドが問題なの?

640 :デフォルトの名無しさん:2009/08/12(水) 21:57:53
>>639
ぱっと見、NumberFormat のキャッシュがあるから、そこかなぁ。
でも、キャッシュから取り出した値を clone でコピーしてるし、さてはて。

641 :デフォルトの名無しさん:2009/08/12(水) 23:35:35
>こうなったら死ぬまでVectorを使い続けてやるぞ。
こういう奴がチームにいると最悪だよな

642 :デフォルトの名無しさん:2009/08/12(水) 23:39:09
内部コーディングルールでVectorの使用禁止+使用箇所の修正させてやった
ざまぁみろ

643 :デフォルトの名無しさん:2009/08/12(水) 23:52:08
ぜひ>>605の説明が聞きたい

644 :デフォルトの名無しさん:2009/08/12(水) 23:53:40
>>642
お前は禁止される側だろ
地位的にwww

645 :デフォルトの名無しさん:2009/08/12(水) 23:54:43
んだと
俺は偉いんだぞ

646 :デフォルトの名無しさん:2009/08/13(木) 00:00:03
>>643
605じゃないけど。

SimpleDateFormatの内部でstaticなフィールドを持ってる。

ClassA {
private SimpleDateFormat sdfA = new SimpleDateFormat();

ClassB {
private SimpleDateFormat sdfB = new SimpleDateFormat();

ってあるとして、
sdfA、sdfBにアクセスするときに、
それぞれsynchronizedに囲ってもだめってこと。

ClassAのsdfAとClassBのsdfBの内部で同じものが使われてるから。

対策としてはSimpleDateFormat使用禁止にして、
それをラップしたクラスを共通で作って、
必ずそれ使えとか。



647 :デフォルトの名無しさん:2009/08/13(木) 00:01:30
しかし出回ってる製品は>>606が多数

648 :デフォルトの名無しさん:2009/08/13(木) 00:07:42
>>646
static フィールドってどれよ?

649 :デフォルトの名無しさん:2009/08/13(木) 00:34:51
CSVファイルからマスタデータを読み込んで、staticなListに格納したら、
コードレビューでNGが出ました。
理由を聞いても、staticでマスタデータなんかもたせるなと、言われただけです。
なぜ、だめなのでしょうか。

650 :デフォルトの名無しさん:2009/08/13(木) 00:37:09
>>649
言った当人に聞けよ。

651 :デフォルトの名無しさん:2009/08/13(木) 00:42:40
静的メソッドってどういうときに使うのですか?

652 :デフォルトの名無しさん:2009/08/13(木) 00:43:43
クラスにメソッドが必要なとき

653 :デフォルトの名無しさん:2009/08/13(木) 00:57:48
>>648
SimpleDateFormatのソース見た?

private static Hashtable<String,String[]> cachedLocaleData
private static Hashtable<Locale,NumberFormat> cachedNumberFormatData
この辺。

654 :640:2009/08/13(木) 01:20:53
>>653 横槍失礼。
キャッシュミス時の多重生成の可能性は有るものの
生成されるデータ自体は仮に同一であれば、問題なく、
キャッシュされているインスタンスの使用に関しても、
可変クラスの NumberFormat が複製されているため問題ないと思えるのです。

private void initialize 内にて、以下のように。

numberFormat = cachedNumberFormatData.get(loc);
/* (略)キャッシュミス時の新規作成と追加。 */
numberFormat = (NumberFormat) numberFormat.clone();

ここの clone があればスレッド互換[by IBM dW]で問題ないと思ったのですが、どうでしょ。

655 :デフォルトの名無しさん:2009/08/13(木) 02:50:08
>>642
>>648
>>654
どうやら勘違いのようです。
申し訳ない。
インスタンスが違うなら大丈夫なようで。

まとめると、
クラスのフィールドとしてSimpleDateFormatのインスタンスをもって、
そこに複数のスレッドから同時にアクセスがあるようだとアウト。

>>646
の例だと、
sdfAとsdfBは互いに無関係。
ClassAにて複数のスレッドからsdfAにアクセスあると怪しい。

変な情報流して申し訳ない。

656 :デフォルトの名無しさん:2009/08/13(木) 02:53:28
privateだが・・・

大丈夫かよここの回答者


657 :デフォルトの名無しさん:2009/08/13(木) 02:57:04
全然駄目駄目ですがな。

658 :デフォルトの名無しさん:2009/08/13(木) 03:27:19
>>656
はやとちりだと思うが。
別に >>655 は"直接"sdfAにアクセスとは言ってない。
class A {
private SimpleDateFormat sdfA = new SimpleDateFormat();
public String format(Date date) {
return sdfA.format(date);
}
 :
}
普通に「スレッドセーフでない」なら十分危なく見えるな。

659 :デフォルトの名無しさん:2009/08/13(木) 04:12:16
SimpleDateFormatの話だけど
この検証サイトでやってることか
http://www.geocities.co.jp/Playtown/1245/java/unsafe_simple_date_format.html

660 :デフォルトの名無しさん:2009/08/13(木) 04:36:52
>>659
これ古いかもしれん。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=38799&forum=12

661 :デフォルトの名無しさん:2009/08/13(木) 05:18:20
ベクターと聞いて

662 :デフォルトの名無しさん:2009/08/13(木) 06:50:55
MessageFormatクラスなどで、1.5からサポートされた
printf("%.4s", str)
のように表示文字を4文字にしたいとかはどうやるんでしょうか。

663 :デフォルトの名無しさん:2009/08/13(木) 08:05:26
イベントリスナーの実装についてたずねたいのですが。
イベントリスナーの実装については、次の方法があると思いますが、
使い分けはどうしたらよいでしょうか。
@ クラス自身にイベントリスナーインターフェースを実装する。
A 外部クラスを作成する。
B 内部クラスを作成する。
C ○○listener listener=new ○○listener(){
@override
public hogePerfomed(hogeEvent e){}
};


664 :デフォルトの名無しさん:2009/08/13(木) 08:28:03
>>663
状況次第と後は気分。
ほとんどの場合は4で済ます
幾つかのリスナーをまとめて1つの機能を作ったり(例:MouseListener/MouseMotionListener)、なんらかの状態を持つ(例:描画処理)場合はクラスを独立。
内部か外部かはクラスが小さいかなら内部、でかいなら外部。
1はまずやらない

665 :デフォルトの名無しさん:2009/08/13(木) 09:44:36
ここ3日ほど考えているけど、1行書き込みのスレッド版がどうしてもわからないわ
1行読み込みは助けてもらったから、なんとかなったけど

666 :デフォルトの名無しさん:2009/08/13(木) 09:47:59
>>662
スペース詰めなら
printf("%4s", str);

ゼロ詰めなら
一回Integerくらいに変換して
printf("%04d", new Integer(str));

667 :デフォルトの名無しさん:2009/08/13(木) 09:55:42
>>662
System.out.print(str.substring(0, 4));

え? 違う?

668 :デフォルトの名無しさん:2009/08/13(木) 10:27:44
おもろねー

669 :デフォルトの名無しさん:2009/08/13(木) 10:40:40
ずーと気になっていたんだけど、スレッドのnotifyって何て読む?

670 :デフォルトの名無しさん:2009/08/13(木) 10:53:34
他に読みようがあるのか

671 :デフォルトの名無しさん:2009/08/13(木) 11:48:08
>>666,667
Javadoc読んでみたんですけど出来ないみたいです。
guiのテキストフィールドからユーザが指定したフォーマットを受け取って処理させたいんですが
dateなどはフォーマット{data, long}があるんですがテクスト{text, substring, 2, 5}とかは無いみたいなんで無理なんでしょうか。
自作する気力は無いんです・・・

672 :デフォルトの名無しさん:2009/08/13(木) 11:51:15
だから型変換すればいいじゃん

673 :デフォルトの名無しさん:2009/08/13(木) 12:30:29
>>669
オブジェクトじゃないの?

674 :デフォルトの名無しさん:2009/08/13(木) 13:11:38
質問です。
お絵かきソフトを自分で動かしてみたく、
ttp://d.hatena.ne.jp/pyridoxin/20081116/1226840961
のサイトにあるSwingPainter.jarをダウンロードし、起動してみたのですが、
main型がありませんと表示されてしまいます。
どうすれば動くようになるのでしょうか。

初歩的な質問でしたらすみません。

675 :デフォルトの名無しさん:2009/08/13(木) 13:22:27
>>674
俺のところでは動いた

676 :デフォルトの名無しさん:2009/08/13(木) 13:27:25
俺のところでも動いた
色がなんかおかしいけど
しかしIEはなぜ拡張子を勝手に変えるんだ

677 :デフォルトの名無しさん:2009/08/13(木) 13:35:48
エスパーしよう。
java コマンドに -jar オプションは付けたか?

678 :デフォルトの名無しさん:2009/08/13(木) 13:40:11
-jarオプションですか
少し調べてみます。ありがとうございます。

679 :デフォルトの名無しさん:2009/08/13(木) 13:57:25
てめぇ少し調べただけで-jarの奥深さや醍醐味がわかるつもりでいんのか
ふざけんなよごるぁ

680 :デフォルトの名無しさん:2009/08/13(木) 14:05:32
そういうつもりで書いたんじゃないんですけど…
不快な気分にさせてしまったなら申し訳ないです

681 :デフォルトの名無しさん:2009/08/13(木) 14:16:44
Javaアプリケーションで、try〜catch〜finallyを使用するときに、
tryの内側で、String str = "obon" を書いて、finallyの内側で
strを使おうとするとstrが定義されていないということでエラーに
なります。try〜catch〜finallyはそれぞれメソッドと同じように、
外側でString str などを定義しておかないといけないのでしょうか。

682 :デフォルトの名無しさん:2009/08/13(木) 14:21:10
>>680
夏厨にいちいち反応しなくていいよ

>>680
残念ながら外側で定義しないとだめ

683 :682:2009/08/13(木) 14:23:04
ごめん二つ目の安価は >>681 の間違い

684 :デフォルトの名無しさん:2009/08/13(木) 14:28:09
>>681
どんな場合でも、 { 〜 } があるときは、その外からは中の変数は見えない

685 :デフォルトの名無しさん:2009/08/13(木) 14:37:08
この糞暑さのせいで頭ん中が腐っちまうよな

686 :デフォルトの名無しさん:2009/08/13(木) 14:51:28
>>682-684 基本的なことを忘れていました。ありがとうございました。

687 :デフォルトの名無しさん:2009/08/13(木) 15:07:51
たとえばSTRUTSフレームワークを使って開発したとして、
出来上がったあともフレームワーク上での利用になると思うんですけど、
もしも、STRUTSから他のフレームワークに変えるとか、もうフレームワーク
使わないようになったとか、そういうときに、今のフレームワークに
依存しないように作り変えるのは大変なような気がするんですけど、
どうなっているんでしょうか。

688 :デフォルトの名無しさん:2009/08/13(木) 15:11:19
大変でしょうね
がんばるしかないと思います

689 :デフォルトの名無しさん:2009/08/13(木) 16:08:48
他のフレームワークに変える必要はないし

690 :デフォルトの名無しさん:2009/08/13(木) 16:28:32
根本的に勘違いしているな

691 :デフォルトの名無しさん:2009/08/13(木) 16:43:23
Javaを独習し始めたものですが
教本の初っ端からつまづいてしまいました。
コンパイルですが

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

となって、コンパイルできません。
まことに初歩ですが、ご教示お願いします。

692 :デフォルトの名無しさん:2009/08/13(木) 16:47:22
パスが通って無いんだろ
ググって自分で設定してみてくれ
それができないならプログラム辞める方がオススメ

693 :デフォルトの名無しさん:2009/08/13(木) 16:48:00
>>691
とりあえず >>1 は読んだ?

694 :デフォルトの名無しさん:2009/08/13(木) 16:50:39
>>692-693
こういうカスみたいな質問だけしゃしゃり出てくる低能だな

695 :デフォルトの名無しさん:2009/08/13(木) 16:53:19
俺を馬鹿にするのは構わないが質問者まで馬鹿にしないように

696 :デフォルトの名無しさん:2009/08/13(木) 16:59:33
String→Readerに変換する方法はないですか?

697 :デフォルトの名無しさん:2009/08/13(木) 17:00:41
StringReaderというクラスがあるので、それを使う

698 :デフォルトの名無しさん:2009/08/13(木) 17:05:14
>>697
わかりました
ありがとうございます

699 :デフォルトの名無しさん:2009/08/13(木) 17:14:30
いえいえ^^

700 :デフォルトの名無しさん:2009/08/13(木) 17:26:42
>>699
こういうカスみたいな質問だけしゃしゃり出てくる死ね(笑)

701 :デフォルトの名無しさん:2009/08/13(木) 17:28:49
>>699
馬鹿が
俺は「いえいえ^^」だけを言いに来ているだけで回答すらしていない

702 :デフォルトの名無しさん:2009/08/13(木) 17:29:42
>>700だった ((^┰^))>

703 :デフォルトの名無しさん:2009/08/13(木) 17:29:48
>>695 = >>697
なのは見れば分かるだろう
低級なことにだけ出てくるド素人

704 :デフォルトの名無しさん:2009/08/13(木) 17:31:44


705 :デフォルトの名無しさん:2009/08/13(木) 17:32:56
>>704
無駄レスすんな

706 :デフォルトの名無しさん:2009/08/13(木) 17:34:53
JavaってFileとか明示的にcloseしないと何か問題起こることありますか?

707 :デフォルトの名無しさん:2009/08/13(木) 17:36:17
特に無いから安心して続けな

708 :デフォルトの名無しさん:2009/08/13(木) 17:36:35
ここで質問きたかwwww

709 :デフォルトの名無しさん:2009/08/13(木) 17:46:56
糞熱いともうグルグルだよな

710 :デフォルトの名無しさん:2009/08/13(木) 17:51:44
>>707
釣りの質問に答えて何やっちゃってんの

711 :デフォルトの名無しさん:2009/08/13(木) 17:55:18
Javaやってる連中ってのはこんなのばっかだ。

712 :デフォルトの名無しさん:2009/08/13(木) 18:21:55
本当に下らない質問をさせていただきます
System.out.println(this);
System.out.println();でthisを入れることはないと思いますが、
hogeのインスタンスをprintlnに渡しているとうことでいいのですか?

Hoge hoge = new Hoge();
hoge.test();

public class Hoge {
public test() {
system.out.println(this);
}

713 :デフォルトの名無しさん:2009/08/13(木) 18:23:12
>>712
JavaDoc読めよ
全然違う

714 :デフォルトの名無しさん:2009/08/13(木) 18:30:27
713はJavaDocの意味を知らないに1,000,000ペソ

715 :デフォルトの名無しさん:2009/08/13(木) 18:38:34
>>703
低学歴乙

716 :デフォルトの名無しさん:2009/08/13(木) 18:43:58
>>712
そう。あってる。

717 :デフォルトの名無しさん:2009/08/13(木) 19:03:14
>>715
学歴なし乙
中学出たって?あれは学歴に含まれんよ

718 :デフォルトの名無しさん:2009/08/13(木) 19:17:23
学歴コンプレックス持ってる者同士の争いは醜いったらありゃしない。

719 :デフォルトの名無しさん:2009/08/13(木) 19:20:49
ぶっちゃけ俺よりスキルある奴はいないだろうなwwwwww

720 :デフォルトの名無しさん:2009/08/13(木) 19:25:50
>>718
お前の顔はそれ以上に醜いがな

721 :デフォルトの名無しさん:2009/08/13(木) 19:31:56
いえいえあなたにはかないません

722 :デフォルトの名無しさん:2009/08/13(木) 19:33:50
他の板で質問させて頂きましたが、御教示ないようなので、いったん打ち切らせて頂き、あらためてこちらで質問させて頂きます。

javaにはperlのcpanやphpのピアーのようなモジュールを集めてあるサイトはないのでしょうか?

スレ違いですがjavaに詳しい方はC言語にも詳しい方も多いと思いますので、CやC++のモジュールを集めたサイトもお教え頂ければ幸いです。


723 :デフォルトの名無しさん:2009/08/13(木) 19:42:37
Javaに詳しい方はエロゲにも詳しいと思いますので
この夏お勧めのエロゲを教えてください

724 :デフォルトの名無しさん:2009/08/13(木) 19:43:28
糞あちーな
何とかならんのかこの暑さ

725 :デフォルトの名無しさん:2009/08/13(木) 19:43:46
>>722
> javaにはperlのcpanやphpのピアーのようなモジュールを集めてあるサイトはないのでしょうか?
俺は今まで見たこと無い

726 :デフォルトの名無しさん:2009/08/13(木) 19:45:12
>>725追加

ってかcpanってモジュール集めてるだけなの?
あれってモジュール"管理"も含めてるんじゃなかったっけ

727 :デフォルトの名無しさん:2009/08/13(木) 20:07:48
スレ違い。

728 :デフォルトの名無しさん:2009/08/13(木) 20:13:17
>>725
ありがとうございます。
やっぱり見かけませんよね。

729 :デフォルトの名無しさん:2009/08/13(木) 20:45:19
>>722
jaraktaは?


730 :デフォルトの名無しさん:2009/08/13(木) 20:46:00
>>722
jakartaは?

731 :デフォルトの名無しさん:2009/08/13(木) 20:46:29
>>722
jakartaは?

732 :デフォルトの名無しさん:2009/08/13(木) 20:52:13
>>722
jakartaは?

733 :デフォルトの名無しさん:2009/08/13(木) 21:58:10
>>707
嘘教えんな。
>>706
OSのリソースを食い潰して、ある限界を超えるとファイルが開けなくなる。
自分で開いたファイルは自分で閉じるのが鉄則。
>>712
yes.
>>722
ライブラリはmavenリポジトリに集積されてるものが多い。
http://maven.apache.org/
http://mvnrepository.com/
もっとも、maven自体は、使い方が、CPAN等に比べて
*も*の*す*ご*く*
分かり難い。(つか現在進行形で苦しみ中)

734 :712:2009/08/13(木) 22:30:35
>>716,>>733
わかりました
ありがとうございます

735 :デフォルトの名無しさん:2009/08/13(木) 23:01:00
Eclipse重すぎて使えないのだが、軽くて扱いやすいツールってないかな

736 :デフォルトの名無しさん:2009/08/13(木) 23:07:08
java.netにホストされてる連中もたまには思い出してあげてください

737 :デフォルトの名無しさん:2009/08/14(金) 00:10:59
同じクラス内で、インスタンスメソッドからインスタンスメソッドを呼ぶとthisが自動的に補われると習いました。
ということは、クラスメソッドを呼ぶと、自動的にクラス名が補われるのですか?

具体的には、
Class Hoge{
static void meth01(){}
void meth02(){
meth01();
}
}
この場合、meth01();の呼び出しは、コンパイラが自動的に、Hoge.meth01();としてくれているのですか?

738 :デフォルトの名無しさん:2009/08/14(金) 00:57:03
>>737
Yes.

>>735
好きなエディタとプロンプトでどうぞ。
高々10年前に戻るだけですから慣れれば快適ですよ。

739 :デフォルトの名無しさん:2009/08/14(金) 02:04:14
>>737
そんなyouに問題です
以下のクラスのmainメソッドを呼び出した結果はどうなる

class X {
  public static final void method_1() {}
  public final void method_2() {}
  public static void main(String[] args) {
    X x = new X();
    x.method1();
  }
}
1.コンパイルできない
2.実行できるが例外が発生する
3.Xクラスのスタティックメソッド method_1 が正常に実行される

740 :737:2009/08/14(金) 02:37:38
>>738
ありがとうございます。すっきりしました。
でも個人的には、プログラマが明示的にthisやHogeを書かなければいけない仕様の方がスマートだと思うんですがどうなんでしょう。
コンパイラはチェックだけしてくれた方が、コードも分かりやすいし間違いも減りそう。

>>739
インスタンスに対してstaticメソッドを呼んでるので、推奨されないけど実行可能ってことで3が答えでしょうか。finalが気になりますがw

741 :デフォルトの名無しさん:2009/08/14(金) 02:47:19
理解できないくせに文句だけ言うやつは氏ね

742 :デフォルトの名無しさん:2009/08/14(金) 02:54:57
>>741
まさにお前のこと

743 :デフォルトの名無しさん:2009/08/14(金) 02:57:24
>>740
言語によってはthisを強制してる言語もある。
まぁJavaは良くも悪くも無駄を省いた言語だからね。

744 :デフォルトの名無しさん:2009/08/14(金) 03:12:13
>>743
JavaはC/C++に合わせただけだよ、普及のために
初期構想時のJavaはもっと別物だった

745 :デフォルトの名無しさん:2009/08/14(金) 03:51:38
javascriptやってると全部this付ける癖が

746 :デフォルトの名無しさん:2009/08/14(金) 05:51:18
フォーカスが自分以外にある状態でキーが押されているかどうかを見ることは不可能でしょうか?
NumLockなどの状態を見るToolkit.getLockingKeyStateのように
Zキーが押されている状態かどうかを見たいのです。

747 :デフォルトの名無しさん:2009/08/14(金) 06:13:59
>>746
CかなんかでDLL作って、
JNIで呼び出すしかないんじゃないか?

748 :デフォルトの名無しさん:2009/08/14(金) 06:45:20
>>746
出来るかどうかわからんけど、
一番上のFrameにでもListenerを追加しておいて、それから教えてもらえば?

749 :デフォルトの名無しさん:2009/08/14(金) 07:44:24
>>746
repaint()時にrequestFocusするか、全コンポーネントの
キーイベント受け取るしかないんじゃないか。

750 :デフォルトの名無しさん:2009/08/14(金) 11:27:49
>>747
Cはほとんど触ったことがないので分かりません
これを気にCにも手を出すべきでしょうか
>>748
一番上のFrameとはどこを指すのでしょうか。私の言葉足らずでした。
連打支援ソフトをイメージしてもらえると分かるかと。Robotで一定時間ごとにクリック要求を出す。
すると自分以外がフォーカスを持ち続けるので終了用のキーを入力しても
連打ソフト側で入力を検知できなくて困っている。ということでした。
>>749
requestFocusを使ってみましたがどうもうまくいかないですね。
上記のようにフォーカスを常に他へ投げているので連打ソフト側で入力検知できる時間がわずかなのか、
そもそもフォーカスの奪取に失敗しているのか。
全コンポーネントのキーイベントを受け取るにしてもJava以外のソフトへ投げたフォーカスを会得することは可能なのでしょうか

751 :デフォルトの名無しさん:2009/08/14(金) 11:31:16
ググレカスうざい

752 :デフォルトの名無しさん:2009/08/14(金) 11:34:44
これはウザいな。
なんでだろう。

753 :デフォルトの名無しさん:2009/08/14(金) 12:03:44
丁寧に書いているように見えてなんか偉そうな雰囲気だからだと思われる

754 :デフォルトの名無しさん:2009/08/14(金) 12:17:37
つぎからつぎへとあとだしするからかな

755 :デフォルトの名無しさん:2009/08/14(金) 12:22:14
いや違う違う
丁寧に書いてるようで「面倒だから丸投げ」って感じが漂ってるからウザイ

756 :デフォルトの名無しさん:2009/08/14(金) 12:40:41
>>750

お前さ、ウザイから死んだら?
糞あちーの嫌だろ

757 :デフォルトの名無しさん:2009/08/14(金) 13:46:23
InterruptedExceptionはsleep()をすると発生しますが
この例外はスレッドをストップさせた時以外には、発生しないと考えてもよいのでしょうか?

758 :デフォルトの名無しさん:2009/08/14(金) 14:03:26
>>757
全然違う

759 :デフォルトの名無しさん:2009/08/14(金) 14:27:29
>>757
スレッドに割り込みをかけるのはどんなのがあるか調べろ

760 :デフォルトの名無しさん:2009/08/14(金) 14:34:57
>>750
つまり自分の作ったJavaアプリケーションに、
フォーカスがないときでもキーイベントを取得したい。
ってことだよな?

だったら、
>>747
の言うとおりDLL作ってグローバルフックするしかない。
自分にフォーカスがないときに、
キーイベントは取得できないから。


761 :757:2009/08/14(金) 14:38:47
>>758-759
わかりました。ありがとうございます

762 :デフォルトの名無しさん:2009/08/14(金) 15:03:07
参考書でtry、catchを学びましたが、なぜ必要なのかわかりません。
try〜catchの代わりに、if文で処理を書いてはいけないのでしょうか?

763 :デフォルトの名無しさん:2009/08/14(金) 15:05:26
>>762
低能向けに分かりやすく言えば
RuntimeExceptionでも学んでろ
まぁ通常はキャッチすることは少ないが、ifとの違いは猿でもわかるだろう

764 :デフォルトの名無しさん:2009/08/14(金) 15:10:10
猿にはわかんねーよ

765 :デフォルトの名無しさん:2009/08/14(金) 15:10:31
>>762
ファイルから1文字読み込むごとにif文で毎回エラーチェックをする方がいいというわけですね
C/C++ならそりゃ俺もそうするが、正直あれは面倒い

766 :デフォルトの名無しさん:2009/08/14(金) 15:10:56
>>763
ifとtry、catchにはそれなりの違いがあるっていうことでしょうか。
RuntimeExceptionについて勉強しながら、少しずつ理解していきたいと思います。
ご丁寧にありがとうございました!

767 :デフォルトの名無しさん:2009/08/14(金) 15:14:17
>>765
tryならどこかに一度記述すれば済むんですかねぇ。
手持ちの参考書では例外について10ページぐらいしか説明がないので
詳しく書かれた本を探してみます。
ありがとうございました。

768 :デフォルトの名無しさん:2009/08/14(金) 15:20:42
try-catchが言語エンジンにビルトインされたif-elseだと言えなくも無いところが難

769 :デフォルトの名無しさん:2009/08/14(金) 15:25:00
>>767
そんな糞参考書はすぐ捨てちまえよ

770 :デフォルトの名無しさん:2009/08/14(金) 15:26:53
10ページあれば十分でしょ
あとは読むだけでなく、実際に動かしてるのかだな

771 :デフォルトの名無しさん:2009/08/14(金) 15:30:58
threadはrun()の中身が終れば終了だよね?

772 :デフォルトの名無しさん:2009/08/14(金) 15:49:46
うん

773 :デフォルトの名無しさん:2009/08/14(金) 15:52:37
>>772
トンクス

774 :デフォルトの名無しさん:2009/08/14(金) 15:54:56
こうしてまたバグにまみれた製品が一つ世に出回るのであった

775 :デフォルトの名無しさん:2009/08/14(金) 16:00:17
>>772
トーシロ乙

776 :デフォルトの名無しさん:2009/08/14(金) 16:22:18
おまいら貴重なお盆休みに回答乙

777 :デフォルトの名無しさん:2009/08/14(金) 16:49:08
catchは割り込みだろう

778 :デフォルトの名無しさん:2009/08/14(金) 16:57:52
>>777
全く違う
初心者は黙ってた方が賢く見えるよ

779 :デフォルトの名無しさん:2009/08/14(金) 17:07:52
※ただしイケメンに限る

780 :デフォルトの名無しさん:2009/08/14(金) 17:19:50
俺は大丈夫だけどこのスレの大半を占めるブサメンはどう生きろと・・・

781 :デフォルトの名無しさん:2009/08/14(金) 17:26:55
>>780
お前は鏡持ってないのかい?

782 :デフォルトの名無しさん:2009/08/14(金) 17:27:35
頭部を除いてイケメンな俺登場

783 :デフォルトの名無しさん:2009/08/14(金) 17:33:38
と思ってるのは君だけさ

784 :デフォルトの名無しさん:2009/08/14(金) 17:35:04
>>1-783

ブサメン

785 :デフォルトの名無しさん:2009/08/14(金) 17:57:06
やっと出てきたイケメンからたずねたいことがあるが、
Javaで縦書きするには、AttributedCharacterIterator
のTransformAttributeで左に90度回転させて、TextLayout
を作った後に、TextLayoutを右に90度回転させて表示するみたいな
ダサい方法しかないの?

786 :デフォルトの名無しさん:2009/08/14(金) 17:58:14
ifで事足りるならなぜtry~catchがあるのか考えた方がいいね
よほどのバカでない限り、forでもwhileでも同じでしょとはまず考えないはず

787 :デフォルトの名無しさん:2009/08/14(金) 18:00:47
ごめん
俺は馬鹿だったよ〜

788 :デフォルトの名無しさん:2009/08/14(金) 18:01:18
>>785
もっと頭使ったら?

789 :デフォルトの名無しさん:2009/08/14(金) 18:02:09
>>788
もっとkwsk

790 :デフォルトの名無しさん:2009/08/14(金) 18:35:29
どうしようもねぇ糞スレに成り下がってるな

791 :デフォルトの名無しさん:2009/08/14(金) 19:00:45
>>788
ピンポンダッシュかよ

792 :デフォルトの名無しさん:2009/08/14(金) 19:18:51
>>790
氏ね

793 :デフォルトの名無しさん:2009/08/14(金) 19:21:23
クソっぷりな流れにワロタw

794 :デフォルトの名無しさん:2009/08/14(金) 19:24:59
>>1
これがJavaをやってる人たちの実態です

795 :デフォルトの名無しさん:2009/08/14(金) 19:44:25

暑いんだからさ、お前らむさくるしいんだよ

糞が沸騰したらどうすんだ?

796 :デフォルトの名無しさん:2009/08/14(金) 19:46:19
>>795
お前の存在が糞だろ

797 :デフォルトの名無しさん:2009/08/14(金) 19:50:51
孤独なんだね

798 :デフォルトの名無しさん:2009/08/14(金) 20:24:40
>>796
便糞乙

799 :デフォルトの名無しさん:2009/08/14(金) 20:54:37
お前ゲロ臭いぞ

800 :デフォルトの名無しさん:2009/08/14(金) 22:21:29
お前ら
酔ってるだろ

801 :デフォルトの名無しさん:2009/08/14(金) 22:33:15
私ったら罪な女ね・・・

802 :デフォルトの名無しさん:2009/08/15(土) 01:31:11
今月からJavaの勉強始めて、委譲というものを勉強してるんだが、これってインターフェイスのことか?


803 :デフォルトの名無しさん:2009/08/15(土) 01:32:23
中々いいところ突いてくるねダンナ

804 :デフォルトの名無しさん:2009/08/15(土) 01:38:02
質問する時ぐらい敬語使えよ

805 :デフォルトの名無しさん:2009/08/15(土) 01:41:34
やだよ

806 :デフォルトの名無しさん:2009/08/15(土) 01:43:26
>>802
ClassLoaderの事

807 :802 ◆wSaCDPDEl2 :2009/08/15(土) 01:45:06
>>803>>802
どうもありがとん。

808 :802 ◆wSaCDPDEl2 :2009/08/15(土) 01:45:47
>>806
まちがえた、ありがとん


809 :デフォルトの名無しさん:2009/08/15(土) 01:58:09
キモイ

810 :デフォルトの名無しさん:2009/08/15(土) 02:14:21
>>802
委譲はインタフェースのことじゃないし、
ClassLoaderも全然関係ない。

811 :デフォルトの名無しさん:2009/08/15(土) 05:27:30
>>802
処理を他のクラスに任せること。
技術的には正確には、自分自身(this)を委譲先のメソッドに渡さないと委譲とは言わないらしい。

継承は一般にカプセル化を壊すために、継承よりも委譲の方が好ましいとされる。
しかし、委譲はコードの記述量が多くなるため、
必要に応じて、継承から委譲へリファクタリングするのが望ましいと言えるだろうたぶん

812 :デフォルトの名無しさん:2009/08/15(土) 05:28:59
>ClassLoaderも全然関係ない。
委譲しまくってるだろ。

813 :デフォルトの名無しさん:2009/08/15(土) 07:48:26
コードの記述量が多くったってeclipseが自動生成してくれるから全然へっちゃら

814 :デフォルトの名無しさん:2009/08/15(土) 09:41:52
そんなこと言うおまえは怠け者
一度テキストエディタで素の状態からシコシコやってみるといい

815 :デフォルトの名無しさん:2009/08/15(土) 09:52:07
帰れ老害。

816 :デフォルトの名無しさん:2009/08/15(土) 09:52:08
>>814
なんでわざわざ面倒くさいことやる必要あるんだ?

817 :デフォルトの名無しさん:2009/08/15(土) 09:58:16
>>814
いまどきIDEを使ってないあなたを世界遺産に登録する。

818 :デフォルトの名無しさん:2009/08/15(土) 10:05:19
いまでもエクリプスなんか使ってる奴は世の中の悪害か低学歴派遣

819 :デフォルトの名無しさん:2009/08/15(土) 10:06:21
>>814に比べれば救いがある

820 :デフォルトの名無しさん:2009/08/15(土) 10:06:30
キャンプのときライター使うなとか言うのかな

821 :デフォルトの名無しさん:2009/08/15(土) 10:07:07
じゃあIDE何使ってんの

822 :デフォルトの名無しさん:2009/08/15(土) 10:07:49
C++Builder

823 :デフォルトの名無しさん:2009/08/15(土) 10:10:01
どういうジョークだ。

824 :デフォルトの名無しさん:2009/08/15(土) 10:10:10
>>820
火打ち石を使ってるらしい

825 :デフォルトの名無しさん:2009/08/15(土) 10:12:43
はいはい、vimですかemacsですか?w

826 :デフォルトの名無しさん:2009/08/15(土) 10:21:58
>>825
ググッたらどちらも昭和のテクノロジーだな。

827 :デフォルトの名無しさん:2009/08/15(土) 10:35:14
一応擁護しておけば、RubyだのPythonだの使うならばエディタでも十分

828 :デフォルトの名無しさん:2009/08/15(土) 10:44:39
お前ゲロ臭いぞ

829 :デフォルトの名無しさん:2009/08/15(土) 11:25:36
低学歴派遣乙

830 :デフォルトの名無しさん:2009/08/15(土) 11:34:29
むしょくおつ

831 :デフォルトの名無しさん:2009/08/15(土) 12:02:17
あのー
今NetBeansつかってますが、ecllipseに変えたほうがいいですか?

832 :デフォルトの名無しさん:2009/08/15(土) 12:06:40
中々渋いところついてくるねダンナ

833 :デフォルトの名無しさん:2009/08/15(土) 12:33:34
>>831
エクリプスのが未来がありそう

834 :デフォルトの名無しさん:2009/08/15(土) 12:47:23
先の展開が読めるなw

835 :デフォルトの名無しさん:2009/08/15(土) 12:49:03
もうダメだこのスレ

836 :デフォルトの名無しさん:2009/08/15(土) 12:57:58
住人が削除依頼するレスを決めて要請したらどうだろう。酷ければアク禁までいけるかも

837 :デフォルトの名無しさん:2009/08/15(土) 12:59:31
待ってくれ、それは困る、謝るから

838 :デフォルトの名無しさん:2009/08/15(土) 13:27:35
>>833
エクリプスのが何だって?

839 :デフォルトの名無しさん:2009/08/15(土) 13:37:32
自分用にviライクなeclipseプラグイン作ってるんだけど公開したら需要あるかな?

840 :デフォルトの名無しさん:2009/08/15(土) 13:38:09
>>839
無い。

841 :デフォルトの名無しさん:2009/08/15(土) 13:40:22
会話をしているようで話が成立していない
これがオブジェクト指向でいう再利用性である.
最近では、Twitterで会話の断片を自動投稿するスクリプトが流行っているが、
このスレではスクリプトではなく人が行うという、極めて原始的(Traditional)な方法で行われている.

では今後も乞うご期待

842 :デフォルトの名無しさん:2009/08/15(土) 13:50:37
ついったーbotは結構楽しいよ
作ってる方はね

843 :デフォルトの名無しさん:2009/08/15(土) 13:56:02
>>839
キモイ

844 :デフォルトの名無しさん:2009/08/15(土) 13:59:48
JavaのシステムAからあるC言語で作られたシステムBに接続する要件があり、
JavaからJNIで通信を行う中間プログラム(C言語)を経由して、システムBに接続しようと考えています。
JNIを使用することでオーバーヘッドがかかるのなら、既存のシステムBを改修し、
SOAPで通信をすることも考えています。
JNIを使用するときのオーバーヘッドってどのくらいなのでしょうか?
かなりトランザクション数は多いシステムです。


845 :デフォルトの名無しさん:2009/08/15(土) 14:05:55
>>844
大事なことが省略されているぞい
> 中間プログラム(C言語)
の様に
# システムBに接続(方法は?)する要件
# JNIを使用することでオーバーヘッド(時間/データ量?)がかかるのなら
# かなりトランザクション数(何の?通信とどの程度かかわるの)
って説明入れないでだれが答えられる

846 :デフォルトの名無しさん:2009/08/15(土) 14:11:05
>>844
JNIのオーバーヘッドを気にして、さらにオーバーヘッドが大きいSOAPにするという発想はどこからくるのか?
トランザクションもどこでどのように発生するのか不明
まともに検討できるSE探した方がいい

847 :デフォルトの名無しさん:2009/08/15(土) 14:38:36
タイプセーフなenumのタイプセーフとはどういう意味ですか?

848 :デフォルトの名無しさん:2009/08/15(土) 14:43:07
ググれ

849 :デフォルトの名無しさん:2009/08/15(土) 14:43:20
enumの中に記述された識別子が,唯一の型を持っているという感じ
詳しくはぐぐる

850 :デフォルトの名無しさん:2009/08/15(土) 14:44:29
>>847
ttp://www.javainthebox.net/laboratory/J2SE1.5/LangSpec/TypesafeEnum/TypesafeEnum.html

851 :デフォルトの名無しさん:2009/08/15(土) 15:00:14
>>692 >>693 さん、ありがとうございました jdkがインストールされていないことが原因とわかりました。jreではだめなんですね。

ところが最初の問題を解決できたと思ったら10ものエラーメッセージが
自分で対処してみますが、わからなかったらまた質問させてください。

852 :デフォルトの名無しさん:2009/08/15(土) 16:09:56
public Abstract class Element<P extends Element,C Extends Element> implements Iterable{

public P getParent(){
・・・・
}
public C getChildAt(int idx){
・・・・
}
public void add(C child){
・・・・
}
public Iterator<C> iterator(){
・・・
}
}
みたいな木構造をもつクラス(描画オブジェクト)を作成したいと思うのですが、子オブジェクトを格納するには
何を使ったらBestでしょうか。Vector,ArrayList・・などコレクションフレームワークのメンバーが多いの
でどれを使っていいか解りません。

853 :デフォルトの名無しさん:2009/08/15(土) 16:16:23
>>852
これってParent関係を除けばList<T>っぽいんだが…
とりあえずLinkedListでいいとおもうよ

854 :852 デフォルトの名しさん:2009/08/15(土) 16:23:19
補足ですが、Javaで帳票設計ソフトを開発しようとしています。
それぞれのノードは、帳票全体、ページ、レイヤー、グループ、
表、テキスト、罫線を表し、描画drawメゾッドを実装して自身
を描画します。描画順は、実装したListの順番です。

855 :デフォルトの名無しさん:2009/08/15(土) 16:26:09
全然関係ねえワロタ

856 :デフォルトの名無しさん:2009/08/15(土) 16:30:48
>>854
なん・・・だと・・・

じゃあ順序木を作ったほうがいいんでないかと思うが,
Javaに順序木の実装があったかなぁ…

857 :デフォルトの名無しさん:2009/08/15(土) 16:33:59
順序木あった java.util.TreeMap
あったにはあったが使い勝手が悪そう

要素の位置の特定が少なく,走査が主になるならやっぱりLinkedListでいいかな
チューニングは後からでもできるし

858 :852 デフォルトの名しさん:2009/08/15(土) 16:40:16
またまた補足ですが。
子をもつElementの描画ルーチンは次のようになると思います。
public void draw(Graphics g){
if (!isVisible) return;
for(C child:this)
child.draw(g);
ここに自身の描画
}
ちなみに、マルチスレッドでは使用しない予定です。なんでもいいと
いえば何でもいいと思いますが、ものが描画なので、速度とメモリの
点からベストなものを教えていただければと思います。



859 :デフォルトの名無しさん:2009/08/15(土) 16:44:59
それなら当然B-Treeを自分で実装するしかないだろ。
Javaで用意されているのばかり使っていつまでも口あんぐり開けて怠けているとスキルの上達はないからね。

860 :デフォルトの名無しさん:2009/08/15(土) 16:45:09
最終的にwindowsアプリケーション(exeファイル)を作りたいのですが、望洋さんの明解Javaを終えたところ、アプレットの知識がありません。
先述の目標を見据えたアプレットに関して良い本教えてください。

861 :デフォルトの名無しさん:2009/08/15(土) 16:49:02
本の著者の出入りが目立つな

862 :852 デフォルトの名しさん:2009/08/15(土) 16:49:38
>>859
Tree構造自体は、852で実装しているつもりですが、お尋ねしたいのは
子オブジェクトを格納するコレクションは何が一番かということです。

863 :デフォルトの名無しさん:2009/08/15(土) 17:06:02
http://www.hellohiro.com/
↑ここもウイルス反応
ウイルス名TROJ_GENERIC.DIT が検出された。
javaのサイトは、やばいとこ多いなあ

864 :852 デフォルトの名しさん:2009/08/15(土) 17:07:24
たとえば子オブジェクトをVectorに格納するとすると。
public Abstract class Element<P extends Element,C Extends Element> implements Iterable{
private Vector<C> children;
private P parent;
public P getParent(){
return parent
}
public C getChildAt(int idx){
return children.get(idx);
}
public void add(C child){
children.add(child);
}
public Iterator<C> iterator(){
children.iterator();
}
}
となるわけで、木構造自体はElementクラスで実装されています。

865 :デフォルトの名無しさん:2009/08/15(土) 17:08:13
Vector<笑>

866 :デフォルトの名無しさん:2009/08/15(土) 17:08:36
自分で実装してるつもりになってるのが痛い

867 :852 デフォルトの名しさん:2009/08/15(土) 17:12:20
>>866
実装という表現がいけなかったと思いますが、Elementくらすは
木構造をとっていると思いますが何か?

868 :デフォルトの名無しさん:2009/08/15(土) 17:18:21
Vector<笑> これ面白すぎるw

869 :デフォルトの名無しさん:2009/08/15(土) 17:20:57
>>852
描画とデータ構造が一緒なのか?
まず破綻するだろうな

870 :852 デフォルトの名しさん:2009/08/15(土) 17:21:18
>>868
Vectorはあくまで例示です。862でのVectorの代わりでベストの
ものは何かということがお尋ねの趣旨です。

871 :852 デフォルトの名しさん:2009/08/15(土) 17:24:12
>>869
描画とデータ構造が同一でも破綻はしないと
思いますが。どうしてでしょうか?
SVGなども描画とデータ構造は一致していた
かと記憶していますが?

872 :デフォルトの名無しさん:2009/08/15(土) 17:25:56
>>870
857も書いてるけどLinkedListでいいんじゃないの?

873 :デフォルトの名無しさん:2009/08/15(土) 17:26:06
>>870
見る限りはSwingっぽいがもう少し基礎的なこと勉強してから出直したほうがいい
そんな描画ロジックはありえん
あとマルチスレッドで処理するのは普通

オチは糞アプリを作ってSwingは使えないとかそんなところだな

874 :デフォルトの名無しさん:2009/08/15(土) 17:27:04
>>871
おいおい、MVCもしらんのか?

875 :852 デフォルトの名しさん:2009/08/15(土) 17:29:58
>>857 >>872
ありがとうございます。
>>870
そんな 描画処理はありえんとは、どこをさしていってらっしゃるの
でしょうか。以前作成したソフトはこのロジックで動いていますが、
あなたのおっしゃる基本的なことを教えてほしいものです。


876 :デフォルトの名無しさん:2009/08/15(土) 17:32:41
ていうかswingがカオスになってるのが糞だろ

877 :デフォルトの名無しさん:2009/08/15(土) 17:33:36
>>864
それはさいきこうぞうといってきこうぞうとはいわないざこ

878 :デフォルトの名無しさん:2009/08/15(土) 17:36:37
実装するなら描画コンポーネントと帳票?モデルは別にするのがセオリーだな
これで作成されていたとかこわいこわい
クリックしてから描画終わるまでなにも受け付けないソフトな予感

879 :852 デフォルトの名しさん:2009/08/15(土) 17:38:20
誤解してらっしゃるようですが。Swingで実際描画する際は、表示用の
JComponentのサブクラスにrootElementをもたせて、

public void paintComponent(Graphics g){
rootElement.draw(g);
}
とすれば何の問題もなく描画できると思いますが。なお、この際、拡大
や縮小表示などもありますので、g.create()してAffineTransform
をする必要がありますが、それは省略しています。

880 :デフォルトの名無しさん:2009/08/15(土) 17:39:50
>>877
あなたは、ソースを読めますか?

881 :852 デフォルトの名しさん:2009/08/15(土) 17:47:18
>>878
オープンソースのドローソフトでJDrafterていうのが
あるんですが、ソースを解析するとデータモデルと描画
モデルが完全に同一です。あなたのおっしゃるような
症状はありません。
あなたは、いつの時代のパソコンを使ってらっしゃるの
のですか?
まさかPC-8801とかじゃないでしょうね。

882 :デフォルトの名無しさん:2009/08/15(土) 17:52:26
淋しい素人同士の下らない言い争いは飽きた

883 :デフォルトの名無しさん:2009/08/15(土) 17:57:36
JDrafterがどうしたって?w
おっさんww

884 :デフォルトの名無しさん:2009/08/15(土) 17:58:52
basic最強

885 :デフォルトの名無しさん:2009/08/15(土) 17:59:09
LinkedList <うんこ>

886 :デフォルトの名無しさん:2009/08/15(土) 18:02:44
教えて欲しいんだか、自分の糞技術を自慢したいのだか、どっちだ?
どっちにせよカエレ

887 :デフォルトの名無しさん:2009/08/15(土) 18:12:32
JaneeとかJDrafterとかは実用かどうかは別として作者のセンスはいいと思うよ。
センスがないと、いくらスキルを上げても糞を量産するだけだし。

888 :デフォルトの名無しさん:2009/08/15(土) 18:17:04
javaなのはj2cだった
糞の相手したら俺まで鼻糞になりそうだった

889 :デフォルトの名無しさん:2009/08/15(土) 18:30:16
盆の風に中てられて死ねばいいのにお前ら。

890 :852 デフォルトの名しさん:2009/08/15(土) 18:37:13
ここのスレの流れ、
質問→自分の知識をひけらかして質問者をばかに→逆に論破→罵倒の嵐
何とさびしいのでしょう。お盆というのに他にやることないのでしょうか。



891 :デフォルトの名無しさん:2009/08/15(土) 18:37:59
糞という言葉が多いスレだね。
品がないか、変態的なのか、どっちか。

892 :852 デフォルトの名しさん:2009/08/15(土) 18:41:34
ここで質問した私がばかでした。
自分で試してみて最良なもの探します。
真剣にお答えいただいた皆様どうもありがとうございました。

893 :デフォルトの名無しさん:2009/08/15(土) 18:49:54
全然初心者に優しくねえよなー
知ったかと底辺土方の罵り合いしかしてない

894 :デフォルトの名無しさん:2009/08/15(土) 18:57:24
もしかして「タダ」で教えてもらおうとしてるでしょ?

895 :デフォルトの名無しさん:2009/08/15(土) 18:58:54
>知ったかと底辺土方の罵り合いしかしてない
なるほど。土方土方と言ってる人かな。
最初は普通に質問してた人が罵倒されて荒らし変貌していくんだね。

896 :デフォルトの名無しさん:2009/08/15(土) 18:59:05
>>885
<うんこ>がリンクしてるのかよっ!!

897 :デフォルトの名無しさん:2009/08/15(土) 19:00:20
>もしかして「タダ」で教えてもらおうとしてるでしょ?

文句あるなら、スレ廃止しなよ

初心者歓迎などと書くなよ!

歓迎しないなら歓迎しないと書けよ

タコ

898 :デフォルトの名無しさん:2009/08/15(土) 19:03:06
先達はあらまほしきことなり
でもこのスレには先達がいません
もれなくクズ

899 :デフォルトの名無しさん:2009/08/15(土) 19:10:29
まともに聞きたいなら2chはねーよなw
ブログにでも書いとけ

900 :デフォルトの名無しさん:2009/08/15(土) 19:22:29
↓教える君、答えを書きなさい。

配列とポインタ
ttp://oshiete1.goo.ne.jp/qa5209646.html

901 :デフォルトの名無しさん:2009/08/15(土) 19:24:00
>>893-899 を削除依頼してもいいですか?

902 :デフォルトの名無しさん:2009/08/15(土) 19:36:32
javaアプレットは何故敬遠されているのですか?
Yahoo gamesなどもJavaアプレットですが全く不満の無い操作性を実現しているように感じます。
そもそもJavaアプレットを否定したところでFlashなどで代わりが利くのでしょうか?(サーバとの通信とか)

903 :デフォルトの名無しさん:2009/08/15(土) 19:38:32
もはやJavaは悪い意味で枯れた技術

904 :デフォルトの名無しさん:2009/08/15(土) 19:40:45
まともに聞きたいならgooより2chにきまっている

a1とa2が同じ型の配列で
a1=a2;
こうするとハードリンクみたいになりますか?
この後、a1を変更するとa2の内容も変わってしまいますよね?

b1とb2が同じ型の配列で
b1[4]=b2[5];

b1[4][7]=b2[5][0];
をするとディープコピーみたいになりますか?
多次元配列のディープコピーは、1次元目をループさせて
b1[0]=b2[0];
b1[1]=b2[1];
...
こうするだけでよいですよね?
この後、b1を変更してもb2の内容も変わらないですよね?

905 :デフォルトの名無しさん:2009/08/15(土) 19:41:44
中々深いところ突いてくるねダンナ

906 :デフォルトの名無しさん:2009/08/15(土) 19:51:04
>>873

907 :デフォルトの名無しさん:2009/08/15(土) 20:01:25
SEX<NHK>[]=new SEX<NHK>[10];
みたいなのができないんだけど。
解決策教えてください。

908 :デフォルトの名無しさん:2009/08/15(土) 20:01:31
>この後、a1を変更するとa2の内容も変わってしまいますよね?
変わらないよね

909 :デフォルトの名無しさん:2009/08/15(土) 20:04:06
>>907
SEX<NHK>[] sex = (SEX<NHK>[]) ( new SEX[10]);

910 :デフォルトの名無しさん:2009/08/15(土) 20:17:12
Jawaはワシが作った。
まだ2種か3種ぐらいしかバーションを公開していない時、ワシは
JawaはOSに依存せず安全なプログラミング言語である
と寝言を言った。
ワシは目を開いたまま寝てしまう癖がある。
寝言とはいえ間違った情報を黙って見過ごしていた自分は今地獄で後悔している。
正直なところ現在では、いやもうずっと何年も前から、JawaはOSに依存しないが、
Jawaアプレットはコンパイルする人が過去の全てのVMに対応したソースを
書かなくてはならないというアセンブラをはるかに越える開発時間を要するもの
となっていた。
そこでプログラマは手を抜いて、クライアント側にVMのバージョンを限定させて
特定のVMに対してのみ動作するプログラムを作るようになった。
Write once, run anywhere.
ワシの寝言だ。
Write once, debug everywhere.
これが現実。
ワシは嘘をついたわけではない。
その寝言の内容は当時は間違っていなかったのだから。
今となっては安全性もありやしない。
サンドバッグ?バカじゃないのか?ワシは反対したのだが金に溺れた若い技術者が
少ない知識でCOMと連携するシステムをVMに組みこむことを許してしまった。
当時は100% Pure Jawaのみだった。だから安全であるということに間違いはなかった。
ワシは嘘をついたわけではない。
ワシがバグを作ったわけではない。プログラマが悪いのだ。
全てのVMに対応したソースを書かないプログラマが悪いのだ。

911 :デフォルトの名無しさん:2009/08/15(土) 20:17:53
>>909
ありがとうございます。
やってみます!!

912 :デフォルトの名無しさん:2009/08/15(土) 20:24:08
>この後、a1を変更するとa2の内容も変わってしまいますよね?
Canonicalizationによるものでハードリンクという解釈でもまあよかろ

913 :デフォルトの名無しさん:2009/08/15(土) 20:27:12
>>910
お盆に入るとさ、いままで安かったスイカが2倍以上の値段に跳ね上がるよね

914 :デフォルトの名無しさん:2009/08/15(土) 20:32:13
とりあえず荒らしっぽいレスリスト作ってみた
>>5 >>33 >>34 >>35 >>36 >>44
>>49 >>50 >>52 >>54 >>57 >>58
>>59 >>80 >>82 >>83 >>100 >>126
>>128 >>130 >>132 >>140 >>141 >>142

915 :デフォルトの名無しさん:2009/08/15(土) 20:34:22
サーブレットも終わったな。
一生懸命ソース書いてもサーバのVMのバージョンが変わったらもう動かない。

916 :デフォルトの名無しさん:2009/08/15(土) 20:34:43
脅してるつもりか?
調子こいてるとお前のIP抜くぞ

917 :デフォルトの名無しさん:2009/08/15(土) 20:35:45
>>143 >>146 >>150 >>192 >>194 >>204
とりあえず荒らしっぽいレスリスト作ってみた。2
>>220 >>239 >>290 >>297 >>322 >>327
>>403 >>416 >>420 >>429 >>454 >>457
>>463 >>467 >>476 >>527 >>539 >>543
>>549 >>553 >>556 >>579 >>585 >>593

918 :デフォルトの名無しさん:2009/08/15(土) 20:37:01
とりあえず荒らしっぽいレスリスト作ってみた。3
>>625 >>700 >>715 >>720 >>756 >>769
>>776 >>779->>784
>>787->>788 >>792 >>795->>796 >>798
>>799 >>801 >>803->>805 >>809 >>815
>>818 >>828->>830 >>832 >>843 >>865

919 :デフォルトの名無しさん:2009/08/15(土) 20:37:40
>>916
どうやるの?!どうやるの!!
おちえて〜♪

920 :デフォルトの名無しさん:2009/08/15(土) 20:37:46
まぁアプレットとかSwingを批判する奴は大抵自分で使ったこと無い奴だけどね

921 :デフォルトの名無しさん:2009/08/15(土) 20:38:06
とりあえず荒らしっぽいレスリスト作ってみた。4
>>868 >>877 >>885->>886 >>888 >>889
>>893 >>896 >>905 >>907

922 :デフォルトの名無しさん:2009/08/15(土) 20:39:48
荒らしっぽいレスの中で以上のものに含まれていないのが>>914ですね。
通報しときます。

923 :デフォルトの名無しさん:2009/08/15(土) 20:49:04
>>921


劣等感が強いとこういうリスト作るのに時間かけちゃうんだよね〜

924 :デフォルトの名無しさん:2009/08/15(土) 20:59:00
>>915
全てのVMに対応してないソース書くのが悪い

925 :デフォルトの名無しさん:2009/08/15(土) 21:04:46
>>914,917,918

おまえはできそこない

おまえは初心者じゃなくてただのガラクタだ

926 :デフォルトの名無しさん:2009/08/15(土) 21:09:41
SunですらJDK1.2以前とJDK1.3以降は全く別のものであるとか
JavaとJava 2を区別しろと

927 :デフォルトの名無しさん:2009/08/15(土) 21:47:34
Swingが醜過ぎてGTKがピカソに見える

928 :デフォルトの名無しさん:2009/08/15(土) 22:05:28
Swingの悪口言う奴は使ったこと無い奴

929 :デフォルトの名無しさん:2009/08/15(土) 22:12:46
import java.awt.*;

930 :デフォルトの名無しさん:2009/08/15(土) 22:36:00
Swing<笑>

931 :デフォルトの名無しさん:2009/08/15(土) 23:22:29
>>902
単にやるやつがいないだけ。JREのインストールという前提さえクリアできるなら、選択肢として悪いもんではない。

932 :デフォルトの名無しさん:2009/08/15(土) 23:31:22
まぁ今時たかがブラウザ上で動くゲームのためにクライアントにインストールを強制するって時点で時代遅れだよね。
Flashもインストール必要だけど、広まりすぎてインストールしなきゃ見れないサイトがたくさんあるから例外という感じ。理不尽だが仕方ない。シェアがモノを言わせてる業界なのだ。

933 :デフォルトの名無しさん:2009/08/15(土) 23:44:59
[注意]
Javaアプレットは、Flashに取って代わられています。
Javaアプレットの代わりに Flash を使ってください。

934 :デフォルトの名無しさん:2009/08/15(土) 23:45:37
Java2はJ/Directを抹消するためにだな・・・

935 :デフォルトの名無しさん:2009/08/15(土) 23:48:26
アプレットとFlashじゃ全く分野が違うだろ
無知が誇らしげに語ってて馬鹿みたい

936 :デフォルトの名無しさん:2009/08/15(土) 23:48:27
アプレットの嫌いなところは画面が立ち上がるまでに
口上が長い。そうは言っても以外や使っているサイトは多い。
ブラウザでアプレット使用不可にしてネット徘徊してみるとわかる。

937 :デフォルトの名無しさん:2009/08/15(土) 23:50:00
ブラウザで動くアプレットってJavaアプレット以外に存在する?

938 :デフォルトの名無しさん:2009/08/16(日) 00:07:15
>>934
続きを聞こうか同士

939 :デフォルトの名無しさん:2009/08/16(日) 00:23:15
JavaからCをJNIで呼んだとき、Cから返却できる戻り値って1つだけなのでしょうか。
また、Cでエラーが発生したときは、Javaにはどうエラーを返すのが一般的なのでしょうか?

940 :デフォルトの名無しさん:2009/08/16(日) 00:33:11
JAVAとJAVA関連は、下位互換が弱いが
嫌がらせなのかな。

941 :デフォルトの名無しさん:2009/08/16(日) 00:39:34
>>937
マジレスしてやるとアプレット以前にブラウザにプラグイン、テーブルレンダリング、埋め込みスクリプト、スタイルシートこれら全てを始めて実装したのはViolaWWWだ。

942 :デフォルトの名無しさん:2009/08/16(日) 00:40:54
>>940
いやだいたい動くぞ

943 :デフォルトの名無しさん:2009/08/16(日) 00:41:42
>>938
activexとかM$の戦略をわすれないであげてください

944 :デフォルトの名無しさん:2009/08/16(日) 00:42:37
PCメモリも4ギガが標準になっているがeclipse程度の重さのソフトで
メモリが何ギガになったらページングが発生しなくなるんだろう

945 :デフォルトの名無しさん:2009/08/16(日) 00:45:23
ページファイル切ってしまえばいいじゃん
あれはOSが勝手にやっちゃうんだし

946 :デフォルトの名無しさん:2009/08/16(日) 00:45:47
俺の読みではMSWINDOWSは凋落が始まっており
新OSはGOOGLEが発表しそうな気がしている。

947 :デフォルトの名無しさん:2009/08/16(日) 00:46:57
もうLinuxのディストリビューションが増えるのはいやだお(;ω;
CentOSなんてしねってかしんだし(がっしぼか

948 :デフォルトの名無しさん:2009/08/16(日) 00:46:59
>>939
適当なクラスをnewして値をたくさん詰めて返せばよい
引数で受け取ったオブジェクトの値を書き換えるという方法もある
エラーは戻り値で示してもいいし例外を投げてもいいし

949 :デフォルトの名無しさん:2009/08/16(日) 00:47:20
>>945
切れる訳ないだろう。本当に必要な場合あるのに。
稼動しているすべてのソフトが消費している動的メモリを
人間が判断できないだろうが。

950 :デフォルトの名無しさん:2009/08/16(日) 00:49:11
そういえばお家PCがWinXP32bitなのに6Gのメモリを搭載しました
はみ出た部分はもちろんIEのキャッシュフォルダです

951 :デフォルトの名無しさん:2009/08/16(日) 00:50:50
>>949
俺切ってるよ

+---仮想メモリ----
|ページング ファイルは、Windows が RAM のように使用するハード ディスク
|にある領域です。
|
| すべてのドライブの総ページング ファイル サイズ:            0 MB
 ....

かれこれ一年くらい

952 :デフォルトの名無しさん:2009/08/16(日) 00:51:05
6Gといえば、20年足らず昔には6000万円だったな。


953 :デフォルトの名無しさん:2009/08/16(日) 00:51:13
>>947
そうじゃない。逆に考えるんだ。
NetbookでLinuxやるならGOOGLE GNU/LINUX + CHROMEだけで済む世界が待っている。

954 :デフォルトの名無しさん:2009/08/16(日) 00:53:38
メモリ+キャッシュバッファだけの回転体のないPCの出現を
待っている。

955 :デフォルトの名無しさん:2009/08/16(日) 00:53:50
>>953
前提にも結論にもLinuxが詰んでてワロタ

956 :デフォルトの名無しさん:2009/08/16(日) 00:55:27
なんで正統派BSDより亜種のLINUXが人気でたのか。

957 :デフォルトの名無しさん:2009/08/16(日) 00:58:33
画面が黒いか明るいかの違いじゃね

958 :デフォルトの名無しさん:2009/08/16(日) 01:01:14
>>956
ぶっちゃけ、古参が幅を利かせているプロジェクトより、新天地の方に参加したい。

959 :デフォルトの名無しさん:2009/08/16(日) 01:10:46
JavaからC++を呼んで、メモリアクセス違反とかでJavaプロセス自体が死んでしまうことってよくありますか?

960 :デフォルトの名無しさん:2009/08/16(日) 01:12:26
Webを征するにはシェアよりも下位互換
下位互換を捨てたJavaはWebでは見捨てられている
安心してバージョンアップできるのはFlashぐらい
悪炉鳩も下位互換はちゃんとなってるけどこれは最新にはしたくない
悪炉鳩は駄作だけど下位互換がちゃんとなってるから普及してるよ

961 :デフォルトの名無しさん:2009/08/16(日) 01:15:06
>>960
いやだからほとんど動くって
1.5と1.6なんて数年間開いてるのに動くんだぜ

962 :デフォルトの名無しさん:2009/08/16(日) 01:17:52
960氏の作品が動いてくれないんだろう

963 :デフォルトの名無しさん:2009/08/16(日) 01:21:22
adobeは糞未満

まで読んだ

964 :デフォルトの名無しさん:2009/08/16(日) 01:26:52
何が互換だアホかw
flash中学生は死ね

965 :デフォルトの名無しさん:2009/08/16(日) 01:28:56
>>960
> JavaはWebでは見捨てられている
このWebってどの技術を指してるんだろうや
いやわからない

966 :デフォルトの名無しさん:2009/08/16(日) 01:29:05
>>956
オレはLINUXハッカーなんかよりBSDウイザードの方を信じるけどな

967 :デフォルトの名無しさん:2009/08/16(日) 01:29:31
アプレットはまともな技術だと思うが色々とタイミングが悪かった。
一昔前に馬鹿みたいに流行ったのが逆効果になってる。
イケてるサイト作るにはアプレット使うべし、みたいな風潮が広まった時期があって、
でもそういう流行には必ずしばらくすると批判が巻き起こり、必要以上に忌み嫌われることがある。

968 :デフォルトの名無しさん:2009/08/16(日) 01:35:14
だいたい正しくバックアップできるJAVA製バックアップソフト
だいたい正しくメールを送受信するJAVA製メールクライアント
だいたい正しく入出金できるJAVA製ウェブマネーシステム

969 :デフォルトの名無しさん:2009/08/16(日) 01:39:45
BSDライセンスの方がマジ便利

970 :デフォルトの名無しさん:2009/08/16(日) 01:43:42
>>959
アクセス違反とかをすれば普通に死ぬけど、
そんなことがよくあるようなプログラムは使い物にならん

971 :デフォルトの名無しさん:2009/08/16(日) 01:44:00
お礼を書いてポイント付けろ
ttp://oshiete1.goo.ne.jp/qa5209646.html

972 :デフォルトの名無しさん:2009/08/16(日) 02:41:47
国内でもJavaでの開発が多くなっているから
資産的にもかなりあるから
もはや後戻りは出来ないのではないかな。
COBOLみたいになるかも。

973 :デフォルトの名無しさん:2009/08/16(日) 02:51:50
COBOL使いの気持ちを理解するためにはJAVAの習得が近道

974 :デフォルトの名無しさん:2009/08/16(日) 03:13:14
これはいいことをきいた

975 :デフォルトの名無しさん:2009/08/16(日) 03:39:32
>>839
eclipseが既に廃れてからじゃ無理


976 :デフォルトの名無しさん:2009/08/16(日) 03:51:54
>>975
いったい、何をつかってるんだろ

977 :デフォルトの名無しさん:2009/08/16(日) 03:58:32
スイングやらなきゃeclipseで十分じゃねえの?

978 :デフォルトの名無しさん:2009/08/16(日) 04:03:32
いまやeclipseプラグインでチャットツールがある時代だぞ

979 :デフォルトの名無しさん:2009/08/16(日) 04:03:32
eclipseは素晴らしいと思う

980 :デフォルトの名無しさん:2009/08/16(日) 04:09:29
perlやruby、pythonにくらべて、javaは格段に難しい言語だと思うのですが、

私がバカだからでしょうか?

皆様もjavaは難しいと思われるでしょうか?



981 :デフォルトの名無しさん:2009/08/16(日) 04:13:29
rubyが出来るのにjavaができないのはよくわからんな

982 :デフォルトの名無しさん:2009/08/16(日) 04:15:03
java以外はちょっとしか触ってないからわからん

型の意識の有無が違うのか?

983 :980:2009/08/16(日) 04:37:19
>>981、982
ありがとうございます。

データーベースのMYSQLから検索結果を書き出すにしても、
perlなら割と簡単に出来るのに、

javaだとtomcatが必要で、tomcat動かすのにXML設定しないといけないとか
(いまここで挫折)

Importだけで10行ぐらい書かないといけないのです。

importは皆様どこから探してくるのでしょう?
mysqlのパッケージとかクラスとか
mysqlでの例外処理とか


984 :デフォルトの名無しさん:2009/08/16(日) 04:41:12
質問に纏まりがない

985 :デフォルトの名無しさん:2009/08/16(日) 04:47:14
URLを読み上げてください
http://limewired.livedoor.biz/archives/50947535.html

986 :デフォルトの名無しさん:2009/08/16(日) 04:59:51
>>983
パッケージと(=クラスとかリソースがまとめられたもの)をプロジェクトのライブラリに突っ込むと、
importは必要に応じてeclipseが勝手に書いてくれます
例外処理もかってにeclipseが提案してくれます

書かなくてもいい言語からすると「めんどくさい」けれど、暗黙の了解が少ないので後で被害が少ないです

てかMySQLインスコしてMySQLのJDBCドライバダウンロードすれば環境整うのになぜTomcat?

987 :983:2009/08/16(日) 05:08:18
>>986
ありがとうございます。

eclipseがやってくれるのですか!

webでアパッチのもとでjava動かすにはtomcatが必要という固定観念があるのですが、いらないのですか。

988 :デフォルトの名無しさん:2009/08/16(日) 05:18:21
webでアパッチなんて初耳だぞ!

989 :983:2009/08/16(日) 05:26:43
>>988
ありがとうございます。
あれ? webで
apache + perl
apache + php
とか使いません?

webという言葉が間違ってます?
サーバー?

990 :デフォルトの名無しさん:2009/08/16(日) 05:28:56
javaでwebったらまぁtomcatだわな
アパッチもありがちありがち

ウェブロジックはtomcatのカスタム品だったかのう

991 :デフォルトの名無しさん:2009/08/16(日) 05:31:04
>>989
まあ、最初はtomcat通さずにDB繋げてやってみたらどうだい

1.tomcatなしでDBアクセス
2.DBアクセスなしでtomcatでjavaを動かす
3.tomcatでjavaでDBアクセス!
4.アパッチとtomcat連携させて!!!!!!

こんな調子でよぉ

992 :983、987:2009/08/16(日) 05:33:22
>>990
ありがとうございます。


993 :デフォルトの名無しさん:2009/08/16(日) 05:35:45
いやTomcatはApacheに連携して使うほうがセキュリティが高い。

994 :983、987:2009/08/16(日) 05:35:46
>>991
ありがとうございます。
勉強してしてやってみます。
つまずいたらまたよろしくお願いします。

995 :デフォルトの名無しさん:2009/08/16(日) 05:37:01
>>993
勉強になりました。ありがとうございます。

996 :デフォルトの名無しさん:2009/08/16(日) 05:37:17
というか何を質問しているのかわからん

997 :デフォルトの名無しさん:2009/08/16(日) 05:55:45
梅。

逆だろ。トム猫がウェブロジの簡易版。

998 :デフォルトの名無しさん:2009/08/16(日) 05:57:26
>>997
同じじゃねーか

tomcat→富士通カスタム→機能こってりweblogic

999 :デフォルトの名無しさん:2009/08/16(日) 06:00:24
次スレないね


1000 :デフォルトの名無しさん:2009/08/16(日) 06:02:18
【初心者】Java質問・相談スレッド131【歓迎】
ttp://pc12.2ch.net/test/read.cgi/tech/1250369910/

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

238 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)