1 名前:デフォルトの名無しさん [2008/01/13(日) 00:25:22 ] プログラミング言語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質問・相談スレッド110【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1197710566/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝のう存じます。 次スレは>>980 あたりで。
29 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 19:05:30 ] java-house.jp/ml/archive/j-h-b/026762.html#body
30 名前:デフォルトの名無しさん [2008/01/13(日) 19:10:00 ] int a=Integer.valueOf(str).intValue() が使えないんですけどどうすればいいですか?
31 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 19:41:46 ] >>30 1. 文末にセミコロンが入っているかチェック。 2. str に正しい値が入っているかをチェック。 3. a を正しく使用しているかチェック。 つーか valueOf(String).intValue() とかやるくらいなら parseInt() 使え。
32 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 19:50:00 ] >>29 それって、Cでバッドノウハウが使えちゃうことを説明しているだけで、 Javaで警告すら出ない理由にはなってないような・・・。
33 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 20:18:29 ] >>32 何に対してどういう警告を出せと言ってるの?
34 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 20:24:52 ] それを言われると確かに困るが・・・
35 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:10:21 ] Cから初めて、今Javaやってるのですが クラスやら継承やらが、複雑で…というか スパゲッティプログラムになりやすい?じゃヴぁって なんか、.がつくたびに、クラス見て戻って先に進めない。疲れる
36 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:34:03 ] そりゃCでも構造体とか関数使いまくれば一緒じゃ?
37 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:45:32 ] >>35 一般的にはJavaのほうがスパゲッティになりにくい。 >>35 が書きづらく思ってるのは単に慣れてないだけ。 下の方は、EclipseなりNetBeansなりでコードアシスト使えばいい。 あと、文面からしてクラスや継承を使いすぎてる感じがする。 必要のないところにまでそういう機能を使う必要はない。 Cからの人なら、最初はC的に書いて、徐々にOOPに置き換えていけば一番楽だと思う。
38 名前:デフォルトの名無しさん [2008/01/13(日) 21:48:03 ] jarの中からjarが置かれているディレクトリを取得するにはどうすれば良いでしょうか new File(".").getAbsoluteFile(); で取得出来ると思っていたのですが cd /hoge /usr/java/jrexxx/bin/java -jar /usr/local/XXX.jar で取得出来たのはカレントディレクトリの/hogeでした・・・。
39 名前:デフォルトの名無しさん [2008/01/13(日) 22:09:34 ] できないので諦めろ
40 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 22:16:27 ] >>39 ありがとうございます System.getProperty("java.class.path")から無理やり取るか思案中です。 それとも.shとか.batとか用意してjarと同階層から起動すれば良いのか・・・鬱だ。
41 名前:デフォルトの名無しさん [2008/01/13(日) 22:18:28 ] すみません。2回目の質問です。 現在googleカレンダーのjava用apiを勉強しているのですが、ライブラリのimport ができなくて困ってます。 コンパイルの際、必要なjarファイル(gdata-client-1.0.jarとgdata-calendar-1.0.jar) はちゃんと指定してるつもりですがimportしたパッケージが存在しませんというエラー が出てコンパイルが出来ません。 (コンパイルのコマンド) javac -classpath /home/〜/gdata-client-1.0.jar:/home/〜/gdata-calendar-1.0.jar GCAccessor.java (エラーメッセージ例) パッケージcom.google.gdata.dataは存在しません ・・・ 開発環境はOSはVineLinux4.1、jdkは1.6.0_03です。 ちなみに同じコードをwindowsでやった場合はコンパイル・実行できましたが linuxではコンパイルすらできません・・・。 ネットでいろいろ調べたのですが、原因が分かりませんでした・・・。 ここなら詳しい方がいそうなので、どなたか原因の分かる方教えていただけないでしょうか?
42 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 22:21:26 ] >>37-38 ありがとー 今、入門書系を片手に、チマチマサンプル弄くってる。 どうも、Cで慣れすぎてて。 privateやらそこらは理解できたけど、継承やらのところでウワー、うぜーとおもて
43 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 01:05:22 ] >>38 System.out.println(MyClass.class.getResource(MyClass.class.getName().replace('.', '/')));
44 名前:ぽっぽ [2008/01/14(月) 01:25:11 ] 入力ストリームですが、 BufferedReader rd = new BufferedReader(new InputStreamReader(System.in,1)); //第二引数のバッファサイズを1で指定 String str = rd.readLine(); System.out.println(str); //strの内容を表示 ↑の文で入力した内容を表示させたとします。 で、一行目でバッファのサイズを1で指定してるので、 1文字しか読込めないプログラムになったと思うのですが、 最後のprintで確認すると入力した分がそのまま表示されます。 バッファサイズが1なので abcdefg と入力すると a だけが表示されると思ったのですが、何か理解が間違ってますか?
45 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 01:28:52 ] 間違ってます。 バッファサイズを何だと思ってるの?
46 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 01:39:35 ] >>44 バッファサイズというのは一度に読み込める量を決めるもので、それを超えて読み込めない という制限をつけるものではない。 100 バイトのデータ読むのに 5 バイトのバッファを用意すれば 20 回も I/O が発生して 効率が悪いが、100 バイトのバッファなら 1 回で読み込める。逆に 1000 バイトのバッファは 使わないメモリ 900 バイト分の無駄。
47 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 01:43:31 ] >>44 str を洗濯機、入力した文字列を風呂の残り湯、 バッファサイズをバケツの容量と考える。 洗濯に必要な水が30リットルだったとする。 これに対してバケツの容量は5リットルだとしよう。 さて、君はあきら君にバケツを使って 洗濯機に風呂の残り湯を汲み移すように言いつけた。 バケツで5リットルしか汲めないので、 あきら君は洗濯機には5リットルを移して作業を完了した。 あきら君の仕事に満足できないと思えるなら 1文字だけ読み込むという動作が正しくないと理解できるはず。
48 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 01:47:17 ] いや、あきら君はポンプを使うべきだ。
49 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 01:49:02 ] >>48 それを言うなら、 仕事はあきら君ではなくポンプに行わせるべきだ じゃね?
50 名前:ぽっぽ [2008/01/14(月) 01:50:35 ] なるほど・・・。 strに格納できる文字数の上限かと誤解してました。 先輩方ありがとうございます。
51 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 01:53:33 ] >>47 質問者の期待する結果から違ってるんだからそんな例は意味がない。
52 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 02:41:07 ] >>50 ソースを使え、ルーク。
53 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 07:47:24 ] >>11 NodeListってDOMの? それならDOMのNodeListはライブオブジェクトだから。 変更はすぐさま反映される。そういう仕様。
54 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 08:10:45 ] >>53 XPath で取得した NodeList では反映さないので、仕様として甘いといわざるをえんがな。
55 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 08:25:51 ] それ実装の問題
56 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 08:52:56 ] DOM の状態が変る or ノード取り出すたびに XPath 評価しなおして反映させるのが 現実的なわけないんだから、NodeList を live とした時点で仕様が破綻してるのも分からんのか。
57 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 08:55:10 ] DOMだったら反映させても非現実的にはならんと思うけど。
58 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 08:59:13 ] ん、ひょっとして XPath がどれだけ遅いかご存知でない?
59 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 09:03:52 ] W3Cに文句言えよ。バカじゃないの?
60 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 09:04:01 ] XPath使ってない場合の話
61 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 09:19:12 ] 暴れるだけだからバカの相手はしなさんな
62 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 09:23:09 ] >>59 仕様の問題か実装の問題かで何でいきなり W3C までエスカレーションすんだよw アホ?
63 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 09:33:14 ] W3C って API やらスキーマだけ規定して オナヌー してるところでしょ。 「俺たちは崇高な活動家。ありがたい API 作ってやったから勝手に 実装して使っとけ。実装側から提案なんてありえないw」 臭がとても強いところ。
64 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 09:46:46 ] あそこは今は大手 IT 企業のアーキテクト連中の肩書きアップの場になってる。 キャリア官僚が省庁や特殊法人渡ってるのとよく似てる。
65 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 11:02:17 ] うろ覚えの記憶なので恐縮ですが メソッドだか関数だかに変数を引数として渡した時、 呼び出し先でその引数に変更を加えることで、元の変数も同様に変化させるには どうすれば出来たんでしたっけ。戻り値を使ったわけではなかったと思います。
66 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 11:11:09 ] >>65 可変オブジェクトを、複製せず、そのままメソッドに渡せば良い。
67 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 11:18:07 ] リターンバッファという奴です。
68 名前:デフォルトの名無しさん [2008/01/14(月) 12:51:57 ] >>67 それってもしかして、CやC++のポインタに相当する?
69 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 12:53:49 ] Jtableにて1列のみクリック不可(選択編集不可)にしたいんですが、 どうすればいいでしょう?
70 名前:デフォルトの名無しさん [2008/01/14(月) 13:11:47 ] >69 JTableModel#isCellEditable
71 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 13:35:54 ] >>66-67 ありがとうございます。 一般的に参照渡しって言われるようなものですね。
72 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 13:41:24 ] >>70 様 早速のレスありがとうございます。 JTableModel#isCellEditable とは、TableModeインターフェイスのisCellEditableを使えということでしょうか? isCellEditableメソッドを調べますと rowIndex、columnIndex に位置するセルが編集可能な場合に true を返します。 と出てきました。 import java.awt.*; import javax.swing.*; class JTableTest extends JFrame { JTableTest() { getContentPane().setLayout(new FlowLayout()); JTable tb = new JTable(3, 3); tb.setValueAt("あああ", 0, 0); tb.setValueAt("いいい", 1, 1); tb.setValueAt("ううう", 2, 2); JScrollPane sp = new JScrollPane(tb); sp.setPreferredSize(new Dimension(230, 80)); getContentPane().add(sp); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("JTableTest"); setSize(250, 120); setVisible(true); } public static void main(String[] args) { new JTableTest(); } } とした場合 A列を、選択編集クリックすべて不可にしたいのですが、どうすればいいでしょうか?
73 名前:てきとう mailto:sage [2008/01/14(月) 13:44:09 ] JTable tb = new JTable(3, 3){ public boolean isCellEditable(int r, int c){ return (r != 0); } };
74 名前:デフォルトの名無しさん [2008/01/14(月) 13:59:30 ] >>73 様 レスありがとうございます。 JTable tb = new JTable(3, 3); を JTable tb = new JTable(3, 3){ public boolean isCellEditable(1,1){ return (1 != 0); } }; と変えてみましたがコンパイルエラーになってしまいました。 以下エラーメッセージ JTableTest.java:9: 型の開始が不正です。 public boolean isCellEditable(1,1){ ^ JTableTest.java:11: <identifier> がありません。 } ^ エラー 2 個 しつこくて申し訳ありませんが、よろしくお願いします。
75 名前:てきとう mailto:sage [2008/01/14(月) 14:03:59 ] まちがえたw JTable のメソッドじゃねーやハズカピー JTable tb = new JTable(new DefaultTableModel(3, 3){ boolean isCellEditable(int row, int column){ return (column != 0); } });
76 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:05:16 ] >>74 (思わずカエレ!!と言ってしまいそうになる) それは無名クラスの定義文です。 内部クラス > 無名クラス(途中) ttp://www.javaroad.jp/java_class15.htm >>75 有るにはありますが、挙動に注意です。
77 名前:デフォルトの名無しさん [2008/01/14(月) 14:25:38 ] >>75 様 >>76 様 どうもありがとうございました とても勉強になりました。
78 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:26:56 ] javaのとっかかりで GUIを作りながら勉強できるサイトとかありますか?
79 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:39:59 ] >>78 java.sun.com/docs/books/tutorial/uiswing/index.html 日本語版ってあるんだっけ…?
80 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:44:24 ] 出来れば日本語で ほんとの初心者向けのが助かります
81 名前:デフォルトの名無しさん [2008/01/14(月) 19:15:31 ] 創るJavaじゃね?
82 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:24:31 ] >>81 宣伝乙。どこにGUIの話が載ってるの? book.mycom.co.jp/MYCOM/html/book/978-4-8399-2681-6/index/978-4-8399-2681-6.html
83 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:52:56 ] GUIなら最近java6対応の本が出てたな。
84 名前:デフォルトの名無しさん [2008/01/14(月) 19:58:44 ] NetBeansでつくって学ぶ Java GUI & Webアプリケーションと書いてあるが?
85 名前:デフォルトの名無しさん [2008/01/14(月) 20:24:46 ] 教えて下さい コマンドプロンプトでjava -version 入れたら Error: could not open `C:\Program Files\Java\j2re1.4.2_16\lib\i386\jvm.cfg' こんなエラーが表示されます。 J2SDKを1.4.2.16→1.4.2.10と変えたらこんな事に・・・ どうすればよいのやら・・・
86 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:39:04 ] >>85 たぶん環境変数の問題だと思うけど、 取り敢えずコントロールパネルの中の"Java"を起動してみて 期待する設定になってるか見てみたら?
87 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:44:53 ] というか1.4.2の最新って1.4.2.14くらいじゃなかったけ?
88 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:45:35 ] ああ、バージョンダウンしたのか。
89 名前:デフォルトの名無しさん [2008/01/14(月) 20:57:15 ] >>86 コントロールパネルにJava Plug-in があって それ起動しようとしたらエラー・・・ >>88 バージョンダウンです
90 名前:sage [2008/01/14(月) 21:11:26 ] うぅぅぅ the time zone update file がダウンロードできない(T_T) Welcome xxx | Logout [continue] 先に進まない
91 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:14:05 ] 前のバージョンをアンインストールして再インストールする方をクリーンインストール。 たぶん、ごみが残るからごみは手動で消す。
92 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:14:39 ] >>89
93 名前:デフォルトの名無しさん [2008/01/14(月) 21:57:17 ] >>91 85です。解決しました。 1_4_2_10や1_4_2_16はうまくいかなかったです。 なぜうまくいかないのか今はわかりません。今後調べてみます。 ひとまずアンインストールを行った後、1.5.0_14をインストールし、 ユーザ環境変数のみ PATH C:\Program Files\Java\jdk1.5.0_14\bin に設定して、 javac java -version の確認がとれました。 ありがとうございました。
94 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:04:27 ] java_home設定しといた方が良いよ。
95 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 04:51:51 ] Stringで受け取った文字列に対しての色変更はどのようにしたら良いのでしょうか?
96 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 04:56:49 ] >>95 ・Stringには色はありません。 ・標準入出力には色を付けられません。 ・Graphics.setColorを使えばいいと思うよ。 ・何十回も質問を読み直してから来ればいいと思うよ。
97 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 05:06:32 ] なんというおもしろ質問
98 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 06:24:40 ] >>95 勘で。 pc11.2ch.net/test/read.cgi/tech/1196543694/354
99 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 07:22:05 ] javaはコンソール制御できないからなぁ。
100 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 07:24:22 ] そういや一応、Cursesはあるよね。
101 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 07:28:53 ] エスケープシーケンスでできんじゃね? NT 系のコマンドプロンプトでできなくなったんだっけ?
102 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 07:59:24 ] できない
103 名前:デフォルトの名無しさん [2008/01/15(火) 09:50:35 ] double/doubleを小数点以下第一位まで表示するにはどのようにすればいいのでしょうか??
104 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 10:25:54 ] formatでいんじゃね
105 名前:デフォルトの名無しさん [2008/01/15(火) 10:35:26 ] www.hcn.zaq.ne.jp/no-ji/game/game.htm ここのシューティングのJAVA版が動かないんですが。どうしたら動きますか?
106 名前:デフォルトの名無しさん [2008/01/15(火) 12:13:48 ] 作った人に聞く
107 名前:デフォルトの名無しさん [2008/01/15(火) 12:53:22 ] MozillaParserを使い始めたんですが クイックスタートに載ってる File parserLibraryFile = new File("./native/bin/MozillaParser" + EnviromentController.getSharedLibraryExtension()); String parseLibrary = parserLibraryFile.getAbsolutePath(); MozillaParser.init(parseLibrary, "C:\\dapper\\mozilla\\dist\\bin"); Document domDocument = MozillaParser.getInstance().parse("<html>Hello world!</html>"); MozillaParser.getInstance().stopRunning(); がうまく動きません Pathなどは通してありMozillaParserそのものは呼び出せますが メソッドが呼び出せません ひょっとして仕様変ってますか
108 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 12:56:55 ] エラーメッセージは?
109 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 13:21:59 ] SE 6 で JavaScript 使えるようになったことだし、そろそろ PDA のフルブラウザ程度の 標準 GUI コンポーネント作れよというチラ裏。
110 名前:デフォルトの名無しさん [2008/01/15(火) 13:37:25 ] つJavaFX Mobile
111 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 13:48:40 ] >>12 NodeListの動作はW3C DOMが決めているものだから、xml4j云々は関係な いでしょ。W3C DOMの仕様だって、IEとMozillaのJavaScript DOMの挙動 を明確化するところから始まったものだし。
112 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 15:17:41 ] java初めて1ヶ月の初心者です。 エクリプスで普通に実行できるプロジェクトが、DOSからjreで起動しようとするとシンボルが見つかりませんエラーを頻発するのは何が原因と考えられますか? ちなみにjavacをやっても、同じ数だけ、クラスが見つからないよエラーが出ます。
113 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 15:20:11 ] クラスパス関連
114 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:05:05 ] ttp://www.uploda.net/cgi/uploader2/index.php?file_id=0000048495.txt サンプルみながら弄くってるのですが ボタン押したら終了するようなのって このソースのどこら辺をどう変えたらいいですか
115 名前:デフォルトの名無しさん [2008/01/15(火) 16:10:00 ] >114 jframe.setDefaultCloseOperation(jframe.DO_NOTHING_ON_CLOSE); JavaDoc、JFrameのsetDefaultCloseOperationの項目を嫁
116 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:10:54 ] actionPerformed の中でイベント e.getSource() が終了ボタンかどうかを判定して 終了ボタンなら終了動作をすれ
117 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:17:12 ] >>actionPerformed の中でイベント e.getSource() が終了ボタンかどうかを判定して すんません、どうやって判定するんですか
118 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:17:37 ] ==
119 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:49:14 ] ネットで既にあるアプリケーションのサンプル、ソースを見ると Main.java A.java B.java のようにクラスごとにファイルを分割しているもの 見るのですが、どのように分割したファイルを関連付けすればいいのでしょうか 例えばMenuItem等の基本的機能を実装したMain.javaに、 JTreeを実装したA.java、TextAreaを実装したB.javaを追加するような形です
120 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:52:03 ] 同じパッケージ (同じディレクトリに保存してある) なら何もしなくても使えるだろ。
121 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:57:19 ] すみません、表現がおかしかったですね ・MainでMainメソッド等を作った ・A,BでMainメソッド込みで必要な機能をそれぞれ作った ↑ これをMainに関連付けるにはどうしたらいいのでしょうか
122 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:00:46 ] ↓エスパー求む
123 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:01:32 ] すみませんが、質問です。 intの配列を、リストに変換するライブラリはないでしょうか? commons にありそうな気がするのですが。 Arrays.asList() を使ったのですが、 intの配列だと、配列全体を一要素とするリストができてしまいます。 java.util.Arrays.asList(new int[]{1,2,3}) => (java.util.Arrays$ArrayList<E>) [[I@18f6235] Integerの配列なら、そのままリストに変換されるのですが。 java.util.Arrays.asList(new Integer[]{1,2,3}) => (java.util.Arrays$ArrayList<E>) [1, 2, 3]
124 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:04:21 ] なんか最近質問も回答もひどいな。
125 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:11:56 ] >>123 一発変換じゃないけど、commons lang の Integer[] org.apache.commons.lang.ArrayUtils#toObject(int[]) とかで、いったんInteger[]に変換してからArrays#asList()で変換するとか。
126 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:14:33 ] >>121 「関連付ける」っていう表現がJava歴12年の私によくわからない。 何を心配しているのだ?
127 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:15:42 ] List<Integer> list = new ArrayList<Integer>(); for(int i: array){ list.add(i); } なぜこの程度のコードのために非標準ライブラリを使おうとするんだ?
128 名前:123 mailto:sage [2008/01/15(火) 17:27:31 ] >>125 おお、これでOKです!ありがとうございます。 commons.apache.org/lang/api/org/apache/commons/lang/ArrayUtils.html#toObject (int[]) >>127 まあループをなるべく書かないのがポリシーなのだと思ってください。 LISPで再帰せずにmapを使うようなものです。 commons-langは、まずどんなプロジェクトでも使わないことはないし。
129 名前:123 mailto:sage [2008/01/15(火) 17:39:13 ] 趣味じゃなくて実用の話をすると、これは配列の中身をログに書き出すために、 リストに変換したかったのです。配列#.toString()と違い、List#toString()は 各要素を出力してくれますので。 ロギングのためにわざわざループを書いたり、その後使うあてのない諸々の変 数を宣言したりするのは煩雑ですが、これなら一行ですみます。 log.debug("x = " + Arrays.asList(ArrayUtils.toObject(xarray)));