1 名前:テンプレ(1/3) mailto:sage [2009/11/21(土) 17:58:46 ] プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 ttp://pc11.2ch.net/hp/ Webプログラミング ttp://pc11.2ch.net/php/ をご利用下さい。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 ttp://www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド ★★Java質問・相談スレッド133★★ pc12.2ch.net/test/read.cgi/tech/1253376151/ 次スレは>>950 あたりで。 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 ttp://www.wikiroom.com/java/
91 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 22:21:00 ] java.decompiler.free.fr/?q=jdgui このデコンパイラがおすすめ。 eclipseプラグインもあるよ。
92 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 22:44:05 ] >>91 ありがとうごさいます あんなに苦労したことがこんな簡単にできるとは思いませんでした ほんとに助かりました。
93 名前:デフォルトの名無しさん [2009/11/26(木) 03:11:57 ] 与えられた文字列がディレクトリを指すかどうかをテストしようとして new File(s).isDirectory() を使ってたんですが、 Windows 上で s が \\server\share の形になっていると数秒の待ち時間が発生してしまうことがわかりました。 ネットワークにサーバー名とか(?)の問い合わせをしているようです。 また、一時的にサーバーが利用できないときに false になってしまうのも望ましく ありません。 これを回避するため、任意の文字列がファイルやディレクトリを指しうるものかどうか、 文字列の解析だけで(ファイルシステムやネットワークへのアクセス無しで)判別する 方法を探しているのですが、標準のクラス内に使えるものはないでしょうか? 例えば Windows ならパス文字列に含まれない文字がいくつかあるので、それが 含まれているかどうかだけをテストする、とかいうやつです。はじめは File のメソッドに isValid() とかあるだろうと思ったのですが、見当たりませんでした。
94 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 05:45:13 ] JavaってJITコンパイルという方式のようですが、逆に言うとソースコードを見られてしまうという事ですか?
95 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 06:17:09 ] yes >>91
96 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 07:03:41 ] なるほど、ありがとうございます
97 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 09:48:32 ] >>93 > 標準のクラス内に使えるものはないでしょうか? ない。
98 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 10:22:21 ] Jadはtry-catch-finallyがあって,なおかつ内部でモニタの開放とかしてると全く逆コンパイルに失敗して涙目
99 名前:デフォルトの名無しさん [2009/11/26(木) 19:46:41 ] J2SE 1.6で、java.lang.management.OperatingSystemMXBeanからいくつかのメソッドが削除されたのはどうしてでしょう? また、他のオブジェクトで代替/回避する方法はありますか? getTotalPhysicalMemorySizeやgetFreePhysicalMemorySizeが使えなくなっていたのは少々困りました。 現在、リフレクションを使って無理やり取得していますが、1.5で実装されたモノが1.6で削除(非推奨ではなく)されたのは、何か大きな不具合があった為でしょうか?
100 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 20:31:44 ] >>99 java.lang.management.OperatingSystemMXBean にはそんなメソッドないぞ。 com.sun.management.OperatingSystemMXBean と混同しとるんじゃないか?
101 名前:99 mailto:sage [2009/11/26(木) 22:49:43 ] >>100 ・・・申し訳ありませんでした、大当たりです。 com.sun.management.OperatingSystemMXBeanは(Eclipseでは)ビルド・パスの設定で明示的に許可してやらないと見れないので、取り違えてしまったようです・・・。 バカな質問にすばやくお答えいただき、ありがとうございました。
102 名前:デフォルトの名無しさん [2009/11/27(金) 00:18:06 ] 今からjavaやろうと思ったら 普通に1.6でいいんですよね? これはいい。これはやめとけみたいなのありますか?
103 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 00:35:04 ] GUIについて質問です マウスイベントを用いて何度か図形(drawLineやOval)を描画する プログラムを作ってるんですが、新たに図形を描画させると 以前描画した図形が消えてしまいます。 super.paint(g)をソースから消すと以前描画した図形も残るんですが 処理速度がものすごく遅くなります・・・ ちなみに引数(g)ってのは public void paint(Graphics g) のgです 処理速度が遅くならずに以前描画した図形を残せる方法はありませんか?
104 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 13:05:38 ] >>103 再描画してんじゃないの? ソースがないからなんともいえんが
105 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 13:31:18 ] >>102 6.0とも言う
106 名前:103 mailto:sage [2009/11/27(金) 13:32:09 ] すみません解決しました・・・ >>104 さんのおっしゃる通り再描画していました なのでpaintメソッドと別にupdateメソッドを作り public void update(Graphics g) { paint(g); } というふうに直接paintメソッドを呼び出したら上手くいきまいした
107 名前:デフォルトの名無しさん [2009/11/27(金) 20:30:30 ] 質問です。以下のホニャララの部分を、"点aは(x,y)"および"点bは(x,y)"と、 インスタンス名と同じ名前になるように表示させたいのです。 初心者の質問で申し訳ないのですが、何か良い案を教えてください。 class Point2D{ double x; double y; Point2D(double x,double y){ System.out.println("点ホニャララは(" + x + "," + y + ")" ); } } class Test{ public static void main(String[]args){ Point2D a = new Point2D(Double.parseDouble(args[0]),Double.parseDouble(args[1])); Point2D b = new Point2D(Double.parseDouble(args[2]),Double.parseDouble(args[3])); } }
108 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 20:47:10 ] >>107 これは初心者ってか素人のレベルだな
109 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 22:19:59 ] >>107 そもそもインスタンスに名前なんてないよ ソースコード上の「a」とか「b」ってのはインスタンスの名前じゃないよ 名前を教えなきゃいけない
110 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 23:18:13 ] >>108 残念なコを見るような目で見ながら教えていただけると助かります。 >>109 書き方が悪かったようです。それは理解しています。 僕の頭では、("点" + k + "は(" + x + "," + y + ")" );/*kはString型*/ として、条件文を用いてaとbを区別するか、引数を用いるかしか考え付きませんでした。 書き忘れましたが、課題の一部(質問した部分が課題なわけではない)です。 メッソドの形が指定されているので、引数は利用できません。 となると、条件文にしようと考えたわけです。 例えばif(){k="a";}if(){k="b";}とするわけですが、()の中身が思いつきません。 int n=0;n++;としてn==1 or n==2で判別しようとしたり、条件にメソッドを使用しようとしたり、 色々考えましたが、できませんでした。 素人の為知識量が不足しています。 条件文を用いる他に、スマートな方法がありそうですし。 何か、ご助言くださればありがたいです。
111 名前:デフォルトの名無しさん [2009/11/27(金) 23:26:31 ] >>110 お前、態度でかいぞ トーシロの無能が何言ってんだ
112 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 23:40:04 ] フィールド(メンバ変数)は名前を持つが、 パラメータ(引数)やローカル変数は名前を持たない。
113 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 23:51:22 ] 「点ホニャララは」の部分はmain側で表示してから Point2Dのコンストラクタを呼び出す。
114 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 00:04:34 ] >>110 後出しこわい > メッソドの形が指定されているので、引数は利用できません。 なんで? どうしてもシグネチャを変更できないのなら,そもそもコンストラクタで名前を表示しようなんて考えてはいけない. ソースいじくれるようだし,コンストラクタ増やしたら?
115 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 00:06:20 ] >>111 丁寧に書こうとしたら、こんなんになってしまいました。 不快にさせてごめんなさい。 >>112 助言ありがとうございます。 >>113 !?。それだ・・・!!! 正直、目から鱗です。 素人な質問に答えていただきありがとうございました! 助かりました。
116 名前:107 mailto:sage [2009/11/28(土) 00:12:29 ] >>114 >どうしてもシグネチャを変更できないのなら,そもそもコンストラクタで名前を表示しようなんて考えてはいけない. なるほど。参考になります。 >>113 とともに、コンストラクタを増やすことでも解決できますね。 自分の馬鹿さ加減がイヤになります。 お答えいただきありがとうございました。
117 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 00:32:44 ] showInputDialog でパスワード入力時に、入力文字を*****となるテキストフィールドを使いたいのですが どのようにしたらできますか?
118 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 01:23:23 ] というか大抵のケースでコンストラクタにパラメータ付ける場合は パラメータなしでnewされたくない =パラメータは意味のあるものだから必須 =メンバ変数に格納 とかじゃねーの そうでないならコンストラクタなんてパラメータ付けずに setterで外からはめさせりゃいいじゃん
119 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 01:39:33 ] マスをクリックした時に一回、勝敗が決まった時に3回 対戦者のテーマ音を鳴らす三目並べゲームを作ってるんですが Xが勝った時にテーマ音が鳴りません 以下は自分で作ったプログラムです www.dotup.org/uploda/www.dotup.org401130.java.html どうしてXのときだけ鳴らないか気付いた方はご教授おねがいします
120 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 01:49:32 ] まずクラス化したらどうだい? Playerクラスに纏めてしまえば変なswitch文にまどわされる事はない。
121 名前:119 mailto:sage [2009/11/28(土) 03:25:54 ] すみません、再生する音楽ファイルを変更したら解決しました おそらく、再生時間が極端に短いとloop再生できないようです・・・
122 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 10:31:27 ] >>117 ですが お願いします。
123 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 11:46:51 ] >>117 このあたりが参考になるのでは ttp://java.sun.com/docs/books/tutorial/uiswing/components/passwordfield.html
124 名前:デフォルトの名無しさん [2009/11/28(土) 11:59:12 ] JAVAで関数ポピンタみたいなことをやるには どうすりゃいいの。
125 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 12:01:10 ] 関数ポピンタってなんですか?
126 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 12:12:33 ] アイアムザパニーズなんですけどもザバで風呂釜を綺麗にするには?
127 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 12:13:41 ] いわゆるショッピング症候群です
128 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 12:14:34 ] ヌルポピンタ
129 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 14:53:57 ] >>123 Thx
130 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 16:36:21 ] >>124 動的にいろいろな関数のボピンタを渡す代わりに、動的にいろいろなオブジェクトを渡して、 それらのオブジェクトが共通に実装しているメソッドを呼ばせる。
131 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 18:47:21 ] ポピンタが使えるようになったら初心者卒業だね!
132 名前:デフォルトの名無しさん [2009/11/29(日) 05:59:57 ] java seが普通のjavaで java eeがjspやサーブレットまで含めたjavaということでしょうか?
133 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 12:18:39 ] そんなところ
134 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 14:06:18 ] ポピンタがなんだかわからなかったから、ググってみたらgoogle先生が教えてくれたww
135 名前:デフォルトの名無しさん [2009/11/29(日) 14:47:45 ] クラス、継承、オーバーライドまでは使えそうですが、 ポリモーフィズム、抽象クラス、インタフェースとかになってくると もう使いこなせる気がしません。 どういうものか理解はできていますが、自分でいつ使えばいいのか 判断が難しそうです。 皆さんはどうやって使えるようになりましたか? 使わなくても問題ないでしょうか?
136 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 14:52:58 ] 俺は最近 インターフェイス=コールバック用 抽象クラス=計算戦略の概略の形を作る用 になってきた
137 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 15:20:15 ] 使っているうちにわかってくると思えばいいんでしょうかね。 前にC++をしばらくいじってみたとき、結局最初から最後までOOPらしいものはできませんでした。。
138 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 16:00:36 ] >>135 インターフェース⇒使う側は「×××という機能(メソッド)が使える」ということだけわかっていればいい。中身は気にしない。 継承関係からは独立しているので、インターフェースを実装したクラスは中で何をやっていてもいい。 ファイルに書き込む代わりにネットワーク越しでサーバにアップロードするとか。 抽象クラス⇒処理の流れの大枠は決まっているが、一部の処理だけ使う側にまかせたい。その部分は使う側が決めなければならないので、抽象クラス自身は単独では完結していない。 ポリモフィズム⇒使う側は一律、writer.write(data)みたいに書くが、このとき実際に書き込む先はファイルだったりメモリだったりDBだったりどっかのサーバだったり。 要は、呼び出し側がif〜else if〜elseやswitch〜caseで切り替えるんじゃなくて、呼び出される側が同じシグネチャのメソッドを実装した中身の違うクラスを用意する。 なるべくをif文やswitch文を書きたくないので、無いと生きて行けない。
139 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 16:05:14 ] >>135 インタフェース=ポリモルフィズムのための規格 抽象クラス=雛形
140 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 16:10:15 ] >>138-139 うーん、難しいですね…。 違う本も読んでもっと勉強してみます。 抽象クラス、インタフェースの意味・目的はさておき、どのように身に付けましたか?
141 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 17:05:12 ] 標準のコレクションクラスをひととおり眺める それらを具象クラス (ArrayList, LinkedList) ではなくインタフェース (List) で使ってみる
142 名前:デフォルトの名無しさん [2009/11/29(日) 18:17:37 ] 同じ内容のオブジェクトのハッシュコードは等しいが 異なる内容のオブジェクトのハッシュコードは必ずしも違う値になるわけでは ないと聞いたのですが、ハッシュコードってどのような場面で使用されるのですか?
143 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 18:21:19 ] >>142 例えばjava.util.HashMapの内部で使用されてる
144 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 18:22:58 ] Hashtableとか ハッシュ値はクラスの設計者がどんな値使うか決めていい 必要であれば全部同じ値を返してもいい
145 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 19:10:26 ] よく指摘される事項ではあるけど、 equalsをオーバーライドしたクラスは必ずhashcodeもオーバーライド必須ね。 これ忘れて潜在的なバグが放置されてる業務プロジェクトは星の数ほど存在する。
146 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 19:14:27 ] 仕様です。
147 名前:デフォルトの名無しさん [2009/11/29(日) 19:22:07 ] >>143-145 ありがとうございます。 HashMapの実装の仕方を見たことは無いのですが getしたとき内部では高速化のためhashcode毎に分けられており 最終的にkey紐づくものを返すというイメージなのですか?
148 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 19:42:49 ] そうだね。 ハッシュマップは↓のようなデータ構造のイメージ hash1 : {key1:val1, key4:val4, key6:val6} hash2 : {key2:val2, key3:val3, key5:val5} hash3 : {key7:val7} key3でgetした場合、まずkey3のhashcodeであるhash2でgetして、 取得されたサイズ3のコレクションに対して、key3とのequalsが実行される。 最悪7回equalsが必要(size7のMapだから)なところ、 HashMapの実装であれば3回のequalsですんでいる。 実際には値がより均等に分散するアルゴリズムでhashcodeが計算されるため、 よほどHashMapのサイズが大きくならない限り 同じhashcodeにぶら下がるオブジェクトは多くて1個で収まる。→ 超速い
149 名前:デフォルトの名無しさん [2009/11/29(日) 20:25:55 ] >>148 解説ありがとうございます。 理解できました。
150 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 21:50:57 ] javaでファイル出力処理時に、ファイル名「現在の日付+.txt」としたいのですが、 その設定をjavaのpropertiesファイルに書いておいてそこから呼び出すためには propertiesファイルに記載したら良いのでしょうか? たまに固定文字列でファイル出力を行いたいため、 プロパティファイルを編集するだけで、日付つきファイルか固定かを変えられるようにしたいのです。
151 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 22:15:23 ] 予め決めておいたパターンが(プロパティファイルの値のなかに)出現したら 現在時刻に置き換えるようにしておけば?
152 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 22:17:56 ] レスありがとうございます その方法もいいかもしれませんが、プロパティファイル内の設定だけで対応したいです
153 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 22:20:21 ] プロパティファイル読み込む処理は自分で書いたんでしょ? そこで置き換えればいいんじゃないの?
154 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 23:44:19 ] 実行可能なjarファイルを作成したのですが、 これを別のディレクトリに移動してから実行すると動きません。 jarファイル内部のpropertiesファイルが読み込めない(見つからない?)ようなのですが、 プログラム中にpropertiesファイルの相対パスを指定しただけではダメなのでしょうか?
155 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 23:52:13 ] 一体どんな指定をしてるんだ?
156 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 23:57:01 ] >>154 jarファイル内部のはClassLoader使ってURL取得するといいよ。 hoge/ Hoge.class hoge.properties となってたら url = Hoge.class.getResource("hoge.properties"); もしくは絶対パス url = Hoge.class.getResource("/hoge/hoge.propertis");
157 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 01:55:11 ] でも、それじゃクラス全体がメモリにロードされちゃいませんか? 確かクラスは自動でアンロードされなかったし問題ですよ。
158 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 02:08:31 ] でっかい釣り針が...
159 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 06:44:15 ] java -cp abcde.jar:lib/opencsv-2.1.jar jp.aaaaa.Guiframe と実行を試みると、 NoClassDefFoundErrorがjp/aaaaa/Guiframeで出ます。 java -cp abcde.jar jp.aaaaa.Guiframe と入力すると正常に動作しますが、この場合はlibにPathが通ってないため 不十分な動作になります。 自分では原因が検討もつかず、悩んでいます。 よろしくお願いします。
160 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 06:56:58 ] >>159 パス区切り記号は :(コロン)ではなく、;(セミコロン)です。
161 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 10:40:32 ] Winではね
162 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 10:44:07 ] カラムヘッダに、日付と曜日を順々に2週間分入れてテーブルを作成したいのですがうまくいきません どこがいけないのでしょうか? public class CalendarModel extends AbstractTableModel { ......... public String getColumnName(int columnIndex) { calendar = Calendar.getInstance(); String[] columns = new String[14]; String dow = null; calendar.add(calendar.get(Calendar.DAY_OF_WEEK), columnIndex); dow = getDOW(calendar.get(Calendar.DAY_OF_WEEK)); columns[columnIndex] = dow + " " + calendar.get(Calendar.DATE); return columns[columnIndex]; }}
163 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 11:24:00 ] すみません、激しく自己解決しました calendar.add(Calendar.DAY_OF_WEEK, columnIndex); ですね
164 名前:159 mailto:sage [2009/11/30(月) 12:03:26 ] >>160 ありがとうございました。 助かりました。
165 名前:デフォルトの名無しさん [2009/11/30(月) 12:15:26 ] HashMapで現在 キー 値 あいうえお →1 かきくけこ →2,3 さしすせそ →4 とセットされているとして値の個数を返すメソッドってありますか? たとえば「かきくけこ」を引数とした場合に2が返ってきてほしいのですが。
166 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 12:25:43 ] 値の型って何さ
167 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 12:30:17 ] >>165 HashMapに同じキーの新しい値を入れると古い値は消えるので、値が2個以上になることはありません
168 名前:166 mailto:sage [2009/11/30(月) 12:38:38 ] ArrayListでも突っ込んでるのかと思った
169 名前:デフォルトの名無しさん [2009/11/30(月) 19:27:58 ] HashMapのかわりに何を使えばいいのですか? >>166 以外の人に答えてほしいです。
170 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 19:56:49 ] HashMapには値としてArrayListを入れて、そのArrayListの中に本当の値を入れるのが定番
171 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 22:06:45 ] >>166 も間違ったことは言ってないのに…
172 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 23:28:00 ] @see、@param、@override、@throwsみたいなアノーテーションをよく使うけど、 結局アノーテーションって何に使うの?
173 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 23:32:34 ] その @see、@param、@override、@throws を、何のために入れているのか、 分からないで使ってるのかw
174 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 00:11:19 ] >>172 JavadocのタグとJava5のアノテーションを混同してないかい? そこに挙げているのはぜんぶJavadocのタグ。
175 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 00:59:17 ] アノテーションの言葉どおりに、注釈つけたい場合に利用されてる。 DIコンテナとかEJB界隈を扱うと嫌でも利用例に触れることになる。 このメソッドの前後で新規トランザクション作れよ、とか このフィールドはDI対象なんだぜ。とかね。 フレームワーク側がそういった注釈を処理してなんらかの処理を追加してくれたりする。 逆に小さなツールとかゲーム作ってるだけならあんまり出てこないと思う。
176 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 02:53:22 ] しかし全部javadoc
177 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 03:47:15 ] 最近まったくjavadoc見てないな。 自動で更新されてるけどまったく見ない。 どうせコード確認しないとあかんし。
178 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 12:29:27 ] >>171 勘違いが明らかなときは、それを一言で表現できないなら、レスしない方がいいね。 新人教育のときのような応答をするとバカを見ることになりそうだ。
179 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 12:33:18 ] でもふつう>>168 のように考えると思うんだが
180 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 12:44:45 ] いやバカは無知をさらけ出さない質問者 小出しするやつはしぬ
181 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 12:54:56 ] ええよええよ 目下に馬鹿にされるのは慣れてるから
182 名前:デフォルトの名無しさん [2009/12/01(火) 15:04:11 ] BufferedReaderで開いたファイル(bin)に akljflkgjadb jdnfkgjnd;fkj fjng;alkjndf;gk と書かれている場合に、bin.read()で一文字ずつ配列にいれていきたいのですが、改行がきたらループを抜けたい場合 while(□ !=bin.read()) の□には何を書けばいいですか?\nでいいんですかね?
183 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 16:36:34 ] EOFて定数なかったっけ?
184 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 16:51:48 ] 1 3 8 9 5 2 4 1 4 8 12 3 10 7 9 8 5 3 11 3 9 4 2 4 5 2 ↑のような内容のテキストファイルがあります。 各行にはいくつかの数字が羅列されてるんですが その個数は各行ごとに完全にランダムで かつ最大何個とかも決まっていません。 このようなファイルを読み込んで int[][]、もしくはint[][]でできないとしたら別の何らかの形で持ちたいのですが どうするのがよいでしょうか?
185 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 18:19:51 ] >>182 ためしてないけど、たぶんファイルに記録されている改行コードがその まま返るんじゃないかなあ。Windows で作ったテキストファイルだと \r と \n の2文字。 せっかくBufferedReaderなんだから、readLine() で一気に1行読んでか ら処理するのがお勧め。こっちなら改行コードが何か考える必要がない。
186 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 20:10:07 ] >>184 別にint[][]でいいんじゃねーの。 そのデータをどう使いたいのかわからんから何とも言えないが。
187 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 20:24:53 ] ファイルの内容をint[][]型の変数にどうやって格納するか ってのを聞きたいんじゃないの?
188 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 20:26:11 ] >>187 そうです、まさにそれが知りたいです えすぱー!
189 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 20:32:54 ] >>185 にほとんど答えが書いてあるけど… ストリームオブジェクトを作ってreadLineで読み出すしかない。 readLineで読み込んだ1行はさらに区切り(ここでは空白?)を元に文字列を分解して数字を取り出す。 汚いコードになるだろうけど、ベタにテキストファイルに数字が羅列されてるなら仕方ない。
190 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 21:15:34 ] スレッドを利用してバイトデータを送受信(例:mainで送信、スレッドを拡張したクラスで受信)したいのですが、それぞれ別にSocketオブジェクトを作成する必要ありますか? ググってみて必要ないと判断して打ったのですが、どうやってスレッドを拡張したクラスでSocketオブジェクトを利用するのか分かりません。 ちなみにmainでポートと接続先を指定してSocketオブジェクトを作っています。 ご教示お願いします。
191 名前:デフォルトの名無しさん mailto:sage [2009/12/01(火) 21:43:37 ] >>190 こんな感じか? import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class a190 { public static void main(String[] args) throws Exception { new a190Receive().start(); Socket socket = new Socket("localhost", 6666); OutputStream os = socket.getOutputStream(); os.write(111); os.write(222); os.close(); socket.close(); } public static class a190Receive extends Thread { @Override public void run() { try { ServerSocket receive = new ServerSocket(6666); Socket socket = receive.accept(); InputStream is = socket.getInputStream(); System.out.println("receive : " + is.read()); System.out.println("receive : " + is.read()); is.close(); socket.close(); } catch(Exception e) {throw new RuntimeException(e);} } } }