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

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

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

1 :デフォルトの名無しさん:2010/11/19(金) 03:05:30
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    http://pc11.2ch.net/hp/ [板をp2で開く]
Webプログラミング http://pc11.2ch.net/php/ [板をp2で開く]
をご利用下さい。

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

前スレッド
★★Java質問・相談スレッド141★★
(p)http://hibari.2ch.net/test/read.cgi/tech/1286354820/

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

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

2 :デフォルトの名無しさん:2010/11/19(金) 03:07:37
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 9
(p)http://pc12.2ch.net/test/read.cgi/tech/1261232019/
■ SWT は --
Java 高速GUI SWT 3
(p)http://pc12.2ch.net/test/read.cgi/tech/1164877399/

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) ?Part21
(p)http://pc12.2ch.net/test/read.cgi/tech/1276164970/
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 9
(p)ttp://pc12.2ch.net/test/read.cgi/tech/1249357352/
■ Androidアプリの作成は --
【Google】Androidアプリ作成part6
(p)http://pc12.2ch.net/test/read.cgi/tech/1286555951/

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


3 :デフォルトの名無しさん:2010/11/19(金) 03:08:30
■ NetBeansに関する雑談は --
NetBeans Part6
(p)http://pc12.2ch.net/test/read.cgi/tech/1273665879/
■ Eclipseに関する雑談は --
Eclipse統合M29【Java/C++/Ruby/Python/Perl】
※dat落ちしてるのでとりあえずここでどうぞ
統合開発環境Eclipseプラグイン開発QA
(p)http://pc12.2ch.net/test/read.cgi/tech/1081517094/


**** 開発環境が必要の場合は ****
■ J2SE 5.0 (1.5.0)
(p)ttp://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
(p)ttp://java.sun.com/javase/ja/6/

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

4 :デフォルトの名無しさん:2010/11/19(金) 09:36:51
いままで実効環境のみで
Java(TM)6update22ってのがインスコされてるんですけど
JavaやるにはJDKをいれないといけないみたいなんです
jdkいれた場合ってもともとのjava(TM)は消したほうがいいんですか?

5 :デフォルトの名無しさん:2010/11/19(金) 12:21:58
>>4
消さなくてもいいよ
おれなんかふるーいのも合わせて8つ入ってるよ

6 :デフォルトの名無しさん:2010/11/19(金) 17:15:41
下記のように書いていますが、ココ1の、list.set(i, inArray7);を、書いても書かなくても、ココ2で、ココ3のwkセットが反映されています。
list.set(i, inArray7);を書いてないのに、どうして反映されるんでしょうか?たぶん私が、何か大きな間違いをしていると思うのですけど。
String inStr;
list = new ArrayList<String[]>();
Reader in = new BufferedReader(new FileReader("c:\\wk01.txt"));
while ((inStr = in.readLine()) != null) {
String[] inArray = inStr.split("\\s+");
String[] outArray = new String[15];
for (int i = 0; i < inArray.length; i++) {
ループでinArrayからoutArrayへ編集してセット
}
list.add(outArray);
}
setInfo1(list);
for (String[] chk : list){
for (int i = 0; i < chk.length; i++){
System.out.print("[" + chk[i] + "]" + " "); // ココ2
}
System.out.println("");
}}
private void setInfo1(List<String[]> list) {
String[] inArray7 = null;
int wk = 0;
inArray7 = list.get(0);
...
for (int i = 0; i < list.size(); i++) {
inArray7 = list.get(i);
if (inArray7[8].equals("m")) {
inArray7[11] = Integer.toString(wk); //ココ3
//list.set(i, inArray7); // ココ1
}}}}

7 :デフォルトの名無しさん:2010/11/19(金) 17:30:53
setInfo1 を呼び出した時点で新たな配列がつくられるわけではないし、
lisr#get しても新たな配列は作られない。

String[] array = new String[1];
set(array);
System.out.println(array[0]); //くそ と表示される

public void set(String[] a) {
 a[0] = "くそ"; //指定された配列につっこむ

 //a は呼び出し元の array とまったく同じ存在を指す。
 //同じ存在、というのは、同じ値を持つ、という意味ではない。
 //メソッドの中と外で、同じものに対する呼び名が変わっているだけに過ぎない。
 //この時点における a[0] = "くそ" は、
//呼び出し元で array[0] = "くそ" としたのとおなじこと。

 a = new String[1];
 //上記以降は、この a は array とはまったく別の存在を指す。
 a[0] = "みそ";
 //これは呼び出し元の array が指しているものとは違うものを指す。
 //なお、この a が指す新たな配列は、このメソッドが終わり次第、
 //プログラム上からは一切アクセス不能になる→そのうちメモリからも消える
}


8 :デフォルトの名無しさん:2010/11/19(金) 18:10:16
>private void setInfo1(List<String[]> list) {
listは参照渡しのつもりだったのですが、その要素のString[]も
参照渡しになるのですね?
そうして、
>inArray7[11] = Integer.toString(wk); //ココ3
>//list.set(i, inArray7); // ココ1
これはinArray7[11]に新たにオブジェクトをセットしているけど、
listと紐ついているのは、String[]の参照なので、set不要ということですか?

9 :デフォルトの名無しさん:2010/11/19(金) 19:28:09
そう。

「配列もインスタンスなので、new しない限りはけっして新たに作られない」
といえばわかるかな。

何らかのメソッドの引数で渡しても return で返しても、
ArrayList に突っ込んでから渡したとしても、作られないったら作られない。

10 :デフォルトの名無しさん:2010/11/19(金) 19:39:35
>>7 >>9 6と8です。よくわかりました。どうもありがとうございました。

11 :デフォルトの名無しさん:2010/11/19(金) 22:36:19
byte配列に入っているテキストを
byte配列の検索文字と比較しながら検索したいのですがどのような仕方があるでしょうか

12 :デフォルトの名無しさん:2010/11/19(金) 23:01:02
>>5
jdkとjreも入れないといけないんですね
これいれて元のも消さなくていいんでしょうか?

13 :デフォルトの名無しさん:2010/11/19(金) 23:57:23
と思ったら最新の奴はjdkとjre別々になってるんですね

14 :デフォルトの名無しさん:2010/11/20(土) 01:15:58
jdkのパッケージにはjreも付属する。
実行環境だけでいいときにはjreのパッケージを入れる。
jdkに付属するjreには2種類あって、
一つは公開jreでこれを入れることはjreのパッケージをインストールするのと同じ。
もう一つはjdk自身が使う実行環境でjdkをインストールしたところに入ってる。
公開jreはインストールするかしないかを選択できるがもう一つの方はjdkを入れれば必ず入ってる。
特に理由が無ければ公開jreもインストールしておいた方がよい。
jdkのインストーラもデフォルトで公開jreを入れるようになっている。
jre update22はたぶん最新のものなので上書きインストールでも問題ないと思われ

15 :デフォルトの名無しさん:2010/11/20(土) 17:21:44
>>11
そんなapiはない。
ダイソーに行って画用紙を買ってアルゴリズムをカンガエルとその答えが見える
100行もいらないよ


16 :デフォルトの名無しさん:2010/11/20(土) 17:31:47
>>11
1, どっちも完全に String になおして indexOf
2. 非検索側が大量でなおす時間を節約したいなら ByteArrayInputStream や BufferedReader
3. ちょっとずつ String にして比較

3. はさすがにばかばかしい ソース示せるとは思うけどめんどくせぇ

17 :デフォルトの名無しさん:2010/11/20(土) 17:44:45
やってみたけどバイトで検索するほうがはやっかったよ
string で直すより


18 :デフォルトの名無しさん:2010/11/20(土) 20:01:44
javaのstringって結合すると遅くなるのがダメだよな
st::stringみたいに遅くならなければいいのに


19 :デフォルトの名無しさん:2010/11/20(土) 20:05:05
そうだね

20 :デフォルトの名無しさん:2010/11/20(土) 23:42:09
if (strlen(s)==0) return;

21 :デフォルトの名無しさん:2010/11/21(日) 10:20:54
JFrame
→JDesktopPane
⇒@JInternalFrame add(Canvas3D) ←最大化して最奥に表示
⇒AJInternalFrame add(Swingコンポーネント) ←透過させたい

のような感じでAのJInternalFrameを透過させて、その奥にある
@のJava3Dで描画した物体を透けて表示させようとしてます

奥にあるJInternalFrameがSwingコンポーネントで構成された
JInternalFrameであれば正常に透過されるのですが、Java3Dで
描画していた場合なぜか透過されません

AのJInternalFrameは↓の方法で透過させてます

JInternalFrame jif = new JInternalFrame();
JPanel pnl = new JPanel();
pnl.setOpaque(false);
jif.setContentPane(pnl);
jif.setOpaque(false);

どうにか正常に透過できないでしょうか?

22 :デフォルトの名無しさん:2010/11/21(日) 15:48:37
きないのでしょうかね

23 :デフォルトの名無しさん:2010/11/21(日) 20:12:52
きないでしょうね
素直にオフスクリーンにしたら?

24 :デフォルトの名無しさん:2010/11/21(日) 21:43:56
com.sun.awt.AWTUtilities#setComponentMixingCutoutShape()というのがあってだな

25 :デフォルトの名無しさん:2010/11/21(日) 23:36:44
AWTとSwing混ぜるな危険ってやつだな・・・いつのまにか実装されてたのか

26 : [―{}@{}@{}-] デフォルトの名無しさん:2010/11/22(月) 13:06:16
windowsのjavacコマンドにより生成された.classファイルをlinuxやmacで実行することは出来ますか?

27 :デフォルトの名無しさん:2010/11/22(月) 13:07:28
26 : [―{}@{}@{}-] デフォルトの名無しさん

になるのって2chのなんかのバグだったよ?
なんだったけ?

28 :デフォルトの名無しさん:2010/11/22(月) 14:44:17
焼き鳥食べたくなってきた

29 :デフォルトの名無しさん:2010/11/22(月) 15:01:52
>>27
よーし、パパ全力で釣られちゃうぞー!

30 :デフォルトの名無しさん:2010/11/23(火) 02:54:18
boolean型の変数をint型の値に変換したいのですが(trueを1に/falseを0に)、何か都合の良いメソッドなどありますか?
ほんの数行のメソッド定義すればいいことですがあればそっちを使おうと思っています。

31 :デフォルトの名無しさん:2010/11/23(火) 03:05:03
x?1:0
じゃだめなの?

32 :デフォルトの名無しさん:2010/11/23(火) 03:20:18
>>31
ダメではありませんがもっとスマートに書く方法があるのではないかと思って・・・

今回、コード中でboolean→int変換が2箇所で必要となります
同じコードを書きたくないので『int func(boolean b){return b ? 1 : 0;}』とメソッド化して
使おうと思ったのですが、他にメソッドがあればそっちを使ったほうがスマートだと
思い聞きました
どうやら簡単すぎて無いみたいですね

33 :デフォルトの名無しさん:2010/11/23(火) 13:27:28
>>32
無いみたいですね

34 :デフォルトの名無しさん:2010/11/23(火) 13:49:21
false、trueに対して0、非0の値を返すというのなら
非0値が具体的に何になるかは実装次第で

35 :デフォルトの名無しさん:2010/11/23(火) 14:05:21
>>32
スマートかどうかは主観的なので何とも言えないが、
用意されているメソッドで何とかしろということなら、
Boolean.valueOf(b).hashCode()ならbがtrueで1231、falseで1237。
Boolean.TRUE.compareTo(b)ならbがtrueで0、falseで非零(正数)。
Boolean.FALSE.compareTo(b)ならbがtrueで非零(負数)、falseで0。

36 :デフォルトの名無しさん:2010/11/23(火) 14:52:39
質問です。

int numberValue;



public void setStat(int number)
setValue(number);

このようなソースコードがあるんですが、最後の行のsetValue(number)の部分を
→「numberValue=number」にすると実行結果が違ってくるのですが、

setValue(number)とnumberValue=number

この違いがわかりません。どうかお願いします

37 :デフォルトの名無しさん:2010/11/23(火) 15:32:54
>>36
>この違いがわかりません。
私にはまったく違うものにしか見えませんが・・・
違う内容に書き換えたら違う結果になるほうが自然でしょう。

そもそも、setValue と numberValue は何の関係があるの?
関係があると思ったその根拠はなに?

public void setValue(number) {
 System.out.println(number);
}
かもしれないし、
public void setValue(number) {
 System.exit(0);
}
かもしれない。

関係があるとしても
public void setValue(number) {
 numberValue = number * 2;
}
でも実行結果は変わる。

38 :デフォルトの名無しさん:2010/11/23(火) 17:55:13
すいません。
自己解決しました。

39 :デフォルトの名無しさん:2010/11/23(火) 18:33:43
tomcat 7 です。

ディレクトリ参照したくて conf の web.xml で
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value> //●
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
にしましたが、
参照できません。かなり以前は既存で参照するヴァージョンでつかってましたが、
久しぶりにさわりましたが、うまくいきません。

40 :デフォルトの名無しさん:2010/11/23(火) 20:54:24
すぐに
答えくるかとおもってたらこないなぁ・・・

41 :デフォルトの名無しさん:2010/11/23(火) 21:40:57
で、どんなコードを書いてるんだい?
debugの方は取れてるの?

・・・というような39を見れば誰でも思うようなことが、書かれていないからレスがないのでは。

42 :デフォルトの名無しさん:2010/11/24(水) 01:00:16
俺は tomcat あんまり知らんけどね。

うまくいってないことを自分がどのように確認したのかも書かないと。
ここにはド初心者もたくさん来るからね。
さわったことあるようだけど、それだけじゃどうもね。
ちゃんとした経験者は、
設定一個うまくいかないぐらいで、こんなとこにその程度の情報だけ持って聞きに来ないから。

web.xmlの全体はこうで、ファイル構成はこうで、起動手順はこうで、とか。

わざと XML 間違えたりすれば、
再起動してない、読み込まれてない、といった原因を否定できるだろう。
あるいは別の項目において設定が上手く反映されるなら、
listings まわりの動作だけに問題が絞られる。
その辺の確認はやったの?
あと welcome-file が存在するとそっちが優先されるようだけど、その確認はしてるの?

43 :デフォルトの名無しさん:2010/11/24(水) 01:38:30
ん?コード関係あるのか?
Tomcat 自体の設定と挙動というプログラミングに全く関係ない話(板違い)に見えるんだが

44 :デフォルトの名無しさん:2010/11/24(水) 02:29:21
画像Aが画像Bの中に含まれていたら画像B上にある画像Aの左上の(x,y)座標を返すようなメソッドで、

// imageAはファイルから読み込み済みBufferedImage型
PixelGrabber pgA = new PixelGrabber(imageA, 0, 0, -1, -1, true);
pgA.grabPixels();
int bufA[] = (int[])pgA.getPixels();

//imageBはimageAよりも大きい画像を想定。BufferedImage型 ここではデスクトップのスクショ
PixelGrabber pgB = new PixelGrabber(imageB, 0, 0, -1, -1, true);
pgB.grabPixels();
int bufB[] = (int[])pgB.getPixels();

のようにしたあと、bufAがbufBの中に含まれているかどうかの比較を行いたいんですが、
bufB[0]にはimageBの(0,0)のピクセルデータが、
bufB[x + y * imageB.getWidth()]にはimageBの(x,y)のピクセルデータが格納されているという解釈で合ってますでしょうか?


45 :デフォルトの名無しさん:2010/11/24(水) 04:02:57
すいません。
自己解決しました。

46 :デフォルトの名無しさん:2010/11/24(水) 17:45:19
Strutsの1じゃなくて2の方で、本とか勉強サイトとかブログとか参考になるのない?

47 :デフォルトの名無しさん:2010/11/24(水) 18:53:17
jdbcのステートメント使用してstmt.executeQuery(sql)を実行しています。
1万件取得できずにoutofmemoryになります。

Listに溜め込んでいるフレームワークを使用しいるならわかるのですが、jdbcの中で落ちてます。
jdbcのResultSet作成で溜め込んでいる模様・・・なぜ?
ResultSetって内部でカーソルを持っていて、nextしたときにバッファが空ならネットワーク越しに取りにいくと思っていたのですが違うのでしょうか?

Caused by: java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2882)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
at java.lang.StringBuilder.append(StringBuilder.java:119)
at sun.jkernel.DownloadManager.getBootClassPathEntryForClass(DownloadManager.java:928)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:293)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1270)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1309)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:192)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254)

48 :デフォルトの名無しさん:2010/11/24(水) 20:02:51
>>47
>ResultSet作成で溜め込んでいる模様
どこ見てそれを思ったの?

JDBC の中じゃない。ClassLoaderの中で落ちてるじゃん。
デバッガ使って ClassLoader.java:320 で何が起きてるか見れないかい。
(ソースが無くても変数の値は分かるからね。でも、標準APIのソースくらいは入手しておくこと)
データがあふれてるようにはみえないな。
データがパンパンに膨れ上がった段階で、ClassLoader がとどめさしたのかもしれないけど、
起動時のヒープサイズ設定を変えても起こるようなら JDBC関係ないと思う。

ドライバ内のクラスをロードする作業?
あるいは例えばDB側の列定義からJava側の型に変換する作業?
そういうところで失敗してるように見える。


49 :デフォルトの名無しさん:2010/11/24(水) 20:45:37
>>48
メモリエラーの場合は落ちている場所とか関係ないです。
実行毎に落ちるところが違うから。

明らかにprocessResultsの問題でしょ。
一目瞭然。

50 :デフォルトの名無しさん:2010/11/24(水) 21:03:09
すいません。
自己解決しました。


51 :デフォルトの名無しさん:2010/11/24(水) 21:54:26
>落ちている場所とか関係ないです
じゃぁprocessResultsも関係ないじゃん

52 :デフォルトの名無しさん:2010/11/24(水) 22:16:19
>>47
>ResultSet作成で溜め込んでいる模様
どこ見てそれを思ったの?

JDBC の中じゃない。ClassLoaderの中で落ちてるじゃん。
デバッガ使って ClassLoader.java:320 で何が起きてるか見れないかい。
(ソースが無くても変数の値は分かるからね。でも、標準APIのソースくらいは入手しておくこと)
データがあふれてるようにはみえないな。
データがパンパンに膨れ上がった段階で、ClassLoader がとどめさしたのかもしれないけど、
起動時のヒープサイズ設定を変えても起こるようなら JDBC関係ないと思う。

ドライバ内のクラスをロードする作業?
あるいは例えばDB側の列定義からJava側の型に変換する作業?
そういうところで失敗してるように見える。



53 :デフォルトの名無しさん:2010/11/24(水) 22:40:01
XMLを読み込んでJavaオブジェクトにマッピングしたいのですが、どう作っていったらいいのかわかりません。

<A>
  <B />
  <B />
  <B />

  <C>
    <D>
      <E>XXX< /E>
      <E>XXX< /E>
      <E>XXX< /E>
    < /D>
    <D>
      <E>
        YYY
      < /E>
      <E>YYY< /E>
      <E>YYY< /E>
    < /D>
のようになっているXMLのうち、Dタグを1オブジェクトとしてマッピングしたいと思っています。

DocumentクラスからNodeを取得して、ノードをたどる形で実装しようと思ったのですが、ホワイトテキストノードの関係でゴチャゴチャになってしまいます。
テキストノードをスルーしようとすると、<E>タグの改行がうまく処理できないのですが、なにか手はありますでしょうか?

54 :デフォルトの名無しさん:2010/11/24(水) 22:52:24
あります。あなたのソースのまずいところを直せばいいのです。

55 :53:2010/11/25(木) 00:12:06
いけると思って突き進んだ結果行き詰ったのでそもそも間違っている気がするのですが…
以下ソース抜粋です。

Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(XMLファイル);
Node A = doc.getFirstChild(); //Aノード取得
while(A != null || A.getNodeType() == Node.TEXT_NODE){
  A = A.getgetNextSibling();
}
if(A == null || "A".equals(A.getNodeName())){
  // エラー処理
}
Node B = A.getFirstChild(); //Bノード取得
while(B != null || B.getNodeType() == Node.TEXT_NODE){
  B = B.getgetNextSibling();
}
if(B == null || "B".equals(B.getNodeName())){
  // エラー処理
}
//Cノードを探索
while(B != null || B.getNodeType() == Node.TEXT_NODE && "C".equals(B.getNodeName())){
  B = B.getgetNextSibling();
}
Node C = B
Node D = C.getFirstChild(); //Dノード取得
while(D != null || D.getNodeType() == Node.TEXT_NODE){
  D = D.getgetNextSibling();
}
if(D == null || "D".equals(D.getNodeName())){
  // エラー処理
}
---以下続く---

56 :53:2010/11/25(木) 00:16:07
---続き---
XMLElement item = new XMLElement()
Node E = D.getFirstChild(); //Eノード取得
while(E != null || E.getNodeType() == Node.TEXT_NODE){
  E = E.getgetNextSibling();
}
if(D == null || "D".equals(D.getNodeName())){
  // エラー処理
}
item.e1 = E..getFirstChild();

以下同様にe2,e3を取得してマッピングするつもりで作成していましたが、YYYの一番上の部分がうまく取れないなぁと思って悩んでいます。
何か根本的に間違っている気がします。

57 :デフォルトの名無しさん:2010/11/25(木) 00:17:41
↓みたいにファイルを新規作成したいんですけど、実行はできるのにファイルができません。
ファイルの読み取りもできませんでした。何が原因なのでしょうか??
ちなみにエクリプスでやってます
package shoshinsha;
import java.io.*;
class WriteText {
public static void main(String[] args){
try{
FileWriter out=new FileWriter("math.txt");
int a=10,b=5;
out.write("kaho:");
out.write(a + " + " + b + "=" +(a+b));
out.close();
}catch(Exception e){
System.out.println(e);
}
}
}

58 :デフォルトの名無しさん:2010/11/25(木) 05:09:47
>>53
XMLからやりなおせ。それと1JAXBつかえ。

>>57
ファイルが作成できないときはコンストラクタかflushがIOException投げるから握りつぶしてるんじゃないの?

59 :57:2010/11/25(木) 08:08:58
>>58
ありがとうございます。
えと、初心者であんまりよくわからないのですが、コンストラクタがIOException投げる
ってことはファイルの入出力でなんらかのエラーがあるってことでいいんですか?

一応
catch(IOException ie){
System.out.println("no File");
っていう文を足しても何もならず、
out.close();
の前にprintlnで文字を表示してみたらそれはできました。
もしかしてエクリプスの設定とかに問題あったりしますか?

60 :デフォルトの名無しさん:2010/11/25(木) 08:47:15
>>59
フルパスで指定しろ

61 :デフォルトの名無しさん:2010/11/25(木) 10:26:25
>>52
ここで質問した俺が馬鹿だった。
クエリの結果でメモリエラーだけでよくここまで脱線するは・・・
結果セットで貯めすぎて落ちる以外に何があるってんだい?
問題解決能力0

メモリの使い方、メモリで落ちる意味を良く考えるべき。
クラスローダーってあんた、結果のBeanをnewするためのところで限界が発生ってことでしょ。

いやー久しぶりに笑った

62 :デフォルトの名無しさん:2010/11/25(木) 10:26:29
windowsのタスクバー上のアイコンを右クリックしたときにメニューが出なくするのってどうやるんですか?

63 :57:2010/11/25(木) 11:00:50
>>59
何度もすいません、それはどうすればいいんですか?

64 :デフォルトの名無しさん:2010/11/25(木) 11:17:31
>>61
ここにはもう来ないでいいよ

65 :デフォルトの名無しさん:2010/11/25(木) 11:46:17
>>57
やってみたら math.txt 出来たよ
探すディレクトリ間違ってるんじゃね?

66 :デフォルトの名無しさん:2010/11/25(木) 11:49:32
>>61
それなら「マイクロソフト・ウインドーズ」しかないですよね?!

67 :デフォルトの名無しさん:2010/11/25(木) 12:34:49
>>57
Eclipse のパッケージエクスプローラで、
プロジェクトを右クリックして「更新」してみてください

68 :57:2010/11/25(木) 15:53:50
>>65>>67
でました!F5したらシステムライブラリーとかいうとこに出来てました!
ありがとうございます!やったー!

69 :デフォルトの名無しさん:2010/11/25(木) 20:20:18
>>39

はiisみたく
http://localhost:8080/javabook/

と入力すると
javabookの下のファイル参照できないかということです。
そうすれば、そのファイル名をクリックして、動作確認できるからです。

70 :57:2010/11/25(木) 21:57:38
ついでに、やっほい!


71 :デフォルトの名無しさん:2010/11/25(木) 23:04:00
drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
これ dx2 とかが幅じゃなくて第二の座標となってるけど
実際幅16のものを dx1+15 でなく dx1+16 としないとちゃんと表示されなかった
例えばdx1を0、dx2を0とすると1ドットは描かれるはずなのに
dx2を1にしないとそうならなかった
どうしてだろう?

72 :デフォルトの名無しさん:2010/11/25(木) 23:22:30
>>71
>例えばdx1を0、dx2を0とすると1ドットは描かれるはずなのに

なぜそう思うの?

> dx2 とかが幅じゃなくて第二の座標となってる

自分で答え書いてるじゃん

73 :デフォルトの名無しさん:2010/11/25(木) 23:31:11
幅 なら dx2が16で16ドット
座標なら(0-15)で16ドット分
じゃないの?

74 :デフォルトの名無しさん:2010/11/25(木) 23:48:35
質問スレの性質こんなんかなあ
誰か分かる人いらっしゃいませんかぁ

75 :デフォルトの名無しさん:2010/11/26(金) 00:01:58
>>74
>>71
その x,y はドット数ではなく、2次元平面上の座標だから。
ドット数だと考えるのはPCの液晶画面などをイメージしてるからこそなんだろうけど、
Java の API等においては、あくまで座標としては平面上の点を指定し、
デバイスがドットに置き換える。
(ちなみに、プリンタに draw する場合は座標幅なんかよりももっと緻密に描かれる)

つまり x方向0ドット目,y方向0ドット目の、ドットを表す四角形の、
左端上端が平面座標上の (0,0)、右端下端が平面座標上の (1,1) に相当する。
平面座標上の(16,16) に相当するのは dx+16ドット目の左端上端。
dx+15ドット目の左端では幅が足らん。

方眼紙の線のところに平面座標、線と線のちょうど真中にドット座標を書いて数えてごらん。

76 :デフォルトの名無しさん:2010/11/26(金) 00:02:16
あなたに答える人はいません

77 :デフォルトの名無しさん:2010/11/26(金) 00:08:12
>>75
詳しくありがとうございます

78 :デフォルトの名無しさん:2010/11/27(土) 02:49:08
液晶とプリンタで見た目変わるってのもあり得るのか。
真円描いたのに楕円に成ってたりとか。

79 :デフォルトの名無しさん:2010/11/27(土) 09:20:37
既存のライブラリから、必要最小限な部分だけを抜粋したいんだけど、
実行時に、使用されたクラスやメソッドのみを抽出する方法はないですか?

80 :デフォルトの名無しさん:2010/11/27(土) 14:30:47
-verbose:class とか

81 :デフォルトの名無しさん:2010/11/27(土) 18:57:23
独習Javaサーバサイド編ってどうですか?
Servlet関連でいい本ありませんか?

82 :デフォルトの名無しさん:2010/11/28(日) 00:47:12
勉強でJava+MySQLのDBアプリを作成しているのですが、
実際の業務でJava+MySQLの組み合わせで開発することは
あるのでしょうか?
Java+OracleやPHP+MySQLは多いと思っていますが。


83 :デフォルトの名無しさん:2010/11/28(日) 00:48:34
多いと思っていますね

84 :デフォルトの名無しさん:2010/11/28(日) 03:18:30
mysqlで運用しちゃう様な所は金がないからねえ。
vb.net+mdbとかvb.net+sqlserverで済ませちゃうかも。

85 :デフォルトの名無しさん:2010/11/28(日) 11:54:55
JavaってTomcatのひと通りのこと学んだ後はなに勉強すりゃいいの?

86 :デフォルトの名無しさん:2010/11/28(日) 13:40:40
Java(TM)6update 変な消し方したらインストールエラーが出てインストール
出来ない

87 :デフォルトの名無しさん:2010/11/29(月) 12:35:39
JPAのPersistence.creatEntityManager(name)で詰まった
WEB-INF/classes/META-INF/persistence.xmlがどうしても見つからない

なにか直接指定するような方法ない?

88 :デフォルトの名無しさん:2010/11/29(月) 16:14:22
「クリックした座標のRGB値を読み込む」
というプログラムを作成しています

なにか良い方法はありますでしょうか?

89 :デフォルトの名無しさん:2010/11/29(月) 17:11:34
new Runnable() { public void run() { foo; } }
インスタンス生成式にくっついているブロックは何ですか?
初期化でしょか?
だするとこれはランタイムでメソッドをオーバーライドということなのでしょうか?


90 :デフォルトの名無しさん:2010/11/29(月) 17:14:11
せめてコンパイルエラーにならないサンプルコード持って来い

91 :デフォルトの名無しさん:2010/11/29(月) 18:10:33
>>88
「クリックした座標」が自分のウィンドウ内かそうでないかによって答えが異なる

>>89
匿名内部クラス

92 :デフォルトの名無しさん:2010/11/29(月) 21:03:15
>>91

>>88です

自分のウインドウ内のスクリーン座標を取得し
その座標のRGB値を読み込むというものです

例えば、bmp画像を画面に表示させて、その画像をクリックするとRGB値が得られる
というものです

言葉足らずですみません

93 :デフォルトの名無しさん:2010/11/29(月) 21:12:08
「クリックした座標のRGB値を読み込む」なんて簡単だけど、
全部ここに書けるほど簡単ではない

94 :デフォルトの名無しさん:2010/11/29(月) 21:30:17
>>92
public class MyComponent extends JComponent implements MouseListener {
public static void main(String[] args) throws IOException {
JFrame frame = new JFrame("test");
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(new MyComponent(), BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
private BufferedImage img;
public MyComponent() throws IOException {
img = ImageIO.read(getClass().getResource("unagi.bmp"));
setPreferredSize(new Dimension(img.getWidth(), img.getHeight()));
addMouseListener(this);
}
public void paint(Graphics g) {
g.drawImage(img, 0, 0, this);
}
public void mousePressed(MouseEvent ev) {
int argb = img.getRGB(ev.getX(), ev.getY());
System.out.println(Integer.toHexString(argb));
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}

うなぎ画像でテスト済み

95 :デフォルトの名無しさん:2010/11/29(月) 21:54:04
>>94

ありがとうございます。
非常に参考になりました。

ただ、コンパイルをした際に
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(ImageIO.java:1362)
at MyComponent.<init>(MyComponent.java:38)
at MyComponent.main(MyComponent.java:28)

とのエラーが出ました。
読み取りたい画像がないという内容だとは思うのですが
これはどのようなエラーなのでしょうか?

38行目は
img = ImageIO.read(getClass().getResource("test..bmp"));を行っております

ファイルの名前は自分が表示させたい「test.bmp」に変え
test.bmp自体は、MyComponent.javaがあるファイルと同じ所
さらにMyComponent.javaがあるフォルダの1つ上にも置いてあります

96 :デフォルトの名無しさん:2010/11/29(月) 21:55:51
>>95

ただしくは
img = ImageIO.read(getClass().getResource("test.bmp"));
です

ドットが2つになってました
すみません

97 :デフォルトの名無しさん:2010/11/29(月) 22:22:42
>>96
class ファイルと同じところに入れて下さい

Eclipse 使ってる場合は java ファイルと同じ場所でいいです
にも関わらずちゃんと動かないときは設定が悪いのかも

98 :デフォルトの名無しさん:2010/11/29(月) 22:57:27
>>97

ありがとうございます
無事表示できました

r,g,b成分をそれぞれ表示させる方法はありますでしょうか?

r = 255
g = 255
b = 255

などです

99 :デフォルトの名無しさん:2010/11/29(月) 23:07:54
糞の分際で調子に乗るな

100 :デフォルトの名無しさん:2010/11/30(火) 00:05:05
>>98
>r,g,b成分をそれぞれ表示させる方法はありますでしょうか?

あるよ

101 :デフォルトの名無しさん:2010/11/30(火) 01:22:06
適当に国旗ででも試してみりゃ分かるでしょうに

102 :デフォルトの名無しさん:2010/11/30(火) 09:17:57
C/S型ではなく1:1で通信するテキストチャットを作りたいと考えています
ルータに繋がれている3台のPCでそれぞれ起動しているクライアントA・B・CのうちAにだけメッセージを送りたい場合は
どのような処理手順・通信手順を行う必要があるのでしょうか?
NAT越えというものを実装しなければいけないのですか?

103 :デフォルトの名無しさん:2010/11/30(火) 12:46:19
ルータに繋がれている3台って、どういう構成?
クライアント間の通信がルータを経由するかしないかが問題なんだが
ルータにケーブル指して3台繋いでますってんなら単なるHub

104 :デフォルトの名無しさん:2010/11/30(火) 13:27:59
>>102
Aにサーバを立ててメッセージを受け取る

105 :デフォルトの名無しさん:2010/11/30(火) 14:32:25
マウスの座標取得で
public void mouseMoved()
のような割り込み以外の取得方法ないですか?
割り込みだと負担が大きくなるので。
それかこの割り込みを一時的に無効にする方法ありますか?

106 :デフォルトの名無しさん:2010/11/30(火) 14:35:11
>>102
A・B・Cがそれぞれサーバを立て同時にクライアントでもある構成
メッセージの中にあて先情報も組み込んで UDP でばらまくのもよし

107 :デフォルトの名無しさん:2010/11/30(火) 14:42:12
>>105
前者
public void mouseMoved(MouseEvent ev) {
 log.setLastPoint(ev.getPoint());
}

private class Log implements Runnable {
 private Point lastPoint;
 public void setLastPoint(Point p) {
  lastPoint = p;
 }
 public void run() {
  while (true) {
   //1秒間に最大10回しか処理しないったらしない
   //もしくは Timer 使う
   Thread.sleep(100);
  }
}
}

後者
public void mouseMoved(MouseEvent ev) {
 if (disabled) return;
}

108 :デフォルトの名無しさん:2010/11/30(火) 14:47:36
>>105
リスナーを remove すればもう飛んでこなくなるよ

109 :デフォルトの名無しさん:2010/11/30(火) 14:55:00
>>107-108
removeですね やってみますありがとう。

110 :デフォルトの名無しさん:2010/11/30(火) 18:07:49
Servlet本でオススメ教えろ

111 :デフォルトの名無しさん:2010/11/30(火) 18:09:32
サーブレットだけか、おまけも込みか

112 :デフォルトの名無しさん:2010/11/30(火) 18:11:15
だけでもJSPやらTomcatが付いててもどっちでもいい

113 :デフォルトの名無しさん:2010/11/30(火) 18:21:23
もうちょっとしぼれハゲ

114 :デフォルトの名無しさん:2010/11/30(火) 19:12:27
Tomcatに対応している以下のデータベースのシェアってどうなってますか?

* Apache Derby
* Oracle
* Sybase
* DB2
* SQLServer
* Postgresql
* MySQL
* Axion
* HSQL



115 :デフォルトの名無しさん:2010/11/30(火) 19:33:58
不明です。

116 :デフォルトの名無しさん:2010/11/30(火) 23:52:45
>>114
何を持ってシェアとするの?
Android流行ればSQL系じゃね?

117 :デフォルトの名無しさん:2010/12/02(木) 16:00:06
public class ゲーセン{
public static void main(String[] args){
int i;
for(i=1; i<11; i++){
System.out.println(i+"コイン");
}
if(i % 3 ==0){
System.out.println(i+"コイン"+" "+"クリア!");
}
System.out.println("終了!");
}
}


どこが間違ってますか?
思うような結果にならないのです。。

118 :デフォルトの名無しさん:2010/12/02(木) 16:00:48
public class game

です。申し訳ない

119 :デフォルトの名無しさん:2010/12/02(木) 16:01:37
訂正の訂正・・・
public class Game

です

120 :デフォルトの名無しさん:2010/12/02(木) 16:06:49
専門学校ってJAVAやるとこがほとんどだと思うけど、2年次って具体的に何やってんの?

121 :デフォルトの名無しさん:2010/12/02(木) 16:17:33
>どこが間違ってますか?
質問の仕方

122 :デフォルトの名無しさん:2010/12/02(木) 16:26:29
専門ってC#はやんないの?

123 :デフォルトの名無しさん:2010/12/02(木) 16:32:31
>>117
for文 の { 〜 } の範囲を見直してみるといいかもね

124 :デフォルトの名無しさん:2010/12/02(木) 16:59:24
>>123
解けました。ありがとうございます

125 :デフォルトの名無しさん:2010/12/02(木) 17:51:59
>>122
わざわざやんなくても、JavaやってC#できないんだったら
それはJavaもできてないってこと

126 :デフォルトの名無しさん:2010/12/02(木) 18:26:54
>>125
あっそ

127 :デフォルトの名無しさん:2010/12/02(木) 20:42:35
具体的にJavaで何を開発しているか教えてくれ
Webアプリですか?
アンドロイドアプリ?
その他?(何々をか書いてくれ)
集計したい

128 :デフォルトの名無しさん:2010/12/02(木) 21:33:48
javaでブラウザの閲覧履歴を取得するにはどうすればいいですか?
osはlinuxでブラウザはfirefoxを使用してます。
具体的なサンプルソースなどがあればありがたいんですが。。。

129 :デフォルトの名無しさん:2010/12/02(木) 22:34:37
おまんこ

130 :デフォルトの名無しさん:2010/12/02(木) 22:35:05
Javaアプレットには履歴を取得するようなAPIはないぜ

131 :デフォルトの名無しさん:2010/12/03(金) 02:02:09
Java2対応していない入門書を使った場合、どういう部分が問題になりますか?
ttp://yshibata.blog.so-net.ne.jp/2009-08-15-1
をざっと読んだ限りだと、入門レベルなら知らなくても問題ない箇所が拡張されてるような機がするんですが・・・

132 :デフォルトの名無しさん:2010/12/03(金) 04:59:58
Java5以降を使うとJava1.4にはもう戻る気になれない。
ジェネリクス、Enum、ボクシングなしでコーディングとか、もはやマゾいとかいうレベルを超えてる。

「入門レベル」が「プログラミング自体の初心者」と言う意味ならそれほど意識しなくてもいいかもしれんが。

それとJava2 ってバージョン1.2からだろ。

133 :デフォルトの名無しさん:2010/12/03(金) 16:24:38
>>132
Java2って、Java1.5以降のことを言うのだと思っていました。
入門レベルというのは、プログラミング未経験者という意味です。

134 :デフォルトの名無しさん:2010/12/03(金) 16:28:03
だからどうした?
死ねよ糞ゴミ

135 :デフォルトの名無しさん:2010/12/03(金) 16:35:15
1.5以降って1.5もはいるだろ?

136 :デフォルトの名無しさん:2010/12/03(金) 17:51:53
java 1.0 と1.1 があって、
java1.2以降をjava2と言うんだけど、
>>131 の本ではjava 1.5 のことを Java2 Standard Edition 5.0 と呼んでいる。
ところが、1.5で大きく文法が変わったため、ここからは普通はJava5と呼ぶ。
で、java5でのさまざまな不具合を取ったのがJava6なので、常識で考えたらJava6を勉強すべき。
ただ、Java5とJava6の違いは入門書レベルだとあまり変わらないので、Java5以降の入門書を遣うべし。

137 :デフォルトの名無しさん:2010/12/03(金) 19:46:00
JAVAのコードに対応してる多機能メモ帳みたいなエディタを教えてくれ
フリーので頼む

138 :デフォルトの名無しさん:2010/12/03(金) 20:08:25
俺はTeraPadが大好き

139 :デフォルトの名無しさん:2010/12/03(金) 21:29:14
サクラエディタでええがな

140 :デフォルトの名無しさん:2010/12/03(金) 21:35:17
あっそ

141 :デフォルトの名無しさん:2010/12/04(土) 02:50:38
>>136
わかりました。いろいろ誤解していたようです。
どうもありがとうございました。

142 :デフォルトの名無しさん:2010/12/04(土) 17:08:34
カレンダーが作りたいんですが
msflexgridみたいなコントロールってあったりしますか?
Javaだと、GridLayoutとかで頑張るのでしょうか

143 :デフォルトの名無しさん:2010/12/04(土) 17:20:05
WHiNNYオススメ
軽いし、キーマクロ使えるし。
http://www.altech-ads.com/product/10002451.htm

144 :デフォルトの名無しさん:2010/12/04(土) 17:26:31
>>142
JTableはどうだろうか

145 :デフォルトの名無しさん:2010/12/04(土) 17:32:16
JTable良さそうですね、調べてみます、ありがとう

146 :デフォルトの名無しさん:2010/12/04(土) 18:50:44
T arにたいしてar.lengthやar[i][j]みたいに出来ると嬉しいのですが
二次元配列の型制約を与えることって出来ますか?

147 :146:2010/12/04(土) 20:31:51
継承が無意味で配列でもないけど自己解決
class C<U,T extends ArrayList<ArrayList<U> > >

148 :デフォルトの名無しさん:2010/12/04(土) 21:29:28
今日からjavaを勉強しようと思い、独習を買い、さっそく取り組もうとしたのですが
プログラムをコンパイルしたら「Example1の書き込み中にエラーが発生しました。Example1.class(アクセスが拒否されました。)」
というエラーが出ました。
これはどうしたら解決できるのでしょうか?おねがいします

149 :デフォルトの名無しさん:2010/12/04(土) 22:50:36
単に書き込み禁止でコンパイル結果を出力できないだけなんじゃないか
CD-ROMの上で実行してるとか

150 :デフォルトの名無しさん:2010/12/04(土) 23:54:04
実行してるとかですね

151 :デフォルトの名無しさん:2010/12/05(日) 00:42:21
まあ実行してるとかですね

152 :デフォルトの名無しさん:2010/12/06(月) 12:52:06
やはり実行してるとかですか

153 :デフォルトの名無しさん:2010/12/06(月) 14:38:00
お前ら楽しそうだな

154 :デフォルトの名無しさん:2010/12/06(月) 17:39:43
Sample.java
public class Sample<E> {
E i;
Sample(E i){
this.i=i;
}
@Override
public String toString() {
return i;
}
}
SampleTester.java
public class SampleTester {
public static void main(String[] args) {
int i=5;
Sample t=new Sample(i);
System.out.println(t);
String s="2ch";
Sample t2=new Sample(s);
System.out.println(t2);
}
}
上記のプログラムのようにSampleの方でtoStringをオーバーライドして出力しようとしているのですが
エラーが出ます。どうすればいいのでしょうか


155 :デフォルトの名無しさん:2010/12/06(月) 17:46:27
E が String かどうかはわからないから、わからない i をそのまま String として返すことはできないので、
return i.toString();
または
return String.valueOf(i);
もしくはダサイけど
return "" + i;

156 :デフォルトの名無しさん:2010/12/06(月) 18:43:17
javaで以下のライセンスのライブラリを使用しています。
 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1

↓で調べてみました。
http://sourceforge.jp/projects/opensource/wiki/licenses%2FGNU_Library_or_Lesser_General_Public_License

その義務は以下の通りと読み取ったのですが、曖昧な表現が多く合っているかわかりませんでした。
・配布時にライセンスの本文を含める
・ソースコードがLGPL下であればソースコードを含めて配布する
・該当部分(ソースコードまたはバイナリ)がLGPL下にあることを明示する
・著作権表示機能を持つ場合、LGPLのライブラリの著作権表示を含める
・バイナリのリバースエンジニアリングと改変を許可する
・スタティックリンクの場合、再リンクに必要なファイルを添付する


このLGPLライセンスを商用製品で使用する場合、商用製品のソースをオープンにしなければいけないのでしょうか?
マニュアルにLGPLライセンスのライブラリを使用してますと明記するくらいでは駄目なのでしょうか?

157 :デフォルトの名無しさん:2010/12/06(月) 18:53:07
ライセンスを理解できないならgpl,lgplは使ってはいけない。
どうしても必要なら怠けないで自分で再実装するしかない。

158 :デフォルトの名無しさん:2010/12/06(月) 18:57:05
>>155
ありがとうございました。
""+iとする方法はおもいついていたのですが、
さすがにスマートじゃなく別な方法ないかなーと思い聞いた次第です。
ありがとうございました

159 :デフォルトの名無しさん:2010/12/06(月) 19:03:18
いえいえ

160 :デフォルトの名無しさん:2010/12/06(月) 19:14:04
jdkアップデートしようと思ったら
javacが存在しないコマンドうんたらでコンパイルできなくなった

\(^o^)/

161 :デフォルトの名無しさん:2010/12/06(月) 19:50:07
URLをgetContentTypeするとtext/html; charset=utf-8のように取れるとおもうのですが、
サイトによってはtext/htmlまでしかとれないのですが、どうすれば全部取れますか?


162 :デフォルトの名無しさん:2010/12/06(月) 20:10:41
それで全部です
サイト側の好みで charset を付けたり付けなかったりできますので、そのサイト管理者が charset を付けないのが好みだったら、付きません

163 :デフォルトの名無しさん:2010/12/06(月) 21:00:24
Stackとvectorの違いって何?

164 :デフォルトの名無しさん:2010/12/06(月) 21:28:29
Stack は push とか pop とかできる
Vector はできない

165 :デフォルトの名無しさん:2010/12/07(火) 12:57:31
add/removeじゃなくてpush/popと書きたいから継承して別名のメソッドを追加してるだけ
実質的な違いはない

166 :デフォルトの名無しさん:2010/12/07(火) 15:46:33
Dateクラスではタイムゾーンの情報がないのでカレンダーを使えということらしいのですが
Date/Timeに相当するクラスを自作するならば
それぞれが内部にカレンダーを持つ必要があるわけですよね
なんかメモリが勿体ないように思うんですが他にやりようはありますか

167 :デフォルトの名無しさん:2010/12/07(火) 15:49:30
何を言っているのかわからん。
暦の変換が必要でないなら、好きに作れるだろ。

168 :デフォルトの名無しさん:2010/12/07(火) 16:04:55
Jakarta Commons NETを使用して、
FTPサーバからファイルを受信してストリームに
書き出しているんですが、ダウンロードせずに
直接ファイルを開くことはできますか?


169 :デフォルトの名無しさん:2010/12/07(火) 17:41:25
初歩的な質問なんですがpanelを貼ってマウスの座標を取得しようとしたのですが
タイトルバーや周りの枠の部分だけずれてるようでグラフィックの座標を直接取れませんでした。
上左からどれだけずれているか取得したいのですがどのような関数を使えばいいですか?

170 :デフォルトの名無しさん:2010/12/07(火) 17:50:02
HashMapとHashSetの違いってなに?

171 :デフォルトの名無しさん:2010/12/07(火) 17:50:53
MapとSetのちがい。
宣言見ればすぐ気づくだろ。

172 :デフォルトの名無しさん:2010/12/07(火) 17:56:01
MapとSetってputかaddの違い以外に何かあるの?
ArrayListとLinkedListの違いみたいに内部構造からくる各処理速度の問題?

173 :デフォルトの名無しさん:2010/12/07(火) 18:00:17
Set
重複要素のないコレクションです。

Map
キーを値にマッピングするオブジェクトです。

174 :デフォルトの名無しさん:2010/12/07(火) 18:09:19
ひどい勘違いをしてた

175 :デフォルトの名無しさん:2010/12/07(火) 18:15:07
じゃあvectorとSetの違いは?

176 :デフォルトの名無しさん:2010/12/07(火) 18:17:59
俺MapとHashMapの違いもわかってないやw

177 :デフォルトの名無しさん:2010/12/07(火) 18:19:14
>>175
VectorとLinkedListとかArrayListじゃなくて???
順序無いのがSetとでも答えれば満足?

178 :デフォルトの名無しさん:2010/12/07(火) 18:22:17
List系 ArrayList 配列を扱います。
LinkedList 配列を扱います。挿入・削除が高速です。
Vector 配列を扱います。パフォーマンスが悪いため現在ではあまり推奨されない古いクラスです。
Set系 HashSet 値の重複を許さない順不同の要素集合を扱います。
TreeSet 値の重複を許さないソートされたの要素集合を扱います。
Map系 HashMap キーと値の組からなる要素の集合を扱います。
TreeMap キーと値の組からなる要素の集合を扱います。キーでソートされています。

179 :デフォルトの名無しさん:2010/12/07(火) 22:09:43
Eclipseでプラグインをインストールする時って
ウィルス入ったりします?

180 :デフォルトの名無しさん:2010/12/07(火) 22:29:25
世の中には絶対ありませんなんてことは絶対ありません

181 :デフォルトの名無しさん:2010/12/07(火) 23:01:04
そか、じゃあプラグインインストールしない方がいいかな
やっぱテキストエディタ使ったほうがいいな
Eclipseアンインストールするか・・・

182 :デフォルトの名無しさん:2010/12/07(火) 23:07:24
そのテキストエディタにもウィルスが入ってるか入ってないかわからんぞ

183 :デフォルトの名無しさん:2010/12/07(火) 23:52:06
ソースも眺めてコンパイルしてやったから大丈夫そう

184 :デフォルトの名無しさん:2010/12/08(水) 06:57:22
LinuxでJVMを常駐させるような仕組みを簡単に作れるライブラリとかありませんか?

Tomcatみたいにクライアントからの問い合わせを受け付けるようなデーモンを作りたいのですが
Webコンテナ(というかサーバ)を建てるよりもっとコンパクトな方法はないのん・・?と思いまして。

もちろん、いちいちJVMを立ち上げるような作りなら実装は簡単なのですが。

185 :デフォルトの名無しさん:2010/12/08(水) 08:47:22
http://commons.apache.org/daemon/

186 :デフォルトの名無しさん:2010/12/08(水) 17:48:15
javaでリストボックスに、一度設定したデータを保存して呼び出せるように
したいのですがどうやればいいのでしょうか。

187 :デフォルトの名無しさん:2010/12/08(水) 17:53:54
そのデータを FileOutputStream 等を使ってファイルに保存してください

188 :デフォルトの名無しさん:2010/12/09(木) 00:13:11
うんこしたい

189 :デフォルトの名無しさん:2010/12/09(木) 11:32:31
Javaでメモリリークしているところを探す方法って
どういうものがあるでしょうか?

自分で考えたのは
関数の最初と最後で
System.gc()をして空きメモリをログファイルに出力する
っていうのを全関数に埋め込んで
ログをチェックするっていうのなんですが
どうでしょうか?

190 :デフォルトの名無しさん:2010/12/09(木) 11:47:33
visualvm を使ってみるとか

191 :デフォルトの名無しさん:2010/12/09(木) 13:06:27
p = Runtime.exec(cmd);
でpから標準出力のストリーム取得してるんだけど、
どうもコマンドのプロセスが途中で止まってる。
バッファがいっぱいになるとバッファ空くまで待っちゃうから
別プロセスで取得するってのはわかるんだけど、
ほんとにそこまでしなきゃ駄目なの?

コマンド渡せば終了コードも標準出力も簡単に返してくれるような
お手軽ライブラリは公開されてないですかね?

192 :デフォルトの名無しさん:2010/12/09(木) 13:20:29
その標準出力を読み出せばいいだけではないのですかね?
数行で済むようなコードだと思いますが
「ほんとにそこまでしなきゃ」っていうほどのことではないかと

193 :デフォルトの名無しさん:2010/12/09(木) 15:42:50
ヲレは困らないから好きにしたらいい。

194 :デフォルトの名無しさん:2010/12/09(木) 17:32:38
queueってプッシュとポップじゃなくてputとpollだったっけ?

195 :デフォルトの名無しさん:2010/12/09(木) 18:16:11
画像を表示し画像クリックで次の画像を表示する様にしたいです。
Javascriptは正直初めてですが、ググりながら以下の様にしたのですが
Firefox ですと最初の画像が表示されたまま次へ移動しません。またIE8
だと最初の画像すら表示しません。どなたか回答をお願い申し上げます。

表示したい画像はhtmlと同じフォルダにあるimg01.gif〜img16.gifです。

<html>
<head>
<script language="JavaScript"><!--
num = 0;
function change()
{
num++;
num %= 16;
document.MyIMG.src = "img0"+num+".gif;
}
// --></script>
</head>
<body>
<a href="javaScript:change()">
<img src="img01.gif" name="img" border="0"><br>
</a>
</body>
</html>


196 :デフォルトの名無しさん:2010/12/09(木) 18:18:05
ぐは!誤爆しました。失礼します。

197 :デフォルトの名無しさん:2010/12/09(木) 18:37:35
>>195
num++;
num %= 16;
document.MyIMGsrc="img0"+num+".gif";
}

最後にダブルクォーテーションが抜けてる
FFは勝手に補正読みする
スレ違い死ね

198 :デフォルトの名無しさん:2010/12/09(木) 19:02:32
>>191
pの標準エラー出力がパンクしてるんじゃないか?
ProcessBuilder使えば標準出力と標準エラー出力をひとつにまとめられたはず。

199 :デフォルトの名無しさん:2010/12/09(木) 19:29:38
>>191
pの標準エラー出力がパンクしてるんじゃないか?


200 :デフォルトの名無しさん:2010/12/09(木) 19:58:34
pの標準エラー出力パンクでしょうね?

201 :デフォルトの名無しさん:2010/12/09(木) 20:25:15
import java.io.*;

public class ProcessRunner {

  public static String execute(String cmd) throws IOException, InterruptedException {
    Process proc = Runtime.getRuntime().exec(cmd);
    InputStream stdout = proc.getInputStream();
    InputStream stderr = proc.getErrorStream();
    byte[] iobuf = new byte[1024];
    ByteArrayOutputStream bout = new ByteArrayOutputStream(8192);
    while ( isAlive(proc) ) {
      if ( stdout.available() != 0 ) {
        int len = stdout.read(iobuf);
        if ( len == -1 ) break;
        bout.write(iobuf, 0, len);
      }else if ( stderr.available() > 0 ) {
        stderr.read(iobuf);
      }else {
        Thread.sleep(15L);
      }
    }
    return new String(bout.toByteArray());
  }
  private static boolean isAlive(Process proc) {
    try {
      proc.exitValue();
    }catch ( IllegalThreadStateException e ) { return true; }
    return false;
  }
}

202 :デフォルトの名無しさん:2010/12/09(木) 21:39:54
>>201
2010年抱かれたい男GP優勝!!!アッーーー!

203 :デフォルトの名無しさん:2010/12/09(木) 21:42:19
>>198
エラーは全く出てないはず...
仮に出ててもちょろのはず...

204 :デフォルトの名無しさん:2010/12/09(木) 22:57:40
はずではどうともいえないからProcessBuilderを使ったコードを試すべきでは。

205 :デフォルトの名無しさん:2010/12/09(木) 23:02:03
いやです

206 :デフォルトの名無しさん:2010/12/09(木) 23:07:35
「出ててもちょろのはず」ってなんのことですか?

207 :デフォルトの名無しさん:2010/12/10(金) 05:20:40
アホばっか

208 :デフォルトの名無しさん:2010/12/10(金) 05:53:33
>>204
呼ぶコマンド自体は"dir"だけみたいなものなので、
仮にエラー出ても数文字...とりあえず試しはします。
あざす!

209 :デフォルトの名無しさん:2010/12/10(金) 08:54:06
WebアプリをJSPだけで作るのってまずいでしょうか?
なんかデプロイがファイルコピーだけで済むのって
魅力的なんですが。

210 :デフォルトの名無しさん:2010/12/10(金) 10:56:55
>>209
趣味でやる個人サイトなら好きにすればいいんじゃね。
俺が客なら納品物がそれだったら二度と連絡よこすなって言うけど。

211 :デフォルトの名無しさん:2010/12/10(金) 11:02:03
弱小で一括請負なら、
画面文言を1文字直すだけでも全ロジックの試験エビデンス要求して虐めてみるのも面白いかもなw

212 :デフォルトの名無しさん:2010/12/10(金) 11:04:39
>>211
でもそれってその分の費用貰いますよ

213 :デフォルトの名無しさん:2010/12/10(金) 11:16:52
>>212
契約内容によるだろ。

214 :デフォルトの名無しさん:2010/12/10(金) 11:55:21
弱小請負がそんな契約しないよw

215 :191:2010/12/10(金) 13:01:15
>>201
while ( isAlive(proc) ) {
だとタイミング悪いと最後が切れちゃうようなので、
while ( isAlive(proc) || stdout.available() != 0 ) {
にして使わせていただくお。
本当にありがd(癶∀癶✿)

216 :191:2010/12/10(金) 14:31:45
いや、やっぱ駄目だ。
eclipseからTomcat起動だとイケるんだけどな。
サービス起動してるTomcatにデプロイした場合は駄目。
同様にバッファ空き待ちで待ち続けてる。
そういえば最初もそうだったな...。

Tomcat側のconfの違いだろうけど本番用confイジるわけにはいかない環境だから、
やっぱThread継承するなりして別プロセスから吸い出してあげないと駄目。
標準出力抜くだけなのにめんどいなぁ。

217 :デフォルトの名無しさん:2010/12/10(金) 16:54:53
java初心者です。他の言語は結構触ってます。

javaではポインタ渡しがないので、ある関数に渡した引数を
関数側で変更する方法として参照渡しがありますよね
これは自前のクラスや配列なら、ポインタと同様に使えるのですが
どうやらIntegerなどのプリミティブのラッパー系はimmutableのため
使えないようです。(ちょっとここもあいまい)

でも実際に

boolean func1(Integer a){
a = 0;
}

boolean func2(Integer a,Integer b){
a = 1;
b = 10;
}

のように戻り値としてbooleanで統一、引数側でなんとかしたい
場合があると思います。
このような場合、javaではどのように書けばよいのでしょうか?

Integerを自作のMyIntegerクラスなどに変えて呼び出し先変更用の
クラスを引数として渡す、ということは考えたのですが、
演算子のオーバーロードもできないし、いろいろ不都合もあるので
どうしようか悩んでます。



218 :デフォルトの名無しさん:2010/12/10(金) 17:01:18
outを使う

219 :デフォルトの名無しさん:2010/12/10(金) 17:04:18
javaに引数に指定する out はあるのでしょうか?
C#ならありますが、、、

220 :デフォルトの名無しさん:2010/12/10(金) 17:11:56
つまりJavaは糞ってことだ

221 :デフォルトの名無しさん:2010/12/10(金) 17:12:10
Integerじゃなくてintを使えばいい。

222 :デフォルトの名無しさん:2010/12/10(金) 17:16:33
intは完璧な値渡しだから呼び出し先の関数では
いじっても、呼び出し元の変数は変わりませんよね

コーディング構想をそもそも代えないとダメなのかな?

223 :デフォルトの名無しさん:2010/12/10(金) 17:27:50
まあMyIntegerしかないだろうね

224 :デフォルトの名無しさん:2010/12/10(金) 17:37:53
やっぱりMyIntegerですかね、、、

225 :デフォルトの名無しさん:2010/12/10(金) 17:49:55
>>217
int[]渡すとか。

226 :デフォルトの名無しさん:2010/12/10(金) 17:51:29
Javaには参照渡しはない。全部値渡し

227 :デフォルトの名無しさん:2010/12/10(金) 18:13:24
わざわざMyIntegerなんて作らんでもListにでも詰めて返せば済むだろ...

228 :デフォルトの名無しさん:2010/12/10(金) 18:16:54
参照渡しっつってもオブジェクトの場合、
一部の特殊なクラス(Integerとか)を除いては、
内部的にはポインタ渡しと同様だが。

229 :デフォルトの名無しさん:2010/12/10(金) 19:35:16
>>217
Javaではプリミティブ型は値渡し、それ以外(何かのクラスのインスタンス)
はポインタの値渡し。引数で受け取ったオブジェクトが持っている、
内部状態を更新するメソッドを呼ぶと、呼び出し元から見えるオブジェクトの
内容が変わるが、「引数 = new なんとか();」のように変数が参照している。
ちなみにJavaでは配列は全部クラスと一種とみなされる。だからbyte[]もchar[]も
オブジェクトであり、メソッドの引数に渡した瞬間に、配列のコピーが作られる
わけではない。
オブジェクトを摩り替えても呼び出し元に作用しない。

230 :デフォルトの名無しさん:2010/12/10(金) 19:36:53
というか参照渡しとポインタ自体を理解してないようだ。

231 :デフォルトの名無しさん:2010/12/10(金) 19:39:18
「参照渡し」と「参照の値渡し」は区別するべき

232 :デフォルトの名無しさん:2010/12/10(金) 19:41:51
>>217
おまえはじゃ無理

233 :デフォルトの名無しさん:2010/12/10(金) 19:43:48
>>229
訂正。
「引数 = new なんとか();」のように変数が参照しているオブジェクトを別のインスタンス
に向けても、呼び出し元が参照しているオブジェクトのインスタンスは昔のまま。
したがって、
public static void main(String[] args) {
java.lang.Integer ival = new Integer(1);
sub1(ival);
System.out.println(ival.toString());
}
private static void sub1(Integer anValue) {
anValue = new Integer(2);
}

上のコードを実行すると、コンソールに「1」が表示される。引数で受け取った
anValueが参照していたIntegerのインスタンスは、sub1メソッド内では新しい「2」オブジェクトを
参照するように摩り替わっているが、だからといって呼び出し元が参照していた「1」が「2」を
参照するように書き換わるわけではない。

234 :デフォルトの名無しさん:2010/12/10(金) 19:43:55
>>239,231
javalangならそれで依存はないけど、c99的にはツッコミどころが多分にある

235 :デフォルトの名無しさん:2010/12/10(金) 19:44:49
>>229,231
javalangならそれで異論はないけど、c99的にはツッコミどころが多分にある。

236 :デフォルトの名無しさん:2010/12/10(金) 19:46:45
>>233続き
次に、更新可能なオブジェクトのメンバーを変更するケース。
public static void main(String[] args) {
java.util.ArrayList<Integer> list = new java.util.ArrayList<Integer>();
list.add(Integer.valueOf(1));
list.add(Integer.valueOf(2));
sub2(list);
for ( int i = 0; i < list.size(); i++ ) { System.out.println(list.get(i)); }
}
private static void sub2(java.util.ArrayList<Integer> list) {
list.add(Integer.valueOf(3));
}

上のコードを実行すると、「1\n2\n3\n」が表示される。引数で受け取った
listの参照に対して「3」という値を持つIntegerを追加したのでこのようになる。
さらにおまけで、sub2を次のように書き換えると、「1\n2\n」と表示される。
private static void sub2(java.util.ArrayList<Integer> list) {
list = new java.util.ArrayList<Integer>(); // <=この行追加。
list.add(Integer.valueOf(3));
}

237 :デフォルトの名無しさん:2010/12/10(金) 19:50:02
長文乙w

238 :デフォルトの名無しさん:2010/12/10(金) 19:50:08
MyClass {
int a,b
}
かint[]で良いだろ

239 :デフォルトの名無しさん:2010/12/10(金) 23:33:17
すごく初歩的な事で申し訳ないのですが
先ほどpleiadesを導入したんですがホバーが英語のままで日本語化できません
googleで解決法を検索し、試して見たのですが解決できず未だにホバーは英語のままです
日本語化する方法があったら教えてください

240 :デフォルトの名無しさん:2010/12/11(土) 08:44:58
みなさんやっぱりそれなりに対処してるんですね

結局、

MyInteger {
public int value;
}

にしました。


他のオブジェクト同様にIntegerとかに更新メソッドつけてくれれば良い話なんですが、
なんでimmutableなクラス仕様があるのかな?




241 :デフォルトの名無しさん:2010/12/11(土) 08:48:02
死ねよ雑魚

242 :デフォルトの名無しさん:2010/12/11(土) 08:56:32
C言語はポインタが鬼門といわれてるけどこれをちゃんと理解しておかないとやっぱりダメだな。
理解が浅いと何をやってみても今回のように何も出来ない。

243 :デフォルトの名無しさん:2010/12/11(土) 09:10:20
>なんでimmutableなクラス仕様があるのかな?

お前みたいに返り値boolean固定するアホが出ないようにだろうw

244 :デフォルトの名無しさん:2010/12/11(土) 09:16:01
野糞みたいな奴だなおまえはw

245 :デフォルトの名無しさん:2010/12/11(土) 09:57:41
動けばいいんだよ

246 :デフォルトの名無しさん:2010/12/11(土) 11:34:31
戻り値booleanにしない方法も考えたけどね
似たような関数群だからなるべく似たような使い方に
統一したかったんだよね

>242さん
よかったらどんな対処があるか教えてください


247 :デフォルトの名無しさん:2010/12/11(土) 11:57:47
調子に乗るなクズ

248 :デフォルトの名無しさん:2010/12/11(土) 12:04:13
>>246はそもそものシステム設計がクソすぎるんだろうな。

MyInteger持ってこられたらレビューでフルボッコにするよねwww

249 :デフォルトの名無しさん:2010/12/11(土) 12:19:50
>>248
でどんな改善案になるの?

戻り値毎にクラス作るのもめんどくさいし

関数10個あって、それぞれの関数で戻したい値が1個〜10個、
んな場合の設計ってどうします?
戻り値用クラス10個作って、null or クラスで返す?

250 :デフォルトの名無しさん:2010/12/11(土) 12:29:02
>>249
248ではないが、ケースによるが配列やコレクションをつかうんじゃね?
というかstaticメソッドとも限らないわけで設計がまずいんじゃね?
設計もまずくないならメソッド毎の戻り値のクラス作ればいいんじゃね?

251 :デフォルトの名無しさん:2010/12/11(土) 12:31:30
調子に乗るなクズ

252 :デフォルトの名無しさん:2010/12/11(土) 12:33:31
>>220

253 :デフォルトの名無しさん:2010/12/11(土) 12:39:40
おまいの設計がエスパーできるやつを待て

254 :デフォルトの名無しさん:2010/12/11(土) 12:52:32
>関数10個あって、それぞれの関数で戻したい値が1個〜10個、

(つд⊂)ゴシゴシ
引数10個のメソッドを作るように読めるぞw

255 :デフォルトの名無しさん:2010/12/11(土) 12:54:57
真の漢ならC++を極めろ

256 :デフォルトの名無しさん:2010/12/11(土) 12:57:42
本物のプ

257 :デフォルトの名無しさん:2010/12/11(土) 13:26:23
俺はMyInteger派だな

258 :デフォルトの名無しさん:2010/12/11(土) 13:30:57
もう秋田

259 :デフォルトの名無しさん:2010/12/11(土) 14:56:27
童貞はすぐ偉そうにするからなぁ

260 :デフォルトの名無しさん:2010/12/11(土) 18:09:58
>>239
Mergedoc使え
Mergedoc でjava 付属のsrc.zipを日本語化して
それを使うようにする

261 :デフォルトの名無しさん:2010/12/11(土) 18:43:42
小数点第4位の切り捨ての問題なんですが

BigDecimal bi = new BigDecimal("0.00392156862745098");
System.out.println(bi);
System.out.println("切り捨て:" + bi.setScale(3, RoundingMode.FLOOR));
double result = bi.setScale(3, RoundingMode.FLOOR).doubleValue();
System.out.println(result);

としたところ

0.00392156862745098
切り捨て:0.003
0.0030

となってしまいます

望みの結果としてはresultが小数第3位までの「0.003」となって欲しいのですが、
少数第4位の「0」が余計です

改善方法または原因はなんでしょうか?


262 :デフォルトの名無しさん:2010/12/11(土) 19:16:20
なんとなく Double.toString のバグくさいけど・・・それはおいといて
doubleValue で double 値に変換する場合、その BigDecimal の値が double として正確に表現できなければ、最も近い double の値になる
つまり近似値でしかない (しょせん double は誤差を含む型だから、小数を正確に表現できるとは思わない方がいい)
正確に第4位切り捨ての値で扱いたければ最初から最後まで BigDecimal のまま扱う
double にした時点で誤差が生じる可能性があるのだから、いったん double にしてから文字列にしたって当然誤差を含むので、
誤差のない文字列を得たいなら BigDecimal から直接 String に変換する

263 :デフォルトの名無しさん:2010/12/11(土) 23:01:36
>254さん
例が悪いですね、すみません
さすがに10個は厳しいですね
どんな理由でも6個くらいが許容限界かな

264 :デフォルトの名無しさん:2010/12/11(土) 23:17:13
>>263
もう来るな死ねよ

265 :デフォルトの名無しさん:2010/12/12(日) 01:55:31
>>249
答えは自明。
暇だからヒントをあげるとね「戻り値には意味があり、型はそれを使うべくして使う」ということ。

じゃあ、MyIntegerの意味はなんだろう、そしてその型を使う理由はなんだろう。
それはシステムのコンポーネントとして存在すべくして存在するのではなく、
「よくわかんないから作ってみた自作Integer」というだけのシステムとして無意味なものだね。

> 関数10個あって、それぞれの関数で戻したい値が1個〜10個、
> んな場合の設計ってどうします?
> 戻り値用クラス10個作って、null or クラスで返す?
オブジェクトにできないほど関連性の薄いまとまってないデータを10個も受け渡すという事が、
そもそもメソッド分けすらまともにできてない何よりの証拠だね。
上記のケースを例に出してくるあたり、どんなレベルかは察しがついちゃう。

一律booleanで返したいってきっと正常/異常を結果で返したいんだろうけど、
だとしたら、そうする必然性(設計思想)はなんだろう?
適切な例外を投げるでは何故だめなのか?
そういうそもそもの部分を考えもしないで「でどんな改善案になるの?」とか言っちゃうからまともに相手にされないの。

といわれても考えようとしない教えて君なら、凡庸な1年目の新人さん未満だな。
以上、もうレスはいらないよ。

266 :デフォルトの名無しさん:2010/12/12(日) 01:58:47
「戻り値には

「パラメータには
に読み替えてくれwww
飲み過ぎワロタww

267 :デフォルトの名無しさん:2010/12/12(日) 02:29:15
>>266
引数が16個以上必要なメソッドとか平気で作るけど、君はクラス設計をしたこともないしそういう世界も知らないでしょう?

268 :デフォルトの名無しさん:2010/12/12(日) 02:36:06
>>265
Graphics.drawImageなんか要求している引数個数は多いけどまったくに適切な設計のメソッドだなあと思うよ。

269 :デフォルトの名無しさん:2010/12/12(日) 02:36:21
やば
引数9個のメソッド作っちまった
あやうく10個に達するところだった
あぶねーあぶねー

なんか、配列渡すのに開始位置と長さもセットにしなきゃいけないのがここ最近の俺の引数増を招く主な原因だな・・・
これは言語仕様が悪いよな
そうだ俺は悪くない

270 :デフォルトの名無しさん:2010/12/12(日) 05:31:57
>>269
あなたのつくるメソッドは、intやStringの引数がとても多そう

271 :デフォルトの名無しさん:2010/12/12(日) 06:10:37
この辺りよくわかってない人ってさ、JVMのコアな話よりも先んじて、シー・シープラプラのポインタが超絶難しくて結局ジャバに逃げて来たってことなんだろうね。

272 :デフォルトの名無しさん:2010/12/12(日) 07:45:41
引数が10個にもなるなら、クラス作れよ

273 :デフォルトの名無しさん:2010/12/12(日) 07:54:38
オブジェクト指向的にはint型ではなくIntegerクラスを使うのが正しいと思うのですが、
なぜいまだに世の中のJavaで書かれたソフトウェアの多くがint型を使っているのでしょうか?
intとIntegerで性能差も無視できるレベルだと思いますが。

274 :デフォルトの名無しさん:2010/12/12(日) 07:56:30
できませんよ

275 :デフォルトの名無しさん:2010/12/12(日) 08:06:28
引数10個くらい普通。100個になったら悩むれべる。

276 :デフォルトの名無しさん:2010/12/12(日) 10:05:50
boolean hoge(int x, int y){}

class hogeclass {
public int x;
public int y;

public boolean hoge() {
return true;
}
}
ってすればいいんだよね?

277 :デフォルトの名無しさん:2010/12/12(日) 12:15:51
>>267
ろくな設計ができないカスしかいない世界のことですね、わかりますww

278 :デフォルトの名無しさん:2010/12/12(日) 12:48:45
日本語でおk

279 :デフォルトの名無しさん:2010/12/12(日) 12:48:49
>>273
Intergerで加算をすると、intと比べるとものすごーく遅い

280 :デフォルトの名無しさん:2010/12/12(日) 16:11:58
for(Integer i; i < 1000; i++)
;

281 :デフォルトの名無しさん:2010/12/12(日) 18:46:00
文字コードUTF8で
改行コード(\r\n)込みで一行が一定バイトを超えている場合
複数行に分けるという処理を書こうとしてるんですが
こういう場合どういう処理を行うのが効率的でしょうか
「あ」は3バイトありますし
substringしてgetBytes("UTF8").lengthを地道にループだと
重そうですし

282 :281:2010/12/12(日) 20:23:39
自己解決。地道にループで対応しました

283 :デフォルトの名無しさん:2010/12/12(日) 21:19:02
ページを開いた時点で、その日の0時から何秒経過したか表示するページを作るにはどうしたらいいのか教えてください。

284 :デフォルトの名無しさん:2010/12/12(日) 21:49:47
Calenderで現在時刻とその日の0時を作って引き算、結果を表示する。

285 :デフォルトの名無しさん:2010/12/12(日) 22:39:12
現在時刻を取得して
時*3600+分*60+秒を表示

286 :デフォルトの名無しさん:2010/12/12(日) 23:40:41
DBに繋ぐ時にJNDIとやらを使えとの指令受けたんだけど
ググってもTomcatとかWebサーバ関連ばっかり。
スタンドアローンで単発起動のJavaオブジェでもJNDIって使用出来るんですか?

287 :デフォルトの名無しさん:2010/12/13(月) 00:03:06
できないよ

288 :デフォルトの名無しさん:2010/12/13(月) 00:35:28
>>286
できるよ


289 :デフォルトの名無しさん:2010/12/13(月) 01:08:37
>>287,288
??

290 :デフォルトの名無しさん:2010/12/13(月) 04:42:40
>>285
ありがとうございました

291 :デフォルトの名無しさん:2010/12/13(月) 09:41:13
できるよ

292 :デフォルトの名無しさん:2010/12/13(月) 09:48:24
できるとしても>>286の場合は指令出した側が
よくわかってないんだと思う


293 :デフォルトの名無しさん:2010/12/13(月) 09:51:22
Javaで開発するときによく見てたサイトで

おおおぉぉぉ!

とか出てきてたサイトが見当たらないんですが
閉鎖しちゃったんでしょうか?

294 :デフォルトの名無しさん:2010/12/13(月) 10:19:21
>>293
http://www.whitehouse.com/は閉鎖されちゃったね。

295 :デフォルトの名無しさん:2010/12/13(月) 10:39:13
>>265
ありがとう、レスいらないようだけど

オブジェクト指向はやりすぎると無駄な階層化、get/setの嵐で
細かいクラスたくさんできて難読化もしてしまうので
自分ではある一線で旧来のスタイルも混ぜてます
その辺すでに設計おかしいのかな

例外はありだと思うけど、頻繁に発生しうる状況なので
今回は使いにくいです(センサーの連続データ処理なので)

いろいろな考えあって勉強になりました


296 :デフォルトの名無しさん:2010/12/13(月) 11:07:27
>>271

297 :デフォルトの名無しさん:2010/12/13(月) 11:19:35
>>295
MyInteger使うか迷うレベルの人間が設計云々言ってる時点で炎上確定しとらんか?
設計というより人員配置の方に欠陥があるような。

298 :デフォルトの名無しさん:2010/12/13(月) 11:38:23
>>293
「Java で Hello, world!」なら閉鎖したと思う。

299 :デフォルトの名無しさん:2010/12/13(月) 11:43:49
>>298
えぇぇぇぇ
ショックーーー!!

300 :デフォルトの名無しさん:2010/12/13(月) 12:05:16
>>295
もう来なくていいよ

301 :デフォルトの名無しさん:2010/12/13(月) 19:05:12
>>298
へーお世話になったのにもったいない。
でも脱初心者した辺りから全然行かなくなったからな、ああいうサイトって割りに合わないんだろうな。

302 :デフォルトの名無しさん:2010/12/13(月) 19:10:31
「おおお。動きましたね!」
ときて
「うっせぇな、だからなんだよ糞」
と思うようになったら初心者卒業だな。

303 :デフォルトの名無しさん:2010/12/13(月) 19:32:44
23016003610



304 :デフォルトの名無しさん:2010/12/13(月) 19:34:54
みなさん、StrutsやTomcat等Apacheプロジェクトの
ライブラリ等をつかっているとライセンス違反になります。作り直しです。

また、これから、ApacheプロジェクトのものをJavaで使ってはいけなくなるそうです。

(≧▽≦)< 頑張ってください!

305 :デフォルトの名無しさん:2010/12/13(月) 20:34:05
クラス図で○の中に十字があるものって何ですか?

306 :デフォルトの名無しさん:2010/12/13(月) 21:41:00
プリミティブ型を隠蔽するために、
プリミティブな処理をまとめたクラスを用意するのは、
Facadeパターンだと言って良いと思う?

307 :デフォルトの名無しさん:2010/12/13(月) 22:47:16
すみません。
親父がPC買ってインターネットしたいといいだしたんで、
自分でブラウザを作ってあげようとおもっているんですが、
自分はGUIを作ったことがあるのが、Javaだけです。

Javaのブラウザを調べたんですが、いまいち、MS製の言語よりも
遅れているみたいです。それは、やはり本当なんでしょうか?

C#でも覚えてC#で作ったほうがよろしいでしょうか?

308 :デフォルトの名無しさん:2010/12/13(月) 23:02:25
なぜ作るw

309 :デフォルトの名無しさん:2010/12/13(月) 23:06:33
え?だって、親父がジャパネットで17万も出してパソコン買ったから、
なんにもできないじゃ、かわいそうだし。。

IEはむずかしすぎるっていってたんで・・

310 :デフォルトの名無しさん:2010/12/13(月) 23:16:15
>>309
そんなあなたにw3m
これ以上見た目が簡単なブラウザは存在しないと思う

311 :デフォルトの名無しさん:2010/12/13(月) 23:21:34
>>310
ありがとうございます。一応、そう難しくないページとかなら見れそうなので、
ためしに作ってみます。アドレスバーとお気に入りしか機能をつけようとおもっていないんです。

なれてきたころに、グーグルの検索ボックスだけ追加しようとおもいます。

w3mというのも、あとでググッてみますね。ありがとう。

312 :デフォルトの名無しさん:2010/12/13(月) 23:25:33
>>310 それはIEよりも難しいのではないだろうか

見た目シンプルなChromeや最近のバージョンのOperaとかで
ホームをYahooに設定して渡せばそれで解決しない?
作るとしたらjavaじゃないがIEコンポーネントとか。
検索したら最低限のブラウザ機能ぐらいならサンプル落ちてるし

313 :デフォルトの名無しさん:2010/12/13(月) 23:29:14
おやじのこと考えてるようで考えてないように見える

314 :デフォルトの名無しさん:2010/12/13(月) 23:57:00
自分で作ったら IE より使いやすいものが出来るという自信はどこから来るのか

315 :デフォルトの名無しさん:2010/12/14(火) 00:29:16
よく音の特徴量抽出とか聞くけど、具体的にプログラミングでどうやってやれば
いいかわかんない・・・
たとえばwavファイル読み込み→パワースペクトルなど抽出?みたいなことはできるんですか?

316 :デフォルトの名無しさん:2010/12/14(火) 00:34:14
>>304
JavaはダメでC#ならいいわけ?アパッチなのに?

317 :デフォルトの名無しさん:2010/12/14(火) 00:39:01
あまり情報が無く困ってるんですが
タイムゾーンの扱いについて詳しい人いたら教えてください
TimeZone.getAvailableIDs()では自分の環境では608個とれますが
olson DBのzone.tabでは400個ほどです
これはおそらく前者がPSTみたいな省略記法のIDを返すからだと思いますが
そもそもこれは同じIDを参照しているのでしょうか
(同じっぽくは見えますが・・IDは何らかの標準化がなされてるんでしょうか?)
APIDOCにはその辺「サポートされているタイムゾーンID」程度にしか記述がありません

318 :デフォルトの名無しさん:2010/12/14(火) 00:40:34
>>315
ググったらそれらしいサイトあったよ
wavからサンプリング情報+サンプリングデータをテキストで取り出すフリーソフトがあるらしいんで
javaではそれを読み込んでフーリエ変換して対数に直す処理をすれば出来る

319 :デフォルトの名無しさん:2010/12/14(火) 03:25:11
例外処理のサンプルを見ると下記のような変数eをみかけます。
なぜ、これが必要なのか分かりません。
教えてください宜しくお願いします。

try{

}catch(IOException e){

}


320 :デフォルトの名無しさん:2010/12/14(火) 03:58:32
省略不可の仕様なので

321 :デフォルトの名無しさん:2010/12/14(火) 04:22:49
EJBからXMLファイルを解析するのに便利なAPIないでしょうか?

322 :デフォルトの名無しさん:2010/12/14(火) 04:29:45
>>320
319です。
ありがとうございました。


323 :デフォルトの名無しさん:2010/12/14(火) 07:17:40
List list1 = new ArrayList<String>();
List list2 = new ArrayList<String>();

Hashtable<String, String> ht = new Hashtable<String, String>();

ht.put("111", "11111");
ht.put("222", "22222");

list1.add(ht);
list2.add(ht.clone());

ht.clear();

System.out.println(list1.toString());
System.out.println(list2.toString());


----

上記を実行したら、lits1だけクリアされました。
cloneはシャローコピーですが、list2はクリアされないのでしょうか?

[{}]
[{222=22222, 111=11111}]


324 :デフォルトの名無しさん:2010/12/14(火) 07:24:20
リストのサイズを0にしてるだけだからな。

325 :デフォルトの名無しさん:2010/12/14(火) 07:46:53
すみません。323です。

参照のコピーだから、同じオブジェクト(Hashtable)をListは持っていると思います。
なぜ同じオブジェクトを見ているのに、cloneしたらクリアされないのかわからなかったのです。

326 :デフォルトの名無しさん:2010/12/14(火) 08:01:52
public Object clone()
ハッシュテーブルのコピーを作成します。ハッシュテーブルの構造自体はすべてコピーされますが、キーおよび値は複製されません。これは、比較的負担の大きい操作です。

とあるんだけど。

327 :デフォルトの名無しさん:2010/12/14(火) 08:11:24
リストのサイズを0にしてるだけだからな。

328 :デフォルトの名無しさん:2010/12/14(火) 12:21:44
>>318
>>315ですが、ありがとうございます
ちゃんと調べてみます、すいません
あと音処理においてのjavaのおススメの書籍があったら、お願いします

329 :デフォルトの名無しさん:2010/12/14(火) 12:38:45
ならそれもググれよ雑魚

330 :デフォルトの名無しさん:2010/12/14(火) 19:18:52
ゲームの数値計算をjavaで作ろうと考えて色々試しているんだけど
基本ステータスを入力して成長後の基準値を出すところまではできたが
その成長後の基準値に倍率を掛ける方法がわからない
今日初めてjava触っているのでどこを調べるべきか

A,B、C、D、Eを入力

F,G,H,I,J・・・10種類程度の基準値表示

パターン選択ボタンまでは完成

パターンα選択時 倍率F*105%、J*104%
β選択時 倍率F*110% G*105%




最終的には基準値を出さずに
選択したパターンに応じて修正値だけを表示したい

331 :デフォルトの名無しさん:2010/12/14(火) 19:23:05
例えば変数 f の値を 105% したいなら
f *= 1.05;
とすればいいけど、そういうことじゃなくてか?
もうちょっと詳しく

332 :デフォルトの名無しさん:2010/12/14(火) 19:30:17
function bp()
{
frm1.hp.value = (frm1.tai.value * 5 + frm1.atk.value * 4
+ frm1.w2k.value * 2.5 + frm1.agl.value * 5.1 + frm1.min.value * 6.5);

frm1.mp.value = (frm1.tai.value * 4.9
+ frm1.atk.value * 6.5 + frm1.w2k.value * 7 + frm1.agl.value * 5.6 + frm1.min.value * 6);

こんな感じで出した数値にAパターンを選んだらHP*105%だけ
BパターンでHP*110% 攻撃力*120%のような修正を加えたい

frm2.hp.value = (frm1.hp.value * 1.05)
とかやってるんだけど反応しないので詰まった

333 :デフォルトの名無しさん:2010/12/14(火) 19:38:09
行列のtxtファイルを読み込みたいのですが、
このプログラムではうまく読み込めていないようです。
どこが問題でしょうか?
また文字列が混在しているファイルの場合、
どうしたらいいでしょうか、ご教示願います。

import java.io.*;

public class Readfile {
public static void main(String arg[]){
try{
BufferedReader f = new BufferedReader(new FileReader("test.txt"));
int c=0;
int a[][]; a = new int [2][3];
int i=0;

while((c=f.read()) != -1){
System.out.print((char)c);
for(i=0;i<a.length;i++) a[0][i] = (char)c;
}

f.close();
}catch(IOException e){
System.out.println(e);
}
}
}


334 :デフォルトの名無しさん:2010/12/14(火) 19:44:09
>>332
それはひょっとしてJavaじゃなくてJavascriptじゃね

335 :デフォルトの名無しさん:2010/12/14(火) 19:46:07
>>334
JavaとJavaスクリプトは別なの?

336 :デフォルトの名無しさん:2010/12/14(火) 19:47:19
>>333
具体例としてどういう内容のテキストファイルを
どういう結果になるように読み込みたいのか (配列のどこにどの値を入れたいのか)
を説明してください

337 :330 :2010/12/14(火) 19:48:57
調べてみたら別だった
Javaスクリプトであることも知らなかった
反省している
お騒がせしました

338 :デフォルトの名無しさん:2010/12/14(火) 19:51:35
>>337
Javaスクリプトじゃなくて「Javascript」な
念のため伝えておくとあなたの行先はWeb制作板

339 :デフォルトの名無しさん:2010/12/14(火) 19:55:52
>>334
Javascriptじゃなくて「JavaScript」な

340 :デフォルトの名無しさん:2010/12/14(火) 19:59:03
>>336
最終的には
1 2
1 3
1 4
のようなファイルと
1 a s
2 d f
3 g h
4 h j
5 k l
のようなファイルがあったとしたら、
1個目のファイルの2列目にない要素で2個目のファイルにある要素(この場合は5)
の行を削除した3個目のファイル
1 a s
2 d f
3 g h
4 h j
を作成したいです。

341 :デフォルトの名無しさん:2010/12/14(火) 20:15:41
>>340
2 d f
3 g h
4 h j
を作成したいです。
の間違いでは?

342 :デフォルトの名無しさん:2010/12/14(火) 20:41:37
>>340
動作確認すらしてないけどこんな雰囲気でいいんじゃね?
https://gist.github.com/740304

343 :デフォルトの名無しさん:2010/12/14(火) 22:32:53
質問です
http://www.dotup.org/uploda/www.dotup.org1299507.java
これは大学のjavaの授業で作ったプログラムですが、これはどのような形態(main()のJavaアプリケーション、Applet、Servlet)などでいうとどれに当たりますか?
それともどれにもあてはまらずその他の分類になりますか?もしそうでしたら詳しく教えてください。
あとawtとあるのでGUIだと思いますがあっていますか?
javaは大学でまだ一ヶ月と少し程度しかやっていないのでよくわからないのです。
初歩的なことかもしれませんがどうか教えてください。

344 :デフォルトの名無しさん:2010/12/14(火) 22:39:28
どうやら下から5行目に書いてある main っていう文字が読めないらしいな

345 :デフォルトの名無しさん:2010/12/14(火) 22:51:20
GUIを使用したJavaアプリケーション

346 :デフォルトの名無しさん:2010/12/14(火) 23:14:25
>>650
答えていただいたプログラムをコンパイルして実行しようとしたら、
exception in thread main java.lang.nosuchmethoderror main
とエラーが出てきました。
どうやら
public static void main(String[] args)
これをいれれば直るらしいのですがどこにいれればいいですか?

347 :デフォルトの名無しさん:2010/12/14(火) 23:15:11
>>346
まちがいました。
すみません

348 :デフォルトの名無しさん:2010/12/14(火) 23:21:21
書き込み欄を右クリック→短文の挿入で出てくる短文リスト全25個の内、上から10個の短文がプレビューされません
皆さんは全てちゃんとプレビューされますか?

349 :348:2010/12/15(水) 00:10:06
誤爆

350 :デフォルトの名無しさん:2010/12/15(水) 08:34:17
サーバを介さずに1対1の通信を行う音声通話アプリケーションを作っています。
通話自体はJavaSoundAPIとRTPを用いて実装できました
これに通話内容を録音する機能を追加したいです
どのような手法を用いればよいでしょうか?よろしくおねがいします。

351 :デフォルトの名無しさん:2010/12/15(水) 10:46:09
音声データをファイルに保存する

352 :デフォルトの名無しさん:2010/12/15(水) 11:55:19
>>342
ありがとうございます、
これを元にがんばってみます。

353 :デフォルトの名無しさん:2010/12/15(水) 23:08:00
現在、Javaを勉強中です
最近JavaでWebアプリケーションが作れると聞いたのですが、普通にプログラムを組むだけではだめだと思うのですが、一体どうすればHTMLとして吐き出す?PHPとかPerlみたいなことが
出来るのでしょうか?
全くわかってなくて見当違いだったらごめんなさい


354 :デフォルトの名無しさん:2010/12/15(水) 23:16:30
jspでググれ

355 :デフォルトの名無しさん:2010/12/15(水) 23:20:57
>>354
解決しました
ありがとうございました

356 :デフォルトの名無しさん:2010/12/16(木) 17:53:37
JAVAでチャットソフトを作ったんですけど、これをそのままアプレットにできますか?

357 :デフォルトの名無しさん:2010/12/16(木) 17:55:52
できねーよ(wラ

358 :デフォルトの名無しさん:2010/12/16(木) 19:53:25
.NETのP/Invokeに相当するものはJavaにありますか?

359 :デフォルトの名無しさん:2010/12/16(木) 19:55:26
JNA

360 :デフォルトの名無しさん:2010/12/16(木) 22:43:27
サイトからファイルを取得しながら逐次的に処理をする動作を行いたいと考えています。

下記方法にて処理を行った場合、ネットワークへの接続開始と切断はどのどのタイミングで行われますでしょうか。


// 接続
URLConnection uc = new URL("http://www.google.com/").openConnection();//・・・@
// HTMLを読み込む
BufferedInputStream bis = new BufferedInputStream(uc.getInputStream());//・・・A
BufferedReader br = new BufferedReader(new InputStreamReader(bis, "Shift_JIS"));//・・・B

String line;
while ((line = br.readLine()) != null) {//・・・C
 /*    lineを処理    */
}
//・・・D


初回のCの時点で接続が開始され、Dに到達直前にて終了するという認識はあっていますでしょうか?

参考したサンプル:
http://d.hatena.ne.jp/n_euler666/20070919/1190189499


よろしくおねがいします。

361 :デフォルトの名無しさん:2010/12/16(木) 22:46:32
ここを参考にしたほうがいいよ
http://x68000.q-e-d.net/~68user/net/java-http-url-connection-1.html

362 :デフォルトの名無しさん:2010/12/16(木) 23:08:25
質問
マルチプラットフォームと言いながら、
OS同じでもバージョン変わっただけで動かなくなるのは何故でしょうか?

363 :デフォルトの名無しさん:2010/12/16(木) 23:58:43
>>360
getInputStream で接続開始
keep-alive が切れたら切断

364 :デフォルトの名無しさん:2010/12/16(木) 23:59:41
>>361
ありがとうございます。
そちらを参考にして検証した結果
・Aの時点で通信は開始され、bisのバッファサイズまで取得を行う。
・4で読み込まれ、バッファに空きが出来次第bisのバッファサイズまで取得する。

・・と理解しました。


lineの処理が重く、取得するデータが巨大な場合で
本格的に効率的な逐次処理を行う場合は
マルチスレッド化が必要そうですね


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

365 :デフォルトの名無しさん:2010/12/17(金) 16:54:30
567

366 :デフォルトの名無しさん:2010/12/17(金) 17:04:33

}catch (IOException e){
e.printStackTrace();
}finally{
try {
in.close();
out.close();
}catch (IOException e){
e.printStackTrace();
}
}
return isOK;
}
フィルコピーの部品を作って、それを読んだときにリターンで成功したか失敗したかを
判断したいのですけど、成功の場合はtrueが戻りますが失敗のときに
finallyでファイルのクローズをしたいために、リターンfalseをどこに記述したらいいのか
わかりません。catchに書くと無視されるし、finallyに書くとfinally句が完結してないと
警告メッセージが出ます。失敗の場合はfalseは戻らないけど、呼び元でtrueじゃない、
という聞き方をすればいいのでしょうか。こういう場合、どのような対処をしていますか。

367 :デフォルトの名無しさん:2010/12/17(金) 17:10:11
void hoge() {
bool isOK = true;

try {
} catch {
  isOK = false;
} finally {
}
return isOK;
}

368 :デフォルトの名無しさん:2010/12/17(金) 17:14:54
>>367
それやってみたんですけど、falseが戻ってこないんですよ。

369 :デフォルトの名無しさん:2010/12/17(金) 17:15:11
マジで?

370 :デフォルトの名無しさん:2010/12/17(金) 17:17:56
っていうかcatchにreturn false;
かいてもfinallyは実行されると思うけど。

371 :デフォルトの名無しさん:2010/12/17(金) 17:20:01
>>367
それだったら
void hoge() {
bool isOK = false;

try {
//入出力処理
  isOK = true;
} catch {
} finally {
}
return isOK;
}

の方がよくね?

372 :デフォルトの名無しさん:2010/12/17(金) 17:20:18
>>370
fainallyに書いたら、うまく行くのですが、fainally句が完結してないと
警告メッセージが出るんです。いきなりリターンするので最後のカッコを
閉じてないから警告が出ると思うのですけど、なんだか気持ちが悪いです。


373 :デフォルトの名無しさん:2010/12/17(金) 17:21:54
呼ぶほうが間違ってね?

374 :デフォルトの名無しさん:2010/12/17(金) 17:25:32
これが部品のプログラムです。falseを戻したいです。
public static boolean TextFileCopy(String inFile, String outFile){
BufferedReader in = null;
PrintWriter out = null;
String inStr = null;
boolean isOK = false;
try {
//入力ファイル
in = new BufferedReader(new FileReader(inFile));
//一時出力ファイル
out = new PrintWriter (new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(outFile))));
//入力データを読んで出力ファイルへ出力する
while ((inStr = in.readLine()) != null) {
out.println(inStr);
}
isOK = true;
}catch (FileNotFoundException e){
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}finally{
try {
in.close();
out.close();
}catch (IOException e){
e.printStackTrace();
}
}
return isOK;
}
}

375 :デフォルトの名無しさん:2010/12/17(金) 17:29:29
これが呼び元です。
boolean b = Convertor.TextFileCopy(inFile, outFile);

376 :デフォルトの名無しさん:2010/12/17(金) 17:29:38
なんか{}の数が合わないんだけど気のせいか

377 :デフォルトの名無しさん:2010/12/17(金) 17:31:00
あー
最後の}はクラスのか

378 :デフォルトの名無しさん:2010/12/17(金) 17:33:04
すみません。最後のカッコはクラスのカッコです

379 :デフォルトの名無しさん:2010/12/17(金) 17:34:04
これだとfinally内のtryで例外発生したらfalse返らないような気がする。

380 :デフォルトの名無しさん:2010/12/17(金) 17:38:36
現状では、falseは全く戻らないんですよ。infileに存在しないもので
実行してみたらコンソールでみたら例外が出ています。
でもfalseは戻りません。どうすればfalseを戻せるか教えて下さい

381 :デフォルトの名無しさん:2010/12/17(金) 17:40:27
fainallyの最後にリターンを入れて警告メッセージをサプレス
するしかないのでしょうか。

382 :デフォルトの名無しさん:2010/12/17(金) 17:41:45
うちの同じような関数はこうなってた。
public boolean hoge() {

try {

return true;

} catch (Exception e) {
return false;
} finally {
try {
} catch (Exception e) {
}
}
}

383 :デフォルトの名無しさん:2010/12/17(金) 17:51:36
>>374
in.close() out.close() でぬるぽ
ぬるぽキャッチしてないから false 返らず例外が返る
inとoutのnullチェックするべし

384 :デフォルトの名無しさん:2010/12/17(金) 18:30:32
>>383
nullチェックしたらfalseが返るようになりました。
気が付きませんでした。どうもありがとうございました。

385 :デフォルトの名無しさん:2010/12/17(金) 19:04:13
eclipseでsysoと書いたあとCtrl+SpaceするとSystem.out.printlnが補完されて感動しました。
他にもこういう便利機能はありますか?
どこかに一覧が書いてあるか、どうやって調べればいいですか?

386 :デフォルトの名無しさん:2010/12/17(金) 19:26:41
ほんとだ、すげー!

387 :デフォルトの名無しさん:2010/12/17(金) 19:34:24
>>383
「falseが戻ってこない」は、そうエスパーするのか
なるほど

388 :デフォルトの名無しさん:2010/12/17(金) 19:46:43
ってことはうちの関数まずいんじゃ・・・

389 :デフォルトの名無しさん:2010/12/17(金) 19:49:52
>>385
メニューバー > Window > Preferences > Java > Editor > Templates

390 :デフォルトの名無しさん:2010/12/17(金) 19:51:10
さすがjava

391 :デフォルトの名無しさん:2010/12/17(金) 21:42:54
アプレット側とサーバーのやりとりのレスポンスを調べたいんですけど、
Javaコンソールのログに一行ごとに処理時刻表示する方法ありませんか?

392 :デフォルトの名無しさん:2010/12/17(金) 22:29:36
JAVAの勉強を始めて半年になりやっとSWINGアプリケーションを
作っています。でも例外処理が難しいなと感じています。
例えば、複数の部品を作りましたが、チェック例外のものは
try-catchして、非チャック例外のものは、そのまま無チェックし
してる箇所もあります。コンソールで見ながらメインを起動するときは
例外が発生するとコンソールに表示されるので分かるのですが、
SWINGの画面上では、何も無かったかのように静寂です。
いまのままではSWINGアプリをjarで起動したときには例外が発生しても
処理がおかしくなるだけで使う側はどこでエラーが起きたのか判断が
できません。やっぱりSWING画面上にエラーが起きた事を知らせる必要が
あると思うのですが、そういう場合、部品は全て、例外が発生したら、
スローをして、一番上位のSWING画面側で、catchしないといけないのかなと
思っているのですが、こういう例外処理はどういうのが良いのでしょうか。
教えて下さい。

393 :デフォルトの名無しさん:2010/12/17(金) 22:38:50
Thread.setDefaultUncaughtExceptionHandler を設定しとけばそこへ飛ぶみたいなのでログファイルに出力するなり終了するなり

394 :デフォルトの名無しさん:2010/12/17(金) 23:22:18
入出力関係はチェック例外が多いみたいですけど、try-catchするか、
スローしないとコンパイルが通らないですよね。でも部品はコンソール付き
でも使用したいし、SWINGでも使用したいし、その部品のリターンが
特定の値の時は、truefalseを返せないですよね、そうなると、
同じ仕様で、try-catchしたものと、しないものを2つ作らないと、
いけなくなり変だと思うのです。他の方たちは、こういう問題を
どのように切り抜けているのでしょうか。

395 :デフォルトの名無しさん:2010/12/18(土) 02:13:22
日本語でおk
部品は例外中立で作っとけ
エラー時の処遇は部品を呼び出す側に決めさせろ

396 :デフォルトの名無しさん:2010/12/18(土) 09:28:43
つまり基本はthrows IOExceptionでおけ。

397 :デフォルトの名無しさん:2010/12/18(土) 11:21:42
日本ではSpringってStrutsの次に使われてたりする?

398 :デフォルトの名無しさん:2010/12/18(土) 12:44:35
Java SE の最新 JDK をダウンロードしようと↓ここにアクセスしているのですが、
ttp://www.oracle.com/technetwork/jp/java/javase/overview/index.html
中国語で表示されてしまいます…。ブラウザを買えても同じ。
皆さんの環境からはどうでしょうか?
上記のページの Downloads タブを開いても↓何もない…
ttp://www.oracle.com/technetwork/jp/java/javase/downloads/index.html

399 :デフォルトの名無しさん:2010/12/18(土) 12:50:48
なんで日本に来たの?

400 :デフォルトの名無しさん:2010/12/18(土) 12:52:06
oracleに買収されたJavaなんてもうやめようよ

401 :デフォルトの名無しさん:2010/12/18(土) 19:58:31
HashMap<K,V>のtoArrayの使い方がよくわかりません

class A<T>{
private final Map<T, MYTYPE<T>> tbl = new HashMap<T, MYTYPE<T>>();
//略
public T[] get(){ return tbl.toArray(new T[0]);}
}
このget()の定義だとcannot create generic array of Tと怒られるのですが
どうすれば良いのでしょうか

402 :デフォルトの名無しさん:2010/12/18(土) 20:24:52
Generic な T 型の配列は new できないので、それは HashMap とか toArray の問題じゃなくて new T[0] の問題
Object の配列にしておくか、どこかから Class<T> を手に入れて Array.newInstance するか・・・
一番無難なのは toArray と同じように T[] を外から受け取ることだ
public T[] get(T[] a){ return tbl.keySet().toArray(a); }
これで何の問題もない

403 :デフォルトの名無しさん:2010/12/18(土) 20:31:17
配列や toArray にこだわらないなら、List<T> とか Set<T> を返すって手もある

404 :デフォルトの名無しさん:2010/12/18(土) 21:24:56
>>402-403 解決しました、ありがとうございます。

405 :デフォルトの名無しさん:2010/12/18(土) 21:24:57
>>393 >>395 >>396 ありがとうございました。

406 :デフォルトの名無しさん:2010/12/19(日) 04:32:20
基本的なことをお聞きしたいのですが、A.javaがコンパイルできません。
どうすればコンパイルエラーを防げますでしょうか?よろしくお願いします。

c:\test>javac -d . B.java
c:\test>javac -cp ./bbb A.java
A.java:1: パッケージ bbbは存在しません。
A.java:7: Bにアクセスできません。
クラスファイル .\bbb\B.classは不正です。
クラスファイル  bbb.Bに不正なクラスがあります。
削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。

ディレクトリの構成構造
c:\test(カレントディレクトリ)
 LA.java
LB.java
Lbbb
LB.class
(A.java)
import bbb.*;
public class A
{ public static void main(String[] args){
B b=new B();
b.methodB(); }
}
(B.java)
package bbb;
public class B
{ public void methodB(){ System.out.println("class B"); }
}

407 :デフォルトの名無しさん:2010/12/19(日) 12:55:28
>>406
dir コマンドを覚えるとか

408 :デフォルトの名無しさん:2010/12/19(日) 13:56:05
>>406Bはパッケージ名と同じbbbというディレクトリにないとダメ

409 :406:2010/12/19(日) 17:05:34
>>408
説明が足らずというかわかりにくくて申し訳ありません。
-dオプションでB.classはbbbというディレクトリに移動してあります

c:\testにあるもの
・A.java ・B.java ・bbb

c:\test\bbbにあるもの
・B.class

410 :デフォルトの名無しさん:2010/12/19(日) 18:32:46
くだらんことで詰まってないでeclipseつかえ

411 :デフォルトの名無しさん:2010/12/19(日) 18:34:53
Java知らない人にJavaを教えるときに、
まずはjavacとかjarコマンドを叩く所からやらせるか、
いきなりEclipse使わせるかどっちが良いかな…
結局はどっちもできないと駄目なんだけどね。

412 :デフォルトの名無しさん:2010/12/19(日) 19:22:07
javaの質問というよりはネットワークの質問かもしれませんが、
サーバ側で1MB程度のテキストファイルがあり、
それを手元のPCで受信して適当に読みたいです。

最も手軽にプログラムできて、高速な方法は何ですか?
できればサーバ側に送信プログラムは置きたくなくて、
クライアント側で処理したいです。

413 :デフォルトの名無しさん:2010/12/19(日) 19:26:29
プログラム書いたりしないで
Windowsならファイル共有かリモートデスクトップ
Unix系のOSならtelnetやSSHとかでログインして読めばいいと思う

414 :412:2010/12/19(日) 19:33:47
(人間が)読むというよりは、テキストの解析をしたかったりするのですが、
その発想はなかったです。ありがとうございます。
ファイル共有すればローカルのファイルと同じ扱いになるんですかね。

環境依存が面倒なんで、できればUDPとかで同じ方法で引っ張ってこれたらいいかなぁ
と思ってるので、引き続き案を募集します。


415 :412:2010/12/19(日) 19:35:59
そういえば、ウェブサイトのリンク解析とかに近いのかもしれないですが、
サーバ側でhttpデーモンとかは動いてないのです。

416 :デフォルトの名無しさん:2010/12/19(日) 19:37:05
わかってるのかわかってないのかわからん質問者だな…
わからない用語はつかわないほうがいいよ。

417 :デフォルトの名無しさん:2010/12/19(日) 19:38:37
サーバ側に受信を受け付けるプログラムが動いてなければ無理でしょ
UDPでやりたいならUDPで特定のポートで待ち受けるプログラムをサーバに起動しておき
そこと通信するクライアントのコードを書く

418 :デフォルトの名無しさん:2010/12/19(日) 19:40:04
if (***){
処理1
else{
処理2
}
で、処理1で50行、処理2で50行あったとして、そのうち30行のかたまりが
処理1と処理2で同一だったときに、その部分について、
メソッドにしたりしますか?それともそのまま書いたほうがいいですか?
どちらが正しい方法なんでしょうか

419 :デフォルトの名無しさん:2010/12/19(日) 19:41:19
if (elm[i]!=null && !elm[i].equals("")){
というのを見たのですけど、nullと""の違いがわかりません。教えて下さい。

420 :デフォルトの名無しさん:2010/12/19(日) 19:43:39
>>418
個人的には、速度が重要でない限り、別メソッドにするのが常に正しいと思う
バグがあったときに、同じコードがある箇所を探して全部修正しないといけなくなるよ

421 :デフォルトの名無しさん:2010/12/19(日) 19:44:21
>>419 nullはnewしてない。""はnewしてるが空

422 :412:2010/12/19(日) 19:48:30
ありがとうございます。

>>416
プログラミングはできるけど、ネットワークプログラミングは(やるとしたら)初めてです。
基本的にわかってません。

>>417
サーバ側はhttpはダメですが、sshdは動いてるしポートによっては開いています。
ftpとかscpとかは遅い印象があって、もっと原始的なのでいいよなぁ、と。
UDPもよく分かってないですが、やっぱサーバ側も必要なんですね。

クライアント側でやりたいことはかなり単純で、
for (file in server:/dir) {
open(file)
read(file)
close(file)
}
的なことです。(javaコードにもなってないが・・・)
ファイル共有するのはたしかに的を得ている。

423 :デフォルトの名無しさん:2010/12/19(日) 19:49:58
早くJavaにもlambdaほしいよな。

424 :412:2010/12/19(日) 19:51:22
すいません。
>>417
読み違えてました。
たぶん何らかのdeamonは動いています。
それから受信するプログラム書けばOKということですよね。
何が動いてるかチェックすればいいのですか?

425 :デフォルトの名無しさん:2010/12/19(日) 19:54:24
>>420 >>421 ありがとうございました。

426 :デフォルトの名無しさん:2010/12/19(日) 19:57:24
>>422
サーバでsshdしか動いてないのならscpでしかファイルをとってくる手段は無いよ。
シェルスクリプトでscpを叩いてデータを取得後にデータを処理するのが正解じゃないかな。
それかJavaでscpクライアントかきますか?

427 :デフォルトの名無しさん:2010/12/19(日) 20:08:18
boolean boolArg = (boolean)34132;
"aiueo" + boolArg;

とやったとき、34132がちゃんと文字列のアドレスになってたら、
2行目ちゃんとうまく動きますか?
そういうようなコードを見たのですが。

428 :427:2010/12/19(日) 20:12:58
勘違いでした

429 :412:2010/12/19(日) 20:17:31
うーむ、なんかNFSファイル共有でよさそうですね・・・。
いろいろありがとうございました。

430 :デフォルトの名無しさん:2010/12/20(月) 13:54:07
publicの記載は必要なんですか?


431 :デフォルトの名無しさん:2010/12/20(月) 14:53:56
他のパッケージから使いたい場合とか
元々publicなメソッドをオーバーライドする場合とか
インタフェイスのメソッドを実装する場合は
必要

432 :デフォルトの名無しさん:2010/12/20(月) 17:42:04
jtableで一次元配列を元に表示してるんですが
連続した範囲を範囲選択したいです
例えばこれで3を選択した状態で下にドラッグすると
 1 2 3 4 5
 6 7 8 9 10
3 4 5 6 7 8が選択されて欲しいです

こういうのはデフォルトで提供されてる方法で可能ですか?
それとも自分で何かオーバーライドして作らないとダメでしょうか

433 :デフォルトの名無しさん:2010/12/20(月) 18:06:12
BufferedReaderとBufferedInputStreamの違いを教えて

434 :デフォルトの名無しさん:2010/12/20(月) 18:40:08
>>432
JTableの選択モデルでは無理ですので自分で実装する必要があるでしょう
それか JList の HORIZONTAL_WRAP オプションを検討してみては

435 :デフォルトの名無しさん:2010/12/20(月) 18:41:34
>>433
InputStream はバイト列 (byte) を読み込むクラス
Reader は文字列 (char) を読み込むクラス

436 :デフォルトの名無しさん:2010/12/20(月) 19:04:01
>>434ありがとうございます
JListはよさそうなので調べてみます

437 :デフォルトの名無しさん:2010/12/20(月) 19:10:13
>>435
なるほどども

438 :デフォルトの名無しさん:2010/12/20(月) 23:52:44
shortの上限以上の値のintをshortにキャストすると、当然値を保持できないと思います。
その場合、shortの16ビット以上の値が切り捨てられるような気がしますが、それについて
正式な情報はありますでしょうか?
Javaの公式なドキュメントはどこを見ればいいのでしょうか?

439 :デフォルトの名無しさん:2010/12/20(月) 23:56:07
目次見ただけだが、Javaの仕様書3.0の5.1.3 narrowing conversionあたりじゃない?
仕様書はWebでどっかから落とせた気がする

440 :デフォルトの名無しさん:2010/12/21(火) 00:03:13
ありがとうございます。
探してみます。

441 :デフォルトの名無しさん:2010/12/21(火) 02:28:59
http://www.news.janjan.jp/government/0702/0702090742/1.php

442 :デフォルトの名無しさん:2010/12/21(火) 17:33:59
Linuxのデスクトップで、SWINGアプリケーションのテキストボックスに日本語入力が出来ません。
サイトで調べるとjavaのバグとかって書いてあるのですが、いまだに対応されていないのでしょうか?

そもそもjavaのバグ?kannnaのバグ?

443 :デフォルトの名無しさん:2010/12/21(火) 17:57:03
transientがようわからん
serializeの解説も頼む

444 :デフォルトの名無しさん:2010/12/21(火) 18:12:21
>>442
変換候補ウィンドウがアプリのウィンドウの外に表示される以外は不自由ないけどな。
それ以外ならそっちの環境がおかしい。

変換候補ウィンドウはJava側が対応してないのが直接的な原因だが、
LinuxでIM関連フレームワークが乱立しまくってるのが解消されないと難しいだろうね。

445 :デフォルトの名無しさん:2010/12/21(火) 20:24:13
serialize はJavaのひどい失敗作の一つ

なんとかしようとして追加したはいいが、
結局攻撃が防ぎ切れないことが分かってゴミとなったものとか
(writeUnsharedとか)あるし

ぱっと見、標準ライブラリに含まれるHashSetとかも
readObjectNoDataとかちゃんと書ききれてないので壊すことが可能

446 :デフォルトの名無しさん:2010/12/21(火) 22:37:45

System.currentTimeMillis() ってUNIX時間というかGMTですよね?

素朴な疑問なんですが、
物理的に異なる地域にあるAというサーバとBというサーバがあるとして
これは必ず同じ時間を表しますか?

電波時計でもないのに時刻がなぜズレないのかわかりません 
 

447 :デフォルトの名無しさん:2010/12/21(火) 22:46:37


448 :デフォルトの名無しさん:2010/12/21(火) 22:49:35
電波の代わりにネットワークで時刻を合わせてる

449 :デフォルトの名無しさん:2010/12/21(火) 22:53:18
電波時計が無い時代は時刻がズレズレだったのかw
まあntp動いてないならズレズレだが。

450 :446:2010/12/22(水) 02:19:51
いやそうじゃなくて(電波とか余計なこと言わなきゃよかった)

System.currentTimeMillis()ってオフラインでも使えるじゃないですか
なのになぜ別々のPCでそれぞれ実行しても同じ時間を示すんですか?

それともOSの設定次第でズレるものですか?

451 :デフォルトの名無しさん:2010/12/22(水) 02:45:04
>>450
それって、家の時計と学校の時計がなぜ合っているかとかいうのと同じ質問?

452 :デフォルトの名無しさん:2010/12/22(水) 04:02:15
普通、パソコンの時計はNTPサーバと同期させて合わせてるのは知ってるよ

そうじゃなくて、System.currentTimemillis()で取得するUNIX時間は、
ネットで同期しなくても一致するものなの?

(1)一致するとしたらどういう仕組みでそうなるの?
  なんで一致するの?

(2)一致しないのだとしたら、その時間はどこを基準で取得しているの?
   OSの設定?マザーボードの電池で動いてる時計?

ついでにこの場合、複数のAPサーバでJavaアプリケーションを運用するとして、
DBに保存する更新日時とかをJavaのプログラムで取得するなら、
必ず基準とするサーバに同期して使わないと齟齬が発生するからダメってこと?




453 :デフォルトの名無しさん:2010/12/22(水) 06:42:21
>>442
俺もそれなったけど結局対応できなくて部署ごと死んだ。

454 :デフォルトの名無しさん:2010/12/22(水) 06:46:54
頭悪そうだな・・これが電波世代か・・

455 :デフォルトの名無しさん:2010/12/22(水) 07:09:26
一致しねーよw

456 :デフォルトの名無しさん:2010/12/22(水) 08:41:18
>>452
一致しない
システム時間やシステム時刻でググれ
一般的にシステム時刻はOS依存だ
よく覚えておきな

457 :デフォルトの名無しさん:2010/12/22(水) 08:49:30
>>452
ついでに言っておくわ

JAVAだろうがDBだろうがそいつがあるのはサーバなんだからデータの日時も全てサーバのシステム時刻になる
サーバアプリでローカルのデータと同期を取るような処理があってもサーバアプリは
前のデータの時刻をサーバのシステム時刻で判断するからクライアントのシステム時刻を意識する必要はない

458 :デフォルトの名無しさん:2010/12/22(水) 11:09:03
>>457 はすばらしいエスパーぶりだと思ったが
質問者が理解できるかどうかは怪しいな

459 :デフォルトの名無しさん:2010/12/22(水) 11:34:31
複数のAPサーバーっていってるから>>457はちょっとおかしいと思うけど

460 :458:2010/12/22(水) 15:53:49
すいません。自演してました

461 :デフォルトの名無しさん:2010/12/22(水) 18:28:11
>>452
普通に考えて別のコンピュータのローカルクロックが見えるわけがないって分からない?
JVMに人知を超えたテレパシーをやり取りする機能がついてない限り、サーバーと端末で時
刻が勝手に同期されたりするわけないし、セキュリティ上の事情でそんな内部データが
リモートコンピュータから見えなくされているくらい分からないか?

462 :デフォルトの名無しさん:2010/12/22(水) 19:14:01
おまいら心を落ち着かせるんだ。
質問者はプログラミング初めて間もないかわいい女子高生だと仮定して回答すること。

463 :デフォルトの名無しさん:2010/12/22(水) 22:20:33
女子高生でも馬鹿は嫌いだ

464 :452:2010/12/22(水) 23:09:00
普通に考えるとそうなんだけど
「UNIX時間」の計算とはなんか特殊なやり方でPC問わず必ず一致するようなものなのかと
勘ぐってたんだよ

ちなみに>>457の話は常識として知っている

465 :デフォルトの名無しさん:2010/12/22(水) 23:45:39
>>464
>「UNIX時間」の計算とはなんか特殊なやり方でPC問わず必ず一致するようなものなのかと
>勘ぐってたんだよ

普通に考えろよ

466 :デフォルトの名無しさん:2010/12/23(木) 00:05:34
ふつうを知らないのに普通にかんがえろとかお前アホだろ

467 :デフォルトの名無しさん:2010/12/23(木) 03:15:30
GUIからの起動とプロンプトからの起動を
プログラム内で判別する何かいい方法はないでしょうか?
OSを問わない一般的な方法があるといいのですが、ないなら
せめてWindows Exprolerからのダブルクリックからの
起動か、それ以外かだけでも判別できればいいのですが・・・。

468 :デフォルトの名無しさん:2010/12/23(木) 06:38:14
一般的な方法もしくはそんなAPIがあるのかは知らんが、
俺はGUI用のmainとCUI用のmainを分けている。

469 :デフォルトの名無しさん:2010/12/23(木) 16:19:54
>>434
JList調べてみたところ
setVisibleRowCountはあるのに
setVisibleColumnCountはないため
希望の動作は実現できませんでした
やはり自力で実装するしか無いみたいですね

470 :デフォルトの名無しさん:2010/12/23(木) 19:41:43
>特殊なやり方でPC問わず必ず一致するようなものなのかと
魔法の世界じゃねえかwww
時間ってどういうものか知ってるのか?って突っ込まざるを得ない

471 :デフォルトの名無しさん:2010/12/23(木) 20:24:27
もう時計の話はいいよ。

472 :デフォルトの名無しさん:2010/12/23(木) 21:46:20
>>468
どうやって振り分けてるのでしょうか?
CUI向けとGUI向けにmainだけ変えてjarを作るという意味でしょうか?

473 :デフォルトの名無しさん:2010/12/23(木) 21:54:12
mainを持つクラスが2つ以上あれば好きな方を選んで起動できるってことじゃない

474 :デフォルトの名無しさん:2010/12/24(金) 01:28:01
日付を選ぶコンボボックスで
▼で月のカレンダーが出るような感じのコントロールって
もしかして自作しないと無いのでしょうか?

475 :デフォルトの名無しさん:2010/12/24(金) 08:24:25
>>474
Javaアプレット?


476 :デフォルトの名無しさん:2010/12/24(金) 08:31:57
おはようさんです
Javaアプレットじゃなく、スタンドアロンのアプリですけど
アプレットかどうかで違うんですか?
.NetだとDateTimePickerみたいなやつです

477 :デフォルトの名無しさん:2010/12/24(金) 08:38:23
javaってDateTimePickerもないのか。
やっぱC#マンセーだな

478 :デフォルトの名無しさん:2010/12/24(金) 11:43:16
Javaのスタンドアロンアプリなんて死滅してる
ユーザーにも嫌われるし

479 :デフォルトの名無しさん:2010/12/24(金) 14:58:40
スレッド絡みの質問ですが、synchronized ブロックの中は実行中スレッドは1本
と保証されているのでしょうか?
というのもよくある producer-consumer の例で次のお約束文がありますが、
while(buf.size() <= 0) {
lock.wait();
}
このwaitで複数スレッドが停まっている状態においてlock.notifyAllすると停まっ
ていたスレッドが一斉に走り出してwhileバリアを抜ける場合もあるのでは?と疑
問に思う次第です。
実際にはキチンと動作するので、複数一斉に実行状態になるのではなく、1本に制
約される仕組みが入っているのだと思うのですが、これは言語規約などで保証され
てる動作なのでしょうか?

480 :デフォルトの名無しさん:2010/12/24(金) 15:02:46
m

481 :デフォルトの名無しさん:2010/12/24(金) 15:08:51
あまり深く考えないほうがいい

482 :479:2010/12/24(金) 15:55:20
でもはっきりしてないと >>479 みたいなパターンが不安で使えなくないですか?


483 :デフォルトの名無しさん:2010/12/24(金) 15:57:12
gotoとかconstってどういうときに使うんです?

484 :デフォルトの名無しさん:2010/12/24(金) 16:37:37
>>479
言語規約がどうなのか気になるのならそれを調べればいいだけじゃないでしょうか
このへんでしょうか
http://java.sun.com/docs/books/jls/third_edition/html/memory.html
> Only one thread at a time may hold a lock on a monitor.
> Any other threads attempting to lock that monitor are blocked until they can obtain a lock on that monitor.

485 :479:2010/12/24(金) 17:10:46
>>484
ポインタありがとうございます。
どうやらwait抜けた後でスレッド間でロックの争奪戦があって、それに勝ち抜いた
スレッドだけが実際に動く=synchronized の中は1スレッドのみ実行状態。になる
ようですね。
したがって、>>479は安全と。

486 :デフォルトの名無しさん:2010/12/24(金) 21:46:32
datetimepickerないのかー
自分で実装するとなると、方針としてはどうすれば良いんでしょうか
comboboxにこんな感じのセルレンダラつけてみたもののダメそうでした
public Component getListCellRendererComponent(JList arg0, Object arg1,int arg2, boolean arg3, boolean arg4) {
if(arg3){ setText("hogefuga"); return this; }
else{ setText("mogemoge"); return this; }
}

487 :デフォルトの名無しさん:2010/12/24(金) 21:48:36
補足:486ですが、モデルは1つのデータのみでテストしました
データ一つだとisSelectedなデータと▼をクリックして出てくるデータは
同じ方法でレンダリングされるのでダメだったってことです

488 :デフォルトの名無しさん:2010/12/24(金) 22:26:58
>>486
SwingXにJXDatePickerってのがあったような。

自前で実装したくなければググって好きなの使えば良いんじゃね?
他にも作ってる人居るだろうし。

489 :デフォルトの名無しさん:2010/12/24(金) 22:45:09
>>486
ありがとう、swingxって初めて知りました
準公式ぐらいの位置づけのライブラリっぽいですね
悪羅苦留もっとちゃんと保護してやれよって感じ

とりあえず自分で実装出来そうか
これのソースコードを眺めてみます

490 :デフォルトの名無しさん:2010/12/24(金) 22:45:56
失礼、アンカミス、>>488

491 :デフォルトの名無しさん:2010/12/25(土) 13:45:53
GUIをどういう方針で作ると良いかの方針で悩んでます

Javaで例えば次のようなダイアログを作るとき、
どういうレイアウトを使うのが良いですか?
ttp://download.oracle.com/docs/cd/E16440_01/doc.1013/B53277-01/tux_adp_ex.htm
ttp://www.shinsuke.com/2008/07/17/edit-frame-dialog-box/

一つのフレーム(枠線)内にあるコンポーネントはパネルに入れて
管理したほうが良いんですよね
画面の端っこにパディング的なものを持たせたいときとか
BorderLayout.Centerだと大雑把ですよね
gridbaglayoutとかで細かい幅を管理するのでしょうか

492 :デフォルトの名無しさん:2010/12/25(土) 14:00:26
パディングは BorderFactory.createEmptyBorder を付ければいいんじゃないか

493 :デフォルトの名無しさん:2010/12/25(土) 17:50:18
パディング、その方法でうまく行きました。助かります

494 :デフォルトの名無しさん:2010/12/25(土) 19:13:45
匿名クラス使ってリスナー登録する際、
親クラスの参照をとる方法ってないんでしょうか

closebutton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
this.setVisible(false); //これだとActionListenerのthisになる
}});

495 :デフォルトの名無しさん:2010/12/25(土) 19:18:06
何も付けずに単に
setVisible(false); と書けばよいが
親のクラス名.this.setVisible(false); と書いてもよい

496 :デフォルトの名無しさん:2010/12/25(土) 19:38:20
thisだけが欲しい場合には
クラス名.thisなんて出来るんですね、これはイイ

497 :デフォルトの名無しさん:2010/12/25(土) 22:08:03
eclipseで後からmain関数を追加するとエラーになるのですが
クラス追加するウィザードでmainメソッドを付けなかった場合
何を設定すれば良いのでしょうか

498 :デフォルトの名無しさん:2010/12/25(土) 22:09:01
なりませんよ
特に何も設定はいりません

499 :デフォルトの名無しさん:2010/12/25(土) 22:09:34
思いやりの気持ち。

500 :デフォルトの名無しさん:2010/12/25(土) 22:15:57
優しい気持ちでコンパイルしてみたら解決しました

501 :デフォルトの名無しさん:2010/12/25(土) 22:41:03
ちなみにmainメソッドを作りたいところに main と打ってCtrl+Spaceで幸せな気分になれる

502 :デフォルトの名無しさん:2010/12/26(日) 04:44:46
よけいなお世話です

503 :デフォルトの名無しさん:2010/12/26(日) 17:11:26
それはどういう事でしょうか

504 :デフォルトの名無しさん:2010/12/26(日) 21:41:09
java.util.UUIDってなんでversion 1のUUIDを生成できないんでしょうか。
UUIDといえば普通version 1でしょう?
何を考えてこうなってるんでしょう?
代わりに別のライブラリを使いましたけど。

505 :デフォルトの名無しさん:2010/12/27(月) 00:09:19
macアドレスが存在しない環境でも動作する必要があったんじゃない。知らんけど

506 :デフォルトの名無しさん:2010/12/27(月) 01:02:22
横幅は親ペインいっぱい
縦は固定幅
というレイアウトがしたいのですがうまくいきません
今のところ一番近いのはBoxLayoutにY_AXISを指定するというものですが
これだと横幅が親ボックスの幅になってくれません
何か良い方法ってありますでしょうか?

507 :デフォルトの名無しさん:2010/12/27(月) 09:59:04
シンボリックリンクとハードリンクの違いについて教えてくれ

508 :デフォルトの名無しさん:2010/12/27(月) 14:28:11
antをインストールしようと思ってもpathが通らない

システム変数 ANT_HOME C:\Program Files\Apache Software Foundation\apache-ant-1.8.1;
システム変数 Path %ANT_HOME%\bin;

コマンドプロンプト上でpathと打てば反映されているようなんですが、分かりません
vistaです

509 :デフォルトの名無しさん:2010/12/27(月) 14:42:41
セミコロンで囲って再起動したらできました
ファイル名にスペースが入っている場合は””が必須なんでしたっけ?

510 :デフォルトの名無しさん:2010/12/27(月) 15:02:15
セミコロン????

511 :デフォルトの名無しさん:2010/12/27(月) 15:46:25
ダブルクオーテーションだな

512 :デフォルトの名無しさん:2010/12/27(月) 17:10:39
JTableのセルはコンポーネントじゃないんだな
これまで作った奴全部捨てて作り直しだわ

513 :デフォルトの名無しさん:2010/12/27(月) 17:24:35
駄目だpathは通ったけど実行すると

C:\Users\admin\Desktop\Javacode\ant>ant
Files\Apache の使い方が誤っています。

って出る
調べた感じだと””が2重になっててうまくいってない云々・・・なのか知らんがよう分からん

514 :デフォルトの名無しさん:2010/12/27(月) 17:41:34
>Files\Apache
まああからさまにスペースが理由だわな


515 :デフォルトの名無しさん:2010/12/27(月) 17:44:00
今度こそうまくいきました
pathいじるたびに半角スペースの扱いに困る・・・

お騒がせしました

516 :デフォルトの名無しさん:2010/12/27(月) 18:01:10
JAVAのコード書くのに手頃なフリーのエディタがあったら教えてちょ

517 :デフォルトの名無しさん:2010/12/27(月) 18:16:13
迷ってるならEclipse使えばいいんじゃないかな

518 :デフォルトの名無しさん:2010/12/27(月) 20:03:33
idleくらい手軽なエディタがありゃいいのに・・・

519 :デフォルトの名無しさん:2010/12/27(月) 20:07:08
JAVAの登竜門的な本はないだろうか
むろん、経験・WIN=WIN・実績がものを言うのはわかっているのですが、あえて・・・
と、いうのも、これからSEになるのですが、理工系ではあるものの情報系は疎くこまっていまして
なにか、よい本がございましたら、ご紹介ください

520 :デフォルトの名無しさん:2010/12/27(月) 20:10:00
入門書→Effective Java

521 :デフォルトの名無しさん:2010/12/27(月) 20:43:34
>>520
ありがとうございます。
まずは、デザインパターン入門からはいったのですが、なかなか難儀しておりまして
本屋さんにいってみます

522 :デフォルトの名無しさん:2010/12/27(月) 20:50:21
文法の知識なしでデザインパターンから入門っておかしいだろw

523 :521:2010/12/27(月) 20:57:22
かなり苦戦しています
アダプター、テンプレートなどなど、がんばってみればわかるものの、応用できる気がまったくしないです・・・

524 :デフォルトの名無しさん:2010/12/27(月) 21:09:22
特定の問題に対してあるパターンを使えるかって考え方をするべきで
パターンありきで応用を考えるってのは典型的やっちゃダメなこと
パターンは一つの方法でしかない

525 :デフォルトの名無しさん:2010/12/27(月) 21:12:34
>>523
つ head first Java

>>524
お前デザインパターン知らないだろ

526 :デフォルトの名無しさん:2010/12/27(月) 21:13:24
そりゃそうだ。
デザパタってのはPGの工夫がワンパタ化してきたものに世界共通の名前を付けただけだからな。
応用が先で名前が後だ。

527 :デフォルトの名無しさん:2010/12/27(月) 21:16:46
しったか乙

528 :521:2010/12/27(月) 21:17:56
>>524
ありがとうございます
それを心がけます

529 :521:2010/12/27(月) 21:21:08
>>525
面白そうな本ですね
正月休みに読んでみます

>>526
ちょっと背伸びして、抽象的な世界から入ってみようなどとおもったのが誤算だったようです・汗

530 :デフォルトの名無しさん:2010/12/27(月) 21:32:21
何が「抽象的な世界」って(笑)
ミジンコ程度の脳味噌じゃ何やっても無理無理(笑)

531 :521:2010/12/27(月) 21:50:05
>>530
そうなんですけどね
ミジンコがサルになるかもしれないじゃないですかw

532 :デフォルトの名無しさん:2010/12/27(月) 21:51:50
俺も初心者程度のレベルだけどさすがに最初がデザパタってのは無いってわかるわ
>>519がなぜデザパタ入門から始めたのか激しく気になる

533 :デフォルトの名無しさん:2010/12/27(月) 21:57:45
ミジンコだからだろw

534 :521:2010/12/27(月) 21:59:27
>>532
アルゴリズムやきれいなプログラムを目指したい気持ちが先走りすぎました

535 :532:2010/12/27(月) 22:08:13
>>534
それはなんか共感できるわ
俺の場合は「いや、無茶だろ」っていう自戒が先に出たけど


536 :デフォルトの名無しさん:2010/12/27(月) 22:14:43
ミジンコ乙

537 :デフォルトの名無しさん:2010/12/28(火) 00:04:38
>>519
「プログラミング言語Java」
これの第一章だけでも完全に理解すれば基礎は大丈夫なはず。

538 :デフォルトの名無しさん:2010/12/28(火) 01:00:55
その場面に出くわさないとありがたみはわからんてよ>デザパタ

539 :デフォルトの名無しさん:2010/12/28(火) 01:07:48
デザパタってのは、知らなくても良く考えて設計してると自然に行き着くような、そういうもので、それを文書にまとめたものなのだ。
ざっと読んでみて「まぁ普通はそうなるわな」という感覚で読めないと身についていないし、使うことすらできない。
「デザパタを勉強してデザパタを使ってプログラムを書こう!」という発想は順番が逆で、
そういう人はデザパタを今あえて勉強するような技術レベルではないことが多い。

540 :デフォルトの名無しさん:2010/12/28(火) 01:10:41
ミジンコは黙ってろよw

541 :デフォルトの名無しさん:2010/12/28(火) 01:13:16
ほかには、設計を簡単に説明するとき非常に有用かな。
「ここはObserverパターンで作ってますんで」
「なるほどね」
それだけで意思疎通できる。

542 :デフォルトの名無しさん:2010/12/28(火) 01:17:39
PGのミサワ

オライリー本の洋書買ったわー
 俺、オライリー本の洋書買ったわー

Effective Javaくらい読んでおけよー
 お前、Effective Javaくらい読んでおけよー

543 :デフォルトの名無しさん:2010/12/28(火) 01:47:12
えーっ!? お前のEffective Java、まだ電子化してないの?

かーっ!やっぱりHappy Hacking Keyboardは使いやすいわー
 めっちゃ押しやすいわー!(スコスコ)

544 :デフォルトの名無しさん:2010/12/28(火) 01:52:16
>>530

545 :ミジンコ界の神:2010/12/28(火) 08:12:29
VB経験はあります
文法もそれとなくわかります
ただ、オブジェクト思考やらインスタンスがよく分からないっす
やらしいJAVAは読んだんですがパッとしないです
何か良い本ないですかね

546 :デフォルトの名無しさん:2010/12/28(火) 08:15:59
本に頼るな
あたって砕けろ
最近マニュアル人間が多すぎる

547 :デフォルトの名無しさん:2010/12/28(火) 08:23:40
本は読め
ウンコみたいなコードが多すぎる

548 :デフォルトの名無しさん:2010/12/28(火) 12:14:21
ウンコみたいなコードってたとえば?

549 :デフォルトの名無しさん:2010/12/28(火) 12:46:00
まずはウンコみたいなコードを量産してから本を読むならまだしも

550 :デフォルトの名無しさん:2010/12/28(火) 13:32:48
>>453
なんと…
現状、LinuxデスクトップでSwingアプリケーションは日本語入力できない可能性が強い
を意識しながら構成を考えなければならない、ということですか。

ん〜プラットフォームに依存しないからで作ったが、えらいことになった…

551 :デフォルトの名無しさん:2010/12/28(火) 13:34:19
ただし本読む前の量産は
配布したり会社で使ったりしないこと

552 :デフォルトの名無しさん:2010/12/28(火) 18:35:49
>>545
自演乙

553 :デフォルトの名無しさん:2010/12/28(火) 19:17:19
“インスタンスがよく分からないっす”という人には、
「メモリには、スタックとヒープと静的領域があって、、、」
という絵を書いて説明するといいと思うのだが、
そういうものを自習できる本ってあるのかな。
どんな本があるか全然知らずに言っているんだが。

554 :デフォルトの名無しさん:2010/12/28(火) 20:32:11
スタックやヒープなんか知ってる必要ないだろ

555 :デフォルトの名無しさん:2010/12/28(火) 20:43:25
常に意識しなくても良いと言うだけで、
知らなくていいというわけではない。

556 :デフォルトの名無しさん:2010/12/28(火) 20:47:31
すいません、System.nanoTime()をスレッドの中と外で使ってるんですが、
たまに返ってくる値がマイナスになってしまいます。

考えられる理由としてどういうものがありますか?
よろしくおねがいします。

557 :デフォルトの名無しさん:2010/12/28(火) 20:51:54
別々のスレッドで取得した値を引き算した結果がマイナスというオチはないよね?

558 :デフォルトの名無しさん:2010/12/28(火) 20:54:09
あるいはintに入れてオーバーフローとか

559 :デフォルトの名無しさん:2010/12/28(火) 21:06:46
>>556
メソッドの開始〜終了の経過時間を計算したら負の数になったってことですか?
System.nanoTime()はlongですがオーバーフロー時に値がゼロリセットされたり
することがありますよ。

560 :デフォルトの名無しさん:2010/12/28(火) 21:52:44
>>556
仕様

561 :556:2010/12/28(火) 21:57:32
みなさん、ありがとうございます。
値の確認の時だけintにキャストしたものをさらにstringにして確認してます。

Integer.toString((int) System.nanoTime())+" systemNS";

みたいな。
ただしこれは値を確認する時だけです。

それ以外の時は

long hoge;
みたいにグローバル変数として最初に定義したものを、
メインの関数内で

hoge = System.nanoTime();

としてまず値を取得。
それをスレッドのrun()内で

long threadHoge;
while(true){
 threadHoge = System.nanoTime()-hoge;
 //処理
}
みたいにして使ってます。

これがオーバーフローというやつにつながるんでしょうか…。

562 :デフォルトの名無しさん:2010/12/28(火) 22:12:55
あ、ちなみにメインの関数内のhoge = System.nanoTime();は
何度も呼ばれてhogeの中身が再設定されるので、
>>557さんが言われたことに近いのかな。

そのメインの中で取得したhogeの中身を、スレッド内から
Integer.toString((int) System.nanoTime())+" systemNS";
という風にstringにして確認すると中身が-2065724334とかになっちゃう時がある、という話です。
(常にそうなるというわけではない)


って、わかりやすく追記しようとして余計にわかりづらくなってしまったかも知れません。

563 :デフォルトの名無しさん:2010/12/28(火) 22:42:49
Integer#MAX_VALUE = 2147483647ナノ秒 = 2.147483647秒。
2.14...秒以上経過してからthreadHogeが更新される可能性があるにもかかわらず、
intの精度で出力してんなら当然負の値も出てくるわな。

564 :デフォルトの名無しさん:2010/12/28(火) 23:30:02
>>563
なるほど、大変よくわかりました。
String.valueOf(System.nanoTime();
って形でstringにキャストするとマイナスの値が出ることはなくなりました。

ありがとうございます。

565 :デフォルトの名無しさん:2010/12/29(水) 00:06:19
このスレのエスパー度の高さに驚嘆した

566 :デフォルトの名無しさん:2010/12/29(水) 00:07:28
>>547
ウンコみたいなコードってたとえば?

567 :デフォルトの名無しさん:2010/12/29(水) 16:07:00
>>566
public byte[] readFile(File f) throws IOException {
  byte[] data = new byte[(int)f.length()];
new FileInputStream(f).read(data);
  return data;
}

ストリーム閉じてない。サイズ不明なファイルの全体をサイズ
チェックしないで全部読み出すので、たとえば4GBのファイルを
読むにはヒープが4GB以上の64bitVMが必要。
それにAPIドキュメントの記載を読んだ限りでは、上のコードでは
ファイル全体を読み出さない可能性がある(実際は全体を読んで
くれるみたいだ)

568 :デフォルトの名無しさん:2010/12/29(水) 16:08:36
>>567訂正
ていうか2GB以上のバイト配列って作れないですね。

569 :デフォルトの名無しさん:2010/12/29(水) 16:13:01
>>567
確かにこれはうんこだな。
性能が低いだけでなく、バグ有りで、コードも芋臭い。
その場で辞表かかせるレベル。

570 :デフォルトの名無しさん:2010/12/29(水) 16:57:07
>>568
ウンコなのはおまえw

571 :デフォルトの名無しさん:2010/12/29(水) 18:29:35
<fileset dir="${client}" defaultexcludes="no" >

antです
コードのclientをproject/clientのように指定したい場合どうすればいいですか?

572 :デフォルトの名無しさん:2010/12/29(水) 18:30:06
今ごろウンコ臭い顔をして2GB以上の配列を作ってるんだろうな(笑)

573 :デフォルトの名無しさん:2010/12/29(水) 18:33:23
byte[]に読み込んで返すメソッドと決まってるなら閉じてない以外は問題ないだろ
>>567は常に対象のファイルが数GBのサイズであることを想定してコード書いてるの?
バイナリファイル読むときにread(buffer, 0, 4)で実際には3バイト以下しか読み込まれないかもしれないと考えるの?

574 :デフォルトの名無しさん:2010/12/29(水) 20:33:28
プログラムなんて、動いてるように見えればウンコでもOKだよな

575 :デフォルトの名無しさん:2010/12/29(水) 21:04:41
だなw

576 :デフォルトの名無しさん:2010/12/29(水) 22:55:48
うんこがうごいた!

577 :デフォルトの名無しさん:2010/12/29(水) 23:16:21
Unko unko = UnkoFactory.getUnko();
unko.move();

578 :デフォルトの名無しさん:2010/12/29(水) 23:33:28
ubuntuにeclipseをインストールしてみたんだけど、ctrl + spaceにコードアシストを変更しました
でも、コードアシストが表示されません
なぜでしょう?

579 :デフォルトの名無しさん:2010/12/29(水) 23:52:21
IMEに奪われてるとか?

580 :デフォルトの名無しさん:2010/12/30(木) 00:13:36
>>578
かな漢字変換が動いちゃうから?

581 :578:2010/12/30(木) 00:44:30
適当にやっていたらば、動くようになりました
ibusのご機嫌が悪かったみたいで、うまく動かなかったのかも

582 :デフォルトの名無しさん:2010/12/30(木) 03:36:01
repaint()を呼び出すボタンを押すと背景がグレーになってしまいます
しかし、画面を最大化するとちゃんと描画されるのですが
repaint()が動かない原因として考えられそうな原因ってありますか

該当部分はこんな感じです
removeAll(); //全部コントロールを削除
add(panel); //panelは新しくコンポーネントを追加したパネル
repaint();

583 :デフォルトの名無しさん:2010/12/30(木) 10:24:30
revalidate

584 :デフォルトの名無しさん:2010/12/30(木) 10:28:28
>>582
JComponent#repaint(Rectangle) とか使ってもダメ?

585 :デフォルトの名無しさん:2010/12/30(木) 11:28:36
bashでtabを押すと、コマンド/パスがとかが補完されると思います
それを、eclipseでやりたいのですがどうすればいいのですか?

1.ctrl + spaceでコードアシストを表示
2.矢印キーの代わりにtabキーでリストを移動

586 :デフォルトの名無しさん:2010/12/30(木) 11:53:33
>>583 どうも、解決しました

587 :デフォルトの名無しさん:2010/12/30(木) 12:00:01
>>582
JComponent#repaint(Rectangle) とか使ってもダメ?

588 :デフォルトの名無しさん:2010/12/30(木) 12:14:11
>>585
「それ」ってなに?

589 :デフォルトの名無しさん:2010/12/30(木) 12:15:57
>>587
そちらは動きませんでした(指定矩形のみグレーになる)

590 :デフォルトの名無しさん:2010/12/30(木) 12:48:32
>>585
多くのLinuxではCtrl+SpaceがIMEのON/OFF切り替えキーになってるのでIME側のショートカットキーを
無効化するのがいい。

591 :デフォルトの名無しさん:2010/12/30(木) 16:35:44
中級者から上級者へランクアップしたいが、何をすれば良い?
本でも何でもいいがオススメ頼む
早く働きたいぜ・・・

592 :デフォルトの名無しさん:2010/12/30(木) 16:40:54
まずは初級者から中級者へランクアップすることだ

593 :デフォルトの名無しさん:2010/12/30(木) 16:50:55
public static void main(String[] args) {
System.out.println("1:10秒 2:20秒 3:30秒");
Scanner scanner = new Scanner(System.in);
int len = 10*scanner.nextInt();
long start = System.currentTimeMillis();
scanner.nextLine();
scanner.nextLine();
long end = System.currentTimeMillis();
int result = (int)((end - start)/1000);
System.out.print(result + "秒 : " + (result == len ? "あたり!" : "はずれ!"));
scanner.close();
}
}


質問は、これでコンパイルができずに、「NewClass java15';'がありません。
long start = syste.current Timemills();]

になってしまうことです。「;」は入力されているはずなのに…
どうしたらよいでしょうか

594 :デフォルトの名無しさん:2010/12/30(木) 16:58:53
最後の}が余計だがとりあえずコンパイルは通るようだが。

595 :デフォルトの名無しさん:2010/12/30(木) 17:05:13
>>594
じゃあ自分のjavaがおかしいのか…
まったくコンパイル通らないorz

596 :デフォルトの名無しさん:2010/12/30(木) 17:14:03
ソースもエラーメッセージも一字一句違えず正確に書かなくちゃ原因はわからない
エラーメッセージの
syste.
とか
Timemills
とかは上のソースにはないようだが、ソースにないものが出るはずはない
どちらかが正しく書き写されていない

597 :デフォルトの名無しさん:2011/01/01(土) 01:56:40
mv = new MyClass();
    と
MyClass mc = new MyClass();
の違いって何ですか?

598 :デフォルトの名無しさん:2011/01/01(土) 02:47:56
>>597
変数名と変数型と変数の所属

599 :デフォルトの名無しさん:2011/01/01(土) 22:34:55
docomoの絵文字とバイナリ出力について質問です。
例えば晴れの絵文字はバイナリでF89Fですから、次のようにコードを書きました。
FileOutputStream o = new FileOutputStream("test.html");
o.write("<html><meta http-equiv=\"Content-Type\" content=\"text/html;charset=Shift_JIS\" /><body><p>".getBytes("MS932"));
o.write((byte) 0xF8);
o.write((byte) 0x9F);
o.write("</p></body></html>".getBytes("MS932"));
o.close();
ですが、正しく絵文字が表示されません。
なにか勘違いしているでしょうか?


600 :デフォルトの名無しさん:2011/01/01(土) 23:27:26
headタグが無いからそもそもコンテンツが出ないんじゃないですか?

601 :デフォルトの名無しさん:2011/01/01(土) 23:52:06
>>599
Java の文字列の内部コードって UTF-16 じゃなかったっけ?

602 :デフォルトの名無しさん:2011/01/01(土) 23:55:06
>>599
ファイル自体はShift_JIS表示で
0000 3C68746D 6C3E3C6D 65746120 68747470 <html><meta http
0010 2D657175 69763D22 436F6E74 656E742D -equiv="Content-
0020 54797065 2220636F 6E74656E 743D2274 Type" content="t
0030 6578742F 68746D6C 3B636861 72736574 ext/html;charset
0040 3D536869 66745F4A 49532220 2F3E3C62 =Shift_JIS" /><b
0050 6F64793E 3C703EF8 9F3C2F70 3E3C2F62 ody><p></p></b
0060 6F64793E 3C2F6874 6D6C3E         ody></html>
と出力されてました(バイナリエディタで確認)
>>600さんの言うとおり、タグの問題では?

603 :デフォルトの名無しさん:2011/01/01(土) 23:57:39
>>601
getByteで文字コード指定すれば、
通常の文字であればString型の文字列が
UTF-16→指定した文字コード
で変換されます

604 :デフォルトの名無しさん:2011/01/02(日) 00:03:28
>>599
後、勿論ブラウザがその文字コードに対応していないと表示はされません

605 :599:2011/01/02(日) 01:24:46
確認はFirefoxのモバイルシミュレータを利用してます。
headタグは忘れていたのでつけてみましたが変わらず・・・
ttp://mobile.hatena.ne.jp/
などは期待通りに表示されているのでなんらかの原因があるとは思うのですが。


606 :599:2011/01/02(日) 01:29:01
というか、このスレをモバイルシミュレータで開いていたらちゃんと絵文字変換されているし・・・orz

607 :デフォルトの名無しさん:2011/01/02(日) 04:48:16
']'がない とか <identifier>がない とか ';'がない とか言われます。
かれこれ4時間ぐらいここで躓いてるので、誰か助けて下さい><

Image [] image = new Image[6];
image[0]=Toolkit.getDefaultToolkit().getImage("image/migi_true.gif"));
image[1]=Toolkit.getDefaultToolkit().getImage("migi_false.gif");
image[2]=Toolkit.getDefaultToolkit().getImage("migi_double.gif");
image[3]=Toolkit.getDefaultToolkit().getImage("hidari_true.gif");
image[4]=Toolkit.getDefaultToolkit().getImage("hidari_false.gif");
image[5]=Toolkit.getDefaultToolkit().getImage("hidari_double.gif");

608 :デフォルトの名無しさん:2011/01/02(日) 04:51:18
607です。

2行目の("image/migi_true.gif")) は ("migi_true.gif") です。
申し訳ありません。



609 :デフォルトの名無しさん:2011/01/02(日) 05:43:44
コンパイル通るまでコメントアウトして確定しろ

610 :607:2011/01/02(日) 05:57:28
[ ]を取って配列じゃなくせば上手くいくのですが…

とりあえず、他の部分さえ正しければ、607のようなプログラムで動くんでしょうか?

それが分かるだけでも大分ありがたいのですが…

611 :デフォルトの名無しさん:2011/01/02(日) 06:24:35
>>607の前後のコードの文法に問題がるんじゃねーの?
>>607自体は文法的に何の問題も無い。

612 :デフォルトの名無しさん:2011/01/02(日) 08:08:09
>611
ありがとうございます。

また色々とやってみます。

613 :デフォルトの名無しさん:2011/01/02(日) 10:35:14
>>607は2行目閉じ括弧以外におかしい部分はない。
でもこんな書き方のほうがオススメだ。
Toolkit tk = Toolkit.getDefaultToolkit();
Image [] image = {
tk.getImage("image/migi_true.gif"),
tk.getImage("migi_false.gif"),
tk.getImage("migi_double.gif"),
tk.getImage("hidari_true.gif"),
tk.getImage("hidari_false.gif"),
tk.getImage("hidari_double.gif")
};

614 :デフォルトの名無しさん:2011/01/03(月) 03:31:57
Image [] image→Image[] image

615 :デフォルトの名無しさん:2011/01/03(月) 07:33:14
EclipseやNetBeans使わずにJavaを書くな、と言っても良い時代になったのかな?

616 :デフォルトの名無しさん:2011/01/03(月) 08:46:24
ダブルクリックを検出したいのですが e.getClickCount() == 2 で行った場合、
どれぐらいの間隔までならダブルクリックとみなすのでしょうか?

検索しても、それらしき記述は見あたりませんでした

617 :デフォルトの名無しさん:2011/01/03(月) 11:33:08
OSのダブルクリックの速度の設定

618 :デフォルトの名無しさん:2011/01/03(月) 17:59:31
メソッド内にある変数のアノテーションとりたいんだけど方法ないのかな
継承すればクラスのアノテーションとして取得できる?

void test(){
..@Name(name="Hello")
..Hoge value = new Hoge(){
....void aaa(){}
..};
..
..Class<?> clazz = value.getClass();
..Annotation[] clazz.getAnnotations();
}

619 :デフォルトの名無しさん:2011/01/03(月) 18:17:51
匿名クラスのクラスにアノテーションつける場合はどうなるんだろ
こうだとしたらキモいな

Hoge hoge = new @Name(name="Hello") Hoge implements IHoge(){
void hello(){}
};


620 :デフォルトの名無しさん:2011/01/03(月) 21:07:34
javascriptのArray.prototype.forEachっぽいのを実装しようとしてるんだが、
下記で「未チェックまたは安全ではありません。」警告を回避することは可能?
※ArrayWrapperはプリミティブ方も扱いたいので、ジェネリクスを付けるのは無しで

class ArrayWrapper {
 private Object arr;
 private int arrLength;
 public ArrayWrapper(Object arr){
  this.arr = arr;
  arrLength = Array.getLength(arr);
 }
 public void forEach(VoidFunc func){
  for( int i=0; i<arrLength; i++ )
   func.exec(Array.get(arr, i));
 }
}
interface VoidFunc<T> {
 public void exec(T elem);
}

621 :デフォルトの名無しさん:2011/01/03(月) 21:38:02
VoidFuncもObjectにすればいい
どうせarrがObjectなら無意味なんだから

622 :デフォルトの名無しさん:2011/01/03(月) 22:41:48
>>620
ジェネリクスでもオートボクシングされるからプリミティブも扱えるだろ

623 :デフォルトの名無しさん:2011/01/03(月) 23:03:43
eclipseで実行を押すと違うプロジェクトが動き出しちゃうんだけど
どうすればいいんですか?

624 :デフォルトの名無しさん:2011/01/03(月) 23:06:40
>>623
プルダウンから選択

625 :620:2011/01/04(火) 09:15:19
メソッドのジェネリクス使ったら解決した
interface VoidFunc {
 public <T> void exec(T elem, int i);
}

>>621
何とかしてキャストを省略したかったんだ

>>622
やってみたけど警告出たままだった…

626 :デフォルトの名無しさん:2011/01/04(火) 18:34:29
 Debug.print(ID,"hogefuga")
こんな感じでprintさせて、IDによって設定出来るかどうかを決められるような
Debugクラスを作りたい
ただ、
 public static final boolean debug = true;
 if(debug){ System.out.println(...);}
こういう感じにするとコンパイル後デバッグコードが消えるらしいので
これと組み合わせたい
こういうことは可能ですか?

627 :デフォルトの名無しさん:2011/01/04(火) 19:26:41
何がやりたいかよく分からんが、
java.util.logging.Logger じゃ不満?

628 :デフォルトの名無しさん:2011/01/04(火) 20:05:18
不満です

629 :デフォルトの名無しさん:2011/01/04(火) 20:57:03
いえ、不満じゃありません

630 :デフォルトの名無しさん:2011/01/04(火) 23:48:16
質問よろしいでしょうか。
Android 開発を行ってますが、Android には関係ないと思うのでここで質問させて頂きたいです。

画像ファイルが複数入っている zip ファイルから、
指定のファイル(ファイル名で指定)のみを取り出して表示させようと思ってます。

FileInputStream fis = new FileInputStream(〜);
ZipInputStream zis = new ZipInputStream(fis);
for (ZipEntry ze = zis.getNextEntry(); ze != null; ze = zis.getNextEntry()) {
 // もし指定のファイルなら表示して break
}

これで動作はするのですが、zip ファイルには3万を超えるファイルが入っており、
たまたま後ろの方にあるファイルを指定した場合、非常に時間がかかってしまいました。

そこで、C言語で言う ftell および fseek を使えば、
起動時に ftell でファイル名⇔ファイル位置のハッシュを作っておき(時間がかかりますが起動時に1回だけなので許容範囲としてます)、
表示時は fseek で一発で取り出せるのでは?と考えました。

ただ、ZipInputStream に fseek の代わりになりそうな skip というメソッドは見つかったのですが、
現在のポインタ位置を取得する ftell に当たるメソッドが見つかりません。

RandomAccessFile というクラスも見つけましたが、zip に使う方法が分からず…。

何かいい方法はないでしょうか。
長文で申し訳ありませんが、よろしくお願いします。

631 :デフォルトの名無しさん:2011/01/05(水) 00:04:31
>>630
ZipFileクラスでファイルを開いて、getEntry(String)でファイルを見つけ、
getInputStream(ZipEntry)でファイルを取り出す。

632 :デフォルトの名無しさん:2011/01/05(水) 00:29:25
>>631
おおお、あっさり行けました!!
ありがとうございます!!見つけれなかった自分が恥ずかしいです…精進します!

633 :デフォルトの名無しさん:2011/01/05(水) 01:20:48
JarファイルにMETA-INF/INDEX.LISTってファイルを配置してもあんまり効果が無い気がするんですけど…
Jarファイル内からclassファイルを探すにしてもFQCNからclassファイルの場所は解るんだからインデックスなんていらないですよね?
META-INF/INDEX.LISTって本当に意味有るんですか?
これに関する性能調査とかの記事とかありますか?


634 :デフォルトの名無しさん:2011/01/05(水) 01:43:26
//5万未満3以上の素数を求める
class HogeClass implements Runnable {
 public static final int N = 50000;
 public static boolean[] f = new boolean[50000];
 private int p;
 public HogeClass(int p){
  this.p = p;
 }
 public void run(){
  for(int i=3;i*p<N;i+=2){
   f[i*p]=true;
  }
 }
 public static void main(String[] arg){
  for(int i=3;i<N;i+=2){
   if (f[i]==false){
    (new Thread(new HogeClass(i))).start();
   }
  }
  int k=0;
  for(int i=3;i<N;i+=2){
   if (f[i]==false){
    k++;
    System.out.print(i+",");
   }
  }
  System.out.println("\n素数="+k+"個");
 }
}
スレッドの使い方を勉強してるんですが、素数を求めるプログラムをスレッド使って作ってみたんですけど
私初心者なんでこれで問題のある部分あったら教えていただけないでしょうか

635 :デフォルトの名無しさん:2011/01/05(水) 03:11:05
>>633
INDEX.LISTは複数のjarから構成されたアプリケーションであるclassをロードするときにどのjarから探せばいいかを示すためのもののはず
jarが1個なら意味ない

636 :デフォルトの名無しさん:2011/01/05(水) 03:14:00
>>634
startしたスレッドが結果表示時に完了している保証がない

637 :デフォルトの名無しさん:2011/01/05(水) 03:56:03
> public static void main(String[] arg){
>  for(int i=3;i<N;i+=2){

> public static void main(String[] arg){
>  for(int i=3;i*i<=N;i+=2){

638 :デフォルトの名無しさん:2011/01/05(水) 18:36:30
javaでsql使ったサンプルコード探すと
mysqlばかりでsqliteがないのは何か理由があるのでしょうか
JDBCがsqliteに対応してないとか?

639 :デフォルトの名無しさん:2011/01/05(水) 18:41:20
JDBC使うならターゲットデータベースがOracleだろうがPostgreSQLだろうがSQLiteだろうが関係ないだろw
そりゃSQLの文法の違いとかあるけどさ。

640 :デフォルトの名無しさん:2011/01/05(水) 18:52:17
sqliteってなんだっけ?DBなんだっけ?

641 :デフォルトの名無しさん:2011/01/05(水) 18:56:14
JDBCのドライバがsqlite3しか対応してなくて
sqlite2以下が切り捨てられてるから?

642 :デフォルトの名無しさん:2011/01/05(水) 19:13:35
俺はHSQLDBがお気に入り

643 :デフォルトの名無しさん:2011/01/06(木) 19:11:01
Javaでの文字コードの判別方法について教えてください。

Strutsで構成したWebシステムで、
ユーザーにテキストファイルをアップロードさせて、
サーバー側の処理で、その内容が
・UTF-8または半角ASCIIのみの文字列→OK
・それ以外の文字コードやバイナリファイル→エラー
というロジックを作りたいです。

byte[]型を自動判別してUnicodeに変換しString型に格納するといった系の処理は出てくるのですが、
あるファイルのバイト配列から、『この文字コードは「」である』といった結果を取得する方法が見つかりません。
何かいい方法はありませぬか?

644 :デフォルトの名無しさん:2011/01/06(木) 19:23:02
UTF-8 だけでいいのなら、 CharsetDecoder で実際にデコードしてみればいい
onMalformedInput と onUnmappableCharacter で例外を投げるように設定すればエラーを検出できるんじゃない

645 :デフォルトの名無しさん:2011/01/06(木) 20:17:36
class pathは外部のライブラリを参照する時に、
外部のライブラリがどこにあるのかを指し示すパスなのでしょうか?
IDE以外で開発をしたことがないのですが、特にそのへんを気にしなくても外部ライブラリを使うことができました
これは、IDEが勝手にクラスパスを設定してくれたというで間違えていませんか?

長文スマソ

646 :デフォルトの名無しさん:2011/01/06(木) 20:35:29
そうですが、外部のライブラリだけではなくアプリケーション自身のコードもクラスパスに含まれていなければ参照できません
間違えていません
ただしJRE自身と jre/lib/ext にインストールしたライブラリはクラスパスで指定しなくても参照してくれます

647 :645:2011/01/06(木) 20:54:50
>>646
レスありがとうございます

クラスパスを設定した時どのようなメリットがあるのか理解できないので、クラスパスがいまいちわかりません
java jp/google/www/hellow とすれば実行できるのに、
なぜクラスパスを設定する必要があるのですか?

648 :デフォルトの名無しさん:2011/01/06(木) 20:59:21
めんどくさいからだ!!!!

649 :645:2011/01/06(木) 21:02:37
>>648
結局、IDEを使えばクラスパスは自動で設定してくれるので、
特に気にする必要はないってことでおkなのでか

class pathを使うと*.classに全然関係ないディレクトリにいてもらくらく実行できるってことで間違いないですか?
$pwd → /opt/virtualbox
$java Main →"Hellow world"
ってことかな...

650 :デフォルトの名無しさん:2011/01/06(木) 21:03:51
unix文化だから

651 :デフォルトの名無しさん:2011/01/06(木) 21:16:26
>>649
IDEで、このプロジェクトではその外部ライブラリを参照するよ、ってな設定をしたんなら
そこにクラスパスが通った状態で実行してくれる

>class pathを使うと*.classに全然関係ないディレクトリにいてもらくらく実行できるってことで間違いないですか?
おk
PATH と同じよ

652 :デフォルトの名無しさん:2011/01/06(木) 22:12:58
あんまいい加減なこと書くなよ…。

653 :デフォルトの名無しさん:2011/01/06(木) 22:17:04
2chだからok

654 :デフォルトの名無しさん:2011/01/06(木) 22:22:18
javaアソシエイツとjavaプログラマーを読んでアルゴリズムは大体理解したんだけど
全然プログラム組めるようになってない
cmdで動くjavaファイルしか作れるようになってないし、アプレットの作り方なんて全然分からん
上の二つの参考書読んだくらいのレベルで消化できるアプリ開発とかの本があったら教えて

655 :645:2011/01/06(木) 22:48:04
>>651
クラス jp.co.google.www.hellow.Main.class を実行する時は
cd /home/user/;java jp/co/google/www/hellow/Mainとやらないと
*.classを実行することができない(IDEでやってたので知らなかった..)

でも、それじゃ面倒なので
java jp.co.google.www.hellow.Mainで実行すると、↑と同じことをやってくれるってことですね
jp.co.google.www.hellowって入力するの、ちょっと面倒ですね

これで、クラスパスはOKでしょうか

656 :デフォルトの名無しさん:2011/01/06(木) 22:49:19
>>654
もしかして、javaからプログラミングやり始めた人間?
.netの方がスラスラとプログラムを作っていくことができるよ

657 :デフォルトの名無しさん:2011/01/06(木) 23:00:20
できるよ

658 :デフォルトの名無しさん:2011/01/06(木) 23:05:05
パッケージとクラスパスがごっちゃになってないか?

659 :デフォルトの名無しさん:2011/01/06(木) 23:11:48
>>658
それ、誰に行ってるの?

660 :デフォルトの名無しさん:2011/01/06(木) 23:14:38
servlet/jspはHTMLを吐き出すという点では同じですが、
結局何が違うわけですか?

どっちもtomcatは必須ですか

661 :デフォルトの名無しさん:2011/01/07(金) 00:15:54
>>656
そうなのか
じゃあ.Netもやってみるよ
ただwebのサイトを作りたいと思ってるからjavaも勉強した方がいいよね?
アプリケーションでもアプリでもいいから初歩から始められる本があればいいんだけど・・・
しかしjavaの本は皆高いな
図書館にも置いてないし

662 :デフォルトの名無しさん:2011/01/07(金) 00:19:04
webサイトってもしかしてそれでアプレット?
とっくに終わった技術だよ

663 :デフォルトの名無しさん:2011/01/07(金) 00:28:13
http://internet2.shogidojo.net/dojo/dojo705.htm
こんな感じのサイト
javaじゃ駄目かな?

664 :デフォルトの名無しさん:2011/01/07(金) 00:43:56
Listのfilterとかmapみたいなのはまだ実装されてないんだよね?

665 :デフォルトの名無しさん:2011/01/07(金) 00:54:47
>>660
書き方。
書き換えが必要なところだけを効率よくかけるようにしたのがjsp
PHPでもHTMLをはき出すのは同じなんだけどな。

tomcatが必須なわけじゃない、サーブレットコンテナとよばれるものがあれば。
ほかにもJettyやらResinとかがある。

666 :デフォルトの名無しさん:2011/01/07(金) 02:05:53
>>660
jspは初回アクセス時にコンパイルされて
servletに変換されてるぞ
workを覗いてみれ


667 :デフォルトの名無しさん:2011/01/07(金) 09:50:37
phpが遅すぎるのでjspにした
この選択は間違ってないのだろうか

668 :デフォルトの名無しさん:2011/01/07(金) 10:05:18
どうだろうね
PHPのほうがハードルが低いのは確かだろうけど

669 :デフォルトの名無しさん:2011/01/07(金) 11:27:13
Tomcat入れてる時点でリソースをより喰うのはJavaのほうだろうな。
とはいえ、それに見合った速度は出るはずだが。
昔はサーブレット動かそうとすると、専用サーバぐらいしか選択肢がなかったが、
GAE/JとかVPSとかで安く出来るようになったから嬉しい限りだ。

670 :デフォルトの名無しさん:2011/01/07(金) 13:10:43
>>663
時代遅れ
webと言えばJavaなのはサーバー側の話。アプレットはクライアント側。
アプレットなんてJREが入ってないと動かないから嫌われるよ

671 :デフォルトの名無しさん:2011/01/07(金) 16:18:18
いまなら、FlexかSilverlightでつくるかなぁ。
FlexのほうがFlashプラグインだけで済むから楽だな。

HTML5で行くっていうてもあるな。iphoneでもできると宣伝できる。

672 :デフォルトの名無しさん:2011/01/07(金) 17:00:57
HTML5もあまり使いたくないな
マークアップ言語とそれようのスクリプト言語、ブラウザを自作したいぜ

673 :デフォルトの名無しさん:2011/01/07(金) 17:11:03
01|public abstract class ManyMethods
02|{
03|  // final が付いていないメソッド宣言たくさん、抽象メソッドたくさん
04|}
05|
06|public class Concrete extends ManyMethods
07|{
08|  public int get(){} // オーバーライドしたくないメソッド
09|}


このような場合に
Concrete#get() のメソッド名が衝突していると
警告やエラーを発してくれる
キーワードやアノテーションってありますか?


ManyMethods の方はライブラリになってて final を付けたりできず
またオーバーライドされる事を想定したメソッドもあったりして
ManyMethods を変更せずに何とかしたいです
御教授よろしくお願いします


674 :デフォルトの名無しさん:2011/01/07(金) 17:58:28
>>673
間にもうひとつクラスを挟む
public abstract class ManyMethods {
...
}
public abstract class ManyFinalMethods extends ManyMethods {
public final int get() { return super.get(); } // オーバーライドしたくないメソッド
}
public class Concrete extends ManyFinalMethods {
...
}

675 :デフォルトの名無しさん:2011/01/07(金) 19:06:23
Eclipseだとオーバーライドしてるのに@Overrideが無いと「@Overrideつけくされや」って警告がでるな。デフォルトの設定だと。

676 :デフォルトの名無しさん:2011/01/07(金) 19:33:26
javadocはどうやってコメントを抜き出してるの?

677 :デフォルトの名無しさん:2011/01/07(金) 19:45:52
javacとコンポーネント共有して、真面目に構文解析でやってるはず。

678 :デフォルトの名無しさん:2011/01/07(金) 21:40:31
そういえばjavadocが未だにただのhtmlなのは残念だな。
eclipseのメソッド補完中に出てくるコメントとか、しょうがなくhtmlのjavadoc読んで、
その結果遅いわけだろ?
IDEとの連動性とかその他の再利用性を考えるとXML+XSLTとか、いっそjson+html
の方が断然有意義なはずなのに。

679 :デフォルトの名無しさん:2011/01/07(金) 22:00:49
>>670

680 :デフォルトの名無しさん:2011/01/08(土) 08:42:10
TimerTaskを内部クラスのように使うさいに(aはmainメソッド中で宣言、代入したオブジェクトです)
異なるメソッドで定義されたインナー・クラス内で非 final 変数 a を参照できません
となるのですがfinalだと参照できるというのがよくわかりません。
どういうことなんでしょうか?

681 :デフォルトの名無しさん:2011/01/08(土) 09:02:39
別のスタックフレーム上にあるローカル変数を参照するためのバイトコードはJVMに存在しないので、そのようなローカル変数は参照できない
その変数の値を内部クラスの中にコピーして保持おけば、そのコピ−の方は参照できるが、代入とかして変更しても当然コピー元は変更されない
非finalな変数をこのように暗黙のうちにコピーして保持すると代入したときにこのような見ため矛盾が生じるのでそのようなことは出来なくした
finalな変数なら代入できないから矛盾は発生しないのでそのようなことを出来るようにした

682 :デフォルトの名無しさん:2011/01/08(土) 09:11:13
>>681
ありがとうございました

683 :デフォルトの名無しさん:2011/01/08(土) 17:54:54
メソッド名で悩んでいるんですけど以下の2つだとどっちがおすすめですか?
(1) List<String> getNames();
(2) List<String> getNameList();

メソッド名に返り値の型名まで入れるのは野暮な気がするので、(1)かなぁと思
いつつも、もしString[]を返すメソッドも欲しくなった場合を考えると区別す
るために(2)かなぁとも思うんですが。

(2) List<String> getNameList();
(2') String[] getNameArray();

684 :デフォルトの名無しさん:2011/01/08(土) 17:59:30
(1)だな
受け側でたまたま配列が欲しいからってクラスの方に追加するのはよくないと思う
List<String>で受け取った後で自分で変換するべき

685 :デフォルトの名無しさん:2011/01/08(土) 18:10:32
俺はどっちも使う
気分で決める
だけど
> もしString[]を返すメソッドも欲しくなった場合を考えると
そんな無駄なことまで考える必要はない
実際にそのメソッドが欲しくなってから考えればいいことだ

686 :デフォルトの名無しさん:2011/01/08(土) 18:32:56
>>684
受け取った側がList<String>からString[]に変換するとコピーが1回ふえること
になりますよね?性能面でのデメリットが有るように思います.

>>685
String[]を返すメソッドが欲しくなってから追加した場合は、
List<String> getNames();
String[] getNameArray();
な感じで統一感が失われてなんか格好良く無い気がします.

つまり野暮だけど,メソッド名に型名を付けるのがベター気がしてきました.
(2) List<String> getNameList();
(2') String[] getNameArray();

そもそもJavaのシグニチャには返り値の型は含まれないので,メソッド名の命
名規則に統一感を出す為にはメソッド名に型名を書くのが良いのではないでしょ
うか?

687 :デフォルトの名無しさん:2011/01/08(土) 18:39:37
getter/setterの場合を考えてみます.

String getName();
は違和感を感じませんが,本当は違和感を感じなければならないメソッドでは
ないかという気がしてきました.よく考えてみるとこれはNameという概念は
Stringであるという設計上の了解が前提にあります.

もし,Nameという型があるならば,
Name getName();
も違和感を感じません.これはきっと正しいです.

そう考えれば今となっては
String getNameString();
は冗長には見えないのではないでしょうか?

つまり,メソッド名には返り値の型名を付けるのが設計上妥当だと言えるので
は?と思うのですがどうでしょうか.


688 :デフォルトの名無しさん:2011/01/08(土) 18:51:27
eclipseが一発で名前変更してくれるので後から名前を変えたくなっても何も困らない

689 :デフォルトの名無しさん:2011/01/08(土) 19:09:40
>>688
ライブラリだと困るじゃん

690 :デフォルトの名無しさん:2011/01/08(土) 19:13:22
ライブラリならそもそも個性出しちゃダメ

691 :デフォルトの名無しさん:2011/01/08(土) 20:38:58
明らかに冗長…

String getName();
Name getName();
を混在させたければ、"Name"のところを工夫しろ

692 :デフォルトの名無しさん:2011/01/08(土) 20:39:15
673です
すいません説明が足りなかったので少し加えさせてください

01|public abstract class ManyMethods
02|{
03|  // final が付いていないメソッド宣言たくさん、抽象メソッドたくさん
04|}
05|
06|public class Concrete extends ManyMethods
07|{
08|  // ManyMethods の public protected メソッドを組み合わせて使って
09|  // 新しい機能を提供するメソッド get() を加えたいんだけど
10|  // もしかしたら ManyMethods#get() という名前が 非 final で 宣言されてるかも
11|  // オーバーライドしたら挙動が変わってめちゃくちゃ
12|  // ManyMethods はメソッド多くて調べるの大変
12|  // ライブラリのVerUPで ManyMethods#get() が加えられるかもしれないし
13|  // 名前が重複したらチェックできたらいいな
14|  public int get(){} // オーバーライドしたくないメソッド
15|}

という意味です


”オーバーライドしていること保障してくれる”アノテーションがあるのなら
逆の”オーバーライドしていないことを保障してくれる”アノテーションも
あるのかなと思って質問しました


正直ライブラリの構造があまり良くないというのもあるのですが;;
命名規約を変えるか、継承ではなく集約で実装したほうがよさそうですね・・
どうもでした

693 :デフォルトの名無しさん:2011/01/08(土) 21:15:45
>>692
名前をtypoってオーバライドしそこなうのは
親クラスを確認しないで継承してオーバライドしてしまうアホよりも
救済する価値が高い

694 :デフォルトの名無しさん:2011/01/08(土) 21:30:14
設計ミスを認めたくなかったんじゃね

695 :デフォルトの名無しさん:2011/01/08(土) 21:31:29
共変と上限境界(? extends T)
反変と下限境界(? super T)
この2つの組み合わせは別物ですか?

696 :デフォルトの名無しさん:2011/01/08(土) 21:39:55
>>686
ワンポイントで使うためで手抜きをするなら配列で
そこそこちゃんと作るつもりならListにする。
性能面の効率をなんとかかすめ取ることまで考えるなら、
引数にindexを渡して個々の値を所得するメソッドとサイズを返すメソッドを用意する。

配列は言語的にどうあがいても可変なので
フィールドから取り出したり格納するときに防御的コピーしなければならないのが確定

また、言語的に配列はジェネリクスと相性が悪い。

697 :デフォルトの名無しさん:2011/01/08(土) 22:13:11
JUnitってどのくらい強力なのですか?
継承関係にないクラスが大量にある場合は、あまりメリットがないような気がするのですが

698 :デフォルトの名無しさん:2011/01/08(土) 22:15:53
継承関係があると何故メリットがあるんだ?そこはJUnitと関係ないような

699 :697:2011/01/08(土) 22:29:07
>>698
そうだったんだ

業務ではvisual studioを使っているんだけど、単体テストツールを使ったことがないんだ
だから、ちょっとjunitを使うとどんなメリットがあるか、わかってないんだわwww

700 :デフォルトの名無しさん:2011/01/08(土) 22:34:33
どういうテストコードを書くかは自由
まず、自分が作ったクラスや関数のそれぞれについてテストコードを書いとく
特に、内部的に大きな変更を加えたようなケースで、過去のコードが全部期待通りに動くかを
まとめてテスト出来るのは便利

701 :697:2011/01/08(土) 22:37:11
>>700
Test Firstって考え方ですか

うちの会社でERPのカスタマイズしてるんだけど、
単体テストツール使っていなから普通の会社では使っているのかなって疑問があるわ
参考になりました。ありがとうございます

702 :デフォルトの名無しさん:2011/01/08(土) 22:37:40
VSって単体テストツールないのか。
だから.NETのアプリってクソばっかなんだな。

703 :デフォルトの名無しさん:2011/01/08(土) 22:42:25
Test Fisrt って言ってみたかっただけなんだ(うふ

MSの癖にJavaをサポートしてるのか?
エセJavaについてはシラネー

704 :デフォルトの名無しさん:2011/01/08(土) 22:47:13
>>702 つ NUnit

705 :デフォルトの名無しさん:2011/01/08(土) 22:50:11
>>702
うちの会社は田舎にある会社だから、社員がダメダメな他人ばっかりなんだよ
C#使っているのに、NUnitの存在すら誰も知らないし

そして、俺なんか未だにVB6/SQL Server200で開発してるしさ

706 :デフォルトの名無しさん:2011/01/08(土) 23:00:11
>>701
既存のプロジェクト+JUnit用の後付けテストコードって方法もあるから
テストファーストとはちょっと違うような。

どっちかっつーと自動テストか

707 :デフォルトの名無しさん:2011/01/08(土) 23:40:35
eclipseのコードアシストをctrl + n/ctrl + pで選択する方法ありませんか?
vimユーザなのでemacsキーバインドにはしたくないです

708 :デフォルトの名無しさん:2011/01/09(日) 05:52:20
javaアンインストール中止と出た 新規でもインストール出来ない
個別にファイル消したのが悪いのかな

709 :デフォルトの名無しさん:2011/01/09(日) 05:55:08
>>708
その前にやったことが原因かもしれない。

710 :デフォルトの名無しさん:2011/01/09(日) 13:55:46
jdkのsrcには含まれていないソースコードもありますか?
たとえばcom.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificatesです。

711 :デフォルトの名無しさん:2011/01/09(日) 14:40:45
log4jを使ってて、bashに色付きでログを表示したいんですけど、やりかたが有ったら教えてほしいです。

712 :デフォルトの名無しさん:2011/01/09(日) 14:49:00
jspをマウスでドラッグドロップしてVisualStudioのMFCみたいに編集する方法ないですか?

713 :デフォルトの名無しさん:2011/01/09(日) 16:33:07
java Frame awtの質問なのですが、
プログラムの最初に
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.ImageObserver;
とあったのですが、これらってどういう意味ですか?

普段なら
import java.awt.*;
import java.awt.event.*;
と、これだけなのでこの二つの意味はわかるのですけど・・・

714 :デフォルトの名無しさん:2011/01/09(日) 17:05:58
* なんてモノグサな表記を使わずに必要なものを個別にimportしてるだけ
* の意味がわかってないとか?

715 :デフォルトの名無しさん:2011/01/09(日) 19:01:37
>>714
それじゃ
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.ImageObserver;
これを
import java.awt.*;
import java.awt.event.*;
と置き換えることはできますか?

716 :デフォルトの名無しさん:2011/01/09(日) 19:04:07
import java.awt.image.ImageObserver;
が java.awt.* でも java.event.* でもないから無理だな
java.awt.image.* も付けないと

717 :デフォルトの名無しさん:2011/01/09(日) 20:51:37
>>716
import java.awt.*;
import java.awt.event.*;
java.awt.image.*
にしたら
class,interface,またはenumがないっていうエラーが出た・・・

718 :デフォルトの名無しさん:2011/01/09(日) 21:01:55
javaって本当にいい言語だよな
C#/C++は自由度が高すぎて、いろいろと考えるから疲れる

719 :デフォルトの名無しさん:2011/01/09(日) 22:28:43
>>717
× java.awt.image.*
○ import java.awt.image.*;

たぶん吊りなんだろうなー

720 :デフォルトの名無しさん:2011/01/10(月) 00:31:40
>>719
なんとかエラーが消えました。
ありがとうございます、でも今度はきちんと動作しなくなったけど・・・

721 :デフォルトの名無しさん:2011/01/10(月) 03:34:12
Booleanを返すフィールドはisFirstみたいに
isを付けると思いますが、これのアクセサメソッド名はget(set)IsFirstになるのでしょうか?

722 :デフォルトの名無しさん:2011/01/10(月) 03:37:50
自分は
setFirst(boolean)か
setFirst()
resetFirst()
のどちらかにすることが多い

723 :デフォルトの名無しさん:2011/01/10(月) 03:38:43
getはそのままisFirstがgetterね

724 :デフォルトの名無しさん:2011/01/10(月) 04:11:55
フィールドをfirstXxにするかな

725 :デフォルトの名無しさん:2011/01/10(月) 05:01:41
strus
動かしたい

これの通りにinput.jsp output.jsp etcのファイル作ったのに何故か動かない
http://www.atmarkit.co.jp/fjava/rensai3/struts02/struts02_1.html

ひょっとしてstrutsってeclipseとかで自動生成するものなのか?

726 :デフォルトの名無しさん:2011/01/10(月) 07:15:22
eclipseの使い方検索すると
以前のバージョンとメニューが違う項目に移動してたりして使えないんだけど
その辺はメニューかたっぱしから開いて探すしかないの?

727 :デフォルトの名無しさん:2011/01/10(月) 07:35:45
そんなんで困ったこと無いけど。
パースペクティブがJavaになってないとかそんなんじゃね。

>>725
普通はblankプロジェクトから作る
まあ今更Struts1も無いと思うけどな

728 :デフォルトの名無しさん:2011/01/10(月) 10:00:32
JavaVMの仕組みについて学べる本屋やサイトがあれば教えてください。
お願いします。

729 :デフォルトの名無しさん:2011/01/10(月) 10:02:46
最近の本屋はサービスいいんだな

730 :デフォルトの名無しさん:2011/01/10(月) 11:02:23
>>728
http://web.archive.org/web/20050218022640/http://www.netgene.co.jp/java/documents.html

731 :デフォルトの名無しさん:2011/01/10(月) 11:53:20
>>728
池袋のジュンク堂とか、椅子が置いてあって、JavaVMの本を座って読めるよ。
洋書も豊富にあるし。

732 :デフォルトの名無しさん:2011/01/10(月) 11:56:52
梅田のジュンク堂も忘れないであげて

733 :デフォルトの名無しさん:2011/01/10(月) 11:58:25
売り物を店が椅子を用意して進んで読ませるってどうよ。

734 :デフォルトの名無しさん:2011/01/10(月) 12:01:58
>>733
アメリカ辺りでは普通らしい。日本と流通のしくみが違うかららしいが。

735 :デフォルトの名無しさん:2011/01/10(月) 12:02:20
>>704
nunitって糞だろ

736 :デフォルトの名無しさん:2011/01/10(月) 12:07:25
>>678
見てるのはコード中のコメント

737 :デフォルトの名無しさん:2011/01/10(月) 13:52:27
javaプログラミングってなんて面白いんだろう

738 :デフォルトの名無しさん:2011/01/10(月) 13:54:35
定期的に投入されるキモい釣り糸

739 :デフォルトの名無しさん:2011/01/10(月) 13:54:39
え?

740 :デフォルトの名無しさん:2011/01/10(月) 14:16:52
リフレクションはインスタンスの生成やprivateなフィールドにアクセスすることができます
普段はprivateなフィールドなんかにアクセスする訳なんてありえないと思います
結局、リフレクションは何に使われているんですか?

741 :デフォルトの名無しさん:2011/01/10(月) 14:36:46


742 :デフォルトの名無しさん:2011/01/10(月) 14:38:51
そう思ううちは必要ないものだから気にするなというのは時々言われた

743 :デフォルトの名無しさん:2011/01/10(月) 15:14:43
>>740
プライベートフィールドにアクセスするだけの目的じゃないからな。
XMLに記述されたクラスのインスタンスの生成とか。
jspファイルに記述されたメソッドの
呼び出しとか。

プライベートフィールドをいじったのは、
.Netだけど、DBのコネクションが隠蔽されたがゆえに、
トランザクションを貼ることごできなくて、
それを回避するために使ったこと位かな。

744 :740:2011/01/10(月) 15:24:57
>>743
そうなのか、thx

745 :デフォルトの名無しさん:2011/01/10(月) 16:43:19
>>740
前にdao層の切り替え(ベンダごと)に使ったよ。
ベンダごとでsqlなりロジックなり捌き方をかえる必要があったから。

746 :デフォルトの名無しさん:2011/01/10(月) 17:36:31
>>740
beanからbeanとかmapに丸ごとコピーする関数を作る時とか

747 :デフォルトの名無しさん:2011/01/10(月) 21:30:14
>>732
別に池袋、梅田に限った話じゃないんじゃ

748 :デフォルトの名無しさん:2011/01/11(火) 22:22:46
Javaでコマンドプロンプトのプログラム用に、他の言語よりも
おいしそうな標準ライブラリありますか。

749 :デフォルトの名無しさん:2011/01/11(火) 22:33:44
プリン虎板とか?

750 :デフォルトの名無しさん:2011/01/11(火) 23:09:30
commons-cli だろうなんといってもw

751 :デフォルトの名無しさん:2011/01/11(火) 23:37:12
すみません、jpa-hibernateを勉強しようと思っているのですが、
jbossやglassfishのようなコンテナは必須なのでしょうか?
例えばswingアプリケーションでhibernateを使いたい場合は
jbossも含めて配布する必要があるのでしょうか。

752 :751:2011/01/12(水) 00:14:05
すみません、必須ではないですね。失礼しました。

753 :デフォルトの名無しさん:2011/01/12(水) 01:09:26
commons-cliはいつも使ってるが、OptionBuilderだっけ?このクラスの使い方だけは気にくわねぇわ。

754 :デフォルトの名無しさん:2011/01/12(水) 18:54:04
気にくわねぇわね

755 :デフォルトの名無しさん:2011/01/12(水) 19:31:22
hadoopのmapreduceプログラムを作ろうとしてます。
簡単な四則演算プログラムを作りたい場合どういった手段を取ればよいのでしょうか。
理想として
入力となるテキストファイルは

1 + 2

出力されるテキストファイルは

3

となるようにしたいのですが・・。
そもそもmapreduceでやろうとしてるのが間違いなんでしょうか・・
どなたかご教示願います。

756 :デフォルトの名無しさん:2011/01/12(水) 20:34:08
せいぜい10個程度しかクラスが無いのに、JUnit使う意味ってあると思いますか?

757 :デフォルトの名無しさん:2011/01/12(水) 20:37:17
そもそもテストすることを前提に考えて作ってないとテストするのは難しいよ

758 :デフォルトの名無しさん:2011/01/12(水) 20:56:03
>>755
とりあえず簡単なコンパイラ製作の本を読んで構文解析
構文解析できたら数式の評価はinterpreterパターンでも使えば簡単

759 :デフォルトの名無しさん:2011/01/12(水) 21:03:40
>>756
クラス1個あたりメソッド5〜10個と仮定すると、メソッド50〜100個ぐらいの規模でしょ。
JUnit使ってテスト書く練習するにはちょうどいい規模じゃね?

760 :デフォルトの名無しさん:2011/01/12(水) 21:04:03
>>758
レスどうもありがとうございます。
interpreterパターンググってみたら希望が見えてきました。ほんとに助かりました!頑張ります

761 :756:2011/01/12(水) 21:09:30
>>757,>>759
とても参考になりました
ありがとうございます

762 :デフォルトの名無しさん:2011/01/12(水) 22:30:39
ネームスペースってどう決めたらいいんですか?
orgとかnetとかありますが、自分のパッケージをどうすればいいのか分かりません。
今作っているのは個人製作のアプリです。

763 :デフォルトの名無しさん:2011/01/12(水) 22:59:09
.netプロジェクトではバージョン管理にvssを使うことが多いと思うのですが、
javaの場合はリポジトリに何を使っているのでしょうか?

764 :デフォルトの名無しさん:2011/01/12(水) 23:06:29
>>762
俺は自分の借りてるレンサバ用サブドメインの逆順を使ってる (jp.ne.xxxx)
ソースフォージとかにプロジェクト登録すれば、あれ使ってもいいんじゃないかと思う (jp.sourceforge.xxxx)
このようなサービスもある→ http://www.java-conf.gr.jp/wg_bof/package/about.html
そんなこと全然関係なしに好き勝手に付ける人もいる

765 :デフォルトの名無しさん:2011/01/12(水) 23:08:24
>>763
普通どっちもsubversion。vssは残念なプロジェクト。

766 :デフォルトの名無しさん:2011/01/12(水) 23:10:59
>>763
CVSでもSubversionでもgitでもmercurialでも好きなものをどうぞ

767 :デフォルトの名無しさん:2011/01/12(水) 23:21:26
バージョン管理はGITでFA
少数開発ならSVNでもいい

768 :デフォルトの名無しさん:2011/01/12(水) 23:43:01
>>765
その残念なvss好きが多くて
とても困ってる。。

769 :デフォルトの名無しさん:2011/01/12(水) 23:50:44
>>768
好きなんじゃなくて老害がそれしか知らないとかそんなんじゃないの。
他を知った上で、あれが好きってのは信じられないわ。

770 :デフォルトの名無しさん:2011/01/13(木) 00:31:28
>>769
svnとかも触ってみてもらったり
説明したりもしたけど、vssに慣れてるから。って
言われるんだ。

まぁ、確かに結構古い人達(20年ランナーもいる)だけどね。
でもBTS使いたいからsvnに慣れてもらうけど。。。

771 :デフォルトの名無しさん:2011/01/13(木) 01:35:24
そんな連中にまともにBTSなんて運用できないと思う

772 :デフォルトの名無しさん:2011/01/13(木) 07:57:11
確かに。

773 :デフォルトの名無しさん:2011/01/13(木) 10:26:03
木構造のMYCLASSがあったときに、素直にこうするのと
List<T> f(MYCLASS c){
List<T> result = new ArrayList<T>();
//cを使ってに追加する処理は省略
//nullチェックは省略
result.addAll(f(c.left));
result.addAll(f(c.right));
}

別メソッドを作って
List<T> g(MYCLASS c){
List<T> result = new ArrayList<T>();
return gimpl(c,result);
}
List<T> gimpl(MYCLASS c,List<T> result){
//cを使ってに追加する処理は省略
//nullチェックは省略
result.addAll(f(c.left));
result.addAll(f(c.right));
}

こうするのとでは速度的にはどちらが良いのでしょうか?

774 :デフォルトの名無しさん:2011/01/13(木) 10:29:17
後半の再帰呼び出しが間違ってました
List<T> gimpl(MYCLASS c,List<T> result){
//cを使ってresultに追加する処理は省略
//nullチェックは省略
result.addAll(gimpl(c.left));
result.addAll(gimpl(c.right));
}

775 :デフォルトの名無しさん:2011/01/13(木) 10:37:36
それも間違ってるでしょう
正しいのはこうじゃないですか
List<T> g(MYCLASS c){
List<T> result = new ArrayList<T>();
gimpl(c, result);
return result;
}
void gimpl(MYCLASS c, List<T> result){
//cを使ってに追加する処理は省略
//nullチェックは省略
gimpl(c.left, result);
gimpl(c.right, result);
}

776 :デフォルトの名無しさん:2011/01/13(木) 10:48:05
ああう、その通りです・・
言いたいことを把握して頂いてありがとうございます。
質問したいことを別の形で言うと、
ArrayListを何度もnewすることのコスト増と
関数引数が増えてしまうことのコスト増では
どちらが大きくなるのかなというところです

777 :デフォルトの名無しさん:2011/01/13(木) 10:52:15
ウェブブラウザのJavaについての質問もここで良いのでしょうか?
XP SP3、Firefox 3.6.13って環境で
http://www.dreamvisor.com/
このサイトにアクセスすると、通常表示されるはずの右側にある、銘柄名、現在値、前日比って部分が表示されません。

Javaのコンソールを開くと
java.io.EOFException
at java.util.zip.GZIPInputStream.readUByte(Unknown Source)
at java.util.zip.GZIPInputStream.readUShort(Unknown Source)
at java.util.zip.GZIPInputStream.readHeader(Unknown Source)
at java.util.zip.GZIPInputStream.<init>(Unknown Source)
at java.util.zip.GZIPInputStream.<init>(Unknown Source)
at com.dreamvisor.Chart.ChartData.loadData(Chart.java)
at com.dreamvisor.Chart.Chart.loadData(Chart.java)
at com.dreamvisor.Chart.Chart.run(Chart.java)
at java.lang.Thread.run(Unknown Source)

ってエラーみたいな物があるのですが、これの解決方法を教えてほしいです。
IEだと正常に表示されます。Firefoxをセーフモードで起動して観覧しても表示されませんのでアドオンなどのせいでは無いと思います。
他にはセキュリティソフトのON、OFFなども試しました。


778 :デフォルトの名無しさん:2011/01/13(木) 10:55:54
>>776
一般論でいってArrayListの生成とコンストラクタ呼び出しのコストに比べれば
メソッド引数が1個増えるのにかかる処理時間増加分の方がコスト安いと思うが。

779 :デフォルトの名無しさん:2011/01/13(木) 11:05:16
>>755
>そもそもmapreduceでやろうとしてるのが間違いなんでしょうか・・
そこじゃない。
hadoopってどんなところで使われているかわかってる?
大量のデータを分散して効率よく処理するためのツールで、
あなたの例を利用すると、
1+2+…って感じで、+で区切られた数字が収められた1TByteのテキストを、
10台のマシンで処理しようとするときに、各ノードにデータを分散させて処理させて、
その結果を集めてくるまでをやってくるしくみ。

構文解析とかそういうのは全くhadoopとmapreduceには関係ない。

780 :デフォルトの名無しさん:2011/01/13(木) 11:07:31
>>777
サイトの管理者に問題を報告して解決を依頼してください

781 :デフォルトの名無しさん:2011/01/13(木) 11:08:56
どーもこーもならん。
java.io.EOFException
End Of File例外ってのがでてる。
データ送る側のデータがおかしいんじゃないかな。

素直にIEつかってなさい。

782 :デフォルトの名無しさん:2011/01/13(木) 11:28:52
>>780
>>781
最初Firefoxのスレで質問したんですが
他の人は正常に表示されてるみたいです。

ですので自分の環境がおかしいと思うんでが・・・。



783 :デフォルトの名無しさん:2011/01/13(木) 11:31:28
おまえの環境なんてしるか。ここを何板だと思ってんだ。
Windowsの再インストールから始めろ。

784 :デフォルトの名無しさん:2011/01/13(木) 13:24:35
>>782(777)
ここは開発者のためのスレッドであり板なので
PC初心者板あたりで聞いたほうがいいよ

785 :デフォルトの名無しさん:2011/01/13(木) 13:31:10
PC初心者板はいつも荒れてるから
PCサロン板のほうがいい

786 :デフォルトの名無しさん:2011/01/13(木) 13:31:42
てす

787 :デフォルトの名無しさん:2011/01/13(木) 16:48:54
public boolean equals(HOGE o)
public boolean equals(Object o)
この両方定義したら後者が使われたんだけど
equalsのジェネリック版ってないのかな?

788 :デフォルトの名無しさん:2011/01/13(木) 17:10:11
>>787
メソッドは名前と引数型が組になってメソッドなので、名前が同じだけじゃ単に名前が同じだけの別々のメソッドだから、
新しく equals(HOGE) を定義しても、それは equals(Object) をオーバーライドしたことにはならないし、
新しく変な (ジェネリック版の?) equals を定義しても、それは equals(Object) をオーバーライドしたことにはならない
equals(Object) をオーバーライドしたいなら、 equals(Object) を使わなければならない

789 :デフォルトの名無しさん:2011/01/13(木) 17:22:44
ああ、これが動くためには
ObjectクラスがObject<T>に変わって
public boolean equals(T o)
になる必要があるわけで、これは無理か
compareToとか色々ジェネリック版があるのに
equalsとかは非ジェネリックなままなのね

790 :デフォルトの名無しさん:2011/01/13(木) 21:00:29
>>741
http://yuzuru.2ch.net/test/read.cgi/diet/1290341059/

誤爆?w

791 :デフォルトの名無しさん:2011/01/13(木) 21:56:49
>>789
equalsっ同じ型同士を比較する場合だけじゃないような
継承関係のない型も比較できないと困る

792 :789:2011/01/13(木) 22:15:44
現実はそうなってないわけだが、
それなら
public boolean equals(? super T o)
で定義すればいいと思う

793 :789:2011/01/13(木) 22:17:41
あ、継承関係のない型か、それはオーバーライドとは関係ないのでは?

794 :デフォルトの名無しさん:2011/01/14(金) 13:15:24
人からもらったプログラム群を動かしたいんですけど、
web-infってフォルダにjspとsrcフォルダがあって、
.jspのファイルが50個くらい、.javaのファイルが50個くらいあります。

自分なりに調べてtomcatいれてindex.jsp開いてみたらプログラムの一部分しか開けていないよう。
.javaのほうも一つコンパイルして.classにしてtomcat通して開いてみたけど違うみたい。

これらはどうやって使える状態にするんですか?全部classにコンパイルすればいいんですか?


795 :デフォルトの名無しさん:2011/01/14(金) 14:04:21
>>794
使えるようになるには、ドキュメントとか場合によってはソースとか全部読んで理解する必要があるんじゃないだろうか?

796 :794:2011/01/14(金) 14:29:55
>>795
これら計100個くらいのプログラムで一つの大きなプログラムじゃないんですか?

上でも書いたように、今どれか一つを開いても形になっていないようなので。

797 :デフォルトの名無しさん:2011/01/14(金) 14:32:05
>>796
>>795を読んでそのレスってことならお前にはそのプログラムを動かす資格がない
出直せ

798 :デフォルトの名無しさん:2011/01/14(金) 14:33:20
JAVAの実行画面をワードに貼り付ける方法を教えてください!

799 :デフォルトの名無しさん:2011/01/14(金) 14:34:12
検索しましたけど、見つからなかったので、Java Web Startの質問はここで良いですか?

800 :デフォルトの名無しさん:2011/01/14(金) 14:40:44
良いですよ

801 :デフォルトの名無しさん:2011/01/14(金) 14:42:48
>>798
キーボードのPrintScreenキーを押してからワードの貼り付けを実行してください

802 :デフォルトの名無しさん:2011/01/14(金) 15:20:14
>>796
形になってないことが分かっているんだったら、そのままでは絶対使えないよね。
大量にある形になっていないものを調べながら形にしていくよりは
自分なりに調べて一から作り直した方が早いよ。

803 :デフォルトの名無しさん:2011/01/14(金) 16:23:39
XXX.classのファイルを開くにはどうしたらいいですか?文字化けでもいいので見たいです。
完全に見れない状態で、WEBで作成元のプログラムを表示してくださいとでます

804 :デフォルトの名無しさん:2011/01/14(金) 16:54:04
javap -c XXX

805 :デフォルトの名無しさん:2011/01/14(金) 16:56:17
>>803
java decompilerとかどう?

806 :デフォルトの名無しさん:2011/01/14(金) 17:24:12
>>800
ありがとうございます。では、

既に作成してwebサーバにアップロードしたjnlpファイルを編集してheap sizeを増やしたりすると、
アプリケーションが起動しなくなるのですが、これは仕様でしょうか?

807 :デフォルトの名無しさん:2011/01/14(金) 18:06:21
>>806
増やすっていうのがどのくらいのことなのかわかりませんが、
例えば32ビットCPUではアドレス空間を4GBまでしか扱えませんので、そこまで増やすことはできません
(その4GBもOSやらなんやらがだいぶ持っていってしまうので、Javaヒープのために使える空間はもっとかなりだいぶ減ります)
もし64ビットCPUと64ビット版のOSを使ってるなら、JavaVMも64ビット版にすればもっと増やせるようになるでしょう

808 :デフォルトの名無しさん:2011/01/15(土) 00:35:51
なんじゃこりゃ?

何が言いたいのかわからん

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1453760309

809 :デフォルトの名無しさん:2011/01/15(土) 00:42:56
で、2chでそういうと「○○に決まってるだろ」という回答がもらえると

810 :デフォルトの名無しさん:2011/01/15(土) 07:03:20
同じインターフェースで実装が異なるライブラリがあるんだけど、
EclipseとApacheの実装だとどっち使ったほうがいいのかな?
機能的にはどっちでも良いんだけどね。

811 :デフォルトの名無しさん:2011/01/15(土) 09:53:41
お前が好きな方に決まってるだろ

812 :デフォルトの名無しさん:2011/01/15(土) 10:37:03
24時間稼動してるシステムがあって、配列とかリストとかを定期的に
データベースへ保存するスレッドが走ってるんですが
これを、負荷の低いときだけ保存する、または負荷の高いときは保存しない
みたいにしたいと思います。
負荷が高いとか、低い、とかの判断方法があったら教えてください。

813 :デフォルトの名無しさん:2011/01/15(土) 10:58:03
スレッドの優先度を下げておけばいいんじゃない

814 :デフォルトの名無しさん:2011/01/15(土) 14:18:57
>>810
ものによるに決まってるだろ

815 :デフォルトの名無しさん:2011/01/15(土) 15:40:02
スレッドの優先度を下げておけば
負荷が高いとか、低い、とかの判断ができるんですか???


816 :デフォルトの名無しさん:2011/01/15(土) 16:34:19
>>812
OperatingSystemMXBean#getSystemLoadAverage()

ただしWindowsだとサポートしてなかったような記憶が……

817 :デフォルトの名無しさん:2011/01/15(土) 16:35:31
できます

818 :デフォルトの名無しさん:2011/01/15(土) 20:19:51
オープンソースのコードとかjavadocのコメントがちゃんと書いてありますが
ああいうのは普通にエディタで1個1個書いてるんですか?
javadocのコメントを書く際に便利なツールとかってありますか?

819 :デフォルトの名無しさん:2011/01/15(土) 20:24:42
例えばEclipseだとショートカットキー一発で「デン」と雛形が挿入されるけど。

820 :デフォルトの名無しさん:2011/01/15(土) 20:31:15
tomcatのweb.xmlで
cvc-complex-type
というエラーが出ていたんですが無駄な改行を消していたらいつの間にか消えました。
あれはなんですか?

821 :デフォルトの名無しさん:2011/01/15(土) 23:50:44
struts2のゼロコンフィギュレーションでページが404になるときとかどうやってデバッグしたらいいですか?

822 :デフォルトの名無しさん:2011/01/16(日) 00:02:47
JDBCで、SQLの問い合わせ結果(ResultSet)に対してSQLを発行するなんてことできる?

どうやったらいいかサパーり見当がつかない。

823 :デフォルトの名無しさん:2011/01/16(日) 00:14:41
>>822
viewに対して検索したいってこと?

824 :デフォルトの名無しさん:2011/01/16(日) 00:33:28
viewは作ってないんだけどなぁ。

ResultSet resultSet = statement.executeQuery (sql_1);

ってかんじで帰ってきたresultSetに対して、sql_2を発行するって感じなんだけど。

825 :デフォルトの名無しさん:2011/01/16(日) 00:36:25
ResultSetをデータソースとするRDBを作りこめば可能かもね

826 :デフォルトの名無しさん:2011/01/16(日) 00:40:46
サブクエリ?

827 :デフォルトの名無しさん:2011/01/16(日) 00:41:03
以下のページについて、ZeroAction.classということは
プロジェクトのプロパティから.classファイルの出力先をWEB-INF/classesにするということですか?


http://codezine.jp/article/detail/3837?p=2
<ContextRoot>
├ /WEB-INF
│ ├ /classes
│ │ ├ /zero.action
│ │ │ └ ZeroAction.class

828 :デフォルトの名無しさん:2011/01/16(日) 01:05:23
OSGiのスレが無いんですが立てていいかな?

829 :デフォルトの名無しさん:2011/01/16(日) 03:23:30
うん

830 :デフォルトの名無しさん:2011/01/16(日) 17:25:44
>>824
本当にやりたいことは、結果に対するSQL発行?
一回目のクエリ結果をさらに絞り込みたいだけだったりしない?

もしそうなら、google-guavaのPredicate<T>かcommons.collectionsのPredicate
あたりをつかって絞り込むことをおすすめする。

831 :デフォルトの名無しさん:2011/01/16(日) 19:00:49
eclipseでおすすめのUMLプラグインを教えてください

832 :デフォルトの名無しさん:2011/01/16(日) 19:22:49
Limy

833 :デフォルトの名無しさん:2011/01/16(日) 19:37:58
GET

834 :831:2011/01/16(日) 20:00:40
>>832
ありがとうございます

835 :デフォルトの名無しさん:2011/01/16(日) 23:40:38
WEBサイトを作るに当たってstruts2だけでなくspringも使う事には何かメリットはありますか?

836 :デフォルトの名無しさん:2011/01/16(日) 23:56:31
ぶっちゃけ流行ってる理由を明確に説明出来るほどのメリットはない。

837 :デフォルトの名無しさん:2011/01/17(月) 14:18:31
初心者です。javaでたぬき言葉を作りたいのですが、「た」、「タ」、「田」を混ぜて作りたいのですが作り方がわかりません。
よければ、ソースを貼っていただけると嬉しいのですが、やり方だけでも教えていただけませんか。
開くのはJCpadです。
よろしくおねがいします。

838 :デフォルトの名無しさん:2011/01/17(月) 14:26:01
JCpadでググったら
近畿大学って出た

839 :デフォルトの名無しさん:2011/01/17(月) 15:07:19
StringBuilder sb = new StringBuilder("初心者ですって言うな");
Random r = new Random();
for (int i = 0; i < 10; i++) {
sb.insert(r.nextInt(sb.length()+1), "た");
sb.insert(r.nextInt(sb.length()+1), "タ");
sb.insert(r.nextInt(sb.length()+1), "田");
}
System.out.println(sb);

840 :デフォルトの名無しさん:2011/01/17(月) 16:14:03
StringBuilderはたぶん講義で扱ってないだろうから反則だろ

841 :デフォルトの名無しさん:2011/01/17(月) 16:35:28
じゃぁ、StringBufferで。

842 :デフォルトの名無しさん:2011/01/17(月) 18:04:07
importがいらないのってMathとSystemだけなんでしょうか?

843 :デフォルトの名無しさん:2011/01/17(月) 18:06:22
Langとか。

一体何のために知りたいのかがわからん。

844 :デフォルトの名無しさん:2011/01/17(月) 18:20:17
>>842
パッケージjava.langのクラスすべて
http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/package-summary.html

845 :デフォルトの名無しさん:2011/01/17(月) 19:43:50
>>812 以下のメソッドを使うのも検討してみては?
int java.lang.management.OperatingSystemMXBean.getAvailableProcessors()

1.6なんだけど
32環境でコンパイルしたものと
64環境でコンパイルしたものは同一のバイトコードができると思っていいの?
64のマシン持ってないからわからん・・

846 :デフォルトの名無しさん:2011/01/17(月) 19:46:15
>>812 以下のメソッドを使うのも検討してみては?
int java.lang.management.OperatingSystemMXBean.getAvailableProcessors()
優先度下げると、いつまでも動かない事例が発生しかねない(ガクブル

ここからしつもん
1.6なんだけど
32環境でコンパイルしたものと
64環境でコンパイルしたものは同一のバイトコードができると思っていいの?
64のマシン持ってないからわからん・・

847 :デフォルトの名無しさん:2011/01/17(月) 19:54:51
64でもバイトコードは同じ

848 :デフォルトの名無しさん:2011/01/17(月) 19:56:21
実装案としては
ループで閾値が書いてあるファイルを見に行って超えてなかったら
保存メソッドを叩く感じが運営的にいいのかもね

849 :デフォルトの名無しさん:2011/01/17(月) 20:00:44
847さんくす
ゲーム用サーバ買って公開しようとおもってて
稼動させながらコンパイルするのはどうかと思ってたんだ


850 :デフォルトの名無しさん:2011/01/17(月) 20:02:21
eclipseでビジュアルクラス(Swing-アプリケーション)のプログラムを作成したのですが
このプログラムに別に作成したプログラム(awt、applet)を組み込むことは可能でしょうか?

851 :デフォルトの名無しさん:2011/01/17(月) 20:03:14
可能でなんでしょうかね

852 :デフォルトの名無しさん:2011/01/17(月) 20:06:42
実装案2としては
シェルとかでTOPの値見て同じことをやることもできる
getAvailableProcessors()で取得できるCPU使用率と、TOPで取得できるCPU使用率は合一じゃない
それか直接javaプロセスからexecするとかも考えられる

853 :デフォルトの名無しさん:2011/01/17(月) 20:09:29
>>850
組み込むというのは同一プロセスで動作させる意かな?
もうすこしだけ具体的に書かないとわけわかめ

854 :デフォルトの名無しさん:2011/01/17(月) 20:20:24
>>853
そういうことです。
ペイント機能をswingで作成し、絵を動かすプログラムをawtで作成しました。それを同一プロセスで動かしたいです。

855 :デフォルトの名無しさん:2011/01/17(月) 20:27:37
USB関連はおざなりになってしまっているわけだけど
ゲームコントローラの入力を個別に取得できないですかね?
JoypadListener的な物がなぜないんだろうと思う、今日この頃

856 :デフォルトの名無しさん:2011/01/17(月) 20:32:00
Graphics2DとRunnableあたりでぐぐってみたらどうだろう

857 :デフォルトの名無しさん:2011/01/17(月) 20:40:52
>>856
ぐぐってみたらいけそうなこと書いてありました。

ありがとうございます

858 :デフォルトの名無しさん:2011/01/17(月) 22:09:57
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">を宣言した
xml形式のプロパティファイルで、xml:space="preserve"を記述してホワイトスペースを
認識させようとしているのですが、以下のエラーが発生します。
何かうまい対処方法は無いものでしょうか?

InvalidPropertiesFormatException: org.xml.sax.SAXParseException:
Attribute "xml:space" must be declared for element type "entry".

859 :デフォルトの名無しさん:2011/01/17(月) 22:56:20
スペースとか改行を「 進文字コード;」形式でエンコードするのはだめですか?
SPACE: %#32;
CR:
LF:
TAB:
またはentry要素の下にCDATAセクションって入らなかったっけ?
<properties>
<entry key="hoge"><![CDATA[ほ げ
っ]]></entry>
</properties>

860 :デフォルトの名無しさん:2011/01/17(月) 22:58:28
>>859訂正。
「&#文字コード;」の記号を半角で。あとスペースのエスケープは「&#32;」でした「%」が間違っています。

861 :デフォルトの名無しさん:2011/01/18(火) 00:22:13
SQL接続についての質問です。よろしくお願いします。
開発環境 Windows7 64bit Pro
 java -version
 java version "1.6.0_23"
 Java(TM) SE Runtime Environment (build 1.6.0_23-b05)
 Java HotSpot(TM) 64-Bit Server VM (build 19.0-b09, mixed mode)
本番環境 Debian
 java -version
 java version "1.6.0_23"
 Java(TM) SE Runtime Environment (build 1.6.0_23-b05)
 Java HotSpot(TM) 64-Bit Server VM (build 19.0-b09, mixed mode)
javaは同じものを入れています。

jarファイルに格納されたSample.java(main含む)のコンストラクタに「Class.forName("org.sqlite.JDBC");」を記述したところ、
Windows/Debian共に「sqlitejdbc-v056.jar」を正常に読み込めていました。

package net.example.demo;にあるDBConnect.java のコンストラクタに同じものを記述すると、Windowsでは成功し、データベースにはアクセスできますが、
全く同じディレクトリ構造、プログラムにもかかわらず、Debianでは失敗してしまいます。
>> java.lang.ClassNotFoundException: org.sqlite.JDBC

java -cp ".:sqlitejdbc-v056.jar" -jar main.jar
のようにしても同じでした。

全く解決のアイデアが浮かばず困っています。解決策 or アイデアいただけませんでしょうか。よろしくお願いします。

862 :デフォルトの名無しさん:2011/01/18(火) 00:33:34
>>861
「-jar」つけて起動すると-cpおよび-classpathパラメータ、それからCLASSPATHが無視
され、-jarの次に指定したjarファイルだけがCLASSPATHに設定された状態でランタイ
ムが起動します。
対策として、main.jar内のマニフェストに依存jarファイルの名前を書いておくか、または
java -cp main.jar:sqlitejdbc-v056.jar Sample
で動くはず。逆にWindowsで動くのが不思議・・・
あとパッケージ名の無いクラスの扱いは微妙。変に動いたり動かなかったりします。

863 :デフォルトの名無しさん:2011/01/18(火) 00:35:14
txtファイルの改行コード確認するコードってどんなの書けばいいの?

864 :デフォルトの名無しさん:2011/01/18(火) 00:43:32
>>862
返信ありがとうございます。たとえばアプリのプラグインのようなものを作っていてツリーはこのような感じです

-main.jar
-sqlitejdbc-v056.jar
+plugins
-Sample.jar

Sample.jar
-DBLoader.class
-Sample.class

他の人のDBを扱う物(位置はSample.jar列)はDebianでもWindowsでも正常に読み込めていて、
私が作ったものは何故かWindowsでは動き、Debianでは動かない状況が発生してしまっております。

教えて頂いたコードですが、動かす先がjar固定なので適応できません。すいません。

865 :デフォルトの名無しさん:2011/01/18(火) 00:50:23
pluginsに任意のjarファイルを追加できるということなら、plugins以下のjarが実装できている
であろうインターフェースや抽象クラスがmain.jarにありますよね?
その条件なら自分でURLClassLoaderを作って起動後に子クラスローダを使ってjarをリンク
する方法があります。詳しくは「階層化クラスローダー」をぐぐる。

866 :864:2011/01/18(火) 00:51:35
状況が変わりました

開発環境 Windows 動作成功
テスト環境 Debian4 動作成功
本番環境 Debian5 動作失敗

この手の質問は、Javaの質問なのでしょうか。
Linux関係の設定の質問でしょうか。申し訳ありません。
ちょっと状況が変わったので自己解決目指します。

867 :デフォルトの名無しさん:2011/01/18(火) 00:52:59
>>865
これは使えそうです。知りませんでした、ありがとうございます。

868 :864:2011/01/18(火) 01:46:47
意外な腑に落ちない解決策です。
たとえばプラグイン名が AClass.classとします。
sqlitejdbc-v056.jar
が先に読み込みたいクラスなので、という理屈で
XClass.classにリファクタしました。
動きました。

869 :デフォルトの名無しさん:2011/01/18(火) 09:31:39
Antで質問です。
Sun Java6 UPDATE 22, Ant 1.8.0 (debian squeeze amd64) を使っています。

ソースファイルが2つあります。build.xmlは
http://www.atmarkit.co.jp/fjava/rensai2/jakarta02/jakarta02.html
のリスト2を手本にして、パラメータを変更したものです。

ソースを変更していなくても、ant compile すると、必ず全ての .class
ファイルのタイムスタンプが更新されています。ソースに更新があった場合
に、そのソースだけコンパイルされるのではないのでしょうか?

870 :デフォルトの名無しさん:2011/01/18(火) 18:39:11
>>869
Ant によ限らず、Java のソースは、
他のソースに依存している部分があると
依存元を道連れにコンパイルする。

871 :デフォルトの名無しさん:2011/01/18(火) 18:39:33
JavaアプレットのMouseListenerで、手前側にあるコンポーネントがMouseListenerを持っていると
その下側にあるコンポーネントにイベントが伝わりません。
手前側のコンポーネントがMouseListenerを持たなければ下側にも伝わります。

このイベントを、手前のも下側のも受け取れるようにするにはどうすればいいですか?

872 :デフォルトの名無しさん:2011/01/18(火) 18:40:31
依存元じゃなくて依存先を

873 :デフォルトの名無しさん:2011/01/18(火) 18:42:17
>>869
antのjavacタスクは増分ビルドです。でもソースフォルダとclass出力先が同じだったりすると
タイムスタンプが変わったかも。またはクラスAを継承したA'があるとき、Aを変えると
A'も変わるとかはあるかも。あとはeclipseで開発していてantのclasss出力先とeclipseの
class出力先が一緒だったらeclipseがファイル上書き時に勝手にビルドするのでそのせい。

874 :869:2011/01/18(火) 19:30:33
869です。どうもありがとうございます。

compileタスクに依存するjarタスクが定義されているんですが、ant jar する
と、必ずcompileタスクも実行されます。ソースを全く触ってなく、ソースの
タイムスタンプが未来になっているようなこともないのですが、ant jar する
たびに .class ファイルも .jar もタイムスタンプが新しくなります。謎です…。
たぶん僕が何かミスをしているんだと思うんですけど、まだ判りませんorz

ちなみに、src/Main.java と src/test.java というファイルがあり、Mainが
testクラスを使っています。javacのdestdirは class/ です。importは多数
ありますが、更新されるようなものではありません。
あと、このソースに関してはIDEは使っていません。(NetBeansが入っているけど
ちょっと使っただけで放置してます…)
そんな感じです。だんだんチラ裏がふさわしい感じになってきた…すみません。

875 :デフォルトの名無しさん:2011/01/18(火) 19:36:20
C言語やりたいから大学院行かせろとか姉が勝手にビルドするのでそのせい。

876 :デフォルトの名無しさん:2011/01/18(火) 22:16:17
>>860
ありがとうございました。
以下のようなCDATAでできました。
<properties>
<entry key="hoge"><![CDATA[ほ げっ]]></entry>
</properties>

" " はホワイトスペースとして削除されだめでした。

877 :デフォルトの名無しさん:2011/01/18(火) 22:17:25
if( cellx.status == 0 ){
cellx.status = 1;
cellx.setBackground( XXXXXXXXXXXXXXX ); // 青緑色 RGB[85.136.136]


} else {
cellx.status = 0;
cellx.setBackground( XXXXXXXXXXXXXXX ); // 水色 RGB[185.236.236]

XXXXXXXXXの部分にコメントアウトで示している色を入れたいんですがどうすればいいのでしょうか?


878 :デフォルトの名無しさん:2011/01/18(火) 22:17:26
>>876 の訂正
"&#32;" はホワイトスペースとして削除されだめでした。

879 :デフォルトの名無しさん:2011/01/18(火) 22:19:18
cellxの型が解からんと答えようが無い。

880 :デフォルトの名無しさん:2011/01/18(火) 22:22:24
>>879
http://www.ie.reitaku-u.ac.jp/~tak/sinfB/sinfB05.txt
このURLの
//+++++++++++++++++++++++++++++++++++
// クリックしたときの動作 |
//+++++++++++++++++++++++++++++++++++
class Clickcell implements ActionListener{

public void actionPerformed( ActionEvent evt ){ // イベントリスナー

//... イベントソースのセルを取得
Cell cellx = (Cell)evt.getSource();

//... 消滅しているならば
if( cellx.status == 0 ){
cellx.status = 1; // 生成する
cellx.setBackground( XXXXXXXXXXXXXXX ); // 青緑色にする

//... 生成しているならば
} else {
cellx.status = 0; // 消滅する
cellx.setBackground( XXXXXXXXXXXXXXX ); // 水色にする
}
}
}

の部分です

881 :デフォルトの名無しさん:2011/01/18(火) 22:27:42
new Color(185.236.236)とか多分そんなん
Color.redとかでも

882 :デフォルトの名無しさん:2011/01/18(火) 22:29:36
>>880
cellx.setBackground(new Color(85, 136, 136));

883 :デフォルトの名無しさん:2011/01/18(火) 22:34:42
>>881
>>882
いけました。ありがとうございます

884 :デフォルトの名無しさん:2011/01/18(火) 23:01:42
waitとnotifyってどういう時に使うんでしょうか?
ランダム過ぎて使い道が分かりません
ゲームくらい?

885 :デフォルトの名無しさん:2011/01/18(火) 23:10:08
>>884
guarded suspensionパターンとかで。

886 :デフォルトの名無しさん:2011/01/18(火) 23:16:07
http://www.atmarkit.co.jp/fjava/rensai3/swing04/swing04_02.html
これの
>public void actionPerformed(ActionEvent event){
このメソッドの実装内容はinstanceofを並べるアンチパターンと同様に
抽象化されたComponentというものを破って実装クラスを見てますよね?
getSource() == any.class
みたいな形にしたらなんか違うんですか?

887 :デフォルトの名無しさん:2011/01/18(火) 23:30:55
>>880です。
さっきのプログラムをJpanelにコンポーネントとして追加することは可能なのでしょうか?
可能ならどうすればよいですか?
http://www.ie.reitaku-u.ac.jp/~tak/sinfB/sinfB05.txt

888 :デフォルトの名無しさん:2011/01/18(火) 23:48:35
>>885
複数の別処理をするスレッドの場合はどうしたら良いでしょうか?

889 :デフォルトの名無しさん:2011/01/19(水) 00:25:30
>>886
addButtonもclearButtonもどっちもJButtonだからクラスじゃ判別できんだろう

890 :デフォルトの名無しさん:2011/01/19(水) 00:41:35
こういうエラーがでるのですが、ググったり色々と調査しても
原因がわかりません。ヒントでも良いので何か頂けないでしょうか。


Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0

at java.util.Vector.elementAt
at javax.swing.table.DefaultTableModel.getValueAt
at javax.swing.table.JTable.getValueAt






891 :デフォルトの名無しさん:2011/01/19(水) 01:52:49
開発環境の話ですみません。
Eclipseのpackage Explorerビューの設定がおかしくなってしまいました。
Eclpse起動時に、Project以下のツリーが表示されていたのですが
ある日を境に、パッケージの奥深くのフォルダが1つ表示されるだけになってしまいました。

フォルダ移動してプロジェクトのルートに移動しても、
Eclipse再起動すると必ず奥深くのパッケージに戻ってしまいます…

設定を元に戻す方法を教えてください。

892 :デフォルトの名無しさん:2011/01/19(水) 09:52:11
JSPで書かれた掲示板やブログってないのでしょうか

893 :デフォルトの名無しさん:2011/01/19(水) 10:08:39
JSPWikiはどう

894 :デフォルトの名無しさん:2011/01/19(水) 10:12:01
>>891
新しいワークスペースに切り替えてそっちにプロジェクト全部引っ越すといいんじゃない

895 :デフォルトの名無しさん:2011/01/19(水) 10:55:45
>>807
もっと簡単に言えば、jnlpファイルを編集するとアプリケーションが起動しなくなるのですが、これは仕様でしょうか?

896 :デフォルトの名無しさん:2011/01/19(水) 11:43:57
簡単に言いすぎて詳しいことがわからないが、編集する内容によるんじゃない
編集してメチャクチャな内容にしてしまったら起動しないだろう、それは仕様だと思うよ

897 :デフォルトの名無しさん:2011/01/19(水) 12:17:22
>>888
wait/notify(notifyAll) は数少ない資源の獲得合戦に使うようなものだから、
各スレッドが違う資源を使うのなら、そう作れば良い。

898 :デフォルトの名無しさん:2011/01/19(水) 12:30:38
>>890
どんなプログラムを実行して
どんな表示になって
どんな操作をしたら
そうなったのか。

899 :デフォルトの名無しさん:2011/01/19(水) 13:49:27
>>896
内容が悪い訳ではありません。
新しく書き換えたjnlpファイルから新規インストールすると、普通に動くのですが、
そのjnlpを書き換える前から参照していたクライアントでは例外エラーが出て動かなくなるのです。
これは仕様なのでしょうか?という話です。

900 :デフォルトの名無しさん:2011/01/19(水) 15:30:15
>>897
http://developer.android.com/reference/java/util/concurrent/locks/Condition.html
事故解決した、これを使うと解決するらしい

901 :デフォルトの名無しさん:2011/01/19(水) 19:23:03
質問しようと思ったのですが
質問文書いてある間に自己解決しました

902 :よくあること:2011/01/19(水) 20:26:16
 o-o、
 ('A`) メガネメガネ
 ノ ノ)_


903 :デフォルトの名無しさん:2011/01/19(水) 22:16:10
DBUnitの質問があります(Unitテスト関係のスレが見当たらなかったので、ここで質問させてもらいます)

JDBC を使用して、ant + DBUnit でOracleへのデータへ追加や削除などをしようと考えています。

現在、ant + DBUnit(Flat XML) を使用して、Import処理(operation INSERT)までできています。
antにおいて、SQLでのUPDATEやDELETE処理などができることは確認しているのですが、
ant + DBUnit にて operation UPDATE や operation DELETE をXMLを使用して行いたいのですが、
XMLファイルに記載する内容がどこまで必要なのかがわかりません。

たとえば、VARCHAR2型のカラムA01〜A10の10個を持つTable-A が存在し、A01,A02,A03がプライマリキーとします。
UPDATEの場合、A01="A001" A02="A002" に一致するデータの A04の値を更新したい場合、XMLへどのように記載すればいいのかわかりません。
DELETEの場合、A01="A001" A02="A002" に一致するデータを削除したい場合、XMLへどのように記載すればいいのかわかりません。


いろいろなサイトを見てみたのですが、UPDATEやDELETEの場合、Antの記述の仕方が書かれたHPはいくつも見るのですが、
実際に指定されたXMLの内容が載っているHPが見つかりません。
またUPDATEやDELETEに関しては、JavaのソースからDBUnitを呼び出して処理を行うサンプルに関しても、いくつもHPがあるのですが、
Antに関する記述がありません。(できれば、都合によりJavaでの開発はしたくないので。)


ant + DBUnit にて operation UPDATE や operation DELETE を行う場合の、XMLの記述の仕方を教えていただけますか。
もしくは、参考になるHPがあるのであれば、教えてください。

よろしくお願いいたします。


904 :デフォルトの名無しさん:2011/01/19(水) 22:35:35
eclipseでデバッグする時に「クラス・ファイル・エディター ソースが見つかりませんでした」とエラーが出るのです。
ソースを見ても意味ないのでソースを見ないように設定したいのでが、設定方法を教えてください

905 :デフォルトの名無しさん:2011/01/20(木) 13:28:31
2DMMO作っててJavaWebStart使おうと思ってるんだけど
セキュア面で気をつけないといけないところを教えて下しあ

クライアント:ほにゃほにゃ
サーバー:むにゃむにゃ

906 :デフォルトの名無しさん:2011/01/20(木) 14:04:00
DefaultHttpClientを使用してhttpsのサイトにアクセスしようとしてるのですが
とりあえずloginとlogoutの処理を書いてみて試したところ
loginはできるのですがlogoutしようとすると
Caused by: java.security.cert.CertPathValidatorException: TrustAnchor for CertPath not found.
at org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi.engineValidate(PKIXCertPathValidatorSpi.java:149)
at java.security.cert.CertPathValidator.validate(CertPathValidator.java:202)
at org.apache.harmony.xnet.provider.jsse.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:164)
というエラーになります。
SSLがよくわかっていないので試行錯誤中なのですが
login時に確立したSSLセッションを保持しておいてlogout時にも使用すればいいのかなと考えたのですが
DefaultHttpClient?からSSLSessionを取得する方法がよくわかりません。
SSLのセッションを取得するにはどうしたらいいのでしょうか?

907 :デフォルトの名無しさん:2011/01/20(木) 14:11:38
このページは見ましたか? javaは標準じゃないとダメなのかな?
ttp://journal.mycom.co.jp/column/java/056/index.html

908 :デフォルトの名無しさん:2011/01/20(木) 14:59:58
>>907
ありがとうございます。
logout時にハンドシェイクに失敗していること、証明書パス検証に失敗してることまでは
デバッグ情報からわかったのですがそれが何を意味してるのよくわかってないので
そこらへんから勉強し直さないとやっぱ駄目ですね。

909 :デフォルトの名無しさん:2011/01/20(木) 18:41:03
駄目ですね。

910 :デフォルトの名無しさん:2011/01/20(木) 20:23:42
>>905
ローカルのホームフォルダにファイルをつくろうとするとなぜかデスクトップにファイルが作られることがある

911 :デフォルトの名無しさん:2011/01/20(木) 23:19:27
Java並行処理プログラミング
って本は役に立ちますか?

912 :デフォルトの名無しさん:2011/01/20(木) 23:23:02
私の役には立ちました
あなたの役に立つかはわかりません

913 :デフォルトの名無しさん:2011/01/20(木) 23:31:39
>>911
俺に聞いた方がいい

914 :デフォルトの名無しさん:2011/01/20(木) 23:33:47
買います

915 :デフォルトの名無しさん:2011/01/20(木) 23:36:03
>>910さんくる
今のところローカルマシンのファイルをいじいじする予定は無いので
ひとまず安心

ちょっとかいつまんで
コンカレントとシンクロの意味の違いさえわかれば、JAVA関連の書籍は買う必要ないと思ってる

916 :デフォルトの名無しさん:2011/01/21(金) 20:02:59
継承よりinterfaceを使っていると
同じ内容のメソッドをコピペする事が増えませんか?
そもそもinterfaceで定義されたメソッドが実装クラス毎に逐一異なるかというと
全く同じものになってしまうことも多いと思うのですが
そういう場合どうやってコードを共通化していますか?

917 :デフォルトの名無しさん:2011/01/21(金) 20:04:17
abstractってものがあってだな。

918 :デフォルトの名無しさん:2011/01/21(金) 20:10:05
委譲でもいいし。

919 :デフォルトの名無しさん:2011/01/21(金) 20:18:46
JAVAでお勧めのソフトってあります?
みなさんお勧めのを教えて下さい。

920 :デフォルトの名無しさん:2011/01/21(金) 20:22:36
ぱっとすぐにEclipseしか思い浮かばない俺は
「ものを作ってる」んじゃなくて「ものを作るのが便利になるためのものを作ってる」だけで
「ものは作ってない」んだなとなんだか悲しい気持ちになる
これが不必要な抽象化というやつか

921 :デフォルトの名無しさん:2011/01/21(金) 20:28:34
>>919
SUN(Oracle)の Java コンパイラ

922 :デフォルトの名無しさん:2011/01/21(金) 20:30:02
java.utilのListから
ユニークな要素一覧を取り出したり、ある要素の重複回数を調べたりする
ListUtilityクラスみたいなのをつくろうかと思ったんですが
標準のもの、あるいはネット上のコードで同じ様な事が出来るものってありますか?

923 :デフォルトの名無しさん:2011/01/21(金) 20:32:54
そういう操作をするならそういうデータ構造を使いなよ
前者はSetにaddallしてsize
後者はHashMapに<要素、回数>をaddする等

924 :デフォルトの名無しさん:2011/01/21(金) 20:40:09
>>920-921
ありがとうございます。
一通りソフトは使ってみる事にしますね。
それから自分なりに使いやすいのを選んでいこうと思います。

925 :922:2011/01/21(金) 20:42:03
>>923
Set > List
の変換は標準的な方法で出来ますか?

926 :デフォルトの名無しさん:2011/01/21(金) 20:44:16
>>925
マニュアルにはなんて書いてあることを予想しているんだろうか?

927 :デフォルトの名無しさん:2011/01/21(金) 20:46:07
javafxでjavaにおけるtopフレーム(javafxでいうStage?)を取得する方法ってわかりますか(泣

928 :デフォルトの名無しさん:2011/01/21(金) 20:49:28
今正式なJavaFXってあるんだっけ?
FXScriptは消えてスクリプト廃止版は未リリースじゃなかったっけ

929 :デフォルトの名無しさん:2011/01/21(金) 20:56:06
JavaFX、Adobe Flex、Microsoft Silverlightって鳴かず飛ばずだよな。
Silverlightは金でごり押ししてるけどやっぱり流行らんw

930 :デフォルトの名無しさん:2011/01/21(金) 21:00:11
その中でもJavaFXはずば抜けてるけどなw
一度世に出したjavafx scriptをあっさり廃止
実質未リリースの上に信用も完全に失った

931 :デフォルトの名無しさん:2011/01/21(金) 21:05:09
>>929
残念ながらFlexは思ったより使われてる。イントラ中心だけどな。
JavaFXのほうが流行ると思ったんだが、WebStartとかわらんかったなぁ。

Silverlightは聞いたことない。
Javaの仕事ばかりやってるからだろうけど。

932 :デフォルトの名無しさん:2011/01/21(金) 21:10:18
Silverlight聞いたことがないとか・・・

933 :デフォルトの名無しさん:2011/01/21(金) 21:10:40
>>927はもしかしてJavaFX Scriptなのかな
だとしたら可哀想だけど今すぐやめろとしか言えないw

934 :デフォルトの名無しさん:2011/01/21(金) 21:12:16
>>932 いや、案件を聞いたことが無いって事。

935 :デフォルトの名無しさん:2011/01/21(金) 21:25:09
リッチクライアントはSilverlightだろうな。
あれってServletからjsonとかXML吐いたりして
連携できるんだろうか?
ASP.NETは期待してたが正直がっかりだったからサーバーはJava、端末.NET
っていう組み合わせがイイんじゃないかと思ってる。

936 :デフォルトの名無しさん:2011/01/21(金) 21:30:45
なんだかJavafxはオワコンっぽいですね
情報少なすぎだよー
>>933
そうです><



937 :デフォルトの名無しさん:2011/01/21(金) 21:34:39
Javadocで同じコメントを複数のフィールドに書きたい場合、
別個に書くしかありませんか?

938 :デフォルトの名無しさん:2011/01/21(金) 22:51:14
Windows版のVMでFileOutputStreamがファイルをオープンする時に、
CreateFile(Win32API)のdwFlagsAndAttributes等の引数に何を指定しているか調べてます。
以下URLのソース中のFileOutputStream.javaにJNIメソッドの
private native void openとかprivate native void openAppendはありますが、
その中の実装が見つかりません。
公開されているのか、どこにあるのかご存知の方お願いします。

JDK 6 ソースコード
http://www.java.net/download/jdk6/6u23/promoted/b05/jdk-6u23-fcs-src-b05-jrl-12_nov_2010.jar

939 :デフォルトの名無しさん:2011/01/21(金) 23:15:16
JavaFXつくるからって資金打ち切られたSwing Labsがとばっちりすぎる。

940 :デフォルトの名無しさん:2011/01/21(金) 23:43:41
>>938
JNI経由でVMにあるファイル操作系メソッド呼んでなかったっけか?

941 :デフォルトの名無しさん:2011/01/21(金) 23:52:38
>>940
そうです。private native void openがJNIの宣言です。
探しているのはその先の実装コードです。

FileInputStreamの場合は、上記ソースの中にFileInputStream.cがあるのに、
FileOutputStream.cは無いんですよね。


942 :デフォルトの名無しさん:2011/01/22(土) 02:00:45
パソコン初心者です。質問します。
Javaのアップデートを催促するお知らせがよく画面に出るので困っています。
画面に出なくする方法を検索して調べたら、WINDOWS 7の場合、コントロール
パネルからJavaのアイコンをダブルクリックしてタブが表示される画面から
設定をするように出ていましたが、ダブルクリックしてもタブのある画面が開
きません。どうしたら良いでしょうか?アンインストールしても平気ですか?
アップデートすると変に変わってしまいそうで不安で…
アイコンにはJava(TM)6 Update21とあります。最新版はUpdate23のようです。

943 :デフォルトの名無しさん:2011/01/22(土) 02:50:13
>>845
仮想マシンに32ビットも64ビットもない

944 :デフォルトの名無しさん:2011/01/22(土) 03:09:56
httpリクエストのフォームで指定されたファイルをgzip掛けながらDLするServletを作っています。
物自体はできたのですが、効率の良いPGなのかわかりません。
具体的には以下を悩んでいます。他指摘事項があれば指摘お願いします。
1.BufferedInputStream、BufferedOutputStream、GZIPOutputStream
  のバッファサイズはどれぐらいがよいのか?
2.out側を Buff→GZIP→Buffと3重にする必要があるのか?
3.read/writeで使用するbyte[]のサイズはどのくらいがよいのか?

public class Hoge extends HttpServlet {
  public void doPost(HttpServletRequest request,  HttpServletResponse response)
  throws ServletException,IOException {
    File dlFile = new File(request.getParameter("path"));
    if(!dlFile.exists()){
      response.setStatus(HttpServletResponse.SC_NOT_FOUND);
      return;
    }
    FileInputStream in = new FileInputStream(dlFile);
    BufferedInputStream bufIn = new BufferedInputStream(in,1024);

    ServletOutputStream out = response.getOutputStream();
    BufferedOutputStream bufOut = new BufferedOutputStream(out,1024);
    GZIPOutputStream gzipBufOut = new GZIPOutputStream(bufOut,1024);
    BufferedOutputStream bufGzipBufOut = new BufferedOutputStream(gzipBufOut,1024);

    byte buf[] = new byte[1024];
    int len;
    while ((len = bufIn.read(buf)) != -1) {
      bufGzipBufOut.write(buf, 0, len);
    }
    bufGzipBufOut.close();
  }
}

945 :デフォルトの名無しさん:2011/01/22(土) 04:03:43
Bufferedはもっと細かい単位(1バイト〜十数バイト)で小刻みに読み書きするときには使った方がよいけれど、
byte[]で(キロバイト以上の単位で)読み書きするときには要らない
そのぶんbyte[]のサイズを増やす方がよい

946 :デフォルトの名無しさん:2011/01/22(土) 04:15:41
>>944
> 2.out側を Buff→GZIP→Buffと3重にする必要があるのか?

無い。逆にすこしオーバーヘッドが付く。
(1) GZIPOutputStream->BufferedOutputStream
(2) BufferedOutputStream->GZIPOutputStream->BufferedOutputStream
(3) BufferedOutputStream->GZIPOutputStream

(1)でいい。
(2)は(1)よりもすこし遅くなる。
(3)はフィルタの順番が逆。

他には以下のURLが参考になるかもしれない。
http://journal.mycom.co.jp/articles/2010/08/10/fast-file-copy-in-java/index.html

947 :デフォルトの名無しさん:2011/01/22(土) 10:07:13
>>941
そう、VMにあるってのはその先の話。
VM起動時にもファイル読み込み必要でしょ。

948 :デフォルトの名無しさん:2011/01/22(土) 10:20:51
>>944
GZipOutputStreamは親クラスのDeflateOutputStreamがバッファリングしとるから
bufOutはなくていい。バッファの容量大きくしたければコンストラクタで指定できるし。

>>945が言うように、byte[] bufの容量が十分ならbufGzipBufOutとbufInも必要ない。

949 :デフォルトの名無しさん:2011/01/22(土) 10:41:43
>>941
あ、>>940>>947で言ってるVMにあるってのは、
ライブラリのバイトコード側<-JNI->ライブラリのネイティブコード側<->VM側
っちゅー分け方したときのVM側にあったような気がするって意味です。

950 :デフォルトの名無しさん:2011/01/22(土) 13:38:11
>>938

jlong
winFileHandleOpen(JNIEnv *env, jstring path, int flags)
{
const DWORD access =
(flags & O_RDWR) ? (GENERIC_WRITE | GENERIC_READ) :
(flags & O_WRONLY) ? GENERIC_WRITE :
GENERIC_READ;
const DWORD sharing =
FILE_SHARE_READ | FILE_SHARE_WRITE;
const DWORD disposition =
/* Note: O_TRUNC overrides O_CREAT */
(flags & O_TRUNC) ? CREATE_ALWAYS :
(flags & O_CREAT) ? OPEN_ALWAYS :
OPEN_EXISTING;
const DWORD maybeWriteThrough =
(flags & (O_SYNC | O_DSYNC)) ?
FILE_FLAG_WRITE_THROUGH :
FILE_ATTRIBUTE_NORMAL;
const DWORD maybeDeleteOnClose =
(flags & O_TEMPORARY) ?
FILE_FLAG_DELETE_ON_CLOSE :
FILE_ATTRIBUTE_NORMAL;
const DWORD flagsAndAttributes = maybeWriteThrough | maybeDeleteOnClose;
HANDLE h = NULL;
つづく

951 :デフォルトの名無しさん:2011/01/22(土) 13:39:31
if (onNT) {
WCHAR *pathbuf = pathToNTPath(env, path, JNI_TRUE);
if (pathbuf == NULL) {
/* Exception already pending */
return -1;
}
h = CreateFileW(
pathbuf, /* Wide char path name */
access, /* Read and/or write permission */
sharing, /* File sharing flags */
NULL, /* Security attributes */
disposition, /* creation disposition */
flagsAndAttributes, /* flags and attributes */
NULL);
free(pathbuf);


952 :デフォルトの名無しさん:2011/01/22(土) 13:40:12
} else {
WITH_PLATFORM_STRING(env, path, _ps) {
h = CreateFile(_ps, access, sharing, NULL, disposition,
flagsAndAttributes, NULL);
} END_PLATFORM_STRING(env, _ps);
}
if (h == INVALID_HANDLE_VALUE) {
int error = GetLastError();
if (error == ERROR_TOO_MANY_OPEN_FILES) {
JNU_ThrowByName(env, JNU_JAVAIOPKG "IOException",
"Too many open files");
return -1;
}
throwFileNotFoundException(env, path);
return -1;
}
return (jlong) h;
}

953 :デフォルトの名無しさん:2011/01/22(土) 17:09:39
>>944
バッファサイズ1024は小さすぎると思う。
【ファイル入力バッファ】
昔バッファサイズを変えてまったく同じファイルを繰り返しコピーする
プログラムを作って、処理時間をグラフにしてみたことがあるんだが、
そのときはバッファサイズが小さいと極端に遅くなり、大きすぎても
それほど効果が無いという結果だった。4096〜8192くらいが理想っ
ぽかった。(ただ再起動してないのでファイルキャッシュが効いている状態のテスト)
【Servlet出力バッファ】
Servletの場合出力先はTCP/IPソケットなので、ファイルI/Oとは
ちょっと違うはず。ちゃんと調べたことは無いが、俺は64KB(65536)
位のデカいバッファを使ってる。
TomcatのHTTPコネクタを使って大きなファイルをダウンロードす
るときの通信をwiresharkでキャプチャしてみた経験では、バッファ
が小さいと無駄に小さいTCPデータパケットが頻繁に出て行く現象
が見えたため。

以上から、(間違ってるかもしれないが)俺のお勧めはこんなかんじ
InputStream in = null;
OutputStream out = null;
try {
  in = new FileInputStream(xxxxx);
  byte[] iobuf = new byte[8192];
  out = response.getOutputStream();
  out = new GZipOutputStream(out, 65536);
  int len;
  while ( (len = in.read(iobuf)) != -1 ) {
    out.write(iobuf, 0, len);
  }
  out.flush();
}finally {・・・ストリームclose();}

954 :デフォルトの名無しさん:2011/01/22(土) 17:28:18
あんまりAPIの詳細はしらないが適当にカンで答えてみる
Windowsの仮想ページサイズは4096Byteなので読みこみではそのサイズを使い
ネットワーク通信はMSS依存の値
例えば一般的なイーサネット(1500)-IPとTCPのヘッダ(20+20)=1460にして
RWINを65536/MSS*MSSに設定すればいいんじゃなかろうか
GZipOutputStream(out, RWIN)

955 :デフォルトの名無しさん:2011/01/22(土) 17:52:25
HttpServletRequest#getContextPathの値を
HttpServletRequestを使用せずに取得する方法は無いでしょうか?

何がしたいかというと、HttpServlet#initで別スレッドを立ち上げて
そこでコンテキストパスを取得して使用したいのです

どなたかよろしくお願いします。

956 :デフォルトの名無しさん:2011/01/22(土) 18:57:34
>>949
うーん、いまいちネイティブコード側とVM側の違いがピンと来てません。

>>950
ありがとうございます。
io_util_md.c にありました。おかげ様で無事見つかりました。

957 :デフォルトの名無しさん:2011/01/22(土) 19:28:07
>>955
ServletConfigのgetServletContext()。
ひょっとするとJ2EEの古いバージョンには無かったかも。

958 :デフォルトの名無しさん:2011/01/22(土) 21:06:59
ファイル書込で1回しかwriteしない場合って、Buffered〜でラップする必要なし?

959 :デフォルトの名無しさん:2011/01/22(土) 21:07:57
以下のコードでなぜかresultの出力はマルチバイト文字だけ文字化けして、
"あいうえお"は正常に出力されます。
ソースコードは全てUTF-8で統一しています。
どのような可能性が考えられますか?
sourceにはShift_JISで半角数字・英字とマルチバイト文字まで含んだものが入ります。

ByteArrayOutputStream source = new ByteArrayOutputStream();
//urlからsourceをセット
String result = "";
try {
result = source.toString("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
System.out.println(result);
System.out.println("あいうえお");

960 :959:2011/01/22(土) 21:16:19
自己解決しました
result = source.toString("UTF-8");
これsourceの文字コードを指定するんですね
result = source.toString("Shift_JIS");
でうまくいきました

961 :デフォルトの名無しさん:2011/01/23(日) 00:10:49
★★ Java の宿題ここで答えます Part 69 ★★
(p)http://pc12.2ch.net/test/read.cgi/tech/1267796762/
>>827で課題をお願いしたのですが、やっていただけるか分からないので自分でももう一度挑戦しようと思います
この課題をやるにはどのサイトで勉強するのが効果的でしょうか

962 :デフォルトの名無しさん:2011/01/23(日) 00:13:59
>>961
学校で使っている教科書

963 :デフォルトの名無しさん:2011/01/23(日) 00:20:33
>>961
「applet 画像の表示」とかでぐぐればいんじゃね。
まあランダムとか選択肢とかは置いといて、「画像1→正解!→画像2→正解!→画像2→正解!→・・」と表示する画像ビューワを先に作って、
最悪それを提出すれば点は貰えるんじゃないか。

964 :デフォルトの名無しさん:2011/01/23(日) 04:47:49
hsqldbを使ったアプリケーション作ろうとしたのですが、
hsqldbをServerモードで起動しても、Eclipseから繋げません。
逆にEclipseから繋いでいると、hsqldbを起動できません。
Eclipseがlockしてしまうようなのですが、どうすればいいでしょうか。
別サーバーのpostgresqlには多重に接続できるのですが。

965 :デフォルトの名無しさん:2011/01/23(日) 04:49:06
すみません、hsqldbはローカルで起動しています。
java -cp hsqldb.jar org.hsqldb.Server -database testで動かしてます。

966 :デフォルトの名無しさん:2011/01/23(日) 17:48:33
japplet上にjpanelを置き、その上に絵を出力させる方法がわかりません。お願いします

967 :デフォルトの名無しさん:2011/01/23(日) 17:53:12
いつも思うんだが「わかりません。お願いします」って日本語として問題ありだよな

968 :デフォルトの名無しさん:2011/01/23(日) 19:13:08
丁寧な雰囲気を出すために、文章の最後にお願いしますを書いとけばいいという風潮。
お願いします。

969 :デフォルトの名無しさん:2011/01/23(日) 19:49:12
package main;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Label;
import java.awt.Panel;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import java.awt.*;
import java.awt.event.*;
と書き換えることはできますか?

970 :デフォルトの名無しさん:2011/01/23(日) 19:53:58
無理

971 :デフォルトの名無しさん:2011/01/23(日) 19:54:47
俺初心者だからよく分かんないけど
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
はどこ行ったの?

972 :デフォルトの名無しさん:2011/01/23(日) 19:58:52
>>971
出てくる箇所全部限定名で書くんじゃね?

973 :デフォルトの名無しさん:2011/01/23(日) 20:25:24
いっそもう
import java.*;


974 :デフォルトの名無しさん:2011/01/23(日) 20:45:05
いっそもう
import *;


975 :デフォルトの名無しさん:2011/01/23(日) 21:10:19
名前空間なんてなかったんや

976 :デフォルトの名無しさん:2011/01/23(日) 21:17:23
javaにnamespaceってないだろ

977 :デフォルトの名無しさん:2011/01/23(日) 21:25:02
用法としてほぼ同じという認識だったんだけど、
差異としてはどんなものがあるの?

978 :デフォルトの名無しさん:2011/01/23(日) 21:34:20
ほとんど同じかと
あえて挙げればパッケージプライベートという可視制御が存在する

979 :デフォルトの名無しさん:2011/01/23(日) 21:37:34
>>977
ディレクトリ構造を強要される/されない

980 :デフォルトの名無しさん:2011/01/23(日) 21:40:31
あえていうなら
package…アクセス制御の単位として機能する
namespace…名前だけ

981 :デフォルトの名無しさん:2011/01/23(日) 21:46:38
C#だと両方あったりする
namespaceは名前の飾りとしての意味しかなくて
名前空間とは無関係にパッケージスコープ相当のinternalアクセスレベルが別にある

982 :デフォルトの名無しさん:2011/01/23(日) 22:11:58
そういやそうか。用語は正しく使わなきゃな。スマンカッタ

983 :デフォルトの名無しさん:2011/01/23(日) 23:49:29
import java.*;じゃ孫階層はダメじゃね

984 :デフォルトの名無しさん:2011/01/24(月) 00:04:22
C#からJavaに来たのですが、フィールドの扱いについて質問です。
メソッド A内でしか使われないような変数は、フィールドではなく、
メソッド内で定義していいですよね?

今度の案件のソース見てたら、メソッド内のローカル変数でいいようなものでも、フィールドで
String something = null;
のように初期化していたのでJavaではもしやそういう流儀なのかと思ってしまいましたが、
そんな訳ないですよね。

985 :デフォルトの名無しさん:2011/01/24(月) 00:10:05
>>984
まず意味ないと思うが。
DIが流行って以降勘違いしてる人が増えたせいじゃね。

nullとかでなく初期化がされてる場合は、JUnitでその変数をある指定値で動作させたい時とかにありえる。

986 :984:2011/01/24(月) 01:45:15
>>985
ああ、間違いなくDIの影響ですね。
今回はDIを使ってないとの事ですので、
書いた人は何でもかんでもフィールドで初期化すればいいと思ってそうです。
ありがとうございます。

987 :えーきち:2011/01/24(月) 02:38:19
助けてください。
以下のような実行できるのですがエラー?が出てきます。意味がわかりません
exception in thread "awt-eventqueue-0" java.lang.unsupportedoperationexception


java.awt.image.BufferedImage offset_img = new BufferedImage( width, height, java.awt.image.BufferedImage.TYPE_INT_ARGB);
offset_img.setRGB( 0,0, width, height, pixel, 0, width);
graphics = image.getGraphics();
graphics.drawImage(offset_img,0,0,width,height,this);


988 :デフォルトの名無しさん:2011/01/24(月) 02:45:46
サポートされてないメソッドか何かを使ってるんだろう
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/UnsupportedOperationException.html

989 :えーきち:2011/01/24(月) 03:21:27
import java.awt.*;
import java.awt.event.*;
import java.awt.Image.*;
import java.awt.image.PixelGrabber;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.Font;


990 :えーきち:2011/01/24(月) 03:25:11
class gframe extends Frame implements ActionListener
{
TextField infilename; //ファイル名を入力するフィールド
Button gazou;
Button hist;
Image image; //オフスクリーンで使うためのimageクラス
Graphics graphics; //オフスクリーンに描画するためのgraphicsクラス
String filename; //テキストフィールドからの文字列の取得
boolean buttonpush1 = false; //ボタンが押されたかどうかの判定
boolean buttonpush2 = false;
BufferedImage readImage = null;
int width,height;
int w=0,b=0,j=0,z=0;
int pixel[];
gframe()
{
setLayout(new FlowLayout(FlowLayout.LEFT)); //レイアウトの設定

infilename = new TextField(20);
add(infilename);
gazou = new Button("画像決定");
add(gazou);
gazou.addActionListener(this);
hist = new Button("ヒストグラム");
add(hist);
hist.addActionListener(this);
}

991 :えーきち:2011/01/24(月) 03:27:34
public void paint(Graphics g)
{
if(image == null) image = createImage(1200,1000);
if(graphics == null) graphics = image.getGraphics();
g.drawImage(image,20,80,1000,700,this);
}

public void actionPerformed(ActionEvent e){
if(e.getSource() == gazou){
readImage();
System.out.println("@1");
}else if(e.getSource() == hist){
cahanger();
System.out.println("@2");
}
repaint();
}

992 :デフォルトの名無しさん:2011/01/24(月) 06:04:44
ho

993 :デフォルトの名無しさん:2011/01/24(月) 06:39:00
なんだこの芋臭いコードは。
スレに臭いがうつるだろ、シッシッ。

994 :デフォルトの名無しさん:2011/01/24(月) 19:53:03


995 :デフォルトの名無しさん:2011/01/24(月) 22:25:52
設定の扱いってみなさんどうされてますか?
50〜60個位の設定が必要なんですが。
最初、Digesterを使ってxmlからBeanにマップしてMapに詰めたんですが、
結局keyがStringとかになる訳で、そうするとkeyはハードコーディングせざるを得ないですよね。
理想はkeyがenumみたいに候補が出る形です。
propertiesでは1対1の対応しか出来ないので、2つ3つ関係させたい時は
ダメそうです。

996 :デフォルトの名無しさん:2011/01/24(月) 22:32:06
設定食わせてコードを自動生成

997 :デフォルトの名無しさん:2011/01/24(月) 22:56:26
Javaでxmlの解析したかったらxercesというのを使っておけばいいですか?

998 :デフォルトの名無しさん:2011/01/24(月) 23:54:20
標準のJAXPが不満ならxercesでもなんでも要件にあったものを。
突っ込んだことしなければ十分なはずだけど。

999 :デフォルトの名無しさん:2011/01/25(火) 00:27:26
誰かこれをjpanelにつっこめるようswingで書いて下さい

void offPaint() {
int i,j;

gOff.setColor(Color.white);
gOff.fillRect(0,0,dim.width,dim.height);

if (dispMode==0) {

gOff.setColor(Color.black);
for(j=0; j<NNy; j += 4) {
for (i=0; i<NNx; i += 4) {
gOff.setColor(Color.getHSBColor( (float)cr[i][j],
(float)(0.3+0.6/(30.0*sg[i][j]+1.0)),(float)(0.5+0.25*Ez[i][j])));
gOff.fillRect(i+50,j+50,4,4);
}
}
}
}

1000 :デフォルトの名無しさん:2011/01/25(火) 01:06:19
 V V
(´・ω・`) うさちゃんピース

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

258 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)