【初心者】Java質問・相談スレ6【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGなお、ソースを貼るときには、半角空白が消える仕様のため、タブ1つを全角空白2つに
置換してから投稿しましょう。わからないときはどこがどうわからないのか?、動かな
いときはどこがどう動かないのか?なぜそう判断したのか、エラーメッセージや結果な
どと一緒にお書き下さい。雑誌や宿題などの疑問を質問するときは出展を明記したほう
が解決が早いです。
関連情報は >>2-10 あたりにあります。 (一部 dat落ちやHTML化待ち)
JavaScriptの質問はWeb製作板へどうぞ。
web制作管理
http://pc.2ch.net/hp/
パソコンの基本操作に関しては、PC初心者板や、各OS板などで質問しましょう。
パソコン初心者@2ch掲示板
http://pc.2ch.net/pcqa/
上級者の方で教える技術が無い方は下記スレでダベりましょう。
初心者無視! Java相談室 その9
http://pc3.2ch.net/test/read.cgi/tech/1021555964/
基本的にsage進行でおねがいします。また煽り厨は放置でお願いします。
http://pc.2ch.net/tech/kako/1026/10266/1026601774.html
0412デフォルトの名無しさん
NGNGそんなにClass.forName()の仕様が気に入らないんなら自分でメソッド追加すればいい
public static Class classForName(String name) {
if (name.equals("int"))
return int.class;
else if (name.equals("double")
return double.class;
else
return Class.forName(name);
}
これ使ってればどれほど君の言う仕様がどれほど便利か/どれほど意味がないか
わかるんじゃない?
0413名無しさん@Emacs
NGNGじらしているのか????
0414デフォルトの名無しさん
NGNG0415370
NGNGClass.forName(Integer.class.getName()) -> Integer.class
Class.forName(int[].class.getName()) -> int[].class
Class.forName(int.class.getName()) -> java.lang.ClassNotFoundException
これが、
Class.forName(int.class.getName()) -> int.class
こうなる。これに尽きる。別に Name でなくても、Signature でもかまわない。
>>412
確かに便利でもないし意味もないね。だってコンパイル通らないんだもん。プ。
0416デフォルトの名無しさん
NGNGっつか、
Class.forName(int.class.getName()) の戻り値が int.class
だと何が嬉しいのかサッパリわからないんだが。
0417デフォルトの名無しさん
NGNG>>402の、「めんどい場合」ってのを具体的に例示しないと、
共感を得るのは激しく難しいと思われ
>>391
> >>385
> じゃあ無名パッケージ内に "[I" ってクラスが存在するのか?
>>399
> プリミティブ(byte, char, double, float, int, short, long, boolean,
> void)の Class オブジェクトを間接的に得る方法は提供されていないのか?
> Class.forName が純粋にバイナリ名から Class を返すのでないことは、
> "[I" で int[].class を返すことで明らか。
> なら "int" から int.class を得る手段が用意されてても良さそうなのだが。
>>402
> Class.forName(int.class.getName()) で int.class が復元できないと、
> リフレクションを使うプログラミングでめんどい場合がある。
>>405
> せめて Class.getSignature()、Class.forSignature(String)
0418デフォルトの名無しさん
NGNGClassの配列だけど、効率を度外視してもっと意味的に整った設計は、
「Type」「IntType」「BooleanType」とかの名前のインターフェイスが
別にあって、「ReferenceType」の場合だけ参照先のクラスをとれる、
という形だと思う。
つまり、
int.type : IntType (subclassof PrimitiveType)
String.type : StringReferenceType (subclassof ReferenceType)
String.type.getReferedClass () == String.class
とか。あるいは、
class String implements ReferenceType
とかでもいいけど
0419デフォルトの名無しさん
NGNG× java.reflect.Method#invoke に与えるパラメータ型リスト
○ Class#getMethod に与えるパラメータ型リスト
0420うわ、ひでー
NGNG× String.type : StringReferenceType (subclassof ReferenceType)
○ String.type : ReferenceType
× class String implements ReferenceType
○ String.class (instanceof ReferenceType)
0421デフォルトの名無しさん
NGNGinvoke( Object obj, Object[] arg ) でしょ…
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/reflect/Method.html#invoke(java.lang.Object, java.lang.Object[]
0422デフォルトの名無しさん
NGNGよく分からんが、そーすると何が便利になるの?
0423デフォルトの名無しさん
NGNG現在の int.class とかの基本型に対応する Class オブジェクトってのが、
本質的には反則的な存在だってことがいいたかった。
「基本型はクラスと同列の存在ではなく、(オブジェクトへの)参照型と同列」
ってこと
0424418-420=423
NGNG>>402
> 仕様として気持ち悪いし。
0425デフォルトの名無しさん
NGNGなんだ… ただの自己満足か。
ちなみに、反則っつーなら null の扱いはどーすんだ?
0426デフォルトの名無しさん
NGNGってのはどーなったんでしょう?
0428デフォルトの名無しさん
NGNGReflection の中で Primitiveな型が反則だというなら
直接 Reflection とは関係ないが null も反則な値だろ?
Reflection をより合理的に、というなら全ての例外的なものを
合理的にすべきだと思うが。
例えば、null instanceof Object は true でないのに
methodA( Object obj ){ /* 空 */ } なる
Method methodA は methodA.invoke( obj, Object[]{ null } ) としても
IllegalArgumentException を返さない。
これは合理的でないと思うけど。
逆説的に「そーゆー事言い出すとあっちでもこっちでも
綻びなんか幾つでもあるじゃん」という事が言いたい。
0429デフォルトの名無しさん
NGNG基本型が反則って言ってるんじゃないよ。
nullはオブジェクトではなく、参照の値。
new Object ()は参照の値ではなく、オブジェクト。
「ほらみろ混同してるじゃん!」って言いたいw
0430デフォルトの名無しさん
NGNGしまっつ。墓穴ほっちった。
0431デフォルトの名無しさん
NGNGちなみに、その「意味的に整った設計」では
null の型はどー設計するわけ?
0432デフォルトの名無しさん
NGNG変数(仮引数とか)や戻り値の型っていうのは、常にあるよね?
「null」と単独で書く場合は、実際の代入や、関数呼び出しなどの
文脈にマッチした参照型に決定される、と解釈していいのではないかと
0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNGリフレクションでinvokeしたときの戻り値がnullになるのが、
オブジェクト返しと同じでイヤーンとか?
0435デフォルトの名無しさん
NGNG他にも short -> int や float -> double などの型変換は
自動的に行われるけど、「意味的に整った設計」では
これらをどのように解決する?
0436デフォルトの名無しさん
NGNGなるほど、「意味的に整った設計」ってもデータ型限定なわけね?
0437デフォルトの名無しさん
NGNGClass.forName (...) ←これはオブジェクトのクラスだけで、
変数に入れられるデータ型(っていうか、基本型+参照型。。
参照も基本型だっけ?)とか、関数の戻り値の指定ってのは、
便宜上混同するのはいいけど、いちおう厳密には区別があるわけだから、
混同するのが正義、みたいな>>370の言い方は変じゃないかって事。
0438デフォルトの名無しさん
NGNGさて、そこで、ファイルから読み込むとき、読み込みはうまくいっているのですが、
バイト配列から文字列へ変換するときにうまくいかず参っています。
セーブされたデータは、バイト配列として保存され、読み込みはうまくいっているようです。
したがって、byte s[]には、データが格納されている状態であります。
ここから、s.toString()を使ってバイト配列を文字列に変換しようと思っても、うまくいきませんでした。
コンソールにdataStringを出力してみると、"[B@be64248"と言う文字列が入っていました。
ここで、byte[]配列を正しく文字列方にするにはどうすればよいのでしょうか?
よろしくお願いします。
[B@be64248+++69 69
RecordStore record=RecordStore.openRecordStore("datafile_123456",true);
String dataString;
byte s[];
s=new byte[record.getRecordSize(1)];
n=record.getRecord(1,s,0);
dataString=s.toString();
System.out.println(dataString+"+"+n+"+"+record.getRecordSize(1));
0439デフォルトの名無しさん
NGNG0440デフォルトの名無しさん
NGNGnew String( s );
じゃなかったっけ?
文字化けすんだったら
new String( s, "SJIS" );
new String( s, "EUC_JP" );
とか試してみるとか。
0441デフォルトの名無しさん
NGNG0442デフォルトの名無しさん
NGNGあー確かに初心者がやりそう・・・コトバとして読めば通じてるからなぁ
0443438
NGNG0444409
NGNGすみません。APIのサンプルで、
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
をローカルに持ちたいのです。
>>411
わかりません。
俺って逝ってよしですか?
0446デフォルトの名無しさん
NGNGhttp://java.sun.com/j2se/1.4.1/ja/download.html
に
日本語版 J2SE 1.4.0 ドキュメント ダウンロード
があるので。
0447デフォルトの名無しさん
NGNGもしtemplateもどきを作ろうとしているのなら、
JDK1.5を待ってみるのもいいかもね。
boxingとかいろいろ追加されるらしいよ。
0449デフォルトの名無しさん
NGNGこれマジ?
0450デフォルトの名無しさん
NGNG0451名無しさん@Emacs
NGNG実際のpathを取得する方法は書いているんですが....
0452デフォルトの名無しさん
NGNG0453名無しさん@Emacs
NGNGさんきゅーです。
ずっとServletContextの方をさがしていました。
0454447
NGNGJavaにもtemplate欲しいよね。
->でも、そうなるとprimitive型の扱いに困るよね。reflectionとの相性も悪いし。
->boxingを言語仕様に追加すれば?
てな話が出ていて、JDK1.5に入れようとする動きがあるらしい。
まあ、最終的にどんな感じで落ち着くのかは全然わからんが。
0455デフォルトの名無しさん
NGNG携帯のアプリぐらいしか知らないんだけど。
0456デフォルトの名無しさん
NGNG??Javaってどこで使われてるの??
0457デフォルトの名無しさん
NGNG0458370
NGNG>>437
失敬な。統一して扱うのが正義と言ってくれ。
いや違う。*できるだけ*統一して扱うのが正義。区別があるのは分かるが、
同じクラスのインスタンスである以上、できるだけ統一して扱えるべきだ。
あと、Class.forName("int") で無名パッケージの int を探しに行くって
仕様もよくわからん。そもそも言語仕様上、class int{} はできないし。
でも、int.class を置いといてやると、ほんとにそれをロードしようとする。
try{
Class.forName(str);
} catch(ClassNotFoundException e){
if(str.equals("boolean")){
....
}
}
てな実装の場合、int.class を忍ばせとけば、str が "int" の場合、忍ばせた
int.class がロードされる。やばいでしょこれ。
Class.forName がプリミティブ + void 型も扱えれば、プリミティブ型名 ->
Class インスタンスの変換をプログラマが行わなくて済むし、上の問題も
解決される。ReferenceClass と PrimitiveClass が存在するかのような
気持ち悪さも*少しだけ*解消される。
0459デフォルトの名無しさん
NGNG0460デフォルトの名無しさん
NGNGよろしくお願いします。
0461ロック
NGNG3つ全部載ってるものがありますが、それは良いのでしょうか?
0462デフォルトの名無しさん
NGNGスレ違いだろカス死ね
0463デフォルトの名無しさん
NGNGこいつマルチポスト、こういうヤシには絶対教えちゃ駄目
0464ロック
NGNGマルチの件ははすまなかった、そういう焦りでマルチしてしまったんだ。
火曜日に最初の授業がある、是非書籍を教えてもらいたい。
0465デフォルトの名無しさん
NGNG0466デフォルトの名無しさん
NGNGhttp://dir.yahoo.co.jp/Business_and_Economy/Business_to_Business/Internet_Services/Designers/
0467デフォルトの名無しさん
NGNGToolKit.getDefaultToolKit().getScreenSize();
0468デフォルトの名無しさん
NGNGjava.util.Date型の変数に格納したいのですがどうしたらいいでしょうか。
環境は、
SDK1.4
DB:Oracle9i
です。
すみませんが、お願いします。
0469デフォルトの名無しさん
NGNGではなくて、Java1.4からサポートされている
フルスクリーンでの描画を行いたいんですが、
やりかたがわからないんですの。
知ってる人いたら教えて下さい
0470デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNG↓の結果が、実行するたびに異なるのは何故なんでしょうか。
String s = new String("A");
System.out.println(s.getBytes());
0473デフォルトの名無しさん
NGNG0474デフォルトの名無しさん
NGNGデフォルトの文字エンコーディングに従ってバイトに
変換し、結果を新しいバイト配列に格納します。
戻り値:
結果のバイト配列
0475デフォルトの名無しさん
NGNGByte[]#toString()ってアドレス返すの?
0476デフォルトの名無しさん
NGNG指定した桁数まで前にゼロをくっつけた
文字列を取得したいのですが、どうやって
変換すればよいのでしょうか?
0477デフォルトの名無しさん
NGNGpublic static String intAttachZero(int number ,int place) {
StringBuffer it = new StringBuffer(Integer.toString(number));
for (int i = it.length(); i < place; i++) {
it.insert(0, '0');
}
return it.toString();
}
number = 1234
place = 6
あんまりいい方法ではないと思うけど
0478デフォルトの名無しさん
NGNGたとえば 6 桁になるまで 0 を詰めるのであれば俺は以下のようにやる。
int i = 1234;
String t = "000000" + i; // 6 個の "0" を付加
String s = t.substring(t.length() - 6); // 左から 6 桁とる
0479デフォルトの名無しさん
NGNGSystem.out.println (new byte[0]);
--------------
[B@e63e3d
--------------
0480デフォルトの名無しさん
NGNGObject クラスの toString メソッドは、オブジェクトの派生元のクラス名、アットマーク (@)、およびオブジェクトのハッシュコードの符号なし 16 進表現から構成される文字列を返します。つまり、このメソッドは次の値と等しい文字列を返します。
getClass().getName() + '@' + Integer.toHexString(hashCode())
0481デフォルトの名無しさん
NGNGまともなやり方:
import java.text.DecimalFormat;
...
DecimalFormat f_06d = new DecimalFormat ("000000");
System.out.println (f_06d.format (1234));
0482デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNG↓こういうやつとか?
http://www.mycgiserver.com/~swarsa/cal.jsp
↓このへんで探すとか
http://www.jars.com/classes/jresout.cgi?category=Programming+-+Widgets&language=Java&rating=All
0484482じゃないんだが
NGNGおー ありがとー 感謝
0485デフォルトの名無しさん
NGNGOracle9iではjava.sql.ResultSet#getDate()が使えないんでしょうか?
java.util.Dateじゃなくてjava.sql.Dateで返ってくるけど。
0486デフォルトの名無しさん
NGNGクラス Date
java.lang.Object
|
+--java.util.Date
|
+--java.sql.Date
0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNGタイーホ
0489デフォルトの名無しさん
NGNG/ ̄ ̄ ̄ ̄ ̄ ̄ ミ
/ ―――――-ミ
/ / / \|
| / (・) (・)|
(6 つ |
| ___ | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| /__/ / < んなわけねーだろ!
/ | /\ \__________
0491デフォルトの名無しさん
NGNG使用許諾嫁
0492デフォルトの名無しさん
NGNG英語嫁ねーよ
0493デフォルトの名無しさん
NGNGしね。
0494デフォルトの名無しさん
NGNG0495デフォルトの名無しさん
NGNGアプリできたら教えてくれよ
200ガバスまでならだすよ
0496デフォルトの名無しさん
NGNGクラス、自分で作ってもいいんだけど、
PerlでいうJcodeみたいな著名なライブラリは
公開されてない? 英数字に限らず、カタカナの
変換や文字コード判定までついてるとベストだね。
0497デフォルトの名無しさん
NGNG当方、C言語とC++の経験があります。
四六時中JAVAやるつもりです。
あと、オススメの書籍・WEBサイトなどがありましたらご紹介願います。
0498デフォルトの名無しさん
NGNG0499デフォルトの名無しさん
NGNGJAVAをなめるな!
最低1ヶ月取れ!
0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNGAWTとか使ったGUIぐらいまでいけそうな気がする
0503デフォルトの名無しさん
NGNG(1)言語仕様の違い、マナーの違いを覚える
(2)APIリファレンスに馴染む
ここを集中的にやればけっこうこなせるんじゃない?
0504497
NGNGアル程度いけるかもしれないみたいな感じだったのでとりあえず頑張ってみようと思います。
0505デフォルトの名無しさん
NGNGTextFieldのイベントを拾うようにしたつもりだが、TextField上で
Enterを押したときしかactionPerformedが呼ばれないような気がするです。
TextField上のいろいろなイベント(キー入力、フォーカス取得、フォーカス
喪失など)を得るにはどうしたらいいんだろう?
0506デフォルトの名無しさん
NGNG「addなんじゃらListener」の形のメソッドを全部調べればわかるぞ
0507デフォルトの名無しさん
NGNGキー入力
addActionListener(ActionListener l)
フォーカス取得
addFocusListener(FocusListener l)
テキスト変更
addTextListener(TextListener l)
多分こんな感じで 詳しくはAPI仕様書を読んでみて
0508468
NGNG>>486
レス遅れました。すみません。
getDate()ですか。これだとおっしゃる通りjava.sql.Dateで帰ってきますよね。
これをjava.util.Dateに変換できますか?
↑
これイマイチ使いにくい・・・けど使わないといけないんです。
あと、java.util.Dateに指定の日付をセットするにはlong使うしかないんですかね。
DateFormat(YYYY/MM/DD)のような感じでセットする方法がありそうなんですけど。。。
申し訳ないんですけど教えて下さい。
0509505
NGNGなるほど、ありがとう。これがawtのイベントモデルか。
implements ActionListener, TextListener, FocusListener, KeyListener
てな塩梅で必要な分だけリスナーをくっつけていくわけだね。
0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNGクラス java.util.Date から継承したメソッド after, before, clone,
compareTo, compareTo, equals, getDate, getDay, getMonth, getTime,
getTimezoneOffset, getYear, hashCode, parse, setDate, setMonth,
setYear, toGMTString, toLocaleString, UTC
■ このスレッドは過去ログ倉庫に格納されています