[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 06/11 10:36 / Filesize : 275 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 19:48:24 ]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。pc10.2ch.net/hp/

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

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

前スレッド
【初心者】Java質問・相談スレッド111【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1200151522/

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝のう存じます。

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

116 名前:デフォルトの名無しさん [2008/02/11(月) 13:21:47 ]
プログラムを実行するごとにint型の変数の値を1ずつインクリメントするのってどうやったらできるんですか〜−−;

117 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 14:02:08 ]
>>116
プラシーボで良ければ、int型の値を確保し、それをインクリメントするだけのプログラムを。

でなければ、実行されるプログラムが使用するメモリ以外の部分に、実行時の値を保存する。
レジストリやらHDDなど外部記憶装置やら。

参考
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/util/Properties.html
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/util/prefs/Preferences.html

118 名前:デフォルトの名無しさん [2008/02/11(月) 14:09:32 ]
>>117
ありがとうございます!
今からちょっと用事があるので帰ってきてから実装してみたいと思います。

119 名前:デフォルトの名無しさん [2008/02/11(月) 15:03:20 ]
必ず表示されるフォントってありますか?

120 名前:デフォルトの名無しさん [2008/02/11(月) 15:05:47 ]
今のところ
Calendar.SUNDAY == 1
Calendar.MONDAY == 2
 (略)
Calendar.SATURDAY == 7
みたいですが、これを前提にコード書いたらやっぱまずいですか?
SUNDAYからMONDAYまでがこの順に連続した整数であることも
全く保証されて……ないんですよね、やっぱり。
SUNDAY→0, MONDAY→1, ..., SATURDAY→6 を得たいんですけど、
いちいち走査するしかないのかなあ。

121 名前:デフォルトの名無しさん [2008/02/11(月) 15:05:51 ]
String s = ?(97);
s.equals("a")にするための?の部分を教えてください。

122 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:09:44 ]
>>119
どの環境でも使えるフォント名ってことなら"Serif"、"SansSerif"、"Monospaced"、"Dialog"、"DialogInput"

123 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:13:23 ]
>>121
Character.toString( (char)97 )

124 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:16:57 ]
>>120
作法としてまずいかどうかは知らないが
将来バージョンアップで値が変わったりとかはしないはずなので大丈夫かと
(そんなことしたら既存のプログラムが動かなくなるし)



125 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:39:47 ]
qa3765663

126 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 16:52:34 ]
質問です。

JNIで呼び出すCのライブラリの中でファイルを参照するのですが、
ファイルの読み込みは一度だけにして常にメモリ中に展開しておき、
2度目以降は読み込み処理をやらなくてすむようにはできるでしょうか?

127 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 17:34:06 ]
>>120
APIドキュメントで対応する数値が明記されていない以上、
変更されて機能しなくなる可能性がないとはいえないが、
まあたぶん変えられることはなさそうだし前提にしてもいいんじゃないかな。
Calendar.SUNDAYとかはpublic static final intで宣言された定数なので、
使用側のコードに直接値が埋め込まれるため、
変更されるような事態になったら全部コンパイルし直しになるので。

128 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:05:38 ]
>>125
okwaveとのマルチか

129 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:17:05 ]
>>128
どこかがつぶれてもいいような分散技術を使った高度な質問技。
しかし技を使ったことがバレると回答されにくくなる諸刃の剣。

130 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:02:29 ]
ただのクロスポストだろ。なにが高度なんだ

131 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:29:06 ]
>>120
必要が無ければやるべきではない印象を持つが、必要として考えると…

定数の値は公開されて確認ができるので、クラスの使用条件を
「Calendar.SUNDAY から Calendar.SATURDAY が連続した整数値を取ること」
としていれば、Java のバージョンが変わったときも、それを確認するだけで使えると思う。

もしくは、static の初期化子などでそれらが連続することを確認し、
そうでは無い場合には何らかの処置をする、とか

132 名前:120 mailto:sage [2008/02/11(月) 22:28:27 ]
レスありがとうございました。
書いた直後に出かけていて返事が書けませんでした、ごめんなさい。

>>124
いくら public とはいえ、SUNDAY と "1" という値とは本来何の繋がりもない、
Calendar クラスの中だけの約束事でしかないので、
定数をこういう風に使っていいのかなぁという疑問がずっと消えなくて。

>>127
やっぱり明記はされてないんですよね。
ただ、「使用側のコードに直接埋め込まれる」には思わず手を打ちました。
定数が変わるときにはどのみちコンパイルし直しになるんだから
そのときにチェックが入るだろう、という考え方ですね。
建国記念の日とか春分とかの「日本の休日」を扱うクラスは
(どうせあと数十年中に休日が増減するから)とりあえず21世紀中だけ
使えることにしておけばいいよ、ってのと似たような話でしょうか。
ちょっと違うかもですが。

>>131
その発想はなかったっ。
どうせ将来にわたっても定数が変更されることはないだろうけど、
もし万が一……というところで悩んでいたので、
その注意書きを選ぶことにします。
お三方ともありがとうございました。

133 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:03:36 ]
>>132
>建国記念の日とか春分とかの「日本の休日」を扱うクラスは・・・
祝日ってDBかファイル持ちだち思うんだ

134 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:06:09 ]
>>132
それなら自分でMap持てば済む話じゃないの?



135 名前:デフォルトの名無しさん [2008/02/12(火) 00:59:23 ]
JavaBeansの仕様で質問です。
String a_1 = null;
というフィールドがあった場合、仕様として正しい
geterは
getA_1なのでしょうか?

136 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:09:58 ]
逆に考えるんだ
「get,set,isに続くものをプロパティ名とする」と
フィールド名は関係ない

137 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:27:58 ]
質問です。

クラス名や変数名に「hoge」という文字が頻繁に使われていますが、
なぜ「hoge」なんですか?

138 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:32:23 ]
>>137
ほげを考えるページ
ttp://kmaebashi.com/programmer/hoge.html

139 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:34:19 ]
そんなググれば出てくるような質問を
テレビのイの字と同じようなものだよ

140 名前:デフォルトの名無しさん [2008/02/12(火) 01:44:56 ]
javamailを使ってメールの複数送信をしようと思います。
送信先をXMLデータベースから抜き出してループさせたいのですが,
internetaddressクラスの配列使用の場合と
SAXとの組み合わせ方が今ひとつわかりませんのでどなたか解説お願いします。



141 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 02:19:43 ]
>>138
つまり、名前をつけるのが面倒なときにつけるんですね?
ありがとうございました

142 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 03:48:51 ]
初歩的なことなんですが、
javaプログラムから新たなテキストファイルを作成するにはどうすればいいのでしょうか?
ファイル作成のためのクラスとかありますか?

143 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 03:50:55 ]
FileWriter

144 名前:142 mailto:sage [2008/02/12(火) 04:19:25 ]
>>143
FileWriterで書き込んだりReaderで読み込んだりすることは出来るのですが、ファイルを作成することが出来ないんです。
具体的には、絶対パスではなく自分より二つ上の階層に新しいテキストファイルを作成したいのですが、
ネットで調べてもファイルへの読み書きの仕方しか出てきません。



145 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 04:25:32 ]
作成したいファイル名で new FileWriter("../../hoge.txt") すれば勝手にできる。
例外が発生するって言うならその例外の意味を調べろ。

146 名前:142 mailto:sage [2008/02/12(火) 06:47:29 ]
>>145
FileWriterで作成までしてくれるとは知りませんでした。
ありがとうございました。

147 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 09:41:05 ]
>>135
getterですよ

148 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 14:05:33 ]
現在メニューバー作成のためにサンプルプログラムを動かそうと
してるんだがコンパイラは通るんだがappletviewerが起動しない・・・。
コンパイラが通る時にMenuFrame2.classと同時に
MenuFrame2$1.class(プログラム中に記載はされてない)
という謎物ができるんだがこれが原因なのか?

↓とりあえずサンプルプログラム
ttp://www.dotup.org/uploda/www.dotup.org2840.java.html
Passはjava

149 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 14:15:07 ]
>>148
それアプレットじゃないじゃん
普通に java MenuFrame2 で起動してみ

150 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 14:21:45 ]
そうなんですか。
とりあえずIP抜かせてもらいました(^^v

151 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 14:23:37 ]
穴があったら入りたいと思ったが穴が無かったので
小さいかまくらを作った。入れなかった。
アプレットだと思ってた俺がバカでした。回答thx。

152 名前:デフォルトの名無しさん [2008/02/12(火) 14:53:19 ]
>>150
厨房( ´,_ゝ`)プッ


153 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 15:08:43 ]
tes01/tes02/tes03/sample.class という階層があって、
sample.classには、package tes03; の宣言がされています。
コマンドプロンプトから実行するとき、
tes02ディレクトリからでは java tes03/sample で実行出来るのですが、
tes01ディレクトリとtes03ディレクトリから実行出来ません。
例えばtes01ディレクトリから、java tes02/tes03/sample としてもエラーが出ます。
どうすればいいのでしょうか

154 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 15:22:02 ]
>>153
つjava -cp test02 test03/sample



155 名前:153 mailto:sage [2008/02/12(火) 17:17:22 ]
>>154
ありがとうございます!無事実行できました。

156 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 17:28:24 ]
JDBCでテーブル一覧を取得したいんですが、
どうやったらいいのでしょうか?

157 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:00:54 ]
Connection#getDatabaseMetaData()

158 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:23:28 ]
JNI で質問なんですけど、C/C++ から呼んだ Java のメソッドで new で確保したオブジェクト
返した場合、JNI でそのオブジェクト参照してても GC の対象になるよね?

public byte[] foo(){ new byte[1024]; }

jobject value = env->CallObjectMethod(clazz, method);

159 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:02:54 ]
>>158
ネイティブメソッドから返るまでは掴んだまま
返れば GC の対象になる
明示的に放したい場合は DeleteLocalRef を呼ぶ

160 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:26:36 ]
おまいら親切過ぎる
職場の上司もこんな優しく教えてくれたらなぁー

161 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 20:37:22 ]
Threadのrunメソッドに引数を渡すことは出来ないんでしょうか?
スレッドを複数作成してそれぞれのスレッドに異なる情報を渡して違った処理を実行させたいのですが。

162 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 20:54:41 ]
メンバ変数に持たせときゃいいじゃん

163 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:46:47 ]
>>159
そうなんですか。Java VM が参照見失うかと思ったんですがそうではないんですね。
ひょっとして env->NewByteArray() とかもちょあんt

164 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 22:00:56 ]
お前のほうが色々見失っているよ



165 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 22:26:02 ]
「うまいこと言った!」



そう考える 164 であった。

166 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 22:46:48 ]
馬鹿っぽい質問だけど
インスタンス変数はよくprivateにするのに
クラス変数はどうしてpublicばっかなの?
private static 〜 なんてのはあまり見ない気がする

167 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:29:05 ]
スコープについて学べ

168 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:31:36 ]
>>160
プロとしての自覚を持て
先輩の何十分の1程度の生産性しか出せないくせに
給料は同じくらいもらってんだろ?

169 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:36:06 ]
普通後輩の方が安いはずなんだが

170 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:38:56 ]
何十分の1なのか?w

171 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:40:45 ]
>>169
>>168の書き込みなんて気にすんなw

172 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:44:24 ]
先輩になっても給料変わらん会社にお勤めなんじゃないのか。

173 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:46:37 ]
>>169
おまいも経験積んだら、高い生産性出せるようになるさ

174 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:48:26 ]
今できない香具師はずっとできない希ガス



175 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:55:03 ]
>>169は管理職で残業代出る後輩のが手取りは多い、とか。

176 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:59:00 ]
>>175
それはありそうだな
生産性が低ければそれだけ残業するしな


177 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:12:03 ]
30過ぎて月給25万の俺を慰めてくれよ

178 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:39:15 ]
愚痴るならマ板池

179 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:56:10 ]
25万ももらえば十分だろ
贅沢言ってんじゃねえよカス

180 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:57:54 ]
import,例外処理は省略します
public class ComServer{
private ServerSocket sock; private Socket client;
public final static int portNo = 10500; private BufferedWriter writer;
private BufferedReader reader; private String msg = null;
ComServer() init();
void init(){
if(sock == null){
sock = new ServerSocket(ComServer.portNo,1);
client = sock.accept();
client.setKeepAlive(false);
System.out.println("Client connected");
}
if(reader == null) reader = new BufferedReader( new InputStreamReader(client.getInputStream()));}
String receive(){
if(reader == null)init();
String msg = null;
msg = reader.readLine();
return msg;
}
class s extends Thread {
private BufferedWriter writer;
private String msg;
s(String masg)this.msg = masg;
if(writer == null) writer = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
public void run(){
writer.write(msg,0,msg.length());
writer.flush();
}}}
すいません。たぶん根本的な間違いとおもいますがエラーがでてコンパイルできないです
申し訳ないですがバグを見つけてもらえないでしょうか?おねがいします. 環境はeclipse3.3.1.1 jre1.6.0_03です

181 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 01:11:43 ]
いやだ。

182 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 01:13:59 ]
>>180
エラーどこ、main どこ。クラスの先頭は大文字で。
eclipse ならエラーの対処方法も出るでしょうに。

183 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 01:14:28 ]
>>180
問題点の候補はコンパイラが見つけて教えてくれてるだろ
エラーメッセージを読んで理解しろ

184 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:23:07 ]
reader = new BufferedReader(new FileReader("./hoge"));
で実行ファイルと同じディレクトリのファイルを読み込むGUIアプリを作っているのですが、
実行ファイルが置いてあるディレクトリとは別のディレクトリのファイル(例えばデスクトップ)を引数に
そのアプリを立ち上げると
カレントディレクトリが
C:\Program Files\Common Files\System\MAPI\1041\nt\
と、よくわからないディレクトリになります。
何ででしょうか?

改善するためには、実行ファイルが置いてあるディレクトリを基点に
ファイルを読み込むようにすればいいと思うのですが
そのディレクトリを取得する方法がわかりません。
どうすればよいでしょうか?



185 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:31:52 ]
そんな方法はない。
固定ファイルならリソース使え。設定ファイルなら Preferences 使え。

186 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 10:35:03 ]
java.class.pathをとって、自分で探索していけば分かるかもしれない。

187 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:28:43 ]
>>180
さらっと見ただけだが、

>ComServer() init();

こんな構文ないだろう

188 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:40:54 ]
>>180
コンパイル出来ないのはバグじゃない。
なんでもバグで片付けようとするなよ馬鹿。

189 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:05:05 ]
>>184
Mainクラスにmain()があるとして、

URL url = (new Main()).getClass().getResource("Main.class");
String dir = url.toString();

みたいなかんじでどう?
jarから起動のときはそこからちょっと処理しないといけないけど

190 名前:デフォルトの名無しさん [2008/02/13(水) 12:27:21 ]
Graphicsを画像保存したいのですが
GraphicsオブジェクトからImageオブジェクトに変換できますか?


191 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 13:20:15 ]
>>190
BufferedImageに描画するようにして、それを保存したらどうよ?

192 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 13:20:21 ]
>>190
BufferedImage image = new BufferedImage(1000, 1000, BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
好きなように g に描く
g.dispose();
image げっと!

193 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 20:09:53 ]
明解Javaとかいう本、糞すぎる
前半はいいとして後半がめちゃくちゃ
結城さんのプログラミングレッスンのほうがはるかに信頼できるわ

194 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 20:12:10 ]
悪かったな。じゃあおまえが書けよ。



195 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 20:59:44 ]
例外オブジェクトって何ですか

196 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 21:00:30 ]
明解Javaって糞本なのか?
持ってないから解らんがw

197 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 21:09:19 ]
Java SE なんてどの本も同じだろw
つーかネットの連載とかで十分だし
本を糞と評価する奴が頭悪いだけって方が多いよな

198 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 21:10:38 ]
TeX で組んでない技術本は総じて糞。

199 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 21:11:39 ]
オライリは頑張って買ったw
英語版はつらいから日本語版待ってOrz..

200 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:11:16 ]
いみふ

201 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:20:11 ]
oh jesus
my jesus
I pleded my heart

202 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:20:46 ]
>>197
おまえ生意気だな
口の利き方に気をつけろよ
誰に話してると思ってんだ?
知らぬが仏とはいうがたいがいにしとけよ

203 名前:デフォルトの名無しさん [2008/02/14(木) 01:40:52 ]
byte[] b;
int i;

//DoJa5.1がコンパイルエラー
try {
byte[] b = new byte[1000];
i = b.length;
} catch(Exception e) {
System.out.println("" + i + e);
}

//DoJa5.1がコンパイル成功
try {
byte[] b = new byte[1000];
i = b.length;
i = 5; //なぜこれを書くとコンパイルが成功するんですか?
} catch(Exception e) {
System.out.println("" + i + e);
}

204 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 01:55:04 ]
て言うかそもそも b を二回定義してるのがおかしい気が…



205 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:10:55 ]
>>195
検索で大体意味はつかめると思うのだが…

まぁ、言語規定によると「オブジェクトは、クラスのインスタンス又は配列」とある。
当てはめると、「例外クラスのインスタンス又は例外配列」ということになる。

そもそも、オブジェクトを配列の意味で使ってる文は少ないし、
例外は配列としないことが普通だろう。として限定すると、前者の意だろう。

>>203
エラー詳細も張らずに質問とな?

206 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:17:23 ]
>>203
try節の中でbを二重定義しているのはおいておいて、
i=5;をそこに書いてもコンパイルに成功しない気が。
上が失敗するのはi=b.length;を評価する前に例外が発生して、
catch節に飛んでしまう可能性があるから、
その場合はiが初期化されていないのでコンパイルエラーを起こす。
int i;の段階でint i=0;とかで初期化すればエラーは出ないはず。
動作として正しいかどうかは別として。

207 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:40:30 ]
>>204,>>206
2重定義でした。ありがとうございました。

208 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:44:59 ]
そっちかよw
でもiの未初期化でもエラーが起こらなかった?

209 名前: ◆xkgLgN/H4. [2008/02/14(木) 10:24:06 ]
Sun認定Javaプログラマの試験対策問題集で納得できない部分があったので
質問させてください。

----------

問:アサーションの使用方法として適切なものを選びなさい。

【A】
public void method(int data) {
  assert data < 0: "dataが負数";
}

【B】文法間違いなので割愛

【C】
public void method(int data) {
  assert check(data): "checkメソッドがfalseを返した";
}
private boolean check(int data) {
  if (data < 0) {return false;}
  return true;
}

続く...

210 名前:209 ◆xkgLgN/H4. mailto:sage [2008/02/14(木) 10:25:50 ]
...続き

【D】
public void method(int data) {
  boolean checked = check(data);
  assert checked: "checkメソッドがfalseを返した"
}
private boolean check(int data) {
  if (data < 0) {return false;}
  return true;
}

正解は【D】なのですが、その解説が

【A】publicなメソッドの引数チェックをアサーションで行うのは不適切
【C】デバッグ時のみ使用し本番では使用しなくなるアサーションで
   メソッドの呼び出しを行うのは不適切
【D】内容は【C】と同じだが、メソッドの戻り値を変数へ格納し、その変数を
   アサーションでチェックしているので適切

というものでした。
【C】も【D】も「publicなメソッドの引数チェックをアサーションで行うのは不適切」に
該当する感じがして納得できないのですが、どう考えるべきですか?

また、【C】の解説が言わんとすることは、
アサーション有効時と無効時で呼び出されるメソッドが違う等の条件の違いがあっては
デバッグ作業として良くない
ということでOKですか?

よろしくお願いします。


211 名前:209 ◆xkgLgN/H4. mailto:sage [2008/02/14(木) 10:31:18 ]
訂正
【D】のassert行の末尾にセミコロンが抜けてました。
本来はセミコロンは付いています。

212 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:44:59 ]
Eclipseで製作したプロジェクトをjarファイルにエクスポートする際、
ImgaIconに使った画像や、プラグインとして使用したjarファイルが
含まれずに生成されてしまいます。どうすればよいでしょうか?


213 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:50:09 ]
>>210
しょせん試験なんてそんなもの。
問題作ったやつがアホだったんだろう。

214 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:54:36 ]
>>209
あら、俺は【C】で書いてるよ・・・。



215 名前:デフォルトの名無しさん [2008/02/14(木) 10:54:40 ]
long a,b;

aとbを比較したいのですが、a<bではダメなのですか??

216 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:55:33 ]
>>212
jarにエクスポートするとき、含めるファイルと含めないファイルを選択できると思うが
含めたい画像ファイルやjarファイルにチェックマークを付ければいいんでないか






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<275KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef