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


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

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



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あたりで。

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)));


130 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:41:35 ]
それは十分趣味だと思うが。

131 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 17:51:26 ]
>>129
そーゆー用途なら java.util.Arrays#toString(int[]) でも良いのでは?
もっとも、1.5以上じゃないと使えないけど。

132 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:05:40 ]
final
static final
static

の使い分けがわかりません。

final float TEST = 1.0f;
static final float TEST = 1.0f;
static TEST = 1.0f;

どういう状況・どういう時に使い分けるのですか?

133 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:13:45 ]
>>132
メンバ変数の話だとすると、
final
変更できないメンバに付ける。コンストラクタで初期化することはで
きるので、あるインスタンス内でのみ有効な実行時定数として使う
static final
そのクラスの全インスタンスに共通の定数として使う
static
そのクラスの全インスタンスに共通の変数として使う



134 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:17:52 ]
>>133
ありがとうございます。
static final は Cでいうと #define みたいなものと捕らえて大丈夫ということでしょうか?


135 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:23:12 ]
>>134
そんな感じですね。

例を思いついたので書いてみる
class 人間 {
static final int 足の数 = 2; // 足の数は全人類共通
static int 人口;
final String 名前; // 名前は一度決めれば変わらない

人間(String n) {
名前 = n;
}
void 出生() {
人口++;
}
void 死去() {
人口--;
}
}


136 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:24:23 ]
定数の特徴がstaticでfinalなんだよ
って昔言われたな



137 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:26:21 ]
>>135
わかりやすい例で納得できました
ありがとうございます

138 名前:123 mailto:sage [2008/01/15(火) 18:36:34 ]
>>131
> そーゆー用途なら java.util.Arrays#toString(int[]) でも良いのでは?
> もっとも、1.5以上じゃないと使えないけど。

おおお!全然知りませんでした!ありがとうございます。
早速これに乗り換えます。






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

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

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