【初心者】Java質問・相談スレッド99【大歓迎】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2007/03/05(月) 01:35:28質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
【初心者】Java質問・相談スレッド98【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1171787388/
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc10.2ch.net/hp/
次スレは>>980あたりで。
0002デフォルトの名無しさん
2007/03/05(月) 01:37:2000033get
2007/03/05(月) 11:59:08ピュ.ー ( ^3^) <エェー これからも僕を応援して下さいNE(^3^)。
=〔~∪java~〕
= ◎――◎ java&サン
0004デフォルトの名無しさん
2007/03/05(月) 12:09:12JNIとか使わなきゃむりぽ?
0005デフォルトの名無しさん
2007/03/05(月) 12:16:58ローカルのカメラならドライバ次第では?
ネット上の映像ならソケットで取れないか?
0006デフォルトの名無しさん
2007/03/05(月) 12:21:08JMF
0008デフォルトの名無しさん
2007/03/05(月) 13:25:35画像を縦方向に1ドット単位で刻む→それらをx軸の画面中央から離れた分だけ縦に拡大処理→再結合して表示、
なんていうのしか思いつきませんorz
http://couples.jp/cgi-bin/ht_panorama_dsp.cgi?hotelcode=221&panorama=front_top&ptn=2
0009デフォルトの名無しさん
2007/03/05(月) 13:47:11一つの大きな画像と見て拡大縮小等の処理を行いたいのですがどんな感じで作れば良いでしょうか?
0010デフォルトの名無しさん
2007/03/05(月) 14:38:41Graphics2DとImage使ったらできないかな?
0011デフォルトの名無しさん
2007/03/05(月) 15:10:27ご回答ありがとうございました。
恥ずかしながら、その単語は初めて聞きました。調べて勉強してみます。
0012デフォルトの名無しさん
2007/03/05(月) 15:25:28残り少ないけどよろ。
(:D)| ̄|_
0013デフォルトの名無しさん
2007/03/05(月) 18:37:22OutputStreamWriterなどで文字コードを指定のうえ
ファイルを読み込み、読み込んだファイルをそのまま出力する処理を
作成していますが機種依存文字(丸1や(株))が文字化けしてしまいます。
「MS932」を指定するだけでは足りないのでしょうか?
動作環境はREDHUTでTOMCATのバージョンは5.5です。
なおWindows環境での動作確認ではうまく処理できました。
001413
2007/03/05(月) 18:39:22InputStream istream = null;
BufferedReader br = null;
istream =formFile.getInputStream();
br = new BufferedReader(new InputStreamReader(istream,"MS932"),65535);
// ファイル出力準備
File uploadFile = new File("ディレクトリ名", "ファイル名");
OutputStreamWriter bos = null;
bos = new OutputStreamWriter(new FileOutputStream(uploadFile.getAbsolutePath()), "MS932");
boolean flg = true;
String fileText = new String();
StringBuffer sb = new StringBuffer();
while (flg) {
fileText = br.readLine();
if(fileText==null){
flg=false;
}else{
if(!fileText.equals("")){
sb.append(fileText + "\r");
}
}
}
bos.write(sb.toString());
bos.close();
istream.close();
0015デフォルトの名無しさん
2007/03/05(月) 18:42:35それともつぶれた?
0016デフォルトの名無しさん
2007/03/05(月) 18:46:30まずはTomcat関係無しに、Redh a tのjavaで文字化けせずに
Windows-31Jの文章が読み書きできるか確認。
それと、MS932ではなく、Windows-31Jにしておいた方がいいですよ。
Windows-31Jは、IANA登録名ですから。
0017デフォルトの名無しさん
2007/03/05(月) 18:53:51メソッド() { こんな感じになってるんですが、
メソッド()
{
こんな感じにする事はできないのでしょうか?見難くってやってられません。
もし設定を変える方法を知っていたら教えてください。お願いします。
0018デフォルトの名無しさん
2007/03/05(月) 19:20:46Window>Preference
Java>Code Style>Formatter
0019デフォルトの名無しさん
2007/03/05(月) 19:28:05テキストファイルに書かれた数字を配列にいれるにはどうすればいいの?
hoge.txtは以下のとおり
12
34
56
78
ってかいてあって、java hoge.txtと実行すると
配列aa[0]〜aa[3]に上から順に数字が入るようにしたい。教えて
質問2)
配列に入った数値a[0]=12, a[1]=34, a[2]=56, a[3]=78を
nag.txtに順番に
12
34
56
78
と書き込みをしたい。どうすればできるの。一つでもいいから誰か教えて
0020デフォルトの名無しさん
2007/03/05(月) 19:29:58System.out.println(java.nio.charset.Charset.foName("MS932").getClass());
とかやって、実装してるクラスを確認してみるとか。
002117
2007/03/05(月) 19:30:520022デフォルトの名無しさん
2007/03/05(月) 19:31:17宿題は宿題スレに。
★★ Java の宿題ここで答えます Part 60 ★★
http://pc11.2ch.net/test/read.cgi/tech/1169300052/
002313
2007/03/05(月) 19:40:14Windows-31J指定の件了解です。
またJAVAにて読み書きできるかについてですが可能でした。
以下コードをREDHAT上にて実行。
(input.txtはSJISにて丸1と全角ハイフンを記述、output.txtに正しく出力)
FileInputStream fis = new FileInputStream("input.txt");
InputStreamReader ir = new InputStreamReader(fis , "MS932");
BufferedReader br = new BufferedReader(ir);
String msg = br.readLine();
FileOutputStream fos = new FileOutputStream("output.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos , "MS932");
BufferedWriter bw = new BufferedWriter(osw);
bw.write(msg);
0024デフォルトの名無しさん
2007/03/05(月) 19:50:21何だろうねぇ?
Tomcatの起動オプションに強制指定入れてみる?
-Dfile.encoding=MS932
これ。
0025デフォルトの名無しさん
2007/03/05(月) 20:00:11(:D)| ̄|_
0026デフォルトの名無しさん
2007/03/05(月) 20:51:47package hoge;
public class txt {
private static final String aaa = "hoge.txt";
private final String aaaa = "nag.txt";
private static int[] aa = new int[4];
private int[] a = new int[4];
public static void main(String[] a) throws Exception {
java.io.BufferedReader b = null;
try {
b = new java.io.BufferedReader(new java.io.FileReader(aaa));
for (int i = 0; i < 4; i++) aa[i] = Integer.parseInt(b.readLine());
new txt().a();
} finally {
if (b != null) b.close();
}
}
private void a() throws Exception {
for (int i = 0; i < 4; i++) a[i] = aa[i];
java.io.BufferedWriter b = null;
try {
b = new java.io.BufferedWriter(new java.io.FileWriter(aaaa));
for (int i = 0; i < 4; i++) { for (char c : String.valueOf(a[i]).toCharArray()) b.write(c - '0' + '0'); b.newLine(); }
} finally {
if (b != null) b.close();
}
}
}
0027前スレ976
2007/03/05(月) 21:11:21Linuxの設定、Java version関係なく
sendする直前に、recv処理をすることで対応できました。
回答どもです。
002819
2007/03/05(月) 21:20:03002919
2007/03/05(月) 21:21:25Exception in thread "main" java.lang.NoClassDefFoundError: txt (wrong name: hoge
/txt)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
0030デフォルトの名無しさん
2007/03/05(月) 21:33:020031デフォルトの名無しさん
2007/03/05(月) 21:37:300032デフォルトの名無しさん
2007/03/05(月) 21:38:21そのファイルの拡張子はどうなってる?
003319
2007/03/05(月) 21:42:49java txt
で実行しているわよ
0034デフォルトの名無しさん
2007/03/05(月) 21:47:270035デフォルトの名無しさん
2007/03/05(月) 21:48:55hoge ってディレクトリ掘って、そん中に txt.class をつっこめ。
そのあと java hoge.txt ね。
>>19 の
> ってかいてあって、java hoge.txtと実行すると
ってのが原因。
003619
2007/03/05(月) 21:50:11http://www.wikiroom.com/java/?path,classpath
これでしょ。これは前から知っててとっくに解決済み。そもそも
これ解決してないなら他のプログラムとかは通らないでしょ。
eclipseでやあっている
0037デフォルトの名無しさん
2007/03/05(月) 21:53:010038デフォルトの名無しさん
2007/03/05(月) 21:54:09そこに書いてあるのはパッケージ使わない場合だけだから、
今回は参考にならんよ?
0039デフォルトの名無しさん
2007/03/05(月) 21:54:55>>19 の仕様に反するんだけど。
004013
2007/03/05(月) 22:00:31文字コードを確認したらEUCになっていました。これってサーバ依存の
文字コードがデフォルトで選択されているってことですよね。
ただ「OutputStreamWriter」でエンコーディングの指定をしているにも
関わらずそのようになってしまったのはなんでだろう…。
0041デフォルトの名無しさん
2007/03/05(月) 22:06:43> この方法
それって >>14? >>23?
EUC って丸付き数字あったっけか?
004219
2007/03/05(月) 22:12:090043デフォルトの名無しさん
2007/03/05(月) 23:23:40スレッド名.wait()を使用するとjava.lang.IllegalMonitorStateException: current thread not ownerが出ます。
この場合どんなことが原因だと考えられるのでしょうか?
0044デフォルトの名無しさん
2007/03/05(月) 23:44:520045デフォルトの名無しさん
2007/03/06(火) 00:07:06エラーメッセージの通り。
もしくは、モニターの所有権について >>43 が理解できてない事。
0046デフォルトの名無しさん
2007/03/06(火) 00:08:25失礼しました。勉強しなおしてきます。
0047デフォルトの名無しさん
2007/03/06(火) 00:09:48Objectのwaitメソッドを使っているわけだからその辺のドキュメント漁れば答えが見えてくるはずなんだけど…
> このメソッドを呼び出すのは、このオブジェクトのモニターを所有するスレッドだけでなければ
> なりません。スレッドがオブジェクトのモニターのオーナになる方法については、notify メソッド
> を参照してください。
直接的ではないにせよ最低限のヒント位は出ているから、普段からAPIドキュメントみるクセをつけた方が良いかと。
0048デフォルトの名無しさん
2007/03/06(火) 01:50:04http://homepage2.nifty.com/igat/igapyon/diary/2005/ig051228.html
ここ見て、swtからwin32APIが扱えることを知ったんだけど、
キーイベントやウィンドウのリサイズきかなくない?
ウィンドウは拾えてるみたいなんだけど…
0049デフォルトの名無しさん
2007/03/06(火) 02:11:29幅広いね
0050デフォルトの名無しさん
2007/03/06(火) 06:49:35JComboBoxで選択した文字を、JLabelに出力するようしたいのですが、
どのようにやれば良いのでしょうか?
このGUI(ttp://www.uploda.org/uporg718906.jpg.html)の場合、
『output』というところにTokyo, Osaka, Nagoyaと選択したら出力されるようにしたいです。
0051デフォルトの名無しさん
2007/03/06(火) 07:19:39addActionListenerかaddItemListenerを使う。
簡単なのはActionListenerのほうかな。
編集可能か否かでちょっと違うかもしれないが。
JComboBoxのAPIを見ること。
0052デフォルトの名無しさん
2007/03/06(火) 08:57:45それとも釣りか。
005313
2007/03/06(火) 09:04:5814の方です。23の方はうまくいってます。EUCに丸文字ないので
ばけていたのだと思います…。が、14の方法で何故EUCファイルが
できてしまったのでしょう…。現在それを調べています。
0054デフォルトの名無しさん
2007/03/06(火) 13:29:19import java.util.*;
public class Hiduke {
public static void main(String[] args){
//インスタンス化
Calendar now = Calendar.getInstance();
int y = now.get(now.YEAR); //年を取得
int m = now.get(now.MONTH) + 1; //月を取得
int d = now.get(now.DATE); //日を取得
//日付を表示
System.out.println(y+"年"+m+"月"+d+"日");
}
}
この場合、引数ってのはどれにあたるのでしょうか?
0055デフォルトの名無しさん
2007/03/06(火) 13:33:54now.YEAR
now.MONTH
now.DATE
y+"年"+m+"月"+d+"日"
メソッドに渡してるものは全部引数
0056デフォルトの名無しさん
2007/03/06(火) 13:34:56コマンドライン引数ならmainメソッドのargsだが、プログラム中では利用
されていないね。
getの引数はnow.YEARとかだな。
printlnの引数はy + ... + "日"という式。
本筋とは関係ないけど、Calendarは日時を表すオブジェクトではないので
nowという誤解させるような名前を付けるのは好ましくない。
0057デフォルトの名無しさん
2007/03/06(火) 14:13:12迅速な対応ありがとうございます。また質問なのですが
上の日付の書式を書くとなるとどう書けばいいのでしょうか?
0058デフォルトの名無しさん
2007/03/06(火) 14:18:060059デフォルトの名無しさん
2007/03/06(火) 14:28:21どのくらいの時間かかりますか?
0060デフォルトの名無しさん
2007/03/06(火) 14:52:250061デフォルトの名無しさん
2007/03/06(火) 14:54:04「作る時間」じゃなくて「作れるようになるまでの時間」って事?
今からでも作れるよ。君に足りないのは技術力じゃなく決断力だ。
0062デフォルトの名無しさん
2007/03/06(火) 14:55:32普通に見られるぞ。
0063デフォルトの名無しさん
2007/03/06(火) 14:56:19native2asciiとか使ったことある?
0064デフォルトの名無しさん
2007/03/06(火) 14:57:37Eclipseは専用スレがあるから、一応、そちらで。
【初心者】EclipseでJavaの勉強 2時間目【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1147444414/
【Java/C/PHP/Perl/Ruby/Python/TeX】Eclipse M22
http://pc11.2ch.net/test/read.cgi/tech/1168166588/
0065デフォルトの名無しさん
2007/03/06(火) 14:59:48でたー、これわざとやってるとしか(ry
ファイル名.java.txtになってたってやつかー
0066デフォルトの名無しさん
2007/03/06(火) 15:01:41コンパイルオプションで指定した文字コードは?
だめならとりあえずnative2ascii
Stringオブジェクトを使うとき、文字コード指定していないとかでは?
JISAutoDetectとか昔、懐かしいことしていた記憶がある・・・・
0067デフォルトの名無しさん
2007/03/06(火) 15:02:56>>59
適当だけど40時間(8h/日なら5日間、4h/日なら10日間)ぐらいじゃない?
計算機ロジック自体は簡単だけど、
開発ビルド環境、iアプリの作り方、サーバへのアップとダウソでハマると思う。
0068デフォルトの名無しさん
2007/03/06(火) 15:03:48>>66
>>13嫁
0069デフォルトの名無しさん
2007/03/06(火) 15:03:56丸文字の意味を間違えてないか? と突っ込んでみる。
0070デフォルトの名無しさん
2007/03/06(火) 15:04:50つうか、お前がプログラマなんだろ。
俺はプログラマじゃないから答えてやらないよ。
0071デフォルトの名無しさん
2007/03/06(火) 15:06:17丸文字書体の手書き風TrueTypeフォント「ことり文字ふぉんと」v1.0が公開
先端が尖っていない滑らかな女の子らしい運筆で書かれている
http://www.forest.impress.co.jp/article/2003/01/08/kotorimojifont.html
0072デフォルトの名無しさん
2007/03/06(火) 15:07:14おまえは、場合によっては、質問者に
余計なお世話だと思われることだろう。
0073デフォルトの名無しさん
2007/03/06(火) 15:08:01単なる丼勘定
0074デフォルトの名無しさん
2007/03/06(火) 15:08:34相手は「何も知らない」って言ってるんだぜ?
あの質問から読み取れる情報は「日本語は理解できている」程度なんだぜ?
0075デフォルトの名無しさん
2007/03/06(火) 15:19:03お前の解答って「作る時間」じゃねーの?w
質問は「作れるようになる時間」だぞ。
『質問に答えればいいのに』答えられてないじゃんwwwww
0076デフォルトの名無しさん
2007/03/06(火) 15:19:30必死すぎ
0077デフォルトの名無しさん
2007/03/06(火) 15:23:37本人乙
0078デフォルトの名無しさん
2007/03/06(火) 15:28:520079デフォルトの名無しさん
2007/03/06(火) 15:39:01あれてるけどさんくす。
環境は整いました。
アップダウンは昔HP作ってたからたぶん問題なし。
が、プログラム自体に戸惑って止まってます。
BASICはやったことあったけど、javaとは全然違うね。難しい。
0080デフォルトの名無しさん
2007/03/06(火) 15:53:140081デフォルトの名無しさん
2007/03/06(火) 16:10:42の知識を得る必要はある。
0082デフォルトの名無しさん
2007/03/06(火) 16:13:11実行すると、下記の表示される↓
[Fatal Error]:1:5: Invalid byte 1 of 1-byte UTF-8 sequece.
実行ソースは、やさしげなJava活用編、XML文書をDOMによって読み書きする(p291)です。
0083デフォルトの名無しさん
2007/03/06(火) 16:26:22初期状態から文字を表示させておくことはできないのでしょうか?
0084デフォルトの名無しさん
2007/03/06(火) 16:31:24いきなりなんの話だ?
XML中に表明しているエンコーディングと実際のエンコーディングが
食い違ってるんじゃないの?
0085デフォルトの名無しさん
2007/03/06(火) 16:37:53初期値を指定できるshowInputDialogを使う。
1.4以降なら3つあるはず。
0086デフォルトの名無しさん
2007/03/06(火) 16:40:28〜Dialog("Your Name?","65")
0087デフォルトの名無しさん
2007/03/06(火) 17:04:38ありがとうございました。無事解決しました。
0088デフォルトの名無しさん
2007/03/06(火) 17:06:44諦めました、スルーして下さい。
0089デフォルトの名無しさん
2007/03/06(火) 17:39:16質問者本人か?
質問する前に日本語を勉強しようや。
さもなければ、半島に帰りな
0090デフォルトの名無しさん
2007/03/06(火) 17:40:05また自演だ。コテハンぴゅあとかいうドトネト厨の荒らしだろお前w
0091デフォルトの名無しさん
2007/03/06(火) 19:12:15諦めるもなにも読んだまんまだが?
まずはxmlの仕様を勉強しろ
>>84
正確には文字コードが指定されてなかったんでパーサがサポートするデフォルトの文字コードで読みに行ったらテキストのエンコードがUTF-8じゃなかったから仕様に従って致命的なエラー扱いにしたんだな。
何も考えてない奴が一番初めにコケるテンプレ嫁以前の問題だな。ググれば幾らでも出てくる。
0092デフォルトの名無しさん
2007/03/06(火) 20:10:53バイナリエディタで開いて1byte目にBOMついてないか確認しろ。
0093デフォルトの名無しさん
2007/03/06(火) 21:14:390094デフォルトの名無しさん
2007/03/06(火) 21:21:590095デフォルトの名無しさん
2007/03/06(火) 21:29:15→BOM付きshift_jis
xmlファイル
→BOM無しshift_jis
ですよね?よね?
0096デフォルトの名無しさん
2007/03/06(火) 21:35:550097デフォルトの名無しさん
2007/03/06(火) 21:52:34http://unicode.org/faq/utf_bom.html#29
> Q: Can a UTF-8 data stream contain the BOM character (in UTF-8 form)?
> A: Yes, UTF-8 can contain a BOM.
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6378911
UTF-8 decoder handling of byte-order mark has changed
0098デフォルトの名無しさん
2007/03/06(火) 23:01:15xmlファイルの文頭にこれ→<!--注釈-->をつけたことが原因でしたぁ〜ん
(:D)| ̄|_ ごめんなご
0099デフォルトの名無しさん
2007/03/06(火) 23:45:51文字ストリームで通信した後にオブジェクトストリームで通信をしたいのですが、
文字ストリームのcloseメソッドの呼び出しって行う必要はあるのでしょうか?
0100デフォルトの名無しさん
2007/03/06(火) 23:50:43(:D)| ̄|_
010199
2007/03/07(水) 00:16:57(:D)| ̄|_ ごめんなご
010248
2007/03/07(水) 01:50:52ここまで見事にスルーされるとは思ってなかったぜ。
0103デフォルトの名無しさん
2007/03/07(水) 02:19:25SWT関連なら専用スレがあるよ
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50
0104デフォルトの名無しさん
2007/03/07(水) 03:42:07自然対数表示で書かれたdouble値を読み込むことってできないでしょうか?
例えば、2.52224e-005という文字列を読み込んだときに
0.00025224 と認識させたいのですが、
double a = st.nval;
とすると、a=2.52224となってしまいます。
0105デフォルトの名無しさん
2007/03/07(水) 03:52:52そこGUIだから
0106デフォルトの名無しさん
2007/03/07(水) 03:58:56それ、常用対数。
0107104
2007/03/07(水) 04:00:20自然対数表示じゃなくて、指数表示の間違いでした
0108デフォルトの名無しさん
2007/03/07(水) 04:17:32メインOSとデータをフォーマットしてしまったぜ!
イェィ( ̄ー ̄)b
0109デフォルトの名無しさん
2007/03/07(水) 04:23:40だから何?
0110デフォルトの名無しさん
2007/03/07(水) 04:40:06ttp://java-house.jp/ml/archive/j-h-b/046214.html
0111デフォルトの名無しさん
2007/03/07(水) 05:04:04??GUIだから誘導されてるんじゃ・・・
0113デフォルトの名無しさん
2007/03/07(水) 09:08:49しかもわけわからんコテ扱い。
初めてこの板来てこれだしな。
プログラマってのはこんなにレベル低いのか?
それともアホがここにすみついてんのか?
0114デフォルトの名無しさん
2007/03/07(水) 09:24:530115デフォルトの名無しさん
2007/03/07(水) 09:56:02>>67か?
0116デフォルトの名無しさん
2007/03/07(水) 12:25:350117デフォルトの名無しさん
2007/03/07(水) 14:08:47出力ファイルにだすっていうプログラムを作りたいんですけど
入力ファイルはどういうふううに作成すればいいのでしょうか?
メモ帳からではないですよね?
0118デフォルトの名無しさん
2007/03/07(水) 14:20:27ん、母体が大きくなるとアホも居ますわ。すまんこやけどスルーしたってください。
0119デフォルトの名無しさん
2007/03/07(水) 14:23:30> 入力ファイルから値を受け取りそれぞれのクラスで処理して
の部分が曖昧なのでなんともいえない。
メモ帳でも作れるかもしんないし、作れないかもしれない。
0120デフォルトの名無しさん
2007/03/07(水) 14:23:44入力ファイルがテキストファイルならメモ帳で作っても問題ないんじゃない?
というか、やりたいことに対して、その意味が自分で分かってないってことは
・・・・宿題?
宿題が分からない場合は
1.友人に相談
2.教師に相談
3.宿題スレで相談
こんな感じでリアルをもう少し活用してみましょう。
0121デフォルトの名無しさん
2007/03/07(水) 14:30:31すみません言葉たらずでした…
レコード形式?みたいにデータを入力していってその
値を受け取るって形にしたいのですがこういうのは
メモ帳で作れます?
0122デフォルトの名無しさん
2007/03/07(水) 14:37:560123デフォルトの名無しさん
2007/03/07(水) 14:39:15作れるかどうかメモ帳起動してみればいいんじゃないのかな?
0124デフォルトの名無しさん
2007/03/07(水) 15:54:56ならプログラマやめれば?
0125デフォルトの名無しさん
2007/03/07(水) 16:07:27どのような方法がありますか?
Fileクラスにロードしたファイルを、renameTo()メソッドで移動をしてみたのですが、
ディレクトリをまたいだり、ルートフォルダが異なったりするとうまくいきません。
API仕様書には、環境に大きく依存すると書いてあり、確かにそのような気配がします。
(ちなみに、環境はWindowsXPです。)
Runtime.exec()や、ProcessBuilderを用いてバッチ処理のような形で実現させるしかないのでしょうか?
あるいは、java.ioパッケージを駆使するしかないのでしょうか?
その場合は、どのクラスを使うと便利か、示唆していただけないでしょうか。
0126デフォルトの名無しさん
2007/03/07(水) 16:21:550127デフォルトの名無しさん
2007/03/07(水) 17:53:12「警告: このクラスの直列化されたオブジェクトは、今後のSwing リリースと・・・略・・・XMLEncoderを参照してください。 」
の意味がよく分かっていないのですが
「XMLで書け」って意味でしょうか?
0128デフォルトの名無しさん
2007/03/07(水) 18:11:25とりあえず嫁。なぜ読まん?
0129デフォルトの名無しさん
2007/03/07(水) 18:14:28既に何度も読んだ。マジで意味が分からん・・・。
0130デフォルトの名無しさん
2007/03/07(水) 18:17:51ついて回るので、RMIみたいな短期の場合にのみ使ってくれ。保存して
おいて別バージョンのSwingで読めなくてもしらないよ。そういう用途に
はXMLEncoder/Decoderを使ってくれ。
0131デフォルトの名無しさん
2007/03/07(水) 18:26:48さもなくばXMLEncoder使え
って事であってます?
0132デフォルトの名無しさん
2007/03/07(水) 18:30:41シリアライズしたものをファイルとかに保存して、それ読み込んで使ったりすると
JREのバージョンが変わったときに読めなくなる/使えなくなるよってこと。
0133デフォルトの名無しさん
2007/03/07(水) 18:34:29うーん、そうじゃなくて、他のバージョンのJVM上にオブジェクトの
シリアライズイメージを送ったとき、問題出るかもしれんよ、ということ。
コンパイルし直ししても、
JDK6の javax.swing.Hogehoge
をJDK8 のJVM上に送ったとき、そこでインスタンスが復元出来ないかもしれないってこと。
具体的には、そのクラスの serialVersionUID が将来変えられる可能性があるということかな。
0134デフォルトの名無しさん
2007/03/07(水) 18:34:56お手数掛けました。
ありがとうございました。
0135デフォルトの名無しさん
2007/03/07(水) 19:37:58あるだろう。コピーくらいなら。
Runtimeなんていらない。
java.ioだけでどうにかできるはず。
根性いるかも知れないけど。
まずFileクラスでフォルダを指定して、
フォルダの中をdir()で再帰的に調べて記憶しておく。
つぎに移動やコピー。
ここでは、移動(コピー)先フォルダを指定したら。
移動(コピー)先フォルダ名のパス文字列をつかってFileクラスでディレクトリ作成。
あとは同じディレクトリにファイルやサブディレクトリなどを再帰的にコピー。
0136デフォルトの名無しさん
2007/03/07(水) 19:38:41SerializableがXMLEncoderに変わっただけ。
つうかググれ。
0137デフォルトの名無しさん
2007/03/07(水) 19:39:51ここに答えが乗っている
http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%A9%E3%82%A4%E3%82%BA#XML.E3.83.95.E3.82.A9.E3.83.BC.E3.83.9E.E3.83.83.E3.83.88.E3.81.AB.E3.82.B7.E3.83.AA.E3.82.A2.E3.83.A9.E3.82.A4.E3.82.BA
0138デフォルトの名無しさん
2007/03/07(水) 19:52:07ファイルの中身だけコピーするならなんとかなると思うけど。
属性とか所有者とか、シンボリックリンクではコピー先にシンボリックリンクを作るとか、
そーゆー事まで考え出すと java.io だけじゃ無理のような。
0139デフォルトの名無しさん
2007/03/07(水) 20:43:09おまえはその前に、リロード汁w
0140デフォルトの名無しさん
2007/03/07(水) 22:38:44OS XにはAPIドキュメントというものはないんでしょうか?
Eclipceで日本語のホバー表示をするために、
MergeDoc(http://mergedoc.sourceforge.jp/)というのを入れたいんですが、
APIドキュメントというのが必要らしいです。
0141デフォルトの名無しさん
2007/03/07(水) 22:47:18/System/Library/Frameworks/JavaVM.framework/Versions/バージョン/
Home/docs/
0142デフォルトの名無しさん
2007/03/07(水) 23:02:33/System/Library/Frameworks/JavaVM.framework/Versions/バージョン/
Home/
まではあるんですが、docsフォルダがないです。。。
0143デフォルトの名無しさん
2007/03/07(水) 23:10:400144デフォルトの名無しさん
2007/03/07(水) 23:13:57これか?
0145デフォルトの名無しさん
2007/03/08(木) 00:00:56この方法だと自分のやりたい事がどうもスッキリとできないんです
0146デフォルトの名無しさん
2007/03/08(木) 00:10:24プログラムの知識は、どの言語でも使うif文とかfor文とかを最近覚えた程度の全くの初心者です。
数学は独学だけど大学程度の数学なら分かるつもりです。論文や専門書もかなり読みました。
アルゴリズムとか超興味あります。
しかし何から手をつければ良いのか検討が付かないのアドバイスをください。
ちなみに学生なのでPCを買うお金が無いので学校の5〜10年ぐらい昔の古いPCが開発環境です。
0147デフォルトの名無しさん
2007/03/08(木) 00:13:18強いて言えば、VBがユーザインタフェースを作りやすいけど、開発環境にお金がかかる。
Javaなら無料だけど古いPCでは厳しいか。
0148デフォルトの名無しさん
2007/03/08(木) 00:13:530149デフォルトの名無しさん
2007/03/08(木) 00:15:38- 複数箇所で使い回すならクラス(場合によってはメンバークラス)。
- その場限りなら匿名クラス。
にしている。
0150145
2007/03/08(木) 00:22:34具体的に言えば、
Aボタンを押したらBテキストフィールドから値を受け取り
Cテキストフィールドを更新するといった処理を複数作る
という事をしたいんですが、この場合はメンバクラスとして作るのがスマートですかね?
おそらく匿名クラスや普通のクラスではややこしい書き方をしないと出来ないと思うので
0151デフォルトの名無しさん
2007/03/08(木) 00:33:13フレームのメンバーになっているボタンやテキストへのアクセスが出来た
ほうが便利だろうから、メンバークラスがよいように見える。
0152145
2007/03/08(木) 00:40:31レスありがとうございます
その辺りのスコープの問題はメンバクラスにする事で何とかするのが普通なんですね
ボタンやラベルを一つのパネルに纏めてしまって、そのパネルもメンバクラスに・・・
なんてすればさらにコードが読みやすくできるのかなぁ
0153デフォルトの名無しさん
2007/03/08(木) 02:11:06パーミッションだけならJavaでもできる。
他は・・・
Runtimeとかかねえ
Jakarta Commons VFSでにたようなことできなかったかな・・・
0154デフォルトの名無しさん
2007/03/08(木) 02:17:36乗り遅れた…
個人的にはオブジェクトの役割が比較的きっちり分かれるMVCが好み
ttp://java.sun.com/developer/technicalArticles/javase/mvc/
↑英語ですが…日本語でも山ほど資料はあるのでググってみて
ちゃんと設計すればプラガブルになるので変更や拡張が楽だしぃ
0155デフォルトの名無しさん
2007/03/08(木) 03:55:02よく読め。
GUIの話題なんて一言も振ってない。
0156デフォルトの名無しさん
2007/03/08(木) 04:03:14キーイベントやウィンドウのリサイズが利かないって話題なんだからCUI関係だよ
GUIと間違えちゃいかん
0157デフォルトの名無しさん
2007/03/08(木) 04:21:08ものすごい量になる悪寒
0158デフォルトの名無しさん
2007/03/08(木) 04:46:51お前の想定している状況がイマイチ分からん。
シリアライズの話だけどそもそもアプリケーションプログラマがSwingコンポーネントをシリアライズするってどういう場合?
元々シリアライズってファイルシステムなんかに永続的にオブジェクトの状態を保存する目的のものじゃないでしょ?
ネットワーク超えてたれ流すためでしょ?
シリアライズを永続的な保存目的に使いだしたからXMLEncoder/XMLDecoderが出てきたの?
0159デフォルトの名無しさん
2007/03/08(木) 07:10:33よるバージョン問題のことが書いてある理由も謎だ。
0160125
2007/03/08(木) 08:04:27>>135
>>153
返答ありがとうございます。
手間が掛かりそうなので、簡単に実現できそうなRubyに乗り換えることにしました。
Swingが使えないのが残念ですが。
ちなみに作ろうとしていたのはエロ画像の自動整理プログラムでした。
0161デフォルトの名無しさん
2007/03/08(木) 10:01:01どうすればいいですか?
0162デフォルトの名無しさん
2007/03/08(木) 10:02:306.0 のパーミッション操作も全部じゃないよ。
外部ライブラリ使うなら、JConfig 使うとかした方が楽かも。
0163デフォルトの名無しさん
2007/03/08(木) 10:03:34「別々のページに保存」ってのが具体的に何したいのかわからん。
0164デフォルトの名無しさん
2007/03/08(木) 10:10:33別のファイルに保存ってことです。
0165デフォルトの名無しさん
2007/03/08(木) 10:16:310166デフォルトの名無しさん
2007/03/08(木) 10:19:440167デフォルトの名無しさん
2007/03/08(木) 10:55:36拾ってきて、ページごとに保存しなくちゃいけないんです。
で、リンク先抜き出してソース落とすとこまではできたんですけど、
全部つながってひとつのファイルに保存されちゃうんで、それを
区切って保存したいってことです。
0168デフォルトの名無しさん
2007/03/08(木) 11:03:08再帰的にやればいいんじゃね?
0169デフォルトの名無しさん
2007/03/08(木) 11:18:38> 全部つながってひとつのファイルに保存されちゃうんで
……。つなげなければ良いんじゃね?
0170デフォルトの名無しさん
2007/03/08(木) 11:46:430171145
2007/03/08(木) 12:33:17レスありがとうございます
>ちゃんと設計すればプラガブルになるので変更や拡張が楽だしぃ
確かにメンバクラスにすると再利用が難しくなるかなぁと思ってました
そこでMVCという単語を絡めて検索した所
まさに今考えていた事が既に話し合われていた場所を発見する事ができました
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=18201&forum=12&7
まだしっかりとは読んでいないのですが、これで気持ちよく開発が進めれそうです
本当にありがとうございました ;D
0172デフォルトの名無しさん
2007/03/08(木) 14:10:210001,20070308,1200,50
とテキストファイルに記入。
日付の値は日付の処理を行うメソッドに渡し、単価と数量の値は
計算する処理を行うメソッドに渡す。
ということをしたいのですが可能でしょうか?
可能ならばやり方を教えていただきたいです。
0173デフォルトの名無しさん
2007/03/08(木) 14:10:59そもそもなんで繋がってんのか分からんがクローラー作るならWWW Wanderer(Wandex),
Aliweb, WebCrawlerを調べてみな?
まあ、見つけられたらの話だが・・・国内鯖で見つからんなら
ttp://en.wikipedia.org/wiki/
で調べりゃあるから、ちゃんと探せば技術文書も論文も化石が埋まってるから。(但し殆どがwwwの歴史の論文だけど)
AliwebとWebCrawlerは存命の筈だけど
#あと鯖に迷惑だから素人にそんなもん作らせるなと糞講師に言っとけ!(-Α-")
0174デフォルトの名無しさん
2007/03/08(木) 14:13:46屑仕様な宿題は出しても不可能な仕様の宿題を出す訳ないでしょ?
宿題スレのテンプレ持ってお引っ越ししましょうね?
0175デフォルトの名無しさん
2007/03/08(木) 14:14:21split
0176デフォルトの名無しさん
2007/03/08(木) 14:17:220177デフォルトの名無しさん
2007/03/08(木) 15:09:13そして再帰的にやって
相互リンクで永久ループにハマってあぼーん
0178デフォルトの名無しさん
2007/03/08(木) 15:11:00たんと礼儀とルールと一般常識をわきまえて聞くなら良いけど
質問に答えてくれないと逆ギレするようなやつとは一緒に仕事したくないよな〜
0179デフォルトの名無しさん
2007/03/08(木) 17:30:50基底条件ってもんくらい分かってるだろ?
でなきゃループ内で再帰やったとき止まらんw
0180デフォルトの名無しさん
2007/03/08(木) 18:32:06コンパイルしたときに、$付きの class ファイルが生成されます。
こんな書き方ありなんでしょうか?
0181デフォルトの名無しさん
2007/03/08(木) 18:47:22JVMの身にもなってみろ
0182デフォルトの名無しさん
2007/03/08(木) 19:16:30あり。
> 1つのjavaファイルに、複数の public class を記述すると、
入れ子になったクラスなら $ とかがつくし、
トップレベルに public なクラスが複数あったら
コンパイルエラーにしないと言語仕様に反する。
0183デフォルトの名無しさん
2007/03/08(木) 19:57:55場違いだったら構わず指摘してください。よろしくお願いします。
http://www.strangepuzzle.com/jnetcube.html
このサイトにあるルービックキューブ用のタイマーを
動かしたいのですが、ダウンロードしたあと
何をしたらいいのかまったくわからないんです。
どうすればタイマーを動かすことができるのでしょうか。
0184デフォルトの名無しさん
2007/03/08(木) 21:09:20コンパイラ通るのか!?
0185デフォルトの名無しさん
2007/03/08(木) 21:10:26例えば、DBの1レコードごとに一つのHTMLページのソースが入ってる状態があります。
例
1レコード目 1 トップページ
2レコード 2 サブページ1
3レコード 3 サブページ2
HTTPリクエストに応じたレコードをJSPで表示で表示しているとします。
通常ならリクエストの形は
http://hogehoge.jsp?id=2
とかだと思います。
これをクエリを使わないで/で区切ったリクエストに応じて表示する方法はないでしょうか?
例えば
http://hogehoge.jsp/2/
↑のリクエストの形で2レコード目の要求として扱う方法はないでしょうか?
2ちゃんねるみたいに
http://pc11.2ch.net/test/read.cgi/tech/1173026128/
というふうにクエリ使わないで/だけでやる方法をさがしています
0186デフォルトの名無しさん
2007/03/08(木) 21:46:420187デフォルトの名無しさん
2007/03/09(金) 00:14:40今は、ボタンを押すごとに
//空所補充問題文
The rocket launch had to be ( ) because of unexpected bad weather.
//空所に入る選択肢
・aborted
・allotted
・ascribed
・accumulated
といった感じで、50個ぐらいある問題文と選択肢のセットをテキストファイルから画面に
readLine()で表示させているのですが、今の方法だとテキストファイルに並んでいる
順番でしか表示されません。やりたいことは次のとおりです。
1.この問題文と選択肢のセットをランダムな順番で表示させたい。
2.選択肢も、常に同じ4つの単語ではなくランダムな組み合わせで表示させたい。
ちなみに今は問題文と選択肢のテキストを別々のファイルに保存しているのですが
これも問題ありでしょうか?よろしくお願いします。
0188デフォルトの名無しさん
2007/03/09(金) 00:45:19import java.util.*;
public class EnglishTest1 {
public static void main(String[] args) throws IOException {
String dataBody = "The rocket launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n"
+ "The missile launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n"
+ "The Vista launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n";
ArrayList<Question> questions = new ArrayList<Question>();
BufferedReader r = new BufferedReader(new StringReader(dataBody));
try {
for (String line; (line = r.readLine()) != null;) {
ArrayList<String> data = new ArrayList<String>(Arrays.asList(line.split(";")));
Question q = new Question();
q.questionText = data.remove(0);
q.choices = data;
q.correctAnswerNumber = 0;
questions.add(q);
}
} finally {
r.close();
}
Random random = new Random();
while (questions.size() > 0) {
Question q = questions.remove(random.nextInt(questions.size()));
System.out.println(q.questionText);
}
}
}
class Question { String questionText; ArrayList<String> choices; int correctAnswerNumber; }
0189デフォルトの名無しさん
2007/03/09(金) 00:46:110190デフォルトの名無しさん
2007/03/09(金) 00:59:52import java.io.*;
import java.util.*;
public class EnglishTest2 {
public static void main(String[] args) throws IOException {
String dataBody = "The rocket launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n"
+ "The missile launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n"
+ "The Vista launch had to be ( ) because of unexpected bad weather.;aborted;allotted;ascribed;accumulated;other word1;other word2\n";
ArrayList<Question> questions = new ArrayList<Question>();
BufferedReader r = new BufferedReader(new StringReader(dataBody));
try {
for (String line; (line = r.readLine()) != null;) {
ArrayList<String> data = new ArrayList<String>(Arrays.asList(line.split(";")));
Question q = new Question(data.remove(0), data, 0);
questions.add(q);
}
} finally {
r.close();
}
Collections.shuffle(questions);
for (Question q : questions) {
System.out.println(q.questionText);
for (String choice : q.choices) System.out.println(" - " + choice);
}
}
}
class Question {
final String questionText; final List<String> choices; final int correctAnswerNumber;
public Question (String questionText, List<String> choices, int correctAnswerNumber) {
this.questionText = questionText; this.choices = Collections.unmodifiableList(choices); this.correctAnswerNumber = correctAnswerNumber;
}
}
0191デフォルトの名無しさん
2007/03/09(金) 01:09:34やじるしのところで警告が出てしまいます。
抑えるにはどうすればいいでしょうかよろしくお願いします。<(_ _)>
ArrayList<Sensyu> al = new ArrayList<Sensyu>();
al.add(new Sensyu("tako", 20 ));// ArrayListにデータを追加
al.add(new Sensyu("yuura", 30 ));
al.add(new Sensyu("ponko", 53 ));
Object[] oa = al.toArray();// 配列に変換
DataComparator dcom = new DataComparator();
Arrays.sort( oa, dcom); //←‥ここで警告:[unchecked] 無検査変換が出てしまいます。
---- ---- ---- -----
public Sensyu(String namaeMoji, int ten ){
namae = namaeMoji;
tokuten = ten ;
}
---- ---- ---- -----
public class DataComparator implements java.util.Comparator{
public int compare(Object o1, Object o2){
return ((Sensyu)o2).tokuten - ((Sensyu)o1).tokuten;
}
}
0192デフォルトの名無しさん
2007/03/09(金) 01:31:39public class DataComparator implements java.util.Comparator<Sensyu> {
0193デフォルトの名無しさん
2007/03/09(金) 02:41:11でもまだうまくいきません‥
public class DataComparator implements java.util.Comparator<Sensyu> {
になおして中身を
public int compare(HairetuArraysTest.Sensyu o1, HairetuArraysTest.Sensyu o2) {
return o2.tokuten - o1.tokuten;
}
---- ---- ---- -----
Arrays.sort( oa, dcom);
の部分を ↓
Arrays.sort( (Sensyu[]) oa, dcom); //この行番号でエラーメッセージが出てしまう。
するとコンパイル時に何の警告も出ません。しかし、
実行すると
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [LHairetuArraysTest$Sensyu;
というメッセージが出てしまうのですが、どうしましょ?(o・・o)/~
0194デフォルトの名無しさん
2007/03/09(金) 02:49:47Sensy[] に変換するよう引数をとる toArray の方を使いましょう。
0195193
2007/03/09(金) 03:05:33toArray
public <T> T[] toArray(T[] a)
のことですね、
Sensyu[] oa = al.toArray( ここがわかりませんどうしましょドジですいません );
0196デフォルトの名無しさん
2007/03/09(金) 04:09:57new Sensyu[0]でも何でもいいからSensyu[]型を放り込んでおけば、
もしサイズが足りなければ新たに確保してくれる。
APIリファレンスのtoArrayの項目をきちんと読むんだ。
0197193
2007/03/09(金) 04:29:14でっ、できました。ヽ(^o^)丿
難解だけどAPIリファレンス出来るだけ読むようにします。
つきあってくれてありがとう‥
0198デフォルトの名無しさん
2007/03/09(金) 04:48:13好きなタイミングで音声を鳴らしたり消したりしたいのですが、
スレッド処理を用いている場合はどう書いたらいいのでしょうか?
startメソッドにac.loop;と書くと延々鳴ってしまいますし、
runメソッド内に書くとやはり音声の冒頭部分だけが繰り返し再生されてしまいます。
ソース
http://sourcepost.sytes.net/sourceview.aspx?source_id=29248
startメソッドに再生部分を記述
http://www.za.ztv.ne.jp/yosi-h/Java_Ski.html
0199デフォルトの名無しさん
2007/03/09(金) 10:26:18JavaでPDFを作成するiTEXTにて
テーブルを作成するときに途中でページからはみ出そうなときは
次ページに改ページしてくれる方法ってないでしょうか?
よろしくおねがいします。
0200デフォルトの名無しさん
2007/03/09(金) 11:21:38アプレットは単音鳴らすか鳴らせ続けるかだからループさせつつ任意のタイミング止めて再開とかしたいなら適当なサウンドエンジン使った方が良いよ。
>>199
どっかで制御方法見た気がするが・・・javadocくらい叩き込んだ?
0201デフォルトの名無しさん
2007/03/09(金) 11:30:17javadocはよくわかりませんが
こちらのサイトでiTEXTのコマンドについては大体わかったのですが
ttp://itextdocs.lowagie.com/tutorial/
質問した内容のサンプルコードが無かったので悩んでます。
0202デフォルトの名無しさん
2007/03/09(金) 11:36:18ありがとうございます。
iTEXTのJAVAdoc見つかりました。
理解できるか分かりませんがちょっと読んでみようと思います。
0203デフォルトの名無しさん
2007/03/09(金) 11:39:01きっとコレジャン!
200サンクス!
0204デフォルトの名無しさん
2007/03/09(金) 13:53:33いろいろ解決方法はあるみたいだが、
al = Collections.checkedList(al, Sensyu.class);
を使いたくなってくるなあ。これならObjectなど他の型に渡しても
警告が出なくなる。
@SupressWarning("unchecked")でもいいけどさ
0205デフォルトの名無しさん
2007/03/09(金) 14:54:12まとめ見てここからダウンロードしようとしてるんですけどこの後どうすればいいんですか?
0206デフォルトの名無しさん
2007/03/09(金) 16:47:43Accept License Agreement してから
Java(TM) SE Development Kit Documentation 6, Japanese 選べば?
英語版欲しいなら、English の方選んで。
0207デフォルトの名無しさん
2007/03/09(金) 16:50:25サンクス
0208デフォルトの名無しさん
2007/03/09(金) 19:47:33相変わらず変な訳だが
0209デフォルトの名無しさん
2007/03/09(金) 20:04:010210デフォルトの名無しさん
2007/03/09(金) 20:18:140211デフォルトの名無しさん
2007/03/09(金) 21:09:04i10n って、日本語訳終わっただけで中国語訳とかまだじゃない?
0212デフォルトの名無しさん
2007/03/09(金) 21:37:281. 市場が大きい。
2. 訳の需要が大きい。
日本語は造語力が大きいので高等教育で用いられる用語も訳すことが出来、
結果として日本語しかできなくても高等教育が受けられる。
アジアの準先進国の言語などでそれほど造語力が高くない場合、そこまで
できないので、英語で高等教育を行わざるを得なくなり、結果として高等
教育を受けた人はみな英語が出来るので、英語で困らなくなってしまう。
という意見を聞いたことがある。
0213デフォルトの名無しさん
2007/03/09(金) 21:43:59もし高等教育の意味が文字通り高卒の事だったのなら謝る
0214デフォルトの名無しさん
2007/03/09(金) 21:49:04学校教育英語に幻想持ってないか?
0215デフォルトの名無しさん
2007/03/09(金) 21:52:08技術文書の翻訳版を欲しがるのは日本人くらいだし
0216125
2007/03/09(金) 22:32:27ファイルのコピー、移動はFileクラスとFileInputStream,FileOutputStreamあたりを使うことで、簡単に実現できました。
ところでお聞きしたいのですが、InputStreamのread( byte[] buffer )、OutputStreamのwrite( byte[] buffer )で使用する
配列サイズというのは、どれくらいが適しているのでしょうか?
バッファーが大きければ処理が早く済むがメモリの消費量が大きくなる、ということはなんとなくわかるのですが、
適量のバッファーサイズの見当がつきません。
現在主流となっているマシンスペックだと、適量のバッファーサイズとはどれくらいなのでしょうか?
0218デフォルトの名無しさん
2007/03/09(金) 22:40:22英語で小説読もうとして三日であきらめたことを思い出した
資料としてなら読み進めるのは大して苦じゃないが大量になるとかなりウザい
メインで英語使うなんて信じられん
0219デフォルトの名無しさん
2007/03/09(金) 22:54:05セオリーは無いと思う。
俺はなんとなく 4kB 〜 16kB あたり取ってるが。
0220デフォルトの名無しさん
2007/03/09(金) 23:01:30小説と技術文書は全然違うでしょ。
語彙空間がまるで違うよ。
俺自分の専攻の論文ならすらすら読めるけど、
一般向けの小説(ハリウッド映画の原作)は
3ページで挫折しかけてるw
0221デフォルトの名無しさん
2007/03/10(土) 00:26:59(Test.classファイル)
class Test{
public static void main(String[] args){
System.out.println("aaa");
}
}
これを
jar cf Test.jar Test.class でjarファイル生成
jar xf Test.jar でjarを解凍
マニフェストファイルにMain-Class: Testを追加して保存
jar cfm Test.jar META-INF\MANIFEST.MF Test.class で再びjarに圧縮
こいつをダブルクリックしてもコマンドプロンプトが出てきてくれないです。
エラーメッセージも出ず無反応です。
ただし、コマンドプロンプトから
java -jar Test.jar と打ち込むと
aaa と表示されます。
どなたかお助けください。
0222デフォルトの名無しさん
2007/03/10(土) 00:47:210223デフォルトの名無しさん
2007/03/10(土) 01:00:44入力させた文字列の中に英字または小数がある場合、「○個目には整数を入力してください」という
メッセージを表示させたいのですが、Integer.parseIntでの例外をNumberFormatException
で拾うという手段を取ってみたのですが、この場合何個目の入力が整数でないのかを個別に
表示することが出来ません。どの入力が間違っていても同一のメッセージ表示しか出来ません。
この方法以外に入力された文字列の中で整数以外の入力を判別して、どの入力がエラーなのかを知らせる方法はありますか?
0224デフォルトの名無しさん
2007/03/10(土) 01:02:500225デフォルトの名無しさん
2007/03/10(土) 01:10:12Windowsだとjavaじゃなくjavawに関連づけられてるかもしれない。
0226デフォルトの名無しさん
2007/03/10(土) 01:31:23>>225
ありがとうございます。今見てみましたが、javawなってました。
javaにかえて再びwクリックしてみると一瞬だけコマンドプロンプトが表示されましたが、すぐに消えてしまいました。
これはこういうものなのでしょうか?コマンドプロンプトの画面をずっと表示させておくことは出来ますか?
0227デフォルトの名無しさん
2007/03/10(土) 01:45:480228デフォルトの名無しさん
2007/03/10(土) 01:50:28ttp://www.javadrive.jp/start/scanner/index1.html
0229デフォルトの名無しさん
2007/03/10(土) 02:04:300230デフォルトの名無しさん
2007/03/10(土) 03:57:050231デフォルトの名無しさん
2007/03/10(土) 04:16:57空の文字列は、長さは0だけど文字列。つまり、Stringのオブジェクトが存在する。
nullは、何もないということ、オブジェクトがないという状態を表す。
0232デフォルトの名無しさん
2007/03/10(土) 04:20:30パッケージ作っといて修飾名でクラス指定してないって訳じゃなさそうだね。
winの関連づけはjavawだからそれはいじらないでコマンドプロンプトから打て。
CUIプログラムをクリックしても動きません!って発想が既におかしい。プロンプト立ち上げてからならjavaが終了してもプロンプトが残ってて消えないはず。
OSのしくみとかそこら辺を分かってないだけだからまずそこら辺を勉強した方が良い。
てか独学?専門生?
>>230
MS VMだと同義w
nullはObject派生型なんだけど値は何にも関連付けられてない。
空文字列は"\u000000"になるんだっけ?
他言語やってて言語によって定義が違うから掴めないの?
ただ単にjavaのnullが分かってない?
後者ならjavaの本見ればいい。
0233デフォルトの名無しさん
2007/03/10(土) 04:39:01> MS VMだと同義w
そんな話は聞いた事がない。
> nullはObject派生型なんだけど値は何にも関連付けられてない。
Java では null は null型だよ。空型とか訳される事もあるけど。
Object からは派生してない特別な型。
> 空文字列は"\u000000"になるんだっけ?
は?
薀蓄語りたいなら、ちゃんと言語仕様ぐらい見てからやれ。
0234デフォルトの名無しさん
2007/03/10(土) 04:39:56>nullはObject派生型なんだけど値は何にも関連付けられてない。
null は null 型のただ一つの値。
Object 派生型でもないし値が関連付けられていないわけでもない。
0235デフォルトの名無しさん
2007/03/10(土) 05:39:34何か自分の知識を語りたいのは分かるんだが
その表現をする言語力が伴っていないようで少し哀れ
相手の理解力を超えた表現しか出来てないよ・・・・
0236223
2007/03/10(土) 06:45:41遅いレスで申し訳ありません。
try{
timeAtBat = Integer.parseInt(str1);
sacrifice = Integer.parseInt(str2);
hit = Integer.parseInt(str3);
average = (double)hit / (timeAtBat - sacrifice);
NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(3);
System.out.println("打率は" + formatter.format(average) + "です。");
}
catch (NumberFormatException e) {
System.out.println("数は0〜1000の整数で入力ください");
}
str1,2,3はBufferedReaderを使って読み込んでいます。
System.out.println("数は0〜1000の整数で入力ください");の部分を
打席数、安打数、犠打数のどの入力が整数でないのかを"〜数は0〜1000の整数で入力ください"
でそれぞれメッセージを表示させたいのです。
助言をいただけたら幸いです。
0237デフォルトの名無しさん
2007/03/10(土) 09:01:07parseInt を3つまとめてtry-catchするんじゃなくて、
ひとつづつtry-catchすればわかるじゃん。
あとはカウンタ変数でも作って、今何番目のparseIntやってるかわかるようにするとか。
0238223
2007/03/10(土) 09:06:27ひとつずつキャッチする手はもうやってみたのですが、やっぱりそれが一番早いですかね?
カウンタ変数のほうをチャレンジしてみたいと思います。
ありがとうございました!
0239223
2007/03/10(土) 09:17:34忘れてました。ひとつずつtryのすぐあとでcatchしていくと例外は拾えるんですけど、
処理をそこで終われないですよね?その後にある計算式は例外でも実行されてしまって
エラーになってしまいました。
もし、ひとつずつtry-catchしていくのであれば、どこに計算式などを入れるべきですか?
0240デフォルトの名無しさん
2007/03/10(土) 09:41:12入力ください
で吹いたw
0241デフォルトの名無しさん
2007/03/10(土) 09:42:37return;
0242デフォルトの名無しさん
2007/03/10(土) 10:39:34try-catchだと記述が長ったらしくなるから、parseをラップするメソッドを作る手もある。
引数は文字列、戻り値はInteger但しparse失敗時はnull。
そのメソッドの中でtry-catchを使う。
.NETにあるTryPaseの亜流みたいなもん。
0243デフォルトの名無しさん
2007/03/10(土) 10:55:31HashMap<String, int>はintがObjectじゃないからできないんでしょうか?
この場合HashMap<String, Integer>とするべきですか?
0244221
2007/03/10(土) 10:59:49スクールに通ってましたが素人同然です('A`)
関連付けはjavawを変更できないとすると、
結局>>221のプログラムはwクリックでは実行出来ないということでしょうか?
誰かにこのプログラムを使ってもらう時に
「コマンドプロンプトからjava -jar Test.jarって入力してね」
と言うのはちと苦しいです。
0245デフォルトの名無しさん
2007/03/10(土) 11:03:57プリミティブ型は入れられないのでそうする必要がある。
使うときはautoboxing/unboxingが効くので直接プリミティブを使う
コードを書いてもOK。コンパイラがこっそりIntegerに入れたり出したり
してくれる。
0246デフォルトの名無しさん
2007/03/10(土) 11:05:08java -jar Test.jar
なバッチを一緒に置いておいてもダメだっけか?
最近WindowsでJava使ってないから忘れたわ。
0247デフォルトの名無しさん
2007/03/10(土) 11:15:38ありがとうございます
色々調べたり実験したりでちょっと遅れてしましました
宣言だけIntegerにすれば、他ではintとして扱っても問題ないんですね
0248デフォルトの名無しさん
2007/03/10(土) 11:52:50ダブルクリックみたいなGUIど真ん中なことやりたかったら、普通はswingとか使う。
コマンドプロンプトがどうしても必要な場合は>>246の言うとおりバッチでラップすればおk。
0249デフォルトの名無しさん
2007/03/10(土) 14:31:28ありがとうございます。
調べてみたら、Javaの上位IOクラスは内部バッファとして8192byteつかっていることがわかりました。
その値に統一して使いたいと思います。
0250デフォルトの名無しさん
2007/03/10(土) 14:34:430251221
2007/03/10(土) 15:47:13>>246をTest.jarのあるフォルダにa.batとして保存してこれをwクリックで無事実行できました!
皆さんに感謝します。
0252230
2007/03/10(土) 17:44:56遅レスですが、ありがとうございました。
0253デフォルトの名無しさん
2007/03/10(土) 17:55:32JAVAのようなオブジェクト指向だとポインタ意識しなくていいから知らない人が増えてきたな。
便利になると共に起こる、知識不足の弊害だな。
0254デフォルトの名無しさん
2007/03/10(土) 18:10:00>JAVAのようなオブジェクト指向だとポインタ意識しなくていいから
んなアホな
0255デフォルトの名無しさん
2007/03/10(土) 18:13:10ポインタ操作って普通に使わないでしょう。
0256デフォルトの名無しさん
2007/03/10(土) 19:23:160257デフォルトの名無しさん
2007/03/10(土) 19:27:04実際に意識していない初心者が増えてきたってことだと思う。
0258デフォルトの名無しさん
2007/03/10(土) 21:02:20public int getId(){return id;}
public void showId(){
System.out.println("idは" + ● + "です。");
}
この場合、●に入れるのはidかgetId()のどっちがいいんかな。
好みの問題でおk?
0259デフォルトの名無しさん
2007/03/10(土) 21:03:49つうか、他のIOクラスでデコレートすれば
サイズなんて気にしなくても良いはずだが。
0260デフォルトの名無しさん
2007/03/10(土) 21:06:24つうか、マニフェストとJava Web Start使えよ
0261デフォルトの名無しさん
2007/03/10(土) 21:22:11getId() がいいと思う。
0262デフォルトの名無しさん
2007/03/10(土) 21:27:19thx
0263デフォルトの名無しさん
2007/03/10(土) 21:39:39おなじ暮らすないならidでもいいとは思うけど。
0264デフォルトの名無しさん
2007/03/10(土) 23:06:13うーん、悩ましい問題だなぁ…好みというか、目的による?
けど、まぁ、getId()のほうが良いと思う。
例えばそのクラスのサブクラスでgetId()をオーバーライドして
getId() { return "00" + id; }
とかしたときに・・・
0265デフォルトの名無しさん
2007/03/10(土) 23:11:29まず、アンカーは>>258に。
あと、
×getId() { return "00" + id; }
○getId() { return "00" + super.getId(); }
0266デフォルトの名無しさん
2007/03/10(土) 23:13:02…駄目だ俺(笑
getId()は int なのな。
まぁ意図は汲み取ってください(汗
0267デフォルトの名無しさん
2007/03/11(日) 01:21:31同時に複雑さが増し、保守が難しくなる。
また、よく考えられていない抽象化は、
結局それを使う場合に1から考え直す必要があり、
無駄な労力になる。むしろ、誤解を生む弊害すらある。
そして、「よく考える」とは言っても難しく、的外れになることが多く、
無駄な抽象化がプログラム中に散乱することになりやすい。
そこで、アジャイル的には、まず単純に作って、
例えば顧客に叩いてもらって、抽象化が必要なところを早期に発見する。
(テスト駆動なら、まずテストに叩かれるだろう)
その観点から見ると、
必要と分かるときが来るまで getId() よりも id を使うのがいい。
0268デフォルトの名無しさん
2007/03/11(日) 03:00:38getId で取得した値と showId で表示した値は、大抵の場合で一致しなければおかしいから、
直感的に考えた場合は id より getId のほうが適切だろうと思う。たとえ getId が final だったとしてもね。
0269デフォルトの名無しさん
2007/03/11(日) 03:05:07外から見た場合、id を使うと 『何かよく分からないけど ID の内部表現を showId が表示している』 ってなって分かり難いんじゃないかと。
0270デフォルトの名無しさん
2007/03/11(日) 08:53:30同意
使う側の視点で考えるのがいいと思う
idという情報をを操作したい人のためのものなのだからその人のことを
考えなければ、悪く言えば独りよがりな実装になってしまうと思う
0271デフォルトの名無しさん
2007/03/11(日) 09:06:40ボトルネックになる可能性、どうしても生フィールドでなければできない処理などは
例外的に使用を許可する、くらいの縛りを加えるようにする方が良い。
トラブル対応、仕様変更対応には絶対にこの方針が必要。無いと死ぬ。大規模だとね。
0272デフォルトの名無しさん
2007/03/11(日) 09:19:12まちまちなのは良くない。
0273デフォルトの名無しさん
2007/03/11(日) 11:09:41データ結合で単一のデータを引数として渡すべき。
0274デフォルトの名無しさん
2007/03/11(日) 11:29:20getterはgetIまで打たないと補完が面倒。
0275デフォルトの名無しさん
2007/03/11(日) 12:02:11同意!
>>274
開発時に面倒臭がって楽しようとすると後々痛い目にあったりする予感
0276デフォルトの名無しさん
2007/03/11(日) 12:32:010277デフォルトの名無しさん
2007/03/11(日) 12:49:20jar cf foo.jar *.class
詳しくはここを読め。
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/windows/jar.html
「jarにコンパイル」と言われると違和感を覚えるな。
0278デフォルトの名無しさん
2007/03/11(日) 13:17:31getまで打てば、そのクラスのアクセッサが一覧出来るのでむしろ便利。
フィールド名だとごちゃごちゃしてる。
>>271
んだんだ。
それに、遅延初期化の為にも入れているかな。
private Hogehoge hogehoge;
public Hogehoge getHogehoge(){
if( hogehoge==null ){
hogehoge = new Hogehoge();
}
return hogehoge;
}
(synchronized はどうしたとかややこしい話は取りあえず抜きな、初心者スレだと荒れそうだから)
0279デフォルトの名無しさん
2007/03/11(日) 13:25:43フィールドが20個あればgetまで打っても20個出てきてそこから選ばないといけない。
変数名なら頭文字打つだけで絞り込める。
まあ俺はthis.をつけるのでそこまで打つだけでOKのときもあるが。
0280デフォルトの名無しさん
2007/03/11(日) 13:26:13j2re1.4.2_13 をDL、インストールしてみたのですがこの後がわかりません
コマンドプロンプトに打ち込んでも
'jar' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
とでてきてしまいます;;
0281デフォルトの名無しさん
2007/03/11(日) 13:59:17>>1を読め
0282デフォルトの名無しさん
2007/03/11(日) 14:06:44j2re だと jar 入ってないような。 j2dk か jdk 使え。
0283デフォルトの名無しさん
2007/03/11(日) 14:07:40コマンドプロンプトに
java -version
って打ってみ?
0284デフォルトの名無しさん
2007/03/11(日) 14:45:080285デフォルトの名無しさん
2007/03/11(日) 14:48:50わざわざ毎回アクセッサメソッドつくるとフィールド参照からメソッド記述にするのめんどくさい。
0286デフォルトの名無しさん
2007/03/11(日) 14:49:35getと3文字打つのが怠いんだろうね。
って、どんだけwwww
まぁ、publicアクセス不要なフィールドにはgetter付けないから
20個フィールドがあってもホントはもっと絞れるんだけどね。
0287デフォルトの名無しさん
2007/03/11(日) 14:55:29リファクタリング機能がある開発環境使えば良いじゃん。
0288デフォルトの名無しさん
2007/03/11(日) 14:56:56jdk7の議論でプロパティは話題に上っている。
[mustang/Java SE 6] 次世代Javaの動向 4 [dolphin]
ttp://pc11.2ch.net/test/read.cgi/tech/1163986696/
の中に、情報へのポインタがあるよ。
まだ本決まりじゃなくて構文は揺れてるだろうけど、
クロージャよりは揉めずに入りそうな気がしてる。
0289デフォルトの名無しさん
2007/03/11(日) 15:19:31つ もしかして "自己カプセル化"
0290デフォルトの名無しさん
2007/03/11(日) 15:38:54同じクラスないであればthis.idで良いジャマイカ
スーパーなときだけgetId()
0291デフォルトの名無しさん
2007/03/11(日) 15:40:32Factory MethodパターンやFlyweightパターンで
改造したくなってくるなあ。
0292デフォルトの名無しさん
2007/03/11(日) 15:41:42どういうクラスなんだか。委譲も集約を
ちゃんと使っていれば極力減らすこともできよう
0293デフォルトの名無しさん
2007/03/11(日) 15:42:06IDEで自動生成しろよ
0294デフォルトの名無しさん
2007/03/11(日) 16:42:11たとえば携帯電話のスペックをオブジェクトで表現しようとしたら
20なんて軽く超えると思うけど。どうやって削るの?
高さ
幅
厚さ
質量
連続待受時間静止時
連続待受時間移動時
連続通話時間音声通話時
連続通話時間テレビ電話時
液晶サイズメインディスプレイ
液晶サイズサブディスプレイ
液晶最大同時発色数メインディスプレイ
液晶最大同時発色数サブディスプレイ
液晶解像度(ドット数)メインディスプレイ
液晶解像度(ドット数)サブディスプレイ
名前最大登録件数
電話番号最大登録件数
メールアドレス最大登録件数
メール保存容量送信メール
メール保存容量受信メール
iアプリ保存件数
ミュージックプレーヤー
バックグラウンド再生
連続再生
iメロディ・着信メロディ
バーコードリーダー
赤外線通信対応
Bluetooth通信
FOMAプラスエリア対応
0295デフォルトの名無しさん
2007/03/11(日) 16:49:44液晶が別のメーカーのだったら一気に変えないといけないんだよな、そのクラス……
0296デフォルトの名無しさん
2007/03/11(日) 16:54:28なんで無理して一つのクラスでやるんだよw
0297デフォルトの名無しさん
2007/03/11(日) 16:54:520298デフォルトの名無しさん
2007/03/11(日) 17:00:53車でも住宅でもなんでもいいけど込み入ったものをひとつのクラスで完結させようとするという発想が恐ろしい気がする
0299デフォルトの名無しさん
2007/03/11(日) 17:02:24まず、デザインパターンを覚えるといいかな。
0300デフォルトの名無しさん
2007/03/11(日) 17:08:541つのクラスですべてを完結させるなんて一度も書いてねえ。
親クラス、子クラスのように抽象化していったって
20以上の変数を持つクラスはありえるってことです。
0301デフォルトの名無しさん
2007/03/11(日) 17:15:42おれならまず分けることを考えるが。
0302デフォルトの名無しさん
2007/03/11(日) 17:18:16しかし普通はそんなのはないぞ
0303デフォルトの名無しさん
2007/03/11(日) 17:22:120304デフォルトの名無しさん
2007/03/11(日) 17:33:27以上。
0305デフォルトの名無しさん
2007/03/11(日) 18:08:060306デフォルトの名無しさん
2007/03/11(日) 18:18:15って書いたら、内部で使うために
private int getHogehoge() {
return hogehoge;
}
て書かなきゃいけないん?
0307デフォルトの名無しさん
2007/03/11(日) 18:29:530308デフォルトの名無しさん
2007/03/11(日) 18:30:400309デフォルトの名無しさん
2007/03/11(日) 18:44:400310デフォルトの名無しさん
2007/03/11(日) 18:54:48必要になってからメソッドにするでいいよ。
0311デフォルトの名無しさん
2007/03/11(日) 19:31:02[1] http://www.hogehoge.ho.ge/aaa/bbb/index.html
からのHTMLの(?)相対アドレス
[2] "bbb.html" に対応するURLは
[3] http://www.hogehoge.ho.ge/aaa/bbb/bbb.html
だと思うのですが、
[1]と[2]から[3]を得る機能はJavaSE6にはありますか?
0312デフォルトの名無しさん
2007/03/11(日) 20:23:39java.net.URI uri = java.net.URI.create("http://www.hogehoge.ho.ge/aaa/bbb/index.html").resolve("bbb.html"); とか。
0313デフォルトの名無しさん
2007/03/11(日) 20:56:28配列
or
ハイスペック携帯電話のみサポートに切り替えて解決
0314デフォルトの名無しさん
2007/03/11(日) 21:00:53『分割し、統治せよ』
『アジャイルソフトウェア開発奥義』にはそう乗っている。
だが、
どうしてもクラスを分割できなければ、
やれることはまだまだある。
ディスプレイのサイズなんぞstaticでやれ。
そんなに苦しいなら配列でやれ。
0315デフォルトの名無しさん
2007/03/11(日) 21:02:53そういう機能
とはいわん気がするが。
そういうAPIはありますか、だろ。
機能というとまるで言語仕様のことみたいだ。
その手のAPIは言語仕様とは別だしな
0316デフォルトの名無しさん
2007/03/11(日) 21:28:56VCのMFCなんか数十個の関数や変数を含んでいるクラスが普通だから
そこまで分割する必要があるのかどうか、
分割するといいことがあるのか知りたいところ。
0317デフォルトの名無しさん
2007/03/11(日) 21:37:170318デフォルトの名無しさん
2007/03/11(日) 21:39:55コピペが減るとか
0319デフォルトの名無しさん
2007/03/11(日) 21:51:43すまんが、何ページ?
0320デフォルトの名無しさん
2007/03/11(日) 22:07:18変数や関数の数自体は気にするべきではない。
気にするべきはモジュール結合度と強度、クラス設計で委譲・継承などのデザインパターンといったところを気にするべき。
0321デフォルトの名無しさん
2007/03/11(日) 22:19:18tiffファイルを操作する簡易エディタを作りたいと思っています。
やりたいこと
・複数のtiffファイルを結合して保存する。
・複数頁のtiffファイルを1ページ毎に分けて保存する。
・画像の上にテキストを挿入する
Java Advanced Imaging(JAI)を使えば簡単に作れますか?
他に便利なAPIがあれば教えてください?
0322デフォルトの名無しさん
2007/03/11(日) 23:36:16Javaのメソッドで、C++でいうところのconstなクラス関数を作りたいのですが、可能なのでしょうか?
つまり、そのメソッドはメンバー変数の書き換えを行なわないということを保証させたいのです。
色々調べてみたところ、Javaにconstはないとのこと。
似たような機能か?と思ってfinalについても調べてみましたが、期待した内容ではありませんでした。
0323デフォルトの名無しさん
2007/03/11(日) 23:37:58>finalについても調べてみましたが、期待した内容ではありませんでした。
kwsk
0324デフォルトの名無しさん
2007/03/11(日) 23:43:08・finalとついたメソッドは、オーバーライドされなくなる
・finalとついた変数は、書き換えられることがなくなる(配列の中身などは書き換えられるので注意)
・finalとついたクラスは、継承されなくなる
といった効果のようでした。
0325デフォルトの名無しさん
2007/03/11(日) 23:53:29static
0326デフォルトの名無しさん
2007/03/11(日) 23:56:46enumじゃダメなん?
0327デフォルトの名無しさん
2007/03/11(日) 23:58:040328デフォルトの名無しさん
2007/03/11(日) 23:59:59ああ、なるほど。確かに。
でも、ちょっと別の制限が強くなりすぎますね。
やりたいことは
abstract class IScene
{
abstract void Task();
abstract void Draw();
}
として、これをオーバーライドさせてゲームのシーンを作らせたいのです。
その際、Drawではメンバー変数の書き換えを禁止させたいのです。
0329デフォルトの名無しさん
2007/03/12(月) 00:07:510330デフォルトの名無しさん
2007/03/12(月) 00:14:34変数はprivateで宣言しておいて、publicもしくはprotectedなアクセサメソッドを
公開しておけばいいんじゃない?
0331デフォルトの名無しさん
2007/03/12(月) 00:18:13それ全然『メンバー変数の書き換えが行なわれないこと』が保証できてねーじゃん
継承する側がいくらでも間違いを犯せる
C++でもconst_castしちまえばメンバー変数いじれるけどなw
0332デフォルトの名無しさん
2007/03/12(月) 00:19:41public static final 〜
}
じゃダメなの?
0333デフォルトの名無しさん
2007/03/12(月) 00:24:07基本的に無理。
標準APIのメソッド呼び出した時に、そのメソッドがインスタンスの状態を変更しない事まで考えるなら。
JSR-308 のサンプルにある @ReadOnly が それっぽいけど、早くてもJDK7にならないと入らない。
自分のクラスのメンバ変数の書き換え禁止だけなら、@Const みたいなアノテーション自作して、
@Const処理するようなAPTまで自作すれば出来なくはないけど……
0334デフォルトの名無しさん
2007/03/12(月) 00:24:44なんで?
abstract class IScene
{
private var1;
abstract void Task();
abstract void Draw();
public getVAr1(){
return var1;
}
}
ということだけど。
「Drawではメンバー変数の書き換えを禁止させたいのです」
という要求には答えてると思うけど。
もっとも、Task()メソッドからも書き換えは出来ないけど。
0335デフォルトの名無しさん
2007/03/12(月) 00:24:53すいません、>>328がinterfaceで書くべきものだということは分かるのですが、
それでメンバー変数が書き換えされないことが保証される理由がわかりません。
>>332のfinalは何に対してついているものなのでしょうか?(変数?メソッド?)
0336デフォルトの名無しさん
2007/03/12(月) 00:27:05質問者じゃねーけど、やりたいことくらいは推測できる。お前も少しは推測して書いてやれよw
継承元の変数をいじらせたくないって要望じゃねーだろ。
継承先の変数であってもいじらせたくねーんだろ。
0337332
2007/03/12(月) 00:33:37constというか不変変数って意味で回答したんだけど
どっからでもアクセスできるしあなたが求めてるものとは違うと思う。
俺には難しくてついていけてないw
一応意図したものは↓みたいなもの。
public interface Const{
/** 1ページの表示件数 */
public static final int COUNT_PER_PAGE = 10
/** 全ページに共通のタイトルプレフィックス */
public static final String TITLE_PREFIX = "[HOGEHOGESERVICE]";
}
0338デフォルトの名無しさん
2007/03/12(月) 00:33:54そういう意味か?
自分で定義した変数を読み取り専用にするなんて、
C++でもできないだろ。
スーパークラスで管理する状態などを、サブクラスで勝手に
書き換えられるのが嫌なんじゃないのかな。
だから>>334でいいかと思うのだが。
0339デフォルトの名無しさん
2007/03/12(月) 00:38:14public interface IScene
{
void Task();
void Draw();
};
ゲームにおいて、全てのシーンは上を継承することを複数人プロジェクトにおいて義務づけます。
そして、このシーンを適切に毎フレーム呼び出す機構は私が作ります。
TaskとDrawは基本的に交互に呼ばれるのですが、フレームスキップが発生した時Drawの呼び出しが飛ばされる可能性もあるのです。
その際、Drawの中でメンバー変数の書き換えをするようなプログラムをされると、わかりにくいバグに繋がります。
C++の時は
class IScene
{
void Task() = 0;
void Draw()const = 0;
};
で大丈夫だったのですが…。
という相談です。
>>333については今ぐぐりながら理解しようとしているところです…。
0340デフォルトの名無しさん
2007/03/12(月) 00:39:20>自分で定義した変数を読み取り専用にするなんて、
>C++でもできないだろ。
できるよハゲw
const関数は何のためにあんだ。
0341デフォルトの名無しさん
2007/03/12(月) 00:43:200342338
2007/03/12(月) 00:43:38「C++でもできないだろ」
じゃなくて
「C++で出来たっけ?」だな。
C++はずいぶんやってないんで忘れた。
0343デフォルトの名無しさん
2007/03/12(月) 00:56:05キーワードだけは定義されてるって書いてあるけど、なんで削られたん?
0344デフォルトの名無しさん
2007/03/12(月) 01:15:370345デフォルトの名無しさん
2007/03/12(月) 01:18:40お馬鹿なJavaプログラマにはまともに使いこなすことができないだろうという判断から。
0346デフォルトの名無しさん
2007/03/12(月) 01:23:46C++をメインで使ってる身からすると全然過剰だとは思わないけど。
0347デフォルトの名無しさん
2007/03/12(月) 04:47:35やはり const として宣言されていない関数は呼び出すことができないのかな
0348デフォルトの名無しさん
2007/03/12(月) 06:43:57呼び出せたらconstの意味がない
0349デフォルトの名無しさん
2007/03/12(月) 09:19:31オブジェクトを丸ごと渡してやればXMLファイルに書き出してくれて、
XMLファイルを丸ごと渡してやればもとのオブジェクトを生成してくれるという
0350デフォルトの名無しさん
2007/03/12(月) 09:34:33近いのは java.beans.XMLEncoder と java.beans.XMLDecoder かな?
保存できるのは beans のプロパティだけになっちゃうけど。
0351デフォルトの名無しさん
2007/03/12(月) 16:33:01if(s = "")
{
}
間違えて上のコードを入力したとき s = "" の部分に「型の不一致: String から boolean には変換できません。」
というエラーメッセージが出てきました。
自分にはどう見ても右辺左辺ともにString型としか思えないのですが、なぜこのようなメッセージが出たのですか?
0352デフォルトの名無しさん
2007/03/12(月) 16:39:02=だと代入になってしまい、ifの中にはbooleanを入れなきゃいけないのにStringになってしまう
次に、==にしてもお前の期待する動作はしない
java String 比較 でググれ
0353デフォルトの名無しさん
2007/03/12(月) 17:03:10Stringの比較はequals()メソッドで行うということですね
簡潔でわかりやすいレスありがとうございます
0354デフォルトの名無しさん
2007/03/12(月) 17:19:32そっちはどちらかというとこの質問においてはオマケ。
=を比較のつもりで使っているほうが本質的な間違い。
0355デフォルトの名無しさん
2007/03/12(月) 17:26:02すみません。はじめの時点で言葉足らずでした
比較に = を使ってはいけないのは知っていたのですが、
VBの癖でついやってしまい、エラーが出て、
>>351の疑問が出たので質問させていただきました。
0356デフォルトの名無しさん
2007/03/12(月) 17:30:11二重起動を防止する案を考えているのですが
File.createTempFile(String prefix, String suffix)でファイルを生成して
File.deleteOnExit()で削除指定
ファイルの有無で起動中かどうかを判断するという処理にしようかと思ってます。
『もっと良い案があるよ』
『そのやり方だとこういう問題が発生する』
等御意見頂けますでしょうか。
0357デフォルトの名無しさん
2007/03/12(月) 18:51:39createTempFile だと、
prefix + "java.io.Fileが勝手に付加する文字列" + suffix って
名前のファイルを作っちゃわない? 二重起動防止にならんと思うけど。
あと、deleteOnExit だと、正常に終了できなかった場合はファイル残ったままになるよ。
もっとも、正常に終了できなかった場合にファイルを削除する方法は
今のところ提供されてないので二重起動の場合はダイアログだして
ユーザが選択できるようにした方が良いかも。v2c がやってるみたいに。
0358デフォルトの名無しさん
2007/03/12(月) 18:55:11Java では、 if(式) の式の部分は boolean じゃないとエラーになる。
if(s = "") の 「s = ""」って代入式の型は String なので、
コンパイラに boolean じゃないと怒られただけ。
0359デフォルトの名無しさん
2007/03/12(月) 19:00:25というのを見かけた。レースコンディションにはならないような気がする。
・異常終了したときの後始末はうまくできるんだろうか。
・ユーザー単位でのみ複数起動を禁止して別ユーザーなら起動を許す、
みたいなのは工夫が必要になるな。
RMI Registry(Activation)やJMXでなんかやれそうな気がしないでもない。
0360デフォルトの名無しさん
2007/03/12(月) 19:11:37ありがとうございます。
Preferences+ユーザー選択って感じにしようかな・・・。
0361デフォルトの名無しさん
2007/03/12(月) 19:13:45なるほど・・・ソケットは思いつかなかった。
0362デフォルトの名無しさん
2007/03/12(月) 20:30:57わかりやすく教えてもらえませんか('A`)
同時に動くスレッド2個ぐらいで、、
HP5箇所ぐらい見たんですがいまいち理解できません
0363デフォルトの名無しさん
2007/03/12(月) 20:57:50俺は nio のファイルロックで判定した。
0364デフォルトの名無しさん
2007/03/12(月) 20:58:590365デフォルトの名無しさん
2007/03/12(月) 21:05:560366デフォルトの名無しさん
2007/03/12(月) 21:07:40HashMap<Class<T>, List<T>>
0367デフォルトの名無しさん
2007/03/12(月) 21:14:41あの……それだとHashMapをnewするときにTになにか入れないといけないけどそういう使い方を意図しているのではなくて。
T.classをキーにしてgetしたらList<T>型のオブジェクトが返ってくるようにしたいんです。
もしくはList型オブジェクトをなんかしてList<T>型にキャストするとか。
0368デフォルトの名無しさん
2007/03/12(月) 22:02:31「関連づけたい」という曖昧な言葉を使ったことへの反省はしないのね。
0369デフォルトの名無しさん
2007/03/12(月) 22:52:46反省しました
……ってなんて答えりゃいいかわからんそのあてつけみたいなのやめてくれよ……
一回で伝わらなかったら何度か説明する機会くらい与えてくれよ……
人格攻撃して話題そらしたいのか?
無理なら無理でいいよ別の方法考えるから……
0370デフォルトの名無しさん
2007/03/12(月) 22:55:18HashMapを継承した新しいクラスを作ればいい。
0371デフォルトの名無しさん
2007/03/12(月) 23:03:31Class<T>とTのときはそれでできたんだけど、(内部でHashMap<Class<?>,Object>に委譲して出口でclazz.cast(map.get(clazz))を返すようにした)
List<T>のときはどうやって実装すればいいかわからないんです。
Reflection周りでいろいろ探してはいるんですが……
0372デフォルトの名無しさん
2007/03/12(月) 23:06:28public <T> List<T> get(Class<T> c) {
return (List<T>)get(c);
}
0373デフォルトの名無しさん
2007/03/12(月) 23:07:22return (List<T>)super.get(c);
0374デフォルトの名無しさん
2007/03/12(月) 23:17:47いけました。
ここで出る未チェックのキャストはアノテーションで強制的に黙らせる他ないんですよね?
0375デフォルトの名無しさん
2007/03/12(月) 23:52:35char,short,int,enumは使えるのに
何か歴史的な理由があったりしますか?
効率?
0376デフォルトの名無しさん
2007/03/13(火) 00:10:080377365
2007/03/13(火) 00:31:52何とかうまくいきそうです!
0378デフォルトの名無しさん
2007/03/13(火) 03:06:04作成
BufferedReader myReader=new BufferedReader(
new InputStreamReader(System.in),1);
//敵出現メッセージ
System.out.println("敵が現れた。");
//味方、敵初期値
int mikata=5;
int teki=5;
while(teki>0){
//数値入力
System.out.println("どうする?1:攻撃、2:回復");
System.out.println("行動:");
//数値を読み取り、変数に代入
Int mystring =myReader.readLine();
Int koudou = Integer.parseInt(mystring);
と思われる部分で;が足りませんというエラーが出ました、どう修正すればいいのですか?
0379デフォルトの名無しさん
2007/03/13(火) 03:10:28・ソースは必要な箇所を可能な限り原文に忠実に記述する。
Int とか、「作成」から始まる行とか、何が正しいのか分からない。
0380デフォルトの名無しさん
2007/03/13(火) 16:28:12interface でなければならない(もしくはその方がよい)場合、
また逆にabstract class でなければならない場合とは、
どんな場合なのでしょうか??
0381デフォルトの名無しさん
2007/03/13(火) 17:26:30一方、デフォルト実装を与えたい場合などはabstract class
0382デフォルトの名無しさん
2007/03/13(火) 17:47:50このクラスをベースに○○というメソッドを使って機能拡張してね→abstract class
0383デフォルトの名無しさん
2007/03/13(火) 22:58:08実装の継承 → abstract
0384デフォルトの名無しさん
2007/03/13(火) 23:05:27・ある性質に特有の処理が存在する。部分的に実装を共有できる。
もしくはどうしてもある種の実装が必要だ。
(interface は実装をもてない。abstract class はもてる。)
・その性質の出現する場面が予想できる。もしくは限定した局面でしか使用しない。
(あとから再利用を試みる場合、interface の方が制約が少ない。
abstract class だと、別のクラスの継承が必要な時にはもう使えない。)
上記を満たすなら abstract class。
制限をかけることによって(考えることを減らすことで)実装を容易にしたい場合も。
それ以外は interface。
interface の方がより純粋。制限が少なくて柔軟性が高い。
反面、実装の手間が多くなる。
最近は「とりあえずinterfaceにしとけ」な気がする。
実装に関してはヘルパークラスやテンプレートクラスを内包して、
そっちに処理を転送する方法で、継承と大差ない手間で済む。
その上で拡張性を保てる。
GUIフレームワークの基本部品なんかは abstract class ベースのものが多い。
画面表示に関する基本実装がどうしても必要とかそんなんだろうか。
0385デフォルトの名無しさん
2007/03/13(火) 23:08:57オブジェクト指向的にプログラムがかけないことはないように、
abstract class を interface代わりに使ってプログラムは書けるだろうけど、
そんな悲しいことは普通はしない。
0386デフォルトの名無しさん
2007/03/13(火) 23:27:22もしくはjava用のIDE
0387デフォルトの名無しさん
2007/03/13(火) 23:34:38interfaceを作って、abstract で骨格実装(デフォルトの実装)を作って、
多くの実装クラスを骨格実装を継承するようにすると
柔軟な構造になるよ。ひと手間掛かるけど
0388380
2007/03/14(水) 00:14:01デフォルト実装の必要性と、プログラムの柔軟性との兼ね合いってことでつね。
みんなありが�d
0389デフォルトの名無しさん
2007/03/14(水) 00:38:02不変クラスつくればいいだけだろう。
あれでconstなクラスは作れる。
無理って事は無い。
0390デフォルトの名無しさん
2007/03/14(水) 00:39:26配列の中身が書き換えられないように、
Collections.unmodifiableList()を使うとか、
clone()を使うとか、考えようぜ。
IBMのdwで、不変クラスで検索してみ。
constに相当するものを作る方法がのってる。
Wikipediaの「イミュータブル」でも検索してみると良い。
0391デフォルトの名無しさん
2007/03/14(水) 00:39:54しばらくスレを見ていなかったので>>322のことにまだ気づかなかっただけだ。
0392デフォルトの名無しさん
2007/03/14(水) 00:41:03それは、Effective Javaでは禁じ手とされているものだぞ。
攻めて、enum型にせよ。enumが駄目ならfinalでコンストラクタがprivateなクラスを。
0393デフォルトの名無しさん
2007/03/14(水) 00:41:49定数インタフェースは、勝手に実装されることがあるからやめとけ。
0394デフォルトの名無しさん
2007/03/14(水) 00:41:58{
public static void main(String args[])
{
System.out.println("Hello!");
}
}
0395デフォルトの名無しさん
2007/03/14(水) 00:43:43代替手段があるからいらないんだよ。
constは余計なゴミなんだよ。ゴミ。
全てを不変にしたくないときはfinalのほうが柔軟性が効くんだよ柔軟性が。
部分的に可変にしたほうがよいこともあろう。
>>345みたいな浅はかでお馬鹿なC言語厨には理解できないが。
0396デフォルトの名無しさん
2007/03/14(水) 00:44:43FindBugsを使え。そういう問題が起きても
困惑することは無くなるだろう
0397デフォルトの名無しさん
2007/03/14(水) 00:47:22switchは総ナメ野郎の糞だから
0398デフォルトの名無しさん
2007/03/14(水) 00:53:34防御的コピーって知ってる?
代替手段がないからこんなことしないといけないんだけど。
0399デフォルトの名無しさん
2007/03/14(水) 01:06:51実装クラスを書くと意図したように実行まで行えるのですが、
アノテーションを入れるとメソッドのオーバライドをしていないと怒られてしまいます。
これはアノテーションが間違っているのでしょうか?
それともアノテーションを使っていない方はたまたま実行まで出来てしまっただけで、
本来ならコンパイルが出来ないはずなのでしょうか。
public interface Base<T>{
public void print(T data) ;
}
public Derived implements Base<Integer> {
public void print(Integer data ) {
System.out.println(data.toString() ) ;
}
}
0400デフォルトの名無しさん
2007/03/14(水) 01:23:52Derived のメソッド定義に @override をつけたものとして話を進めるけど
それはオーバライドじゃないから怒られる。ジェネリクス関係ない。
0401デフォルトの名無しさん
2007/03/14(水) 01:42:18不変じゃなかったら、constつけてても防御コピーしなきゃだめだろ
0402デフォルトの名無しさん
2007/03/14(水) 01:56:36残念ながらC++のconstは防御的コピーする必要はない。
0403デフォルトの名無しさん
2007/03/14(水) 02:20:34不変でないオブジェクトは、明示的にせよ暗黙的にせよコピーしないと、
中にしまいこんだはずのオブジェクトを勝手に編集される可能性がある。
0404デフォルトの名無しさん
2007/03/14(水) 02:42:49const つけると不変クラスとして使えるってことか?
たしかに、両方のバージョンをそれぞれ作るのは面倒
0405デフォルトの名無しさん
2007/03/14(水) 02:43:16http://java-house.jp/ml/archive/j-h-b/039552.html
の話を見つけました。確かに
static byte test [] = new byte [] {0x7f, 0x80};
とやってみると、0x80以上を代入しようとすると「精度が落ちている可能性 期待値int」
とか言われてしまいます。
リンクにあるようにjpgBuff[j] = (byte)jpgBuff_i[j];で変換すると正しく扱えるようなのが不思議です。
>しかし int に入れておいて byte にするというのは、意味がないように
>思います。というか、int でできるなら byte でソースに埋めこんでも
>できなきゃおかしいですよね。ただ代入しているだけなんだし。何か
>その辺もおかしいのでは?
とあるように0xffまではbyteで扱えるはずですよね?
0x80以上をbyteな配列に代入するにはどうすればいいんですか?
何か勘違いをしているようでしたらご指摘をお願いします。。
0406デフォルトの名無しさん
2007/03/14(水) 02:58:05-128 〜 127 なんだよ……
0407デフォルトの名無しさん
2007/03/14(水) 03:04:54> とあるように0xffまではbyteで扱えるはずですよね?
違う。byteは -128〜127まで。
キャストを使って符号を無視するように明示しないかぎり byte では 255(0xFF) は扱えない。
> 0x80以上をbyteな配列に代入するにはどうすればいいんですか?
直接的にはキャストを使う。
間接的には String から byte配列に変換するようなユーティリティメソッド作るとか
"\u007F\u0080".getBytes("ISO8859-1"); みたいに文字列リテラル使ってみるとか。
0408デフォルトの名無しさん
2007/03/14(水) 03:21:44ありがとうございます。
>直接的にはキャストを使う。
http://java-house.jp/ml/archive/j-h-b/026824.html
を参考に byte b = (byte)0xff;
でエラーが出ないことは確認できました。
配列の場合は
static byte test [] = (byte []) new int [] {0x7f, 0x80};
とかやってみたんですが、どうもうまく行きません(変換できない型)
これは後出しで変換するしかないんでしょうか?
0409デフォルトの名無しさん
2007/03/14(水) 03:24:000410デフォルトの名無しさん
2007/03/14(水) 03:33:54ただ毎度面倒くさいし、見掛けも悪いのであらかじめ
-128 〜 127 の数値で扱うようにしておいたほうが
良いかも、と思いました。。。
ありがとうございました。
0411デフォルトの名無しさん
2007/03/14(水) 04:26:000412デフォルトの名無しさん
2007/03/14(水) 05:30:50みんなjspで力つきたのか? phpレベルの底辺が好きなんだね。
0413デフォルトの名無しさん
2007/03/14(水) 08:25:06ばかめ!EJB2は死んだわ!
0414デフォルトの名無しさん
2007/03/14(水) 09:01:03>3個の数字の並び替えの場合、その並び替えは 3! = 3 * 2 * 1 = 6通り、
>ですが、1回だけ shuffleを行う際に使っている j、k の選び方は 36 通りです。
>つまり、これが6通りの並び替えのどれかに対応します。
>しかしながら、 (36 ) ÷ ( 3 ! )は割り切れないのでどれかの並び方に偏ってしまうということがわかります。
http://blogs.sun.com/javaev/
0415デフォルトの名無しさん
2007/03/14(水) 09:31:16実際に並べかえてみりゃわかるよ。小学生並の解き方だけど。
例えば、
> for (int i = 0; i < a.length; i++)
を削った場合、j,k は 9通り(3^2)で、実際に並べ替えてみると
j=1::k=1:A、B、C, k=2:B、A、C, k=3:C、B、A
j=2::k=1:B、A、C, k=2:A、B、C, k=3:A、C、B
j=3::k=1:C、B、A, k=2:A、C、B, k=3:A、B、C
出現確率はこんな感じに偏る。
A、B、C::3/9,
A、C、B::2/9,
B、A、C::2/9,
B、C、A::0/9,
C、A、B::0/9,
C、B、A::2/9
続きは自力で。
0417デフォルトの名無しさん
2007/03/14(水) 16:24:34検索してみたところ「JET」なるコンパイラが見つかり、
「パーソナルエディション」なら個人に限り無料で使用できると聞いたのですが、
公式サイト内を探してみてもパーソナルエディションが見つかりません。
ひょっとして配布終了してしまったのでしょうか?
0418デフォルトの名無しさん
2007/03/14(水) 16:36:12知っとるわい馬鹿
0419デフォルトの名無しさん
2007/03/14(水) 16:37:18constするとその内部にあるものまですべてfinalになるなら
部分的にconstにできるfinalのほうが柔軟性が良いんだけどね。
0420デフォルトの名無しさん
2007/03/14(水) 16:38:42ないっぽいね。exe化はあきらめて、JSmoothかexewrapあたりにしておくのが吉。
0421デフォルトの名無しさん
2007/03/14(水) 16:52:00逆にint型らdouble型にかえるやり方があるのでしょうか?
一応double型からint型に変えるやり方を参考にして
やってみたのですがどうもエラーがでるようで・・・」
0422デフォルトの名無しさん
2007/03/14(水) 17:00:15意図していた結果 / 実際の結果
を具体的に書くといいぞ。
double doubleValue = (double)100; と書いたらコンパイル時に〜という
メッセージが出ました、とか。
0423デフォルトの名無しさん
2007/03/14(水) 17:16:08public static void main(String[] args) {
double s = 5.0;
int i = (int)s;
System.out.println(i);
}
}
これを参考にしてdoubleをint、intをdoubleにすれば変換できると
思いやってみたのですが結果
Henkan.java:3: 精度が落ちている可能性
検出値 : double
期待値 : int
int s = 5.0;
^
エラー 1 個
になってしまいまして、どうすればいいのがわからないです。
0424デフォルトの名無しさん
2007/03/14(水) 17:26:26ttp://www.google.com/search?rls=ja&q=java+int+double+%E5%A4%89%E6%8F%9B&ie=utf-8&oe=utf-8
0425デフォルトの名無しさん
2007/03/14(水) 17:27:15intとdoubleを入れ替えたということは
int s = 5.0; // A
double i = (double)s;
としたわけだな?
今回の目的はintをdoubleに変換することなんだよな?
Aの行で確かに精度が落ちている。
intなんだからただの5でないといけない。
0426デフォルトの名無しさん
2007/03/14(水) 17:27:40> int s = 5.0;
5.0 は浮動小数点リテラルで、型は double だから、
int に代入するにはキャストしないとダメ。
int s = (double)5.0;
もしくは、整数リテラルを使って
int s = 5;
0427デフォルトの名無しさん
2007/03/14(水) 17:28:32○ int s = (int)5.0;
0428デフォルトの名無しさん
2007/03/14(水) 17:39:050429デフォルトの名無しさん
2007/03/14(水) 17:43:22情報欠落がないから。
プリミティブの
ワイドニング変換(widening primitive conversion)
ナローイング変換(narrowing primitive conversion)
というのを調べるといいかも。
0430デフォルトの名無しさん
2007/03/14(水) 17:53:17http://ja.wikibooks.org/wiki/Java/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E6%BA%96%E5%82%99
0431デフォルトの名無しさん
2007/03/14(水) 18:19:30gcjとかはどうよ?
0432デフォルトの名無しさん
2007/03/14(水) 18:40:46逆?
0433417
2007/03/14(水) 19:24:05>>431
ありがとうございます。>>431さんがおっしゃっているgcjを試してみたいと思います。
プログラム自体はSwingなんですが、gcjはSwingはダメなんですね。
この機会にSWTも勉強してみようかと思います。
ご親切にありがとうございました。
0434デフォルトの名無しさん
2007/03/14(水) 21:46:31JRE無しでないと駄目な理由は?
たぶん他の代替手段も、各種DLLが必要になってくると思うけど・・・
0435デフォルトの名無しさん
2007/03/14(水) 23:13:15doubleにlongを代入するとき、そのまま入っちゃうのは何故?
情報欠落があるのに。
0436デフォルトの名無しさん
2007/03/14(水) 23:23:36int→floatでも情報損失があるけど言語規定上問題なく拡大変換される。
プリミティブ型の拡大変換は情報損失の有無に関わりなくコンパイル時も実行時もエラーを発生させない。
だから、変換の可否は情報損失とは関係なく、言語仕様でそうなっていると言うべき。
0437デフォルトの名無しさん
2007/03/15(木) 00:59:220438デフォルトの名無しさん
2007/03/15(木) 01:08:10その2つ、全く同じに見えるけど。
0439デフォルトの名無しさん
2007/03/15(木) 01:08:240440デフォルトの名無しさん
2007/03/15(木) 03:31:34スレの進行が滞っているのでこちらに書きます。
class C1{
}
class C2 extends C1{
void f(){
System.out.println("f() is executed.");
}
}
class Example{
public static void main(String args[]){
C1 obj = new C2();
obj.f();
}
}
上記のプログラムをコンパイルすると、
「メソッド f() はclass C1 で見つかりません。」
というメッセージが出てコンパイルエラーとなりました。
あるクラスの変数によってサブクラスのオブジェクトを参照する場合、
そのオブジェクトが呼び出すメソッドは、スーパークラスでも宣言されている
オーバーライドメソッドでなければならないということですか?
0441デフォルトの名無しさん
2007/03/15(木) 03:51:11> C1 obj = ほげほげ
> obj.f();
2行目は、C1 の f() を探す。
0443デフォルトの名無しさん
2007/03/15(木) 09:46:06オブジェクトに定義されているもの。
0444デフォルトの名無しさん
2007/03/15(木) 12:12:22try {
...
} finally { reader.close(); }
とかって、素直で読みやすいコードだと思うんですが、
InputStreamReader や BufferedReader のコンストラクタで例外が発生したら
name のファイルが開きっぱなしになってしまいますよね?
(実際はもっと複雑なフィルタがかぶさってます。)
↓みたいに FileInputStream だけ別の変数にしとかないといけないんでしょうか?
FileInputStream file = new FileInputStream(name);
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(file));
try {
...
} finally { reader.close(); }
} finally { file.close(); }
close() がダブってるんでキモイのと、これだともしかしてさらに
InputStreamReader でもう一段 try しないといけないのかも・・・と、
なんだか釈然としないです。
0445デフォルトの名無しさん
2007/03/15(木) 12:27:25readerでIOExceptionを発生させるには読み取り権限がないファイルを渡すことでテスト
FileNotFoundExceptionを発生させるには存在しないファイルを渡すことでテストしようと思いますが
writerでIOExceptionやclose()メソッドでIOExceptionが発生した場合、
JUnitでどんなコードを書いたらよいのかがわかりません
よろしくお願いします
public String read(String name) {
Reader reader = null; StringWriter writer = null;
File file = new File(name);
try {
reader = new InputStreamReader((new FileInputStream(file)));
writer = new StringWriter();
int c;
while ((c = reader.read()) != -1)
writer.write(c);
return new String(writer.toString());
} catch (FileNotFoundException e) { System.out.println(e.getMessage());
} catch (IOException e) { System.out.println(e.getMessage());
} finally {
try {
if (writer != null)
writer.close();
} catch (IOException e) { System.out.println(e.getMessage()); }
try {
if (reader != null)
reader.close();
} catch (IOException e) { System.out.println(e.getMessage()); }
}
return null;
}
0446デフォルトの名無しさん
2007/03/15(木) 12:29:56tryブロックの外で、closeすべき変数を null を初期値とし、まとめて宣言する。
finally で、null チェックして逆順に close を呼び出す。というのはどうでしょう
ラップしてる変数の close 処理がうまくいくことを前提にするなら、
if文をネストして、null ではない一番外側の変数だけでcloseを呼び出す。
と言うのもありかも?
0447デフォルトの名無しさん
2007/03/15(木) 12:33:561.5 以降なら、
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36027&forum=12&start=15
の、かつのり氏の StreamUtils#close みたいなユーティリティメソッド作って、
FileInputStream file = null;
BufferedReader reader = null;
IOException e = null;
try {
file = new FileInputStream(name);
reader = new BufferedReader(new InputStreamReader(file));
//....
}catch(IOException ex){
e = ex;
}finally{
StreamUtils.close(e, reader, file);
}
みたいにするとか。
1.4までだと java.io.Closeable がないから この方法は使えないんだけどね。
0448デフォルトの名無しさん
2007/03/15(木) 12:45:55InputStream を渡すメソッドだったら簡単だけど。
djUnit の Virtual Mock Objects 使ってみるとか?
0449デフォルトの名無しさん
2007/03/15(木) 14:13:34画面に文字列を出力させるときに、その表示を一文字ずつ
順番に表示させるのって可能ですか?
例:ありがとう
と出力させるとしたら、「あ」が表示されて、少し待って「い」
みたいな感じです
0450デフォルトの名無しさん
2007/03/15(木) 14:21:45画面てのがコマンドプロンプトなどのキャラクタ表示装置なのか
ウィンドウなのか、ウィンドウの中のテキストフィールドなのか
などによってやり方は違う。
0451デフォルトの名無しさん
2007/03/15(木) 14:43:08アプレットの外の部分(HTMLで文字などを表示してるところ)をマウスクリックすると
パネル上でマウスホイールを回してもmouseWheelMovedイベントが来ません。
何が問題なのでしょうか?
0452デフォルトの名無しさん
2007/03/15(木) 17:20:00/* Now check if there are any characters that need to be changed. */
scan: {
for (firstLower = 0 ; firstLower < count; ) {
(ry
}
という部分があったのですが、このscan: {}はどういう意味ですか?
0453デフォルトの名無しさん
2007/03/15(木) 17:38:36自分のウインドウの外の出来事を、しかもアプレットが知ることが出来たらやばくね?
>>452
ラベル:
ループの中でbreakやcontinueしてたりしない?
0454デフォルトの名無しさん
2007/03/15(木) 17:53:03そうでなくて
パネル上にカーソル移動→マウスホイール動かす→イベント上がる
のに
パネルの外をクリック→パネル上にカーソル移動→マウスホイール動かす→イベント上がらず
ってことです。
0455デフォルトの名無しさん
2007/03/15(木) 18:14:23なんかそれを変更するツールがあったよーな。
0456デフォルトの名無しさん
2007/03/15(木) 19:29:56を学び始めたのですが、DBをjavaのプログラミングで弄る技術は必須でしょうか?
0457デフォルトの名無しさん
2007/03/15(木) 19:37:350458デフォルトの名無しさん
2007/03/15(木) 19:50:431.誰かからできないといけないと言われた
2.その手の本を読んで、「javaでDBを使ってみよう」という所で詰まっている
3.ネットでDBを使う例をよく見かけるので必要かと思った
4.面接で「javaはひととおりできます」と言ってしまったので入社前に「ひととおり」というのはどの程度か知りたい
で、>>456が聞きたいのは「javaでDBを弄る技術がないと役立たずなのか」って事ではないだろうか。
0459デフォルトの名無しさん
2007/03/15(木) 19:58:17ヒント:いまどきRDB使わない業務アプリはほとんどない。
0460デフォルトの名無しさん
2007/03/15(木) 20:02:45その質問はこんな感じ。
「すみません、質問なのですが。自分、駅前商店街のあたりで料理屋を探していて、さて
これから適当な店に入ろうというところなのですが、食前にワインを注文すべきでしょうか」
吉野家でワインを注文するひとは少ないと思われ。
0461デフォルトの名無しさん
2007/03/15(木) 20:04:50eclipse上で上手く動かないのです。んで考えた末に出た結論がHSQLDBplugin
テキストエディタの時は上手く動いたのに何でだろorz クラスパス等の考慮は
完璧なんですが・・・
0462デフォルトの名無しさん
2007/03/15(木) 20:12:45eclipse使ってると技術が退化する。
0463デフォルトの名無しさん
2007/03/15(木) 20:18:42作業効率が落ちると消化できる量も当然減るわけで一概に技術が退化するとは思えない。
要するに
「コアな部分を解釈するか」
「作業効率を上げて色々な技術に触れるか」
方向性の違いじゃない?
0464デフォルトの名無しさん
2007/03/15(木) 20:23:53どのような道具を使えば望んだ結果が得られやすいのかが一番重要
0465デフォルトの名無しさん
2007/03/15(木) 20:30:16とても便利ですよね。じゃあ、どういった種類のソースを組むのかによって
使い分けることにします。
0466デフォルトの名無しさん
2007/03/15(木) 20:51:53いろいろ振り返ってみるのも良いと思う。
「退化する」ってのは、本当は退化じゃなくて基礎があやふやになるということ。
ある程度の経験があって基礎がしっかり固まっている人はIDEを使ったところで
「退化」なんてしないし作業効率が上がるので、どんどん使えばいい。
そういう人は仮にIDEが使えない環境下で作業しなければいけない場面でも
問題なく普通に対応できる。
0467デフォルトの名無しさん
2007/03/15(木) 20:54:21>>462は半年ROMってろってことですね
0468デフォルトの名無しさん
2007/03/15(木) 20:56:02覚えていなくてもいいことは人は忘れるものだ。
0469461
2007/03/15(木) 21:06:35そのソースをeclipseにコピーして実行したら上手く接続できました。
どうやら原因は私がeclipseに甘えていたことのようです。orz
0470デフォルトの名無しさん
2007/03/15(木) 21:07:47文法をしっかり覚えている=プログラマとしての経験が豊富
みたいな口ぶりだな。
0471461
2007/03/15(木) 21:16:25これからc,c++学ぶ予定なのですが、もしそれらの言語でGUIプログラムを組むとき
流れは( ContentPaneを拾得したり、JButtonなどを宣言する流れは同じなのでしょうか?
0472461
2007/03/15(木) 21:33:22さっきの原因が分かりました。hsqldb/libにあるjarファイルを2つとも
importしてたのが原因だったようです。盲点でした・・・
0473デフォルトの名無しさん
2007/03/15(木) 21:36:28いや、>>466の言いたいことは文法だけじゃなく開発全般にわたっての事ではないかと。
IDEでやっていることをIDEなしでもちゃんとできるようになろうよ、と。
それができれば自ずとプログラマとしての力もつくんでないの?
IDEなしで開発していると思いがけずいろんなものが見えてくることもあるし…
0474デフォルトの名無しさん
2007/03/15(木) 22:30:44詳細はググるように。
.NETの場合はFormsとWPFがあります。
FormsはVBの流れをくんだ開発手法でWPFはJSPやASPの流れを組んだ開発手法と思えば良いと思う。
0475デフォルトの名無しさん
2007/03/15(木) 22:34:04例えばある変数がintだったかlongだったかで手が止まるとか、
20文字の変数名を手入力して間違えてコンパイルエラーとか、
ある関数の内容を確認するときにいちいち検索が必要になるとか、
もうナンセンス極まりない話だと思う。
それじゃ自分が常に全体を把握できる程度の規模のプログラムしか書けないよ。
断言できる、統合環境と技術力とは一切関係がない。
0476461
2007/03/15(木) 22:38:01IllegalStateExceptionと出てまた失敗しました。
成功してたのに・・・バグ?(´・ω・`)
0477デフォルトの名無しさん
2007/03/15(木) 22:44:00APIでは、
public class IllegalStateException
extends RuntimeException
不正または不適切なときにメソッドが呼び出されたことを示します。
すなわち、Java 環境または Java アプリケーションは、要求されたオペレーションに適した状態ではありません。
設定ファイルやOSセキュリティなどで
サーバ・データベースの連携がうまくいってないのでは?
0478デフォルトの名無しさん
2007/03/15(木) 22:56:050479デフォルトの名無しさん
2007/03/15(木) 23:02:05自分が何をやっているのかも理解できない
いわれるがままに作業する全自動ロボットでしかないわけだが。
0480475
2007/03/15(木) 23:11:34比喩を比喩で返すのは別にいいんだけどさ、
それは一体何を言わんとした比喩なの?
ある変数にカーソルを合わせたら「int」と出た、
じゃあこれはintなんだなと理解し、それに応じたコードを書き進めることが、
あるいはある関数で右クリックしてメニュー出して左クリックして
その関数の宣言されている場所に一気にジャンプして編集することが、
果たして「言われるまま作業する全自動ロボット」とまで
蔑まれるほど程度の低い行為だとはどうしても思えないんだけど。
君の言う「本当の」プログラミングって何よ?
0481デフォルトの名無しさん
2007/03/15(木) 23:18:55>InputStreamReader や BufferedReader のコンストラクタで例外が発生したら
ドキュメントには何も書いてないけど、
チェックされない例外やエラーが発生するかもしれないん?
closeは一番外側を閉じると、元まで伝播するんじゃなかったけ。
0482デフォルトの名無しさん
2007/03/15(木) 23:21:560483デフォルトの名無しさん
2007/03/15(木) 23:23:400485デフォルトの名無しさん
2007/03/15(木) 23:29:03・Servletコンテナのインストール方法を知らなくて良い
・それどころか、Servletコンテナの存在すら意識しなくて良い
・Servletをweb.xmlへ設定する方法を知らなくて良い
・それどころか、web.xmlの存在すら意識しなくて良い
・webアプリケーションのデプロイ場所・ディレクトリ構成を知らなくて良い。意識しなくて良い
・実行時クラスパス・ビルド時クラスパスを意識しなくて良い
・ソースディレクトリとデプロイ先ディレクトリが違うことを意識しなくて良い
等々のメリットだかデメリットだかが得られるわけだが、
どうなっているのか知らずに作業できる全自動ロボットという見方も出来るかもね。
0486デフォルトの名無しさん
2007/03/15(木) 23:30:210487デフォルトの名無しさん
2007/03/15(木) 23:30:32誰か「本当の」プログラミング なんて話してるのか?
0488デフォルトの名無しさん
2007/03/15(木) 23:33:230489デフォルトの名無しさん
2007/03/15(木) 23:34:350490デフォルトの名無しさん
2007/03/15(木) 23:37:15Shiftキー離してるぞw
0491デフォルトの名無しさん
2007/03/15(木) 23:44:13技術が退化するぞ。
バイナリエディタを使うんだ。
0492デフォルトの名無しさん
2007/03/15(木) 23:46:42技術が退化するぞ。
機械言語を使うんだ。
0493デフォルトの名無しさん
2007/03/15(木) 23:47:17外側が閉じれないのに、内側を閉じちゃっていいん?
0494デフォルトの名無しさん
2007/03/15(木) 23:53:49技術が退化するぞ。
チップセットを自作するんだ。
0495デフォルトの名無しさん
2007/03/15(木) 23:54:370496デフォルトの名無しさん
2007/03/15(木) 23:55:19そうなんだ。乾燥機がないんだよ。。。
0497デフォルトの名無しさん
2007/03/16(金) 00:00:07全自動洗濯機の性能評価とかいちいちするやついるんだな
JBuilderほどひどくなければ何でもいいだろ
0498デフォルトの名無しさん
2007/03/16(金) 00:01:39壊れたときに途方に暮れる。
ちゃんとシワ伸ばしたか?
色物は裏返したか?
型くずれする物をハンガーに掛けたりしてないか?
0499デフォルトの名無しさん
2007/03/16(金) 00:02:12eclipseとかNetBeansよりよっぽど使いやすいけど。
ああ、eclipseベースにした新しいやつのこと?
0500デフォルトの名無しさん
2007/03/16(金) 00:02:34価格.com あたりに行ってみ。
家電マニアという人種は意外と多い。
0501デフォルトの名無しさん
2007/03/16(金) 00:05:05つ http://bbs.kakaku.com/bbs/21105010440/
http://bbs.kakaku.com/bbs/21103010412/
http://bbs.kakaku.com/bbs/21103010450/
0502デフォルトの名無しさん
2007/03/16(金) 00:06:39それはない。自動でやってくれない部分については人はおぼえるよ。
IDEがお客さんとメールのやりとりまで勝手にやってくれるようになったら
メールも打てなくなるかもねw
0503デフォルトの名無しさん
2007/03/16(金) 00:08:260504デフォルトの名無しさん
2007/03/16(金) 00:10:17実際は性能評価なんてしてるやつはゼロに近いだろ。
まわりの人間からトシちゃんのファンをみつけるのはほぼ不可能だけど
トシちゃんのディナーショーにいけばトシちゃんのファンばっかだぞ。
0505デフォルトの名無しさん
2007/03/16(金) 00:11:08うおっ。洗濯板か。さすが2chだ。何でもありだな。
できれば板アド教えてプリーズ。
0506デフォルトの名無しさん
2007/03/16(金) 00:11:36閉じていいかどうかは、内側による。
FileInputStream の場合は開きっぱなしだと、
他のファイル開く時に OS で開けるファイルの上限にひっかかったりとか、
後で FileOutputStream で同じファイルを開けなかったりする可能性もあるので放置しない方が良いかも。
今回のは InputStream だったけど、
例えば OutputStream とかで close() 呼んだら DB に commit する、
とか、そーゆー実装になってる場合は閉じたら拙いだろうし。
0507デフォルトの名無しさん
2007/03/16(金) 00:23:440508デフォルトの名無しさん
2007/03/16(金) 00:24:17トシちゃんファンを見つけるよりもたやすい。
0509デフォルトの名無しさん
2007/03/16(金) 00:25:180510デフォルトの名無しさん
2007/03/16(金) 00:25:260511デフォルトの名無しさん
2007/03/16(金) 01:13:510512デフォルトの名無しさん
2007/03/16(金) 02:18:23やっぱりモーターは日立だよな。
0513デフォルトの名無しさん
2007/03/16(金) 02:41:100514デフォルトの名無しさん
2007/03/16(金) 02:54:32模型オタの俺がマジレスするとタミヤはモーターは作ってないよ。あくまでも模型の会社だから。
タミヤの強みは金型とかでしょ。逆に、マブチは小型モーターに強み。
家電のことは詳しくないけど、マブチやタミヤって家電に絡んでるのか?
0515デフォルトの名無しさん
2007/03/16(金) 02:57:110516デフォルトの名無しさん
2007/03/16(金) 03:05:10その点を除けば同意
0517デフォルトの名無しさん
2007/03/16(金) 06:36:340518デフォルトの名無しさん
2007/03/16(金) 10:05:20日立は「モートル」だろ。
0519デフォルトの名無しさん
2007/03/16(金) 16:32:25どうもありがとうございました。
0520デフォルトの名無しさん
2007/03/16(金) 19:02:48どうしたらいいですか?
Tomcat 6.0
java1.6.0
0521デフォルトの名無しさん
2007/03/16(金) 19:09:530522デフォルトの名無しさん
2007/03/16(金) 19:24:13結局、原因はなんだったんだ?
0523デフォルトの名無しさん
2007/03/16(金) 19:30:11クラスパス確認すれ
0524デフォルトの名無しさん
2007/03/16(金) 19:31:20コンパイル時なのか実行時なのかくらい書け。
環境もなるべく詳しく書け。
0525デフォルトの名無しさん
2007/03/16(金) 20:35:13コンパイル時です
>>523
通ってませんでした
servlet.jarが入ってなかったので名前が似ているservlet-api.jarをJAVA_HOME/jre/lib/extに入れたのが原因でしょうか?
0526デフォルトの名無しさん
2007/03/16(金) 20:48:54よほどのことが無い限り ext とかはいじらん方が良かれ。
開発環境は何使ってます?
Eclipse や NetBeans なら
ターゲットの実行環境(tomcat6)から適切な jar を参照するんで
その辺りの煩わしさは皆無ですよ。
(tomcat6 に対応してたかはちと自信なし。)
テキストエディタだけでガリガリやってるなら
javac する時のクラスパスに、
実行環境のライブラリをまとめて指定したら
コンパイルは通ると思う。
0527デフォルトの名無しさん
2007/03/16(金) 21:50:19jcpad231を使ってプログラムを書いています
0528デフォルトの名無しさん
2007/03/16(金) 22:10:22です。Σ(´∀`;)ちんけな原因orz
0529デフォルトの名無しさん
2007/03/16(金) 22:13:37個人的にはtomcat5.5の方が良いです。
0530デフォルトの名無しさん
2007/03/16(金) 23:12:15最終列が空白の場合、splitでできるString配列のlengthが
異なってしまい処理が煩雑になります。みなさんどうしてますか?
自分は下記のようなデータがあったとき、
1,音原田九郎,
2,渋井丸拓男,事故死
3,LIND L TAILOR,
//いったん最終列に空白を追加して最終列を認識させる
text = text+" ";
String[] splitArray = text.split( "," );
処理1( splitArray[0] );
処理2( splitArray[1] );
//追加した空白はtrimで消去してから処理する
処理3( splitArray[2].trim() );
こうしているのですが、もうちょっとスマートなやり方ないですか?
0531デフォルトの名無しさん
2007/03/16(金) 23:30:290532じゅん
2007/03/17(土) 02:22:130533デフォルトの名無しさん
2007/03/17(土) 02:44:52で隠しファイルを表示する設定にできます。
その状態でお気に入りを開けば半透明のフォルダが
出てくるはずなんで、右クリックしてプロパティから
隠しファイルを解除してください。
0534デフォルトの名無しさん
2007/03/17(土) 02:47:130535デフォルトの名無しさん
2007/03/17(土) 02:47:45末尾データが無いからとカンマを削る事がそもそもスマートじゃない
0536デフォルトの名無しさん
2007/03/17(土) 04:14:150537デフォルトの名無しさん
2007/03/17(土) 04:24:36予め最大の列数が決まってるなら
String[] splitRecord(String record){
String[] splitted = record.split(",");
String[] result = new String[3];
System.arraycopy(splitted, 0, result, 0, splitted.length);
return result;
}
みたいな処理を通せば配列のサイズは統一される。
けれども、普通はクラスを定義して
CSVレコード1行からインスタンス1コを生成するファクトリメソッドを用意する。
そんなにも文字列で処理したい理由って何?
0538デフォルトの名無しさん
2007/03/17(土) 10:21:01public class File {
public static void main(String[] args) {
try{
FileReader f = new FileReader("test.txt");
BufferedReader b = new BufferedReader(f);
String s;
while((s = b.readLine())!=null){
System.out.println(s);
}
}catch(Exception e){
System.out.println("ファイル読み込み失敗");
}
}
}
ここのソースのwhileの部分がすこし理解ができないので
教えてください。
0539デフォルトの名無しさん
2007/03/17(土) 10:24:48で、それが !=null の間だけ実行ってことは読み込めなくなったら終了ってこと
0540デフォルトの名無しさん
2007/03/17(土) 10:37:54大雑把に言うと、b.readLineメソッドの戻り値がnullになるまで繰り返すんだけど、
その読み出した値を処理で使いたいからsに代入してる
0541デフォルトの名無しさん
2007/03/17(土) 10:46:23また質問があります
Syouhizei syouhizei1 = new Syouhizei();
syouhizei1.a = 9600;
syouhizei1.b = 1.05;
syouhizei1.kakezan();
↓
class Syouhizei {
double a;
double b;
double c = a*b;
void kakezan()
{
System.out.println(c);
}
}
とやるとどうしても結果が0,0になってしまいます。
理由ががわからないので教えてもたらいたいです。
0542デフォルトの名無しさん
2007/03/17(土) 10:53:450543デフォルトの名無しさん
2007/03/17(土) 10:54:15cが計算されるのはSyouhizeiがインスタンス化されたときの一回だけ
syouhizei1.keisan()を呼び出す時点でa,bになにが設定されていても既にcは
初期値で計算済だから0.0が表示される、と。
それ以前にaやbを外部から直にいじるのはちょっといやだな
パラメータで渡そうよ。
0544デフォルトの名無しさん
2007/03/17(土) 11:07:28ありがとうございました!
パラメータで渡したほうが見栄えがいいってことでしょうか?
0546デフォルトの名無しさん
2007/03/17(土) 13:30:11public class Kingaku {
public static void main(String[] args) {
try {
FileReader f = new FileReader("test01.txt");
BufferedReader b = new BufferedReader(f);
String s;
while((s = b.readLine())!=null){
String st[] = new String[4];
st[0] = s.substring(0,8);
st[1] = s.substring(9,13);
st[2] = s.substring(14,22);
st[3] = s.substring(23,31);
String t = st[2];
String t2 = st[3];
int nu = Integer.parseInt(t);
int nu2 = Integer.parseInt(t2);
int nu3 = (nu*nu2);
double nu4 = (nu3*1.05);
FileWriter fw = new FileWriter("test02.txt");
fw.write(st[0]+","+st[1]+","+nu4);
fw.close();
}
}catch(Exception e){
System.out.println("ファイル読み込み失敗");
}
}
}
入力ファイルに3行文字列がはいってるのですが
出力ファイルには3行目の文字列しか出力してくれません。
これを3行まるまる出力させるにはどうすればいいいのでしょうか?
0547デフォルトの名無しさん
2007/03/17(土) 13:42:320548デフォルトの名無しさん
2007/03/17(土) 13:45:420549デフォルトの名無しさん
2007/03/17(土) 13:48:18斜め読みの脊髄反射で申し訳ないが fw.close()の前にfw.flush()
違ってたらすまん
ところで、try〜catchをException一つで受けるのって乱暴じゃね?
せめてファイル入出力系、数値変換系、その他で分けないと問題起こったとき原因の
切り分けができんぞ
0550デフォルトの名無しさん
2007/03/17(土) 13:52:070551デフォルトの名無しさん
2007/03/17(土) 13:53:48Exception e の内容を表示すれば問題ないと思われ。
0552デフォルトの名無しさん
2007/03/17(土) 13:59:23正しいこと言ってるのは>>548だけだからな。
0553デフォルトの名無しさん
2007/03/17(土) 14:18:470554デフォルトの名無しさん
2007/03/17(土) 14:26:54FileWriter fw = new FileWriter("test02.txt", true);
0555デフォルトの名無しさん
2007/03/17(土) 14:42:22BufferedReader b = null ;
FileWriter fw = null;
try {
b = new BufferedReader(new FileReader("test01.txt"));
fw = new FileWriter("test02.txt");
String s;
while((s = b.readLine())!=null){
// 略
fw.write(st[0]+","+st[1]+","+nu4);
}
b.close();
b = null;
fw.close();
fw = null ;
}catch(Exception e){
System.out.println("ファイル読み込み失敗");
}finally{
try{if(b!=null)b.close()}catch(Exception e){}
try{if(fw!=null)fw.close()}catch(Exception e){}
}
Exceptionのハンドリングは適当だし、動作は確認してないぞ
0556デフォルトの名無しさん
2007/03/17(土) 14:49:32ファイルがなかったらExceptionがThrowされなかったけ?
0557デフォルトの名無しさん
2007/03/17(土) 14:58:15かなんかで空ファイル作成追加
0558デフォルトの名無しさん
2007/03/17(土) 16:13:070559デフォルトの名無しさん
2007/03/17(土) 20:31:36できれば日本語で・・・。
オライリーのJavaメッセージサービスは所持してます。
0560デフォルトの名無しさん
2007/03/17(土) 20:43:49みたいなことが出来るのでしょうか?
0561デフォルトの名無しさん
2007/03/17(土) 20:51:40仕様はSUNのAPI仕様読むのが一番じゃないでしょうか。
仕様そのものはシンプルでキレイだけど
実装によるクセが大きいので、勉強はそこそこに
実装の調査に入った方が良い気がします。
0562デフォルトの名無しさん
2007/03/17(土) 21:16:56利用する側でなく、JMSプロバイダを作る側なため、
仕様をきちんと理解してからでないときついかなと思った次第です。
オープンソースとか参考にするのがいいんですかねぇ・・・。
0563デフォルトの名無しさん
2007/03/17(土) 21:16:560564デフォルトの名無しさん
2007/03/17(土) 21:20:540565デフォルトの名無しさん
2007/03/17(土) 21:31:18であるならなおのことSpecification読むしかないのでは。
あれが最終にして完全(であるべき)ですから。
差しさわりがなければMQ作ることになった理由を聞かせて欲すぃ・・
0566デフォルトの名無しさん
2007/03/17(土) 21:39:02おとこのこなら
に読めてしまったので眼科行ってくる
0567デフォルトの名無しさん
2007/03/17(土) 21:42:510568デフォルトの名無しさん
2007/03/18(日) 14:13:190569デフォルトの名無しさん
2007/03/18(日) 14:36:53まあまだ作ると決まったわけではないんですが。
英語大嫌いなんでキツイ(;´Д`)
0570デフォルトの名無しさん
2007/03/18(日) 14:41:340571デフォルトの名無しさん
2007/03/18(日) 14:43:18てか別に英語関係なくね?
0572デフォルトの名無しさん
2007/03/18(日) 14:45:12起動後、コマンドラインから/etc/rc.d/init.d/tomcat5 start(中でcatalina.sh startを呼んでいます)で起動すると問題なく起動します。
catalina.outを見ると、停止時に
致命的: プロトコルハンドラの一時停止に失敗しました
java.net.SocketException: Network is unreachable
というエラーが出ています。また、起動時の表示を見ていると、上記のtomcat5より先にhttpdが起動しています。
上記URLには「必ずtomcat→apacheの順で起動すること」とありますので、ここも気になるところです。
以上二点、何かお気付きの点があれば御指摘ください。よろしくお願いします。ちなみに環境は
・CentOS 4.4
・jdk-1_5_0_11-linux-i586-rpm.binからインストールしたJDK1.5.0_11
・apache-tomcat-5.5.23.tar.gzから解凍したtomcat5.5.23
・jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gzからmakeしたmod_jk2.0.4
です。他に必要な情報があれば御指摘ください。
0573デフォルトの名無しさん
2007/03/18(日) 15:09:04CATALINA_HOMEとかが読まれてないんじゃないか?
しかし、/etc/profileを更新するとは強引だな
あと、jk2は終わってるぞ
0574デフォルトの名無しさん
2007/03/18(日) 15:23:400575572
2007/03/18(日) 15:29:14>
>しかし、/etc/profileを更新するとは強引だな
解決策&お勧めの方法などありましたら、「ここを見ろ」でOKですのでご教授ください(;´∀`)
ちなみにmod_jkも試してみたのですが、まったく同じ問題が出たのでクリーンインストールしなおしたとです……。
0576デフォルトの名無しさん
2007/03/18(日) 15:32:46eclipseにhsql pluginを導入しました。しかし、
作ったアプリケーションをいざプラウザで表示しようとすると
HTTP????? 500 -
--------------------------------------------------------------------------------
type ??????
?????
?? The server encountered an internal error () that prevented it from fulfilling this request.
??
javax.servlet.ServletException: org.hsqldb.jdbcDriver
ってエラーが出るのですが。ちなみにDBへの接続は別のクラスがやるようになってます。
解決策分かる方、教えてください。お願いします。
0577デフォルトの名無しさん
2007/03/18(日) 15:41:480578569
2007/03/18(日) 15:56:03565への返信です。
SOA→JMSという流れらしくて・・・。
で、JMSの仕様書英語しかなさそうなんで面倒だなと。
0579デフォルトの名無しさん
2007/03/18(日) 15:57:47つ エール
0580デフォルトの名無しさん
2007/03/18(日) 16:01:17http://pc11.2ch.net/test/read.cgi/tech/1147444414/771
0581デフォルトの名無しさん
2007/03/18(日) 16:13:55jdk-1_5_0_11-windows-i586-p.exe をダウンロードしてインストールしたのですが、
bin フォルダ内に javac コマンドがありません。
何か変更があったのですか?
javac に替わるコンパイルコマンドはどれでしょうか。
たとえばnが7であれば、「1+2+3+4+5+6+7 = 28」という具合に表示させます。
本に載っている模範解答だと、この処理部分を
int sum = 0;
for (int i = 1; i <= n; i++) {
System.out.print(i + " + ");
sum += i; // sumにiを加える
}
System.out.println("= " + sum);
としているのですが、これだと「1+2+3+4+5+6+7+ = 28」になって、最後の余計な"+"が入っちゃうと思うんです。
そこで、この処理部分を
int sum = 0;
for (int i = 1; i <= n; i++){
if (i != n){
sum += i;
System.out.print(i + "+");
}
else{
sum += i;
System.out.print(i);
}
}
System.out.println("=" + sum);
というふうに修正してみたんですが、これって一般的な方法と言えるんでしょうか?
0583デフォルトの名無しさん
2007/03/18(日) 16:30:100584デフォルトの名無しさん
2007/03/18(日) 16:41:170585581
2007/03/18(日) 17:05:34bin が上書きされてしまっていました。
失礼ぶっこきました。
0586デフォルトの名無しさん
2007/03/18(日) 17:38:47解決策はエスパーでもない限りわからん
スクリプトにechoでも埋め込んで確認するとかで調べるとかして原因を特定
お薦めは
ttp://ichimura.chi.its.hiroshima-cu.ac.jp/webdb/tomcat.html
の方法
ただし、内容は少し古いから適時読みかえること
jsvcのマニュアルも読んで適切にスクリプトを書き換えること
0587572
2007/03/18(日) 18:45:18アドバイスありがとうございました。結論からいうと
>CATALINA_HOMEとかが読まれてないんじゃないか?
で大当たりでした。
/etc/rc.d/init.d/tomcat5の先頭にechoを入れると、起動時に環境変数まわりのエラーメッセージがドカンと表示されたので、
先頭に(/etc/profileとはまた別に、フルパス直書きで)環境変数を設定したところ、うまく起動できました。
また、念のためinit.dによる自動起動を停止し、/etc/rc.d/rc.localに記述する方法で明示的にtomcat→httpdと起動するようにしておきました。
大変助かりました。アドバイス、ありがとうございました。
0588デフォルトの名無しさん
2007/03/18(日) 22:02:10RH系なら、起動スクリプトの「# chkconfig」の行に、起動する順番を書けばいいでしょ。
「linux chkconfig 順番」でググってみたら?とりあえず1件見つけてみた。
ttp://www.geocities.co.jp/SiliconValley-Cupertino/9120/startup.html
0589デフォルトの名無しさん
2007/03/18(日) 22:06:08sum+=i;が重複してるからif-elseの外に出した方がいいな。
けどそれ以外はみんなそんな感じに書くと思うぞ。
逆に変態的な書き方があったらぜひ教えて欲しいもんだ。
0590デフォルトの名無しさん
2007/03/18(日) 22:12:10sum += i;
System.out.print(i);
if (i != n) {
System.out.print("+");
}
}
0591デフォルトの名無しさん
2007/03/18(日) 22:19:27確実に実行モジュールである foo.jar のみが表示されるのかな?
仕様や実行結果を見るにどうもそうらしいんだけど。
絶対パスならそのまま、相対パスなら user.dir を付加すれば Win32 のGetModulePath の代わりになる?
0593デフォルトの名無しさん
2007/03/19(月) 01:44:21まぁ、あえて違う書き方をしたいと思ったら、
int sum = 1;
System.out.print(1);
for(int i = 2; i <= n; i++ ) {
sum += i;
System.out.print(i + "+");
}
System.out.print(" = " + sum);
ぐらいかな? あまりこういう書き方はしないと思うけど・・・。
0594デフォルトの名無しさん
2007/03/19(月) 01:45:29> System.out.print(i + "+");
System.out.print(" +" + i);
に修正
0595デフォルトの名無しさん
2007/03/19(月) 02:16:02普通に
for (int i = 1; i <= n; i++) {
sum += i;
System.out.print(i + (i != n ? " + " : " = "));
}
System.out.println(sum);
みたいなのを考えたけど、希望してるのならこんなの
for (int i = 1; i <= n; i++) {
System.out.print(i + " + ");
sum += i;
}
System.out.println("\b\b= " + sum);
0596デフォルトの名無しさん
2007/03/19(月) 09:22:24\bとはマニアックな・・・。
けどこうしてみるとifもないしスマートに見えるな。
機会があれば使ってみよう。
0597デフォルトの名無しさん
2007/03/19(月) 14:01:530599デフォルトの名無しさん
2007/03/19(月) 21:11:24知らないやつを基準に変数からクラス、オブジェクトまで教えるのですが
これだとすでにJavaやプログラミングを知っている人が退屈してしまうので
そいつらむけの適当な自習課題を用意しようと思います。
(簡単なゲームとかメモ帳作成とか)
参考になりそうなページはないですか?
0600デフォルトの名無しさん
2007/03/19(月) 21:40:060601デフォルトの名無しさん
2007/03/19(月) 22:01:06Webアプリ作らせたほうが実用的かと。
0602デフォルトの名無しさん
2007/03/19(月) 22:24:570603デフォルトの名無しさん
2007/03/19(月) 22:29:40知らないやつ基準ということなのでそういう人が大多数という前提だと、
新人研修の自習でWebアプリ作るほどの力があるならそのまま現場投入で
たたき上げた方がよほど本人及び会社の為ではないかと
0604603
2007/03/19(月) 22:50:47社会人としてどうとかはまた別の話。
0605デフォルトの名無しさん
2007/03/19(月) 22:59:07http://java.cs.vt.edu/dev/javasound/api/javax/media/sound/sampled/package-tree.html
の javax.media.sound.sampled 使った何か
06061/2
2007/03/20(火) 00:17:04import java.awt.event.*;
class Awt10{
Frame frame;
Button button;
TextField text;
public Awt10(){
frame = new Frame( "フレーム" );
button = new Button( "クリックするとダイアログ表示" );
text = new TextField();
button.addActionListener( new ActionListener() {
public void actionPeformed(ActionEvent e){
new Dialog01( frame );
}
} );
frame.add( button, BorderLayout.NORTH );
frame.add( text, BorderLayout.SOUTH );
frame.pack();
frame.setVisible( true );
}
public static void main( String[] args ){
Awt10 awt10 = new Awt10();
}
}
06071/2
2007/03/20(火) 00:21:12Dialog dialog;
public Dialog01( Frame frame ){
dialog = new Dialog( frame, "ダイアログ", true );
Label label = new Label( "ラベル" );
dialog.add( label );
dialog.pack();
dialog.setVisible( true );
}
}
これでコンパイルすると、
Awt10.java:15: <anonymous Awt10$1> は abstract でなく、java.awt.event.ActionList
ener 内の abstract メソッド actionPerformed(java.awt.event.ActionEvent) をオーバ
ーライドしません。
public void actionPeformed(ActionEvent e){
こういうエラーが出てきてしまいます。
javaの入門本のコードそのまま打ち込んでいるんですが、どうしたらいいんですか?
0608デフォルトの名無しさん
2007/03/20(火) 00:26:22performed?
0609デフォルトの名無しさん
2007/03/20(火) 00:36:55>class Awt10{
これ本当?コピペ間違ってない?
このソースであのエラーが出るとは思えんが…
0610デフォルトの名無しさん
2007/03/20(火) 00:40:10performedのスペルが間違ってました。恥ずかしい。
>>609さん
コピペは間違いはないと思います。。。
こういうエラー見たことなかったのでスペルちゃんと見てませんでした
0611609
2007/03/20(火) 00:49:21普段の自分のコーディングスタイルと違うので(と言い訳してみる)
0612デフォルトの名無しさん
2007/03/20(火) 10:26:060613デフォルトの名無しさん
2007/03/20(火) 10:27:420614デフォルトの名無しさん
2007/03/20(火) 10:38:180615デフォルトの名無しさん
2007/03/20(火) 11:38:000616デフォルトの名無しさん
2007/03/20(火) 11:44:40> スタックに積む数が少ない
そもそも、この違いがない、はず。
0617デフォルトの名無しさん
2007/03/20(火) 12:44:500618デフォルトの名無しさん
2007/03/20(火) 13:04:47x[func()] += y; と x[func()] = x[func()] + y;
だとfunc()の性能によっては大きな速度差が出ることがあるし、
func()が副作用を持つ場合は動き自体が違う可能性もある。
0619デフォルトの名無しさん
2007/03/20(火) 13:18:130620デフォルトの名無しさん
2007/03/20(火) 14:37:53式の評価順の解析(スタックや逆ポーランドといった)はコンパイル時におわってる。
より短くコードを書くことを良しとしていたCの文法を受け継いでるだけだ。
0621デフォルトの名無しさん
2007/03/20(火) 16:16:30要するにコンパイラが勝手に最適化するから気にするなでおk?
0622デフォルトの名無しさん
2007/03/20(火) 19:12:200623デフォルトの名無しさん
2007/03/20(火) 20:48:28それをアプレットに落とし込むにはどうしたらいいでしょか。
やり方教えて下しア
0624デフォルトの名無しさん
2007/03/20(火) 20:52:010625デフォルトの名無しさん
2007/03/20(火) 21:09:19$も使えるが、機械生成されたものなど、用途を制限されている。
ただし、「それが望ましい」程度の縛り。
0626デフォルトの名無しさん
2007/03/20(火) 21:09:25Character#isJavaIdentifierStart も Character#isJavaIdentifierPart も true を返すから '_' 自体は使える。
_ で始まる名前とか __ で始まる名前とかで、予約はされてないはず。
コーディング規約で使わないのを推奨してたか、は忘れた。
0627デフォルトの名無しさん
2007/03/20(火) 21:16:04サンクス。自分でそんな名前を進んで使うつもりはないけど、
いま弄ってるソースでバンバンそんな名前が使われてたから気になってた。
0628デフォルトの名無しさん
2007/03/20(火) 21:41:28どこにレスを付けるのか迷ったけど、ここにレス付けるわ。
例A
short x = 0;
int i = 123456;
x += i; // エラーなし
x = x+ i; // エラー 精度が落ちている可能性
例B
Object o = "Hoge";
String s = "Test";
o = o + s;// エラーなし
o += s; // エラー 互換性のない型
元ネタ 書籍「Java Puzzlers」
0629デフォルトの名無しさん
2007/03/20(火) 22:06:08なんで?
0630デフォルトの名無しさん
2007/03/20(火) 22:18:46前者は、複合代入演算
E1 op= E2
の意味するところは
E1 = E1 op E2
ではなく、
E1 = (T)(E1 op E2) // TはE1の型
すなわち、複合代入演算子は暗黙のうちに代入される側の方へのキャストを
行うというのがポイント。
後者は、複合代入演算子が使えるのはプリミティブ型/そのラッパー型、そして
+=については左辺がStringの場合のみ、文字列連結が行われる。
(右辺はどんな型でもよい)
0631デフォルトの名無しさん
2007/03/20(火) 22:22:58例えば
byte b = 0;
b += 2; // 2 は int型
とかがコンパイルエラーになったらウザいでしょ。
0632デフォルトの名無しさん
2007/03/20(火) 23:34:47JPanel内に↓のようなMyCanvasクラスを定義してpaint()を実装しました。
private class MyCanvas extends Canvas {
public void paint(Graphics g) {
g.drawImage(resultImage, 0, 0, null); // resultImageはJPanelのインスタンス変数
}
}
JPanelでresultImageが変更されたときにmyCanvas.repaint()を呼んでいるのですが
Canvasのイメージが更新されません(一度、最小化して戻すと表示されてます)
再描画がうまくいってないようなのですがどのようにすればよいでしょうか。
0633デフォルトの名無しさん
2007/03/20(火) 23:39:03- paintではなくpaintComponentをオーバーライド
でどうか?
0634デフォルトの名無しさん
2007/03/20(火) 23:51:18ただそれでもだめでした。
paintComponent()でSystem.out.println()やるとちゃんと表示されてるのでrepaint()で
メソッドは呼び出されてはいるようです。
ただはりつけたJPanelに表示はされません・・・
もとのパネル(MainPanel)では
setLayout(new BorderLayout());
imagePanel= new MyPanel();
add(imageCanvas, BorderLayout.CENTER);
ではりつけてます。
0635デフォルトの名無しさん
2007/03/20(火) 23:52:10の間違いでした
0636デフォルトの名無しさん
2007/03/20(火) 23:58:52はりつけたMyPanelのpaintComponent()にsuper.repaint()を入れたらすぐ再描画されました。
貼り付け元のJPanelも再描画する必要があるってことでしょうか・・・
0637デフォルトの名無しさん
2007/03/21(水) 00:02:58paintComponentでsuper.paintComponentは呼んでる?
0638デフォルトの名無しさん
2007/03/21(水) 00:19:55JFrameの上にJPanelを貼り付けた場合は、paintComponent()ですぐ再描画されてたんですが、今度はJPanelの上にJPanelを貼り付けたからかと疑ってるんですが、関係ないかな。
0639デフォルトの名無しさん
2007/03/21(水) 00:25:58本を見ると
「swingはAWTと異なり、コンテンペインを取得し、そこにコンテンツを配置する。」
というように書いております。
で、そのとおりgetContentPane()してaddしたらもちろん上手くいきました。
流れとしてはこんな感じで。→new JFrame().getContentPane().add(new JPanel());
その後もしかしてと思って、
new JFrame.add(new JPanel())
ってやっても普通にうまくいきました。
コンテンツペインを取得する必要ってあるんでしょうか?
0640デフォルトの名無しさん
2007/03/21(水) 00:35:17自己レスですが
g.drawImage(resultImage, 0, 0, this);
で解決したようです。null->thisにしました。
0641デフォルトの名無しさん
2007/03/21(水) 00:37:44最近のJFrameでは不要。必要に応じて内部でgetContentPane()した先に
要求をたらい回ししてくれる。
0642デフォルトの名無しさん
2007/03/21(水) 00:41:07http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4753342
だな。
0643639
2007/03/21(水) 00:48:04getContentPane()は面倒だけどswingの構造を理解するのに役立ってたので
ちょっと複雑な気分です。
0644デフォルトの名無しさん
2007/03/21(水) 13:28:38MANIFESTのクラスパスには何と記述すればよいのでしょうか?
.や*.jarでは認識しませんでした。
直接名前指定 or jre/lib/extにドライバを格納するしかないのでしょうか?
0645デフォルトの名無しさん
2007/03/21(水) 13:39:510646644
2007/03/21(水) 13:49:58省略
Class-Path: *.jar xxxx.jar xxxx.jar
Manifest-Version: 1.0
省略
Class-Path: . xxxx.jar xxxx.jar
という感じです。記述の仕方に問題ありますか?
0647ひょこたんだお(^ω^ ◆E9k1wjKgHI
2007/03/21(水) 16:21:36static Class forName(String className)
の使い方がわかんなひ(;ω;)おっおっお
簡単なソースをいくつかキボンヌッ
(#^ω^)ノたのんだうお
0648デフォルトの名無しさん
2007/03/21(水) 16:43:35必要なものを明示的に指定するという観点から、
ワイルドカードは使えないんじゃないのかねぇ。
http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/jar/jar.html#Main%20Attributes
使えるとは書いてない。使えないとも書いてない。
0649デフォルトの名無しさん
2007/03/22(木) 03:33:29ここの
ttp://blog.goo.ne.jp/akubi_2005/m/200601
Mainクラスがいっぱいの時
にソースがあった。
0650デフォルトの名無しさん
2007/03/22(木) 10:34:01自分でもいろいろ調べてみたのですが、困り果てて皆さんのお力に頼ることになりました。
今、コマンドラインに数字を一行で 10,24,35,40 のような形で入力させてそれぞれの数字を表示させるものを作っているのですが、コンパイルをして実行までは出来るのですが、数字を入力したあとにエラーが出ます。
エラーメッセージをググってみたのですが、検索には引っかかるものの「これだ!」というものが見つからなかったのでココに質問させていただきました。
以下にコードの一部とエラーメッセージを記載します。
public static void main(String[] args) throws IOException {
int input[];
System.out.println("数列はカンマ区切りの文字列で入力してください。");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
String numbers[] = str.split(",");
int i=0;
input = new int[i];
while(i < numbers.length){
input[i] = Integer.parseInt(numbers[i]);
System.out.println(i + "つめは" + input[i]+ "です。");
i++;
}
}
以下エラーです。
java.lang.ArrayIndexOutOfBoundsException: 0
at Test.main(Test.java:28)
Exception in thread "main"
*ココでいう28というのがコードの28行目であれば
input[i] = Integer.parseInt(numbers[i]);が28行目にあたります。
どなたか、お助けください。
0651デフォルトの名無しさん
2007/03/22(木) 10:39:17> input = new int[i];
だれが見てもここだ
0652デフォルトの名無しさん
2007/03/22(木) 10:40:31右辺の numbers[i] ではなく、恐らく input[i] から出ている例外かと。
int i=0;
input = new int[i];
この時点で input[] の要素数はゼロになっているが
それ以降 input[] の要素数を増やしていない以上 input[] の要素数はゼロのままだ。
input = new int[i];
を
input = new int[numbers.length];
にしてみたら?
0653650
2007/03/22(木) 11:07:57どうもありがとうございます!解決しました!
答えだけでなく、どこがどのように間違っているかまで答えていただいて
大変勉強になりました。
0654デフォルトの名無しさん
2007/03/22(木) 13:47:44http://ja.wikibooks.org/wiki/Java
0655デフォルトの名無しさん
2007/03/22(木) 14:13:36個人的には、「Javaをはじめよう」以下は要らないような気もする。
char が -32768〜32767になってたり、
「リファレンス型というのは、クラスのことです」とか、間違いもちらほらあるし。
文法とかは、JLS へのリンク貼って終わりで良いとか、
入門者用のコンパイル手順を示すんなら、テキストでやるより
flash movie とかでやった方が親切なんじゃないか、と思ったり思わなかったり。
wikibook に flash 置けるのか知らんけど。
0656デフォルトの名無しさん
2007/03/22(木) 15:35:54おやおや? Java家電時代の到来か?
将来は、Javaで家電制御を企んでいるのかねー? Jiniかねー?
0657デフォルトの名無しさん
2007/03/22(木) 17:43:490658デフォルトの名無しさん
2007/03/22(木) 17:45:39HttpServlet のソースコードは、どのソフトに含まれているのでしょうか?
たぶんTomcatにあるのだろうと思っていたのですが、うまく見つけられません。
利用中のTomcat は4.1です。
0659デフォルトの名無しさん
2007/03/22(木) 17:59:27HTTP Get のクエリ文字列から、パラメータ名とその値の組み合わせの集合を取
得するには、どうしたらいいでしょう?
0660デフォルトの名無しさん
2007/03/22(木) 18:18:15classならcommon/lib/servlet-api.jarの中。ソースは入ってないよ。
0661658
2007/03/22(木) 18:37:21> classならcommon/lib/servlet-api.jarの中。ソースは入ってないよ。
ありがとうございます。ソースはどこで手に入るのでしょうか?
オープンソースですから、どこかで配布はしているはずなのですが。
実は>>659も私なのですが、以下の処理の参考にしたかったのです。
目的:URL文字列からクエリパラメータを手動で取り出す
URL文字列を与えられて、
String url = "http://www.youtube.com/watch?v=pd74BKx0x-w";
ここからクエリ文字列を取り出し、
String qstring = new URL(url).getQuery();
//qstring = "v=pd74BKx0x-w"
ここまではできるのですが、それをパラメータと値に分解する方法が分かりません。
正規表現などで愚直に分けるしかないのでしょうか?
何か既存のAPIがあるのではないかと思うのですが。
0662デフォルトの名無しさん
2007/03/22(木) 18:50:24request.getParameter( "v" )で一発だ。
ソースではなくAPIドキュメントを利用するのがJavaでは普通。
http://sdc.sun.co.jp/java/docs/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/ServletRequest.html
http://sdc.sun.co.jp/java/docs/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/http/HttpServletRequest.html
0663658
2007/03/22(木) 19:06:03ありがとうございます。
HttpServletRequestは与えられていなくて、ただURL文字列だけがあるのです。
だから「手動で」取り出す必要があります。
説明不足ですみません。
0664デフォルトの名無しさん
2007/03/22(木) 19:16:22ほいっhttp://www.google.com/codesearch
?hl=ja&q=show:WeBMAMCdhTg:T67KRquB4ao:axPaDrtTH9s&sa=N
&ct=rd&cs_p=http://download.nextag.com/apache/
tomcat/tomcat-5/v5.5.17/src/apache-tomcat-5.5.17-src.tar.gz
&cs_f=apache-tomcat-5.5.17-src/container/catalina/src/share/
org/apache/catalina/core/ApplicationHttpRequest.java
このvoid parseParameters()あたりから辿ってけばいんじゃね?
0665デフォルトの名無しさん
2007/03/22(木) 19:17:47svnならhttp://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk/
中は見てない。
0666658
2007/03/22(木) 20:20:55ありがとうございます。どうやら↓のparseParameters()のようです。
これはどのjarファイルにあるのかなあ。
どうも探し方が分かりません。
http://src.opensolaris.org/source/xref/sfw/usr/src/cmd/tomcat/
apache-tomcat-5.5.17-src/container/catalina/src/share/org/apache/
catalina/util/RequestUtil.java
>>665
> ソース tarballには入ってないの?
実装クラスは入っていますが、HttpServletRequest自体のソースは無いようです。
0667デフォルトの名無しさん
2007/03/22(木) 20:26:32server.xmlの<context>のreloadable属性が
falseかtrueかの情報を
クラスから取得する方法はありますか?
0668デフォルトの名無しさん
2007/03/22(木) 20:26:38ソース見ても実装情報はないよ。
0669658
2007/03/22(木) 20:36:56> ソース見ても実装情報はないよ。
それはそうなのですが、ソースが無いと、Eclipseで追いづらいと思います。
なお、RequestUtil.class は catalina.jar に含まれていました。
publicクラスですが、一般ユーザが利用することが適切なのか、よく分かりません。
ところで、どのクラスがどのjarに含まれるのかを簡便に知るにはどうしたらい
いでしょう?
・1つ1つJarコマンドで表示
・拡張子をzipに変えて検索
・片端からEclipseのプロジェクトに組み込んでみる
これらよりもっといい方法はあるでしょうか?
0670デフォルトの名無しさん
2007/03/22(木) 20:45:49Eclipseで追うだけなら、jadclipseを入れておくとソースがないものは
jadで逆コンパイルしたものを表示してくれたりする。
jar探しは、コマンドラインに苦痛を感じないヒトなので、
jar tfで探すかなー。Eclipseに組み込むのはいい方法だと思います。
0671デフォルトの名無しさん
2007/03/22(木) 21:42:42String[] params = url.substring(url.lastIndexOf('?')+1).split("[&=]");
これで{"a","b","x","y","foo","bar"}っていう配列ができる。
後は、配列の偶数と奇数で分けて適当に処理すればいけるだろ。
0672デフォルトの名無しさん
2007/03/22(木) 21:53:10フラグメントがあったら最後の要素が "bar#hoge" みたいにならんか?
0673デフォルトの名無しさん
2007/03/22(木) 22:06:09なるほど。じゃあこれでどだ。無理矢理1行。
String[] params = url.substring(url.lastIndexOf('?')+1, url.indexOf('#') > 0 ? url.indexOf('#') : url.length()).split("[&=]");
0674658
2007/03/22(木) 22:50:29ありがとうございます。参考になります。
できたら配布元のサイトでドキュメント化してくれていたら楽なのですが。
>>671-673
標準のAPIには存在しないらしいので、自分もそれなりに書いてみました。
String url = "http://www.youtube.com/watch?v=pd74BKx0x-w";
String q = new URL(url).getQuery();
Map<String, String> map = new HashMap<String, String>();
for (String pv : q.split("&")) {
String[] p = pv.split("=");
map.put(p[0], p[1]);
}
0675デフォルトの名無しさん
2007/03/22(木) 22:53:430676デフォルトの名無しさん
2007/03/22(木) 22:55:13>>674
たいていはそれでいいけど同じキーの値が複数あったらうまくいかないので注意。
0677デフォルトの名無しさん
2007/03/22(木) 22:58:46とよい。
>>675のケースを回避するために、まず &(および; )だけで区切り、そののち=で
分解するといいだろう。
>>676を考慮するならmapの値側をコレクションクラスにする必要がある。
0678デフォルトの名無しさん
2007/03/22(木) 23:26:33ある本で↓みたいなのがでてきたんですが、%が多くて何やってんのかよくわかりません。
System.out.printf(String.format("%%2d | %%%dd\n", n), r, x);
%dで10進数に変換。2は2桁の長さを表す。ということはわかったのですが、
引数に対して書式指定子がやたら多いような気が・・・
メソッドが入り子になってるからややこしいんでしょうか?
そもそもformat()の第2引数 n は何に変換されるんでしょう?
0679658
2007/03/22(木) 23:27:54String[] p = pv.split("=");
↓
String[] p = pv.split("=", 2);
自分の用途には>>676氏のケースはなさそうなので、これで何とかなりそうです。
ありがとうございました。
0680デフォルトの名無しさん
2007/03/22(木) 23:35:52順番に書くと、
String format = String.format("%%2d | %%%dd¥n", n);
System.out.printf(format, r, x);
たとえばnが5だと最終的には System.printf("%2d | %5d¥n", r, x) を行う。
# 一つ指摘しておくと、フォーマット指定として改行を記述するには¥n
# ではなく%nを使うべき。
0681デフォルトの名無しさん
2007/03/23(金) 01:30:23を取得するには、どのようにXPathを記述したらいいでしょうか?
http://video.google.com/videofeed?fgvns=1&fai=1&docid=507732229697832036&hl=en
(以下、抜粋)
<rss>
<channel>
<item>
<media:group>
<media:thumbnail
url="http://video.google.com/ThumbnailServer2?app=vss&contentid=
c5ed681df175c4b0&offsetms=5000&itag=w320&lang=en&sigh=8GjvM1prox25GC-jte15jydXiAA"
width="320"
height="214" />
</media:group>
</item>
</channel>
</rss>
以下のページなどを参考にしているのですが、具体的な記述が無くて困っています。
http://msugai.fc2web.com/java/XML/XPath.html
0682デフォルトの名無しさん
2007/03/23(金) 02:18:50ttp://pc11.2ch.net/test/read.cgi/tech/1133280488/l50
0683681
2007/03/23(金) 02:31:04すみません、XPathAPIに固有の問題もあるかと思い、こちらで質問しました。
例えば、.NETならこんなページがありますが、
http://www.atmarkit.co.jp/fdotnet/easyxml/easyxml05/easyxml05_03.html
この内容(addNameSpace)はJavaでは使えないようです。
0684デフォルトの名無しさん
2007/03/23(金) 02:39:18に該当するページが見つかりませんでした。
おや?
0685デフォルトの名無しさん
2007/03/23(金) 04:58:49>どのようにXPathを記述したらいいでしょうか?
こういう事聞くレベルなら仕様を理解してない。実装されたAPI以前の問題。て言うかW3Cの仕様に対してMSの実装出してくるなんて釣りにしか見えないんだが・・・。
>XMLから<media:thumbnail> のurl属性
を取得する
ロケーションパスの書き方は分かるのか?
>>684
.NETのクラス名がw3cのページでヒットするわけ無いだろ。煽るならもっと頭使え。
googleくらい使えるようになろうな
xpath site:http://www.w3.org/
~~~~~~~~~~~~~~~~~~~~~~~~
0686681
2007/03/23(金) 05:12:15>>685
>
> こういう事聞くレベルなら仕様を理解してない。実装されたAPI以前の問題。
> て言うかW3Cの仕様に対してMSの実装出してくるなんて釣りにしか見えないん
> だが・・・。
おっしゃるとおり、よく理解しておりません。
> >XMLから<media:thumbnail> のurl属性
> を取得する
> ロケーションパスの書き方は分かるのか?
おそらく、
/rss/channel/item/media:group/media:thumbnail/@url
ではないかと思うのですが…。
0687681
2007/03/23(金) 05:18:48よく分かっていないのは、名前空間の扱いです。
.NETの実装を見て、JavaのXPathApiにも、addNameSpace にあたる関数があるの
だろうと考えたのですが、それを見つけられなくて困っていました。
0688デフォルトの名無しさん
2007/03/23(金) 09:54:40という回答するつもりだった人からのピーデーの某氏へのイヤミです。
0689デフォルトの名無しさん
2007/03/23(金) 09:55:34○という、回答するつもりだった人からの
「、」いっこ抜けて意味が変わってるしorz
0690デフォルトの名無しさん
2007/03/23(金) 12:06:23UI部分を作り、エンジン部分をC言語で作る事は出来るのでしょうか?
出来る場合、JAVA側(UI)とC側(エンジン)とのやりとりはどのような
感じになるのでしょうか?
C言語は少し経験ありますが、JAVAはまったくの初心者です。
よろしくお願いします。
0691デフォルトの名無しさん
2007/03/23(金) 12:11:49やりとりはソケットを使う/JNIを使うなど。
0692デフォルトの名無しさん
2007/03/23(金) 12:15:33即レスありがとうございます
その単語でぐぐったら期待通りのAPIがHITしました!
0693681
2007/03/23(金) 12:54:47Java XPath API
http://www-06.ibm.com/jp/developerworks/java/060906/j_x-javaxpathapi.shtml
> しかし、pre という接頭辞を、http://www.example.com/books という URI
> にマップする必要があります。NamespaceContext インターフェースが
> JDK(Java software development kit) や JAXP にデフォルトで実装されてい
> ないのは多少ばかげた話ですが、実際にないのです。
この後、記事は「名前空間マッピングクラスを自作する」ことになります。ど
うなってるの?何か意見の対立と混乱があるように見えます。
ちょっと使おうと思っただけなのに。弱りました。
0694デフォルトの名無しさん
2007/03/23(金) 13:05:58タンパク質解析プロジェクトFolding@homeで病気で苦しむ人達を救えるかも。
PS3でFolding@homeしようぜ(Team 2ch)
http://ex22.2ch.net/test/read.cgi/ghard/1174030817/
チーム番号:162
チーム名:Team 2ch
http://fah-web.stanford.edu/cgi-bin/main.py?qtype=teampage&teamnum=162
☆PS3での参加方法
PS3からFolding@homeを起動し、チーム番号162に入力すればOK。
ユーザ名は何でも良いが、http://folding.stanford.edu/japanese/download.html
にて、名前が既に使われているかどうか確認する事を推奨。
参加の確認としては、「オプション(△)」→「関連サイト」→「チーム処理統計量」と開き、
「Team 2ch」(上記URLのページ)が表示されればちゃんと参加できている。
☆Folding@homeについて
http://folding.stanford.edu/japanese/
0695デフォルトの名無しさん
2007/03/23(金) 14:02:20その原因を取得する方法ってありますか?
0696デフォルトの名無しさん
2007/03/23(金) 14:23:47無いよ。
SecurityManager が許可しない場合だけは例外もらうから分かるけど。
mkdir() する前に、作ろうとするディレクトリが既に存在しても失敗するし、
同名ファイルがあってディレクトリ作れなくても失敗するし、
ディレクトリの名前が不正な場合 名前が長すぎたり名前に使えない文字が含まれたり でも失敗するし、
ファイルシステム上の権限がなくてディレクトリを作れなくても失敗する。
0697デフォルトの名無しさん
2007/03/23(金) 14:28:48そうなんすか…orz
一応isDirectory()で存在しない時だけ作るようにはしてるんですが
何で失敗したのかわからないとどうしようもない…
0698デフォルトの名無しさん
2007/03/23(金) 20:47:55そもそもAPIは何使ってんだ?JAXP1.3以上?
名前空間のバインディングなんてアプリケーションによっては必要ないし
バインドするプレフィックスの数によってデータ構造なり検索アルゴリズムの
最適な実装が変わるから汎用な物は作れないから実装を用意するのは無駄。
バインダくらい自分で書け。愚痴しか書いてないじゃないか?
0699デフォルトの名無しさん
2007/03/23(金) 23:10:02環境-
マシンA(開発機):Windows XP Pro、IIS6、WebLogic8.1、JavaSDK1.4.13
マシンB(評価機):Windows Server 2003、IIS6
マシンAで開発、デバッグしてOKなものをマシンBに置き換えています。
それぞれにサーブレットクラス1と固定値が書いてあるfinal staticメンバがいるクラス2があります。
マシンAとマシンBではクラス2のfinal staticメンバは違う値が書いてあります。
マシンAでリコンパイルしたクラス1をマシンBに置き換えます。
その後WebLogicを再起動後、マシンBを動かしてみると
マシンBでクラス1が参照しているクラス2のfinal staticメンバ変数が
マシンAの値となり、エラーが出てしまいます。
クラス2は置き換えていないのに、エラーになってしまいます。
どこかに値がキャッシュされてるとしか思えない動きなのですが、
APサーバを再起動しているのにそういうことがありうるのか、まったくわかりません。
0700デフォルトの名無しさん
2007/03/23(金) 23:16:48マシンA.クラス2をマシンBに"一度も"持っていったことがないはずなのに
マシンA.クラス2の値を参照しているなんておかしい。
なんらかの形でいっしょに持っていってしまったとしか思えない。
0701デフォルトの名無しさん
2007/03/23(金) 23:16:540702デフォルトの名無しさん
2007/03/23(金) 23:22:43これじゃね?
0703デフォルトの名無しさん
2007/03/24(土) 01:13:540704デフォルトの名無しさん
2007/03/24(土) 01:24:06質問です。ゴキブリと害虫って違うの?
0705681
2007/03/24(土) 01:59:52何が分からないのか自体をよく分からず調べていたのですが、まとめるとこう
なります。
・XPathの名前空間と接頭辞のバインディングの設定の、Javaでの標準的な方法
は何か?
→完全には決まっていない。それを規定するNamespaceContextは、インター
フェースだけしかなくて、実装がない。
・なぜ決まっていないのか?
→単にまだ出来ていないだけ。JAXPは現在1.3だが、1.5までには何とか。
・じゃあ、どうしたらいいのか?
→自分で非標準の実装を作るか、privateな内部クラスで使い捨てにするか、ま
たは有志の作ったライブラリを利用するか。
・こういう大事なことがXPath単体でできるようになっていないのはなぜか?
→XPathはもともとXSLTのためのもので、XSLT自体がXMLだから、XSLT内に名前
空間宣言をそのまま書けば済んでしまう。
実はXPathを知ったの自体がつい一昨日で、うまく調べられず、ずいぶん無駄な
回り道をしてしまいました。結局、
http://norman.walsh.name/2006/03/28/jaxpNamespaceContext
http://www-06.ibm.com/jp/developerworks/java/060906/j_x-javaxpathapi.shtml
初見では分からなかったのですが、これらにほぼすべてが書かれていました。
解決に当たって、このスレのやり取りも非常に参考になりました。ありがとう
ございます。特に>>685, >>698さんには深く感謝します。
0706デフォルトの名無しさん
2007/03/24(土) 02:27:260707デフォルトの名無しさん
2007/03/24(土) 02:33:260708デフォルトの名無しさん
2007/03/24(土) 03:49:46仕様が定める範囲と実装がサポートする範囲と自分で実装しなきゃいけない部分を理解してないし
そもそもどのコンテキストでXPathを使いたいのか一度も言ってないんだぞ?
XSL内でロケーションを表すのに使うのかプログラム中に直接叩きたいのかすら分からず仕舞だぞ?何を教えろと?
事後報告は当然の事だ。
#XPointerの事もたまにで良いので思い出してあげて下さい。
0709デフォルトの名無しさん
2007/03/24(土) 10:37:350710デフォルトの名無しさん
2007/03/24(土) 12:03:270711デフォルトの名無しさん
2007/03/24(土) 12:13:29_., .,、._,r hh.、 y...u,_ 、 、.,.,
.yl!).彳}゙.^゙冖^^^゙゙'⌒゙゙「{ .〕:!|ァ_ l.r.
.rl!.「.゙.′ .゙.^゙「.|^|'!.,.ri,、
_,.u:l 「″ _,..vv-─--v、、.,__゙ ´「 リ゙ .r
.-i(┴^ ,.v‐ ′ i!、 厂^'ー、_ .'゙/
.,l| .,.‐'゙r '=, .|ト! .. /_ ┘ _,
.[.′ .,r(,,vv!冖h厂 _,、、、,_ ¨゙() .゙゙il|リ冖ミ(ミ,.l|/レ'
.|| _,yr!^″ [.zli》ニ《)ミ|l;, |ノ冖ーu「.,zzzzy,{丁′
.!ミ .yr(l「′ 〔″ `.,i^ .〔.!!干「「)v)《フ
i| __,/′.} . \,,,,,_,,,,,,vr″ .゙)z ,メ゙'ly
|゙/|レr》! } .}.. /,v--r ,、u_:rフ'¬ー^″ ゙ミ
》゙|′ .ミ .| .∨ ,、 {lzトrr┘ \从,,) }:! .《
}}.,rー ミ,,ェ , .'|フ .,,zu厶  ̄ ゙'^ l!
゙|从 》″ | r -:(工ェ」zミv_ n. 〔
.》ト .′ ∨ 7vv=(干=─干ミl||l,_,z ″ 》
.《l,_ .'|! .__ , . ゙̄.. 〕
《^¨′ .゙冖'^^'''冖 v\ }
[ 、 . 〕 〔 .′ .」_ .ll′
.| | 」 ._} .hノ .:| ,.. .,.トト 〕
.} .^′ ゙《,_ .、,ノ ...厂、 .il
} _ .、 .゙゙'〜 .y,_ _,r;|¨ <、、‐ . ノ
.{, 〔 」 ´ ‐ 「ilリiアアァァァ;lllllli(リ゙} ┌ 冫.. .ア
\ ∨゙ . _ .- . ' .`゙厂¨厂゙厂'. .゙ 、' .゙. ヽ‐,r|
.ノy .´ 、 .: ' ..: .、 ' ` ' _ . .冫 -.',y;|^
0712コン
2007/03/24(土) 13:30:20エクリプスは動くし、しかしエクリプスでトムキャットはだめ、
どこかいいサイトあったら教えてください。
0713デフォルトの名無しさん
2007/03/24(土) 14:25:14オレかよ(:D)| ̄|_ =3=3
0714デフォルトの名無しさん
2007/03/24(土) 14:30:17設定が難しいってのには?だが、まあやりたい事の主品はそこじゃないだろうしね
0715デフォルトの名無しさん
2007/03/24(土) 17:01:50Cursorクラス見てもそれらしい設定がないです・・・:
0716デフォルトの名無しさん
2007/03/24(土) 17:53:52カーソルを消したいComponentでjava.awt.Component#setCursor(Cursor cursor)を使え。
cursor = Toolkit.getDefaultToolkit().createCustomCursor(new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB), new Point(), "");
与えるImageについては別にこれでないといけないということはない。
Cursorクラスのドキュメントから全て辿れるぞ。もっとドキュメントの読み方を勉強汁。
Component#setCursorはクラス説明の関連項目から。
Toolkit#createCustomCursorはコンストラクタの説明から。
0717デフォルトの名無しさん
2007/03/24(土) 17:54:18java.awt.Toolkit#createCustomCursor(Image, Point, String); に透明な Image 渡す
0718デフォルトの名無しさん
2007/03/24(土) 18:31:05<head>内に<link rel="stylesheet" type="text/css" href="css/style.css">
と入れるとjavaが動いてくれません。
色々手は尽くしてみたのですが・・
原因はなんでしょうか?
よろしくお願いします。
<link rel="stylesheet" type="text/css" href="css/style.css">
↑の一行を外すと動作してくれます。
0719デフォルトの名無しさん
2007/03/24(土) 18:36:25style.cssの中でアプレットを無効化してない?
0720718
2007/03/24(土) 18:44:59早速のご返答ありがとうございます。
今確認してみましたが、無効となるような設定はしていないようです・・
0721デフォルトの名無しさん
2007/03/24(土) 18:58:38APPLET {
width: 0%;
}
こんなあからさまなのは無いと思うけど。
もう少しcssやhtmlの中身が分からないと何とも言えない。
linkタグやスタイルシートの有無でアプレットの動作が変わるなんて、どちらかというとweb製作板向きの話題かもしれんね。
少なくともその1行が無ければアプレット自身は動作しているわけだし。
もしくは、linkタグやcssの中身をアプレットで検知して動作を変えてるとか…はさすがに無いか。
0722デフォルトの名無しさん
2007/03/24(土) 20:08:06ファイル名に/が入ってもいうんだっけ?
0724デフォルトの名無しさん
2007/03/24(土) 21:10:57css晒せ
0725デフォルトの名無しさん
2007/03/25(日) 10:14:55TOMCAT_HOME\bin\startup.bat
だけで動くじゃん。ハマるぐらいならeclipse経由で起動する必要ない。
0726じゃぎ
2007/03/25(日) 11:22:28同一Webアプリケーション内の二つのサーブレット間で
同じ情報を共有したり、同じ情報を恒久的に持っていたりという意図に、
どちらかのサーブレットクラス内、あるいはその他、アクセス可能な
クラス内のStaic変数を使ったりするのはいけないんでしょうか。
また、Static変数内のものがSerializableかどうかの有無にも関係
ないんでしょうか。
ここのページのリスト3のように
ttp://www.atmarkit.co.jp/fjava/rensai2/jspservlet07/jspsevlet07_2.html
application.setAttribute("counter",intCnt);
として、applicationや、ServletContextのset(get)Attiributeを使う例を
良く見るんですが、モヤモヤしていて迷っています。。よろしくお願い致します。
過去ログでもうまくみつけられなかったんですが、もし関連したページが
あるようでしたら、二言、三言キーワードのようなものを投げて頂ければ
ありがたいですます。
0727デフォルトの名無しさん
2007/03/25(日) 11:34:400728デフォルトの名無しさん
2007/03/25(日) 11:39:47「特定のServletクラスが持つ情報」ではなく、
あくまで「複数Servletクラス間で平等に共有するべき情報」なのであれば
ServletContextを使うほうがいいだろうね。
0729じゃぎ
2007/03/25(日) 11:50:02ちょっと心配だったのは、Static変数にした場合、一時的には良くても、
ガベージコレクションなどが行われた際に、必ずしも値が保障されなく
なったりするのかな。。とか思ったりしてましたが、心配しなくても良い
ものなのでしょうか。
あつかましくて申し訳ありませんが、よろしければ、そのあたりのご教授
も頂ければ幸いに思います。
0730デフォルトの名無しさん
2007/03/25(日) 11:51:500731デフォルトの名無しさん
2007/03/25(日) 11:51:59if (list != null && list.size() > 1) {...}
でlistがnullの場合、以降の条件式は評価されないようなことに
名称はありますか?
また、他の言語では違ったりしますか?
0732デフォルトの名無しさん
2007/03/25(日) 12:02:250733デフォルトの名無しさん
2007/03/25(日) 12:08:09>以降の条件式は評価されないようなこと
特に名称は無い。
が、言い方としては「評価が打ち切られる」などと言われることが多い。
>他の言語では違ったりしますか?
C言語なども || や && に限ってはJavaと同じく左から評価される。
ただし、+-*/などの評価順はC言語では不定(決まっていない)。
右から評価されたり、ランダムに評価される実装の言語もあると思う。
0734デフォルトの名無しさん
2007/03/25(日) 12:08:40ショートサーキット評価
0735デフォルトの名無しさん
2007/03/25(日) 12:11:48ショートサーキット評価 の検索結果 約 988 件中 1 - 10 件目 (0.17 秒)
知名度は低いな。
0736デフォルトの名無しさん
2007/03/25(日) 12:13:19わざわざif文を入れ子で書かないといけないのか。つらいな
0737デフォルトの名無しさん
2007/03/25(日) 12:19:26VBとか、そうなんじゃなかったっけ
0738デフォルトの名無しさん
2007/03/25(日) 12:19:33ヒント: ( )で括ればそれが先に評価される
if (((a=1) || b=1) && c=1) foobar;
0739731
2007/03/25(日) 12:21:18ありがとうございます。
昔勉強したときに名前が付いていた気がしていたのですが、
質問される立場になったときに、思い出せず、もやもやしてました。
やっとスッキリしました。
0740デフォルトの名無しさん
2007/03/25(日) 12:22:34いやいや、カッコでくくってもc=1は評価されてしまうから
>>731の例だとぬるぽじゃん?
0741デフォルトの名無しさん
2007/03/25(日) 12:55:59俺もショートサーキットという言い方で覚えていたので、
ぐぐったら少なかった(1000行かない)というのは意外。
0742じゃぎ
2007/03/25(日) 13:52:34ありがとうございます。setAttributeのほうが、特別推奨される理由が
あるとすれば、ガベコレのようなところかなと、つたない頭で考えてました。
>>728さんにも、スッキリさせて頂きまして、ありがとうございました。
これで安心してサーブレットいじれます。
0743デフォルトの名無しさん
2007/03/25(日) 14:09:49ショートサーキット演算子 618件
短絡評価 590,000件
短絡演算子 27,500件
訳したら増えたw
0744デフォルトの名無しさん
2007/03/25(日) 14:12:28しむらー、ぶんかつぶんかつー
0745デフォルトの名無しさん
2007/03/25(日) 14:33:32"ショートサーキット評価" 224件
"ショートサーキット演算子" 213件
"短絡評価" 304件
"短絡演算子" 124件
こんなもんなのか。
0746デフォルトの名無しさん
2007/03/25(日) 16:23:20(1)サイズを比較して違ってたら無条件でOUT
(2)サイズが同じだったらストリームを二つ開いて、バイト単位で順次比較
とすればいいだけの話ですが、こんなの誰かが作ってるような気がしまして(汗)
0747デフォルトの名無しさん
2007/03/25(日) 16:25:180748デフォルトの名無しさん
2007/03/25(日) 16:38:310749デフォルトの名無しさん
2007/03/25(日) 16:51:17>>746
バイト単位の比較でもいいけど、int単位とかで、もっとまとめてやってもいいかもね
0750デフォルトの名無しさん
2007/03/25(日) 16:55:030751デフォルトの名無しさん
2007/03/25(日) 17:05:39>>746は簡単に実装できる方法を求めてるから速度は二の次なんじゃないかね?
そういう意味でAPI使ってハッシュを求めさせるのはコーディングが簡単だし悪くない方法だと思う。
でも、コリジョンの可能性があるから、同一ハッシュ=同一バイナリとは言い切れないのが問題。
0752デフォルトの名無しさん
2007/03/25(日) 17:14:11お前、馬鹿だろ。
>>751
ハッシュ求めるより順次比較のほうが簡単じゃないか?
0753デフォルトの名無しさん
2007/03/25(日) 17:23:440754デフォルトの名無しさん
2007/03/25(日) 17:27:46無駄な上に不確実で最悪な方法だと思うが。
0755デフォルトの名無しさん
2007/03/25(日) 17:28:33っていう質問してるのにお前等ときたら…
0756デフォルトの名無しさん
2007/03/25(日) 17:41:56ハッシュを算出するには算出する範囲のビットを全部見る必要がある。
それなら見た時点でお互いを比較すれば済む話。
0757デフォルトの名無しさん
2007/03/25(日) 17:50:16commons IO の org.apache.commons.io.IOUtils.contentEquals(InputStream,InputStream)
0758デフォルトの名無しさん
2007/03/25(日) 17:57:35標準APIじゃなくていいのならapache.commonsにあったと思うが。
public static void main(String[] args) throws Exception {
File file1 = new File(args[0]);
File file2 = new File(args[1]);
boolean flag = true;
if (file1.length() == file2.length()) {
FileInputStream in1 = new FileInputStream(file1);
FileInputStream in2 = new FileInputStream(file2);
byte[] buf1 = new byte[1024];
byte[] buf2 = new byte[1024];
while (in1.read(buf1) >= 0) {
in2.read(buf2);
if (! MessageDigest.isEqual(buf1, buf2)) {
flag = false;
break;
}
}
in1.close();
in2.close();
} else flag = false;
System.out.println(flag);
}
0759758
2007/03/25(日) 18:00:020760デフォルトの名無しさん
2007/03/25(日) 18:02:56一致しないときもストリームをcloseした方が綺麗
0761758
2007/03/25(日) 18:05:470762デフォルトの名無しさん
2007/03/25(日) 18:11:49すまんwhileの外だった
}の数を見誤った
でもそれはMessageDigestを使ってるといえるのかw
0763デフォルトの名無しさん
2007/03/25(日) 18:37:18後から再利用するってことならまだ分るんだが、そんな前提もなしに
ハッシュを勧める莫迦がなんでこんなにいるんだ?
0764デフォルトの名無しさん
2007/03/25(日) 22:06:41「文字列は定数です。この値を作成したあとに変更はできません。」
ってあるんですけど、
String str = new String("123456789");
str = "1";
こんなふうにあとから代入しても、コンパイルエラーも出ず、代入した文字列が表示されるんですけど
変更できないってどういう意味なんですかね?
0765デフォルトの名無しさん
2007/03/25(日) 22:14:57"abcde"="12345"
ってできないってことだ
1=3と同じ
0766デフォルトの名無しさん
2007/03/25(日) 22:19:50それは、変数の参照先オブジェクトが入れ替わっただけ。
"123456789"で初期化したオブジェクトそのものの内容は変更できない。
0767デフォルトの名無しさん
2007/03/25(日) 22:54:13str → "123456789"
だったのが
"123456789"
str → "1"
になるってこと。元のインスタンスは破壊されない(参照が無くなればガベコレはされるけど
0768デフォルトの名無しさん
2007/03/25(日) 23:15:47文字化けしてるかどうか判定する事ってできますか?
0769デフォルトの名無しさん
2007/03/25(日) 23:29:55> ハッシュ(MD5)は予めそれがわかっている場合やそれを保存しておいて
> 後から再利用するってこと
だとしても分かっちゃだめだろ。ファイルが一致することの証左にはならん。
0770デフォルトの名無しさん
2007/03/26(月) 00:07:21飽くまでパリティチェック的な意味合いでしか使われてないと思う
0771デフォルトの名無しさん
2007/03/26(月) 01:31:26httpのヘッダ見れば良いんじゃね?
0772デフォルトの名無しさん
2007/03/26(月) 01:47:51umber in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
続行するには何かキーを押してください . . .
知り合いに聞いたところjavaとjavacのverをあわせれば良いといわれたんですが
よくわからない・・誰かたのんます!
0773764
2007/03/26(月) 01:58:19String型の疑問がまだあるんですが、よければ回答お願いします。
メソッドに引数として参照型を与えて、その値を変更すると、int等の基本データ型とちがって
参照先の値が変更されますよね。
そこでメソッドの引数をString型にして、値を変更しても、参照変数が指しているオブジェクトは
変わらないんですが、これは値渡しみたいな事が行われてるんですかね?
それともまだ何か勘違いしているんでしょうか
static void method( String str ){
str = "java";
}
main{
String str = new String("123456789");
method( str );
System.out.println( str );//123....が表示される
}
説明下手だったらすいません。
0774デフォルトの名無しさん
2007/03/26(月) 02:08:03参照型であろうとC++のような参照渡しはないので
変数の「指し先」が関数呼び出しで変化することはない。
当然「指し先の内容」が変化することはありえる。
0775デフォルトの名無しさん
2007/03/26(月) 09:35:530776デフォルトの名無しさん
2007/03/26(月) 09:42:26ネタで言ってるんだよな?
0777デフォルトの名無しさん
2007/03/26(月) 09:59:070778デフォルトの名無しさん
2007/03/26(月) 10:41:150779デフォルトの名無しさん
2007/03/26(月) 10:47:12Javaはこの辺りが変
0780デフォルトの名無しさん
2007/03/26(月) 10:53:44コネクションプールができなくて、3日も鬱になったジャマイカ。
0781デフォルトの名無しさん
2007/03/26(月) 11:12:570782デフォルトの名無しさん
2007/03/26(月) 11:28:53どう違ってどう変なのか説明plz
0783デフォルトの名無しさん
2007/03/26(月) 11:34:34あれしか知らないで参照を語られても困るよな。
0784デフォルトの名無しさん
2007/03/26(月) 12:05:48> str = "java";
その例だと参照型の値を変更してるのではなくて、
参照先そのものを変更してる。
// 甲
static void method(Calendar c){
c.add(....);
}
// 乙
static void method(Calendar c){
c = Calendar.getInstance();
c.add(....);
}
甲を呼び出した場合、呼び出し元の c は値が変更されてるが
乙を呼び出した場合、呼び出し元の c は値が変更されない。
乙内で参照される c は新たに別の Calendar オブジェクトを参照してるため、
呼び出し元の c に影響を与えないから。
あなたの例は乙に近い。
なお、String には Calendar の add に相当するような、内部の状態を変更するメソッドはない。
(あると不変オブジェクトではなくなってしまう。)
replace も substring も、返り値として String を返す。
元の String を参照しても、replace、substring される前の値と全く変化ない。
0785デフォルトの名無しさん
2007/03/26(月) 12:11:28逆
C++でオブジェクトA,Bに関して
A=Bとやると痛い目にあう、それは動的アドレスのコピーであるから(純粋な参照)。
JAVAの場合はポインタの概念は無い。
JAVAの場合、A=Bはオブジェクトの代入を示す。
非常に荒っぽい言い方だと、JAVAのソースではオブジェクトの代入はstrcpy、すなはち代入。
だが、JAVAの場合、参照先の値を変えてやると参照元の値も自動的に変わってくれるという、
Cの参照とも純粋な値渡しともつかない擬似参照になる。
おそらく参照元が値を使用する時、毎回値渡しを使用してるのか。
JAVAの参照は便利だがあやふやではある。
0786デフォルトの名無しさん
2007/03/26(月) 12:13:25非常に荒っぽい言い方だと、JAVAのソースではオブジェクトの
参照は
~~~~~
strcpy、すなはち代入。
0787デフォルトの名無しさん
2007/03/26(月) 13:50:09>new String("123456789")
関係ないけど"123456789"自体がString型のインスタンスだからそれは冗長
というかなんで不変オブジェクトにコピーコンストラクタがあるのか謎なんだけどたぶん設計ミスだな
0788デフォルトの名無しさん
2007/03/26(月) 14:14:05> オブジェクトの代入はstrcpy
え?
0789デフォルトの名無しさん
2007/03/26(月) 14:21:000790デフォルトの名無しさん
2007/03/26(月) 14:26:30戻り値の意味がわかりません
return文とか適当に使っていたもので…
0791デフォルトの名無しさん
2007/03/26(月) 14:42:42わからない。代入がstrcpyてどこ読めば理解できる?
0792デフォルトの名無しさん
2007/03/26(月) 14:43:22どっちみちわからん。
0793デフォルトの名無しさん
2007/03/26(月) 15:01:00new で明示した場合は文字列リテラルが同内容でも共有されなくなる。
結局JITで最適化される気がするけど・・・
お前ら丁度いいとこ見つけたからここ嫁!
ttp://javafaq.jp/S008.html
ちなみにJavascriptの文字列リテラルにメソッド適応した場合インタプリタが内部で文字列リテラルをStringオブジュクトにラップして捨てる。
つまり、javaと違って文字列リテラルとStringオブジェクトは違う。javaのStringBufferの感覚だ。
ていうかプリミティブ型の単純値は全部Object型のラッパー持ってる。
名前が似てるけど別物って良い例。
ttp://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide:Predefined_Core_Objects:String_Object
0794デフォルトの名無しさん
2007/03/26(月) 16:53:39丁寧な説明ありがとうございました。
メソッド内で新しいオブジェクトへの参照が変数に代入されているので
呼び出し元では元のオブジェクトを指しているままなんですね。
0795デフォルトの名無しさん
2007/03/26(月) 17:20:55そういうことです。
Stringだけなんとなく特別な印象を受けてしまいがちだけど、
"=" の意味は他の参照型(Object派生型、配列)と変わりません。
0796デフォルトの名無しさん
2007/03/26(月) 18:41:46参照先の値を変えたら参照元の値を自動的に変えるって・・・本気で言ってんのか?w
Javaにポインタが無いって言葉に騙されてるとしか思えない。
0797デフォルトの名無しさん
2007/03/26(月) 19:29:14ポインタ演算を隠してるだけで。
C++の参照(type&)は言語仕様的には別名(alias)と同義で、
内部実装は制約のある参照的なことやってます、だったような。
0798デフォルトの名無しさん
2007/03/26(月) 19:36:23ビルドをしたら、「環境変数JDK_HOMEにJDKをインストールしたディレクトリを設定してくだい」と表示されました。
なので、変数を「JDK_HOME」、値を「C:\Program Files\Java\jdk1.5.0_11」にしたのですが、また同じことが表示されます。
どうしたらいいですか?
0799デフォルトの名無しさん
2007/03/26(月) 19:47:17コピーコンストラクタが正しく定義されていると仮定してくれ。
// C++の値渡し。交換できない。
void swap(Hoge x, Hoge y) {
Hoge temp = x; x = y; y = temp;
}
// C++のアドレス渡し。交換できる。
void swap(Hoge* x, Hoge* y) {
Hoge temp = *x; *x = *y; *y = temp;
}
// Cの参照渡し。交換できる。
void swap(Hoge& x, Hoge& y) {
Hoge temp = x; x = y; y = temp;
}
// Javaの『参照の値渡し』。交換できない。
public static void swap(Hoge x, Hoge y) {
Hoge temp = x; x = y; y = temp;
}
0800デフォルトの名無しさん
2007/03/26(月) 19:48:24開発環境を示さないと何とも言えない。
システム環境変数のJDK_HOMEをJDKディレクトリに設定したのか、
それともIDEの環境変数をJDKディレクトリに設定したのか
いくらでも解釈できるから
0801デフォルトの名無しさん
2007/03/26(月) 22:18:39あれ?もう1回やったらなぜかできました。
ありがとうございました。
0802デフォルトの名無しさん
2007/03/26(月) 22:27:25システム環境変数を書き換えたら、IDE(またはコマンドライン)は立ち上げ直さないと駄目だぞ。
0803デフォルトの名無しさん
2007/03/26(月) 22:59:46C++における参照の意味は狭いかもしれないけど
値渡し、参照渡しの意味はどの言語でも同じ。
本当の参照渡しを体験したかったらFortranをやるといいだろう。
0804デフォルトの名無しさん
2007/03/26(月) 23:04:48可能だったら、役に立ちそうなクラスなんかも教えていただけるとありがたいです。
0805デフォルトの名無しさん
2007/03/26(月) 23:12:07標準APIだけじゃ無理。
パケットキャプチャじゃなくて、パケットフィルタリングなのか。
それだと jpcap みたいな外部ライブラリ使っても無理のような。
0806デフォルトの名無しさん
2007/03/26(月) 23:14:50それJavaにアドレスの中身を指示する演算子が無いだけちゃうんかと
たとえばx.valueとかを交換すれば交換できるだろ
0807デフォルトの名無しさん
2007/03/26(月) 23:31:36値の交換とオブジェクトそのものの交換は違うだろう。
0808デフォルトの名無しさん
2007/03/26(月) 23:36:06そこが本質じゃないって。
JAVAの場合、オブジェクトはアドレスしか指せない。プリミティブは値しか指せない。
Cは中身もアドレスも指定できる。だからオブジェクトの交換という荒業が出来る。
0809デフォルトの名無しさん
2007/03/26(月) 23:43:12> // C++のアドレス渡し。交換できる。
これで交換できるってんなら、
static void swap(Object[] x, Object[] y){ Object temp = x[0]; x[0] = y[0]; y[0] = temp; }
とかすれば交換できるって話になっちまうんだが。
「アドレス渡し」とやらは Hoge* 自体の交換ができてないんだから交換できない、とした方が説明が楽。
0810デフォルトの名無しさん
2007/03/26(月) 23:44:450811デフォルトの名無しさん
2007/03/26(月) 23:46:45参照渡し/値渡しの説明の文脈では、な。
0812デフォルトの名無しさん
2007/03/26(月) 23:56:53なんなら全部のパラメータにfinalをつけてもいいくらい。(Javaのfinalは再代入不可を明示するシンボル。念のため。)
コンパイルエラーが出ないのは、互換性のためだろうけど……
0813デフォルトの名無しさん
2007/03/27(火) 00:07:25間違ったことを書いているサイトが少なくないな。
2chでは、本は買うな、Webで十分だ、みたいな意見がよく出るけど
それも考え物だな。
0814デフォルトの名無しさん
2007/03/27(火) 00:11:06俺は実際にプログラミングやっててわかったけどな。
つうか本は参考程度にしか買わないしポインタ関連なんて一冊も買ってない
0815デフォルトの名無しさん
2007/03/27(火) 00:11:51>一般的にはパラメータへの再代入は無意味と覚えときゃいいよ。
呼び出し側では意味がないけど、呼び出された側では意味があるんじゃ?
0816デフォルトの名無しさん
2007/03/27(火) 00:12:50> static void swap(Object[] x, Object[] y){ Object temp = x[0]; x[0] = y[0]; y[0] = temp; }
まかり間違って こーゆーのが普及したりなんかすると
「配列渡し」っていう新語ができるわけだな。たぶん。
0817デフォルトの名無しさん
2007/03/27(火) 00:16:44今までバラバラな見解の悲惨なレスが繰り返されてたんだろ…
利用できるのと仕組みをおさえるのは違う
0818デフォルトの名無しさん
2007/03/27(火) 00:17:30意味はあるけど可読性を下げるから推奨しないな
>>816
むしろコンテナ渡しかと
0819デフォルトの名無しさん
2007/03/27(火) 00:46:03なんで本質じゃないんだよw
オブジェクトの中身を書き換えるんじゃなくてポインタ交換ができる/できないの話だよね?
0820デフォルトの名無しさん
2007/03/27(火) 00:49:13質問している初心者ならまだしも、回答者側の人間は
信頼できるソースを自分で確認して終わりだろ?
まさか皆が皆
>俺は実際にプログラミングやっててわかったけどな。
とか言っている馬鹿と同じなのか?
0821デフォルトの名無しさん
2007/03/27(火) 00:58:19他人にも押し通す、これがJava厨。
こういうテキトーな態度でもなんとなく扱えてしまう言語、それがJava。
0822デフォルトの名無しさん
2007/03/27(火) 01:10:38雑誌の記事で Java は参照型は参照渡し…… とか書いてあるの、結構見たような。
0823デフォルトの名無しさん
2007/03/27(火) 01:32:16Javaは参照渡しだとかほざいちゃってる著者が
未だに地球上に存在していてウザイ早く氏ね
って書いてある
0824デフォルトの名無しさん
2007/03/27(火) 02:07:04王様は3人の死刑囚に言いました
「ここに白い帽子3つと黒い帽子が2ある、白か黒どちらかをお前たちにかぶせ
白い帽子をかぶったものが逃げたらそのまま逃がしてやろう、ただし黒い帽子をかぶった
ものが逃げたらその場で射殺する」
死刑囚は自分がなに色の帽子をかぶっているかはわかりませんが
他の二人がかぶっている帽子の色はわかります
王様は3人とも白い帽子をかぶせました
3人はしばらく考えた後、自分が白だと確信していっせいに逃げました
さて、なぜ自分が白だと確信できたのでしょう?
※アイコンタクトとかそういう答えじゃない
0825デフォルトの名無しさん
2007/03/27(火) 02:17:290826デフォルトの名無しさん
2007/03/27(火) 03:10:40A, B, C の3人の一人Aはこう考える:
(1)自分Aが黒だったとしよう。
(2)B,Cはそれぞれ、黒(A)と白(BまたはC)を見るはずだ。
そこで彼らはこう考えるはずだ:
もし自分B(またはC)が黒だったら、黒は2つしかないのだから、
相手C(またはB)は一人で速攻で逃げるに違いない。
そうではないので、自分は白である。
(3)そこまで考えの至ったBおよびCの二人は自分Aを置いて一斉に逃げるはずだ。
(4)そうではないので、最初の仮定(1)が間違っていて、自分は白である。
そこまで考えの至った3人は一斉に逃げた。
0827デフォルトの名無しさん
2007/03/27(火) 03:16:14プログラマに論理的に考えさせようとしたのか。
それなら俺はあえて逆をいく。
どうせいずれ死刑になるんだからここで射殺されたところで大差ない。
だからいちかばちかで逃げ出してみた
でも、これだと「自分が白だと確信して」を満たさないか・・・
0828デフォルトの名無しさん
2007/03/27(火) 03:22:220829デフォルトの名無しさん
2007/03/27(火) 03:23:100830デフォルトの名無しさん
2007/03/27(火) 03:25:22エスパー能力を鍛えられているプログラマーで、
なぜか、自分が白だということを、本能的に過信した。
0831デフォルトの名無しさん
2007/03/27(火) 03:38:370832デフォルトの名無しさん
2007/03/27(火) 03:42:530833デフォルトの名無しさん
2007/03/27(火) 03:51:12Bは黒と白の帽子を前にどうしてよいかわからなかった。
Cは黒と白の帽子を前にどうしてよいかわからなかった。
Aが逃げ出したのでBはつれられ逃げ出した。
Aが逃げ出したのでCはつれられ逃げ出した。
Aは射殺された・・・
0834デフォルトの名無しさん
2007/03/27(火) 04:21:24まさに「javaとjavacのverをあわせれば良い」
解決策1
% java -version
でJREのバージョンを確認。
% javac -version
でJDKのバージョンを確認。
JREと同じバージョンのJDKを入れてコンパイルしなおす。
解決策2
javacのバージョンと同じバージョンのjavaをフルパス指定で明示的に呼ぶ。
0835デフォルトの名無しさん
2007/03/27(火) 04:25:29B=他二人が白
P(A)=3/5
P(B)=(3/5)*(2/4)=3/10
P(A,B)=(3/5)*(2/4)*(1/3)=1/10
P(A|B)=P(A,B)/P(B)=(10/3)*P(A,B)=1/3
だから確率的には逃げたら負け
0836デフォルトの名無しさん
2007/03/27(火) 08:10:090837デフォルトの名無しさん
2007/03/27(火) 08:59:100838デフォルトの名無しさん
2007/03/27(火) 11:43:27とりあえず最初にテストしろと言われてるので逃げ出すテストをしてみた
0839804
2007/03/27(火) 13:30:57外部ライブラリ使っても無理ですか……。
Javaでは難しい(というか無理)なんでしょうか?
同じことを2度聞くような形になりますが、どうしても諦めきれないので返答お願いします。
0840デフォルトの名無しさん
2007/03/27(火) 13:39:48JNI使って奮闘してくれ。
0841デフォルトの名無しさん
2007/03/27(火) 16:29:57;;;チ' ィ''' ヽ、_ ___,,,,,、`ヾ、;;;;;;ヾ
〃 ./ア三三三三ヾ タィ三三三ッ、 `y;;;;チ
~" ,,=r≡ァ、 ..~ _,,二、 ̄ヾキ };;ネ
ー''"` kオッ' ,ヾ';;;, /,,ヒェア,≧ー" };;;ト
'" ー‐''" ,;;;; ::'~ヾ…‐ ´~ {;ツ
...,,,;;;;;;;:: ::::... キ::}
| ,,' ,r"'、:::: __、 {|ィ/. __
; .:: :;!、_ | 支 |`ヾ、. . : : : レ' | 力 | _ ,ィ=ヽ、 ,
'、 ..::  ̄`ー.__| 点.|_ ヽ.: : リ ._| 点 |_[_ `ヽ ヾ、
、 tェ--ニ二~_.\ /ァ ッ / \ /Y l、 `
. i `ヾ‐'ー'ーL_~≧≦二二二二二二二二二二二ナく__,ム ヽ
} `、 ` 、 ̄ ¨ ¨ "ノ '/ `ヽ、 `、y-‐ヾヽ´¨
,,〉 、 `ー = - ' / ヾ、 ゞ、___人_
/ \ 、 :::. / ヽ、 ヾ ̄´ ̄
\ :::::::::::.... ...::::リ} 、 `
\::::::::, `ー---- '::::::::/ .ト、 ー _
¨\;:,, / | `ヽ、 `ヾt、_
\,,......,,,イ ト、 `ヽ、‐―- - - 、、_ !t_
0842デフォルトの名無しさん
2007/03/27(火) 17:00:561.0にコレクションがなかったから互換性のためという解釈でよいでしょうか。
0843デフォルトの名無しさん
2007/03/27(火) 17:03:58了解です。ありがとうございました。
0844デフォルトの名無しさん
2007/03/27(火) 17:12:35どのように解釈しようが その人の勝手で良いと思われ。
0845デフォルトの名無しさん
2007/03/27(火) 17:13:17配列使うのかコレクション使うのかは、統一とれてないねえ。
真っ当な総称型があるならコレクションで決まりだろうけど
erasureなんて導入して・・・アホか。
0846デフォルトの名無しさん
2007/03/27(火) 17:14:07Vector があっても、中身が File ってのを保証できないんだがな。1.4 までは。
0847デフォルトの名無しさん
2007/03/27(火) 17:16:07isExists()もつかうべき
0848デフォルトの名無しさん
2007/03/27(火) 17:17:06http://ja.wikipedia.org/wiki/Servlet
0849デフォルトの名無しさん
2007/03/27(火) 17:20:340850デフォルトの名無しさん
2007/03/27(火) 18:34:00パラメータから得た値をnとして、2のn乗を求めて表示してください。
nの上限は62として、63以上が入るとメッセージを表示するようにしてください。
int型だと2の30乗までになってしまいます。
って問題なんですけど
import java.io.*;
public class kadai13{
public static void main(String[]args)throws IOException{
�@
int i=1;
long a=2;
while(i<myAnswer){
a*=2;
i++;
}
if(myAnswer<=62){
System.out.println("2の"+myAnswer+"乗は"+a+"です。");
}else if(myAnswer>=63){
System.out.println("2の2乗までしか計算できないよ。");
}
}
}
この�@のところに
int a=Imterger.parse Int(args[0])
ってのを使って解かなければならないんですが
分かる方教えてください。
0851デフォルトの名無しさん
2007/03/27(火) 18:45:23単位落としてしまえ
0852デフォルトの名無しさん
2007/03/27(火) 18:52:26宿題に答えてやる奴ってなんなのかね?
ソフトウェア業界に対するいやがらせ?
0853デフォルトの名無しさん
2007/03/27(火) 20:45:420854デフォルトの名無しさん
2007/03/27(火) 20:58:30「接続に失敗しました」という味も素っ気も無いメッセージしか出てこないので、「どのあたりを調べればいいのか」で結構ですのでアドバイスを下さい。
調べたいのはTocatで動いているサーブレットの動作状況です。
サーバのOSはLinux(CentOS)、クライアントはWindowsXPです。
サーバ側でのローカル(Localhost:0)では接続できましたが、やはり可能ならクライアントで監視できれば嬉しいです。
オプションは、JAVA_OPTSに
-Dcom.sun.management.jmxremote.port=18080
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
としています。
使っていないポート番号ということで、8004と18080の二つを試したのですが、いずれも×でした。ファイアーウォールはテスト用サーバなので設定していません。
以上、よろしくお願いします。
0855デフォルトの名無しさん
2007/03/27(火) 22:05:25昨日からwinXPでJavaを始めた者なのですが
EclipseとNetbeans、どちらの開発環境が使いやすいのでしょうか?
また人気なのはどちらか教えて頂けませんか?
宜しくお願いします。
0856デフォルトの名無しさん
2007/03/27(火) 22:07:280857デフォルトの名無しさん
2007/03/27(火) 22:15:360858デフォルトの名無しさん
2007/03/27(火) 22:24:07手書きでできる程度のウィンドウだけならeclipseも可。
他の部分はeclipseの方が洗練度が高いと思うけど好み次第かな。
0859デフォルトの名無しさん
2007/03/27(火) 22:28:19Swingのことはまだ考えていないので
まずはeclipseで慣れてみようと思います。
教えて頂き有難う御座いました。
0860デフォルトの名無しさん
2007/03/27(火) 23:46:13Javaは3層アーキテクチャのファンクション層が一番の強みなんだから。
Swingでクライアントアプリを発注するアホなクライアントなんてそんなにいないだろう。
0861デフォルトの名無しさん
2007/03/28(水) 00:43:280862デフォルトの名無しさん
2007/03/28(水) 00:46:270863デフォルトの名無しさん
2007/03/28(水) 00:56:52コーディング規約で制限しないから複雑怪奇なコードを量産する人が多いだけだ。
アドレスやメモリの概念なら基本情報処理程度の知識があるなら普通に理解できるだろう。
C++・C#・Javaを最低限使いこなすのはプログラマなら当たり前のことだ。
0864デフォルトの名無しさん
2007/03/28(水) 00:57:28とりあえず、安直にそう考えたお前はアホ。
0865デフォルトの名無しさん
2007/03/28(水) 01:01:09質問者のことをもっと考えてやろうな。
ってかC++が難しいとか誰が言ってるのよ?
0866デフォルトの名無しさん
2007/03/28(水) 01:01:52だから初心者だっつの
0867デフォルトの名無しさん
2007/03/28(水) 01:05:00>俺はC++をマスターしてるんだぜ!どうだすごいだろ!
まで読んだ
0868デフォルトの名無しさん
2007/03/28(水) 02:24:27C++は何使って画面作るのを想定してるんかな。
MFCでやれって言われたら俺は逃げるけどな。
非質問をスルーできない俺は素人。
0869デフォルトの名無しさん
2007/03/28(水) 03:58:340870デフォルトの名無しさん
2007/03/28(水) 08:24:53Swingのことは考えてないって言ってんだろ。よく読もうな。
0871デフォルトの名無しさん
2007/03/28(水) 11:58:240872デフォルトの名無しさん
2007/03/28(水) 12:27:21俺、会社名は入力しなかった
0873デフォルトの名無しさん
2007/03/28(水) 21:55:070874デフォルトの名無しさん
2007/03/28(水) 22:00:150875デフォルトの名無しさん
2007/03/28(水) 22:01:280876デフォルトの名無しさん
2007/03/28(水) 22:06:38それだけじゃわかりません! もっと詳しく教えてください。
0877デフォルトの名無しさん
2007/03/28(水) 22:09:380878デフォルトの名無しさん
2007/03/28(水) 22:10:44そんな御託はいいから、ちゃんと教えてください!
0879デフォルトの名無しさん
2007/03/28(水) 22:14:24スレ汚しすまんかった。
0880デフォルトの名無しさん
2007/03/28(水) 22:20:40更新時刻なら File#lastModified()
作成日時は今のところ標準ライブラリじゃ無理。
jconfig みたいなライブラリ使えば取れるけど。
0881デフォルトの名無しさん
2007/03/28(水) 22:29:21それ変更用じゃないのでは
0882デフォルトの名無しさん
2007/03/28(水) 22:32:17変更なら File#setLastModified(long) で。
0883デフォルトの名無しさん
2007/03/28(水) 22:58:00これをDateクラスに格納するにはどうやればいいんでしょうか。
ちなみにこれは 2007/03/28 22:50:00 という意味です。
0884デフォルトの名無しさん
2007/03/28(水) 23:05:440885デフォルトの名無しさん
2007/03/28(水) 23:07:300886デフォルトの名無しさん
2007/03/28(水) 23:08:180887デフォルトの名無しさん
2007/03/28(水) 23:11:03元の文字列を少しずつちぎって、java.util.Calendarに入れる
0888デフォルトの名無しさん
2007/03/28(水) 23:11:25Date dt = sdf.parse("20070328225000");
これでできるはず。
0889デフォルトの名無しさん
2007/03/28(水) 23:31:070890デフォルトの名無しさん
2007/03/28(水) 23:47:52たとえCからでも取りようがないこともある。
UNIXのctimeはよくcreation timeの略だと誤解されるが、違う。
0891デフォルトの名無しさん
2007/03/29(木) 03:15:44自慢げにそんなくそ知識披露されても困ります><
0892デフォルトの名無しさん
2007/03/29(木) 03:25:130893デフォルトの名無しさん
2007/03/29(木) 03:31:18rhinoならjavaの話題になるのかもしれんが、まあお勧めはしないよ。
rhinoそのものというより、javaとのインタフェースの話題なら、大丈夫かもしれんが。
javascriptそのものの話題なら従来通りweb製作板で聞いたほうがいい。
0894デフォルトの名無しさん
2007/03/29(木) 04:01:10rhinoでかつECMAの仕様範囲内なら出来ればネタ投下の意味を込めて下でたのんます。
ttp://pc11.2ch.net/test/read.cgi/tech/1088298991/l50
LiveConnect使ったJavaとの絡みならここになるんだろうか。
それ以外はやっぱ専用スレじゃね?
Scripting APIの話ならそろそろスレ立てても良い気がするんだよね。
0895デフォルトの名無しさん
2007/03/29(木) 11:45:530896デフォルトの名無しさん
2007/03/29(木) 12:32:370897デフォルトの名無しさん
2007/03/29(木) 14:23:530898デフォルトの名無しさん
2007/03/29(木) 18:07:50jdk1.6をインストールしたのですが
'javac(笑)' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
と表示され実行できません。
0899デフォルトの名無しさん
2007/03/29(木) 18:37:10>>1
0900デフォルトの名無しさん
2007/03/29(木) 18:47:430901デフォルトの名無しさん
2007/03/29(木) 21:11:35JAVAのクラスにストリームを扱えるものはありますか?
0902デフォルトの名無しさん
2007/03/29(木) 21:24:300903デフォルトの名無しさん
2007/03/29(木) 21:40:14すみません。質問が悪かったでしょうか。
URLクラスのgetContent()メソッドを使用して取得したストリーミング映像データを
再生することが可能かもしれないとは思っているのですが、
動画再生クラスがあるのか
ストーリーミング映像をJAVAで扱えるのかということが知りたかったのです。
0904デフォルトの名無しさん
2007/03/29(木) 21:44:070905デフォルトの名無しさん
2007/03/29(木) 21:44:38メディアプレイヤークラスなんて聞いたことないが。
0906905
2007/03/29(木) 21:46:59ググったらこんなの出ました。
クラス MediaPlayer <Phase2.5>
http://sakura.meijo-u.ac.jp/java/kddi-ezplus/com/jblend/media/MediaPlayer.html
0907デフォルトの名無しさん
2007/03/29(木) 21:50:22QuickTime for Javaっつうのがある。
JavaからQuickTimeプレイヤーをいじれるAPIだったと思う。
ttp://developer.apple.com/quicktime/qtjava/
0908903
2007/03/29(木) 21:52:03ありがとうございます!!!!
これで希望が見えてきたのでJAVAで行くことに決めました。
0909デフォルトの名無しさん
2007/03/29(木) 21:52:51そりゃ携帯専用だろ。MIDPとかKDDI Profileとか書いてあるし。
0910デフォルトの名無しさん
2007/03/29(木) 21:53:510911デフォルトの名無しさん
2007/03/29(木) 21:54:37どう考えても携帯用です。本当に略
0912デフォルトの名無しさん
2007/03/29(木) 22:00:35読み込み状況(複数)をヲチするためのクラス(だったのだが結局画像に
しか対応していない)で、読み込みを開始/中止すること/読み終わった
か否かを知ることくらいしかできない。
もともとはネットワークがとても遅い時代にアプレットで画像読み込み
が終わるのを待つために使ったりした。
0913デフォルトの名無しさん
2007/03/29(木) 22:03:00コンソールアプリで画像を扱いたい時には
0914903
2007/03/29(木) 22:37:42QuickTimeをカスタムインストールすれば行けそうなのでやってみます
Eclips使ってみますが前途多難な予感
でもマジありがとう
0915デフォルトの名無しさん
2007/03/29(木) 22:51:01ウィンドウにもともと着いているボタンの最大化と最小化
あとウィンドウのサイズ変更を不可にしたいのですが
どうしたらよいのでしょうか
0916デフォルトの名無しさん
2007/03/29(木) 22:57:27最大化と最小化はどうだったかな。
0917デフォルトの名無しさん
2007/03/29(木) 22:58:17君はストリームという単語の意味をわかっていないようだ。
データの流れは全部ストリームであり、データの種類が異なっているだけ。
0918デフォルトの名無しさん
2007/03/29(木) 23:00:020919デフォルトの名無しさん
2007/03/29(木) 23:03:26ありがとうございます。
setResizable(false)で最大化とサイズ変更は不可にできるようです。
最小化はまぁウィンドウのサイズが変わるわけではないですしOKとします。
0920903
2007/03/29(木) 23:11:13ググってみました
サンクス!!!
ありがとう
0921デフォルトの名無しさん
2007/03/29(木) 23:22:500922デフォルトの名無しさん
2007/03/30(金) 00:12:06俺はそういう用途にはちと高レベルかなと思って止めたな。
QT4jはmacとwinしか対応してなくてしかもwinのサポートは中途半端なんだよな。
ゲームで動画再生するのに丁度良いのってないよな。
sound engineもoggかFLACあたりに対応してほしい。
0923デフォルトの名無しさん
2007/03/30(金) 01:05:51言葉じりということにしたいらしいが、君が間違ってるだけだろう。
0924デフォルトの名無しさん
2007/03/30(金) 01:24:29なぜそんなに必死なんだ?
904はクラスとしてのストリームがあるって言ってるだけじゃないの?
0925デフォルトの名無しさん
2007/03/30(金) 01:31:45それに(笑)とかいって冷静さを装ってる>>921は必死じゃないのか?
0926デフォルトの名無しさん
2007/03/30(金) 01:33:020927デフォルトの名無しさん
2007/03/30(金) 07:17:30俺はJavaでWebストリーミング配信を扱った事無いが
解答はともかくJavaのスレでストリーミング配信を指して
「ストリーム」なんて使うと混乱するなあ、と言いたかっただけ。
ストリームって言葉の無い環境ならエスパー出来る奴も居るんだろうけど。
つーかそもそも、ストリームって別にJavaだけの用語じゃないよね。
データの流れというか並びというか。
例えばオープン系OSのファイルをバイトストリームと言ったりするし。
で、そのストリームを扱うクラスが
Javaのストリーム系クラスなんだが
質問者の訊きたい本題と違うしその内解るだろぐらいの気持ちで
単にストリームという言葉の指摘がてら感想を言っただけ。
まあ「ストリーミング」って言葉も添えた方が良かったのは認める。失礼した。
0928デフォルトの名無しさん
2007/03/30(金) 09:19:520929デフォルトの名無しさん
2007/03/30(金) 10:25:350930デフォルトの名無しさん
2007/03/30(金) 10:42:50Integer.parseInt(args[0])
0931デフォルトの名無しさん
2007/03/30(金) 14:02:56私は引数有りのメソッドとか滅多に思いつかないのですが、参考書のサンプルソース
などを見ていると、自作クラスを引数にしていたり、ライブラリーのクラスを使っていたり
真似ができそうもありません。そこで質問なのですが、皆さんが引数を指定するとき
その目的は単に1:ローカル変数として使用するために引数を入れた。
2:厳密に計算して組んだプローチャート通りに引数を入れた。
どちらのパターンが多いです?
0932デフォルトの名無しさん
2007/03/30(金) 14:05:483 : 引数が必要だから。
以外にはない。
0933デフォルトの名無しさん
2007/03/30(金) 14:26:31>プローチャート通りに
このあたりで既におかしいなぁ……
1点目:正しくはフローチャート
2点目:フローチャートは過去の産物。ミクロレベルにおいて Java とは相性が悪い
0934デフォルトの名無しさん
2007/03/30(金) 14:36:27擬似グローバル変数でも作ってどこからでも入手できるようにしてるのか?
0935デフォルトの名無しさん
2007/03/30(金) 14:53:470936デフォルトの名無しさん
2007/03/30(金) 15:09:100937デフォルトの名無しさん
2007/03/30(金) 16:04:32メソッドは、動詞として考えると良いよ
「〜を包丁で切る」というメソッドを作ったとしよう
このメソッドに、「ニンジン」「タマネギ」「にく」と引数を渡す事で、いろいろな物が切れる訳だ
これは、「ニンジンをを包丁で切る」「タマネギを包丁で切る」「にくを包丁で切る」という
引数なしの3つのメソッドを作るよりも手間が掛からず保守性も高いでしょ?
0938931
2007/03/30(金) 17:11:09来たんですが良い参考書が無くて最近停滞気味orzそれとももう職安に就職希望出して
勤ながら勉強しようかしら。
0939デフォルトの名無しさん
2007/03/30(金) 17:21:460940デフォルトの名無しさん
2007/03/30(金) 17:30:09貴方が悩んでいる部分はJavaに関する事ではなく設計技法なんじゃないかと思う。
デザインパターンに関する本とか読んで見たらどうだろうか?
0941931
2007/03/30(金) 17:39:110942デフォルトの名無しさん
2007/03/30(金) 17:56:45/////////////////////////////////////////////////////////////////////////////////
TreeMap<String,CharNode> ptr = this.next;//nextは次のノードのTreeMap<String,CharNode>
CharNode stuck = (CharNode)ptr.get(key);//追加したCharNodeを呼び出す
ptr = (TreeMap<String,CharNode>)stuck.next;//追加したCharNodeのnextが指すTreeMapに切り替える
//CharNodeは自作のクラスです
////////////////////////////////////////////////////////////////////////////////
Test.java:31: 警告:[unchecked] 無検査キャストです
検出値 : java.util.TreeMap
期待値 : java.util.TreeMap<java.lang.String,CharNode>
と起こられるんですが検査してキャストするにはどうしたらいいんでしょうか?
ジェネリクスを使わない場合は
ptr = (TreeMap)stuck.next;でキャストできると思うんですがorz
0943デフォルトの名無しさん
2007/03/30(金) 18:01:570944デフォルトの名無しさん
2007/03/30(金) 18:02:480945デフォルトの名無しさん
2007/03/30(金) 18:04:380946デフォルトの名無しさん
2007/03/30(金) 18:05:01つーか31行目ってどこよ。
0947942
2007/03/30(金) 18:15:28が31行目です
>945
そのオチでしたorz
ご迷惑おかけしました・・・
ようはしっかりジェネリクスつかってれば型キャストもいままで通りできるんですよね?
0948946
2007/03/30(金) 18:22:28自分が恥ずかしいので訂正しておく。
TreeNode<String, CharNode>だな。
0949946
2007/03/30(金) 18:23:09速いけどもう寝る。
0950デフォルトの名無しさん
2007/03/30(金) 18:46:51クラスに処理させるときはインスタンス変数を使い、
メソッドに処理させるときは引数で渡す。
たまに1メソッドで完結するのにインスタンス変数使うやつがいるけど
あれは好きじゃないな。可読性が落ちる。
0951デフォルトの名無しさん
2007/03/30(金) 20:58:02idはprimary keyなのでtomcatを再起動すると入力を受け付けなくなってしまいます。
良い方法はないでしょうか?
public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException
{
ServletContext context = getServletContext();
Integer id = (Integer) context.getAttribute("count");
if(id == null)
{
id = new Integer(0);
}
id = new Integer(id.intValue() + 1);
context.setAttribute("count",id);
Connection con = null;
Statement smt = null;
request.setCharacterEncoding("Windows-31J");
String mail = request.getParameter("mail");
String name = request.getParameter("name");
String sql = "insert into entry values("+id+",'"+name+"','"+mail+"')";
0952デフォルトの名無しさん
2007/03/30(金) 21:00:220953デフォルトの名無しさん
2007/03/30(金) 21:01:03idをフィールドに移して、destroy時にどこかに保存するというのはどうか
0954デフォルトの名無しさん
2007/03/30(金) 21:10:14Timer::scheduleだと指定時刻に一回だけか同じ間隔で実行しかできません
0955デフォルトの名無しさん
2007/03/30(金) 21:11:250956デフォルトの名無しさん
2007/03/30(金) 21:12:240957デフォルトの名無しさん
2007/03/30(金) 21:18:500958デフォルトの名無しさん
2007/03/30(金) 21:27:03でも再起動するたびに初めの日付を計算しなおすのがあまりスマートじゃないなーと
まさにcronみたいのがあれば便利なんですけど。
0959デフォルトの名無しさん
2007/03/30(金) 21:32:36http://www-06.ibm.com/jp/developerworks/java/040116/j_j-schedule.html
0960デフォルトの名無しさん
2007/03/30(金) 21:52:25おお、読んでみます。ありがとう
0961デフォルトの名無しさん
2007/03/30(金) 22:44:14もしかしてJavaで作ったアプリって、全部フリーでソース公開しないといけなくなるの?
0962デフォルトの名無しさん
2007/03/30(金) 22:52:23んなーこたぁない。ちゃんと例外規定を設けてある。
0963デフォルトの名無しさん
2007/03/30(金) 22:58:43個人的には Quartz がお勧め。
http://www.opensymphony.com/quartz/
POJOでタスク実行クラス作って、
Spring 経由で CronTrigger 使う
ってのが俺のよくやるパターン。楽。
0964デフォルトの名無しさん
2007/03/30(金) 23:55:42これはも面白そうですね。ありがとう。
0965デフォルトの名無しさん
2007/03/31(土) 00:43:10GPLちゃんと読んだことある?
0966デフォルトの名無しさん
2007/03/31(土) 02:23:310967デフォルトの名無しさん
2007/03/31(土) 02:45:11スレッドクラスの作成方法は
1.Threadクラスを継承して作る
2.Runnableクラスを実装して作るの
二通りありますよね。
で、2の方法で作成したクラスに対して
isInterrupted()を実行するとコンパイルエラーになります。
これは、ただ単にisInterrupted()を実装しているのが
Threadクラスだからという理由だと思うのですが、
2のRunnableクラスを実装したクラスに対して
isInterrupted()を実行する方法って何かありますか?
あったら教えてください。
作成するサブスレッドクラスは、Threadクラス以外を
継承させたいので2の方法でやりたいです。
お願いします。
0968デフォルトの名無しさん
2007/03/31(土) 02:48:280969967
2007/03/31(土) 02:53:17Thread myth;
public HogeThread(){
myth = new Thread(this);
}
public void start(){
myth.start();
}
public void run(){
}
public void interrupt() {
// TODO 自動生成されたメソッド・スタブ
myth.interrupt();
}
public boolean isInterrupted() {
// TODO 自動生成されたメソッド・スタブ
if( myth.isInterrupted() == true ){
return true;
} else {
return false;
}
}
}
0970967
2007/03/31(土) 02:59:20>>969のコードで自己解決しました。
Runnableを実装したクラスの中で
ThreadクラスのisInterrupted()を呼び出しただけで
なんとかなりそうだと思ってるんですが
特に問題ないですかね?
>>968さんのcurrentThread()は
初めて知ったんですけど
作成したサブスレッドクラスで
Thread.currentThread()
を実行するメソッドを用意して
そのメソッドをメインスレッドクラスから呼び出し
それからisInterrupted()を実行するって事ですか?
どっちの方法がいいんですかね?
0971デフォルトの名無しさん
2007/03/31(土) 03:13:43(2) Thread.currentThread().isInterrupted() を使う
0972デフォルトの名無しさん
2007/03/31(土) 03:24:190973デフォルトの名無しさん
2007/03/31(土) 04:09:53スレッドと、クラス・オブジェクトは直交する概念。
放っておくと、スレッドは縦横無尽にオブジェクトの中を歩き回る。
スレッドがThreadクラスと関連付けられているのは、その方が都合がいいから。
Thread#interrupt() は、(Threadの)オブジェクトに対してインタラプトしているのではなく、
そのオブジェクトにラベル付けされたスレッドに対してインタラプトを要求している。
そのスレッドが現在どのオブジェクトの中を実行中であるかは関係ない。
逆に、現在、手元にあるオブジェクトの中身を実行しているスレッドは、
実はどこか遠い星からやってきた何者かかもしれない。
これは、Runnableの実装とかは直接関係ない。
自分以外のスレッドに対して操作を行うには
そのスレッドにラベル付けされたThreadのインスタンスへの参照が必要で、
自分の管理下にあるスレッドに対しては、その参照を保持するのが普通と思われ。
0974デフォルトの名無しさん
2007/03/31(土) 04:25:22まあ、GNU CLASSPATH例外とかあるけど。
GPLよりw3cのソフトウェアライセンスの方が強烈だけどね。
ソフトウェア特許とか出てきても自由に使えるように、てのが目的で
パブリックドメインにするか通知文と一緒にソース公開するかの二択だから。
GPLv2と衝突するアパッチライセンス2.0のがややこしい。
0975デフォルトの名無しさん
2007/03/31(土) 04:51:42A. プログラムが、プログラム自身の一部を出力結果にコピーするときのみです。
0976デフォルトの名無しさん
2007/03/31(土) 09:59:18先輩がライセンスのウィルスだって言ってたから、そう思ってたんだけど、もしかして間違ってる?
会社にも、GPLのライブラリは使うなって規定があるし・・・
0977デフォルトの名無しさん
2007/03/31(土) 10:05:470978951
2007/03/31(土) 10:10:21idの項目にauto_increment入れたら楽に解決しました。
0979デフォルトの名無しさん
2007/03/31(土) 11:31:14ライブラリの話じゃない
それにGPLは感染じゃない。寄生だ。
>>976の会社はGPLとLGPLの違いすら分かってない予感w
コピーレフトも良いがパブリックドメイン最高だぜ?
これこそ真の普及と自由だ。
0980デフォルトの名無しさん
2007/03/31(土) 12:01:12法務部がある規模の会社ならともかく、中小ではね。
0981デフォルトの名無しさん
2007/03/31(土) 12:13:46ライブラリを選定するのは当たり前の話だと思う。
それ以外のライブラリを禁止にするのも常識だが。
0982デフォルトの名無しさん
2007/03/31(土) 12:26:01プロジェクト開始前に、どうやったらどのライブラリを使うかわかるんだ?
0983デフォルトの名無しさん
2007/03/31(土) 12:46:16最近何か面白そうなJava系プロジェクトはありますか?
JSFとかJakartaとか、何か大きく進歩したんでしょうか。
0984デフォルトの名無しさん
2007/03/31(土) 12:49:010985デフォルトの名無しさん
2007/03/31(土) 12:57:31Javaとは直接関係ないのにな。
0986デフォルトの名無しさん
2007/03/31(土) 12:59:550987デフォルトの名無しさん
2007/03/31(土) 13:00:41のかもしれない。
0988デフォルトの名無しさん
2007/03/31(土) 13:07:05表現手法としてHTMLが限界を迎え、しかしHTMLを実際に置き換えられる
ソリューソンは無い。そんな中でGoogleがGoogleMap等を提供したことにより
DHTMLをゴリゴリ利用して表現力を伸ばす方向に進んだのですね。
・・・最悪だ。
0989デフォルトの名無しさん
2007/03/31(土) 13:41:43嘆いてるゲイツを見たのはvaioはwindowsじゃないからサポートしたくない発言ぶりだった。
Ajaxは非同期でクライアントプルやってDOMでいじってるだけだからやってる事は10年以上変わってないけどね。
まあ、mosaic開発メンバの夢が次々と現実化してるんで良い事だが、
そろそろティムバーナーズリーにセマンティック・ウェブを頑張って欲しい。
0990デフォルトの名無しさん
2007/03/31(土) 13:50:01JavaとJavaScriptの区別がつかないような奴がJavaでプログラミングするわけないだろう。
どっちにしろAJAXでデスマ増やしてるのは事実だな。
0991デフォルトの名無しさん
2007/03/31(土) 13:59:06俺は責任とりたくないのでなるべくWebデザイナーにやらせる。
0992次スレ
2007/03/31(土) 13:59:20http://pc11.2ch.net/test/read.cgi/tech/1175317038/l50
0993デフォルトの名無しさん
2007/03/31(土) 14:02:53Javaだけでなく。
>>992乙
0994デフォルトの名無しさん
2007/03/31(土) 14:29:08Stateless Session Beanのタイマーを使って、サーブレットが利用するある変数の値を
カウントアップしていきたいんですけど、その変数は、このBeanのStaticに置いたりしては
だめと解説に書いてありました。
こういった値を保持するために、もう一つStatefulのBeanを作らなくてはいけないのでしょうか。。
すごくコストのかかるやり方のような気がしているんですが。。
0995デフォルトの名無しさん
2007/03/31(土) 14:30:300996デフォルトの名無しさん
2007/03/31(土) 14:31:390997デフォルトの名無しさん
2007/03/31(土) 14:32:12>もう一つStatefulのBeanを作らなくてはいけないのでしょうか。
はじめからStatefulで作ればいいと思うよ。
0998デフォルトの名無しさん
2007/03/31(土) 14:32:17単純なAJAXならそれでもいいが、それが可能な時代はもう過ぎた。
DWRとかSeamRemortingを使った、デザイナーの手に負えない領域に入ってる。
0999994
2007/03/31(土) 14:36:26早速ありがとうございます。
ServletContextに値を保持して、タイマーで呼び出されたBeanから、これに
アクセスするということでしょうか?
BeanがServletContextにアクセスする手段は、どういった感じになるんでしょう。。
>>997
Statefulはタイマーを使えないっぽいんです。。
1000デフォルトの名無しさん
2007/03/31(土) 14:39:3710011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。