- 1 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 18:21:51 ]
- プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 pc11.2ch.net/hp/ Webプログラミング pc11.2ch.net/php/ をご利用下さい。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド116【歓迎】 pc11.2ch.net/test/read.cgi/tech/1213347130/ 次スレは>>990あたりで。 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/
- 139 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 10:52:28 ]
- どなたか>>52(>>99)をお願いします…
何か質問の仕方マズかったでしょうか
- 140 名前:デフォルトの名無しさん [2008/08/14(木) 12:35:08 ]
- やっぱ"Ruby"ですよ!
- 141 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 13:04:24 ]
- >>139
1.2以前でっていう限定がきつい。 古すぎてだれも答えられないと思う。
- 142 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 13:10:54 ]
- >>141
初心者の宿題出なければ、appletを作っているやつ自体いないのでは
- 143 名前:デフォルトの名無しさん [2008/08/14(木) 13:43:41 ]
- ■■みんなでサイトつくろうぜwwwwwwwwwwwwwwww■■
「お前ら一緒にサイト作ろうぜwwwwwwwwww」 「2ちゃん越えるサイト作ろうぜwwww」 「仕事無いんだ・・・・・・」 「やろうぜ!」 「みんなでサイトつくろうぜwwwwwwwwww」 gacco.o0o0.jp/ yutori.2ch.net/test/read.cgi/news4vip/1218673130/ ex14.vip2ch.com/test/read.cgi/part4vip/1218612197/ 興味沸いたらきてください! ======================!! 人材募集中 !!====================== ■プログラムを組んでくれる人 *サーバー側 言語はRubyかPerlの予定ですが、Perlが有力候補。 ・チャット 定期的にクライアントから着信があり、それに対して更新されたチャットのメッセージを返信する程度の能力。じゃなくて機能。 通信するときのフォーマットは未定。 ・ログイン・アカウント管理 ログイン認証、各アカウントの点数などの管理。データベースは未定。 ・お絵描き 未定。とりあえず鯖に負担がかからない程度にたまに画像を送信してあげるって感じで *クライアント側 はっきり言って俺もわからね。Ajaxだとかflashだとかjavaだとか。 ■機能提案(正しくは人材ではなく、意見?) 「こんな機能があったら良い!」「こうするともっと楽しくなる!」などの意見募集中。 挨拶とか気にせずスレにどんどん書き込んでくれればおk ■デザイン サイトのデザインを考えてくれる人、作ってくれる人募集中。 できればphotoshop illustrator使える人(プロジェクト共有しやすいので)
- 144 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 14:09:09 ]
- >>139
1) java.util.zip 使って外部アーカイブを読める自前の URLStreamHandler 作って、 URL.setURLStreamHandlerFactory してみるとか…… セキュリティマネージャに怒られてダメかもしれんが。 2) 1.1レベルでは互換性の高そうな標準API使う方法だと 1)のアプローチぐらいしかないので、それがダメなら 外部jar使うの諦めるか、互換性諦めるか、音出す事を諦めるか選ぶしかないと思うぞ。
- 145 名前:デフォルトの名無しさん [2008/08/14(木) 14:20:42 ]
- たぶんwebで公開のappletじゃないと思うけど、Class.getResouceAsInputStream()とかかな。
javaのデスクトップは、アプレットに適したライブラリが全くなかった他の技術に先を越されたけど、それを補うように進化してきたから、1.2以前だといろいろ出来るわけじゃないよ。
- 146 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 15:47:14 ]
- 回答ありがとうございます!
>>141,142,145 うーんやっぱ今時Appletでしかも1.1縛りなあたりがネックですよねぇ。 自分としては1.2以降のAPI使いたいんですが、MRJに対応しなくてはならない事情があるものでして。 無理そうなら環境によって動作切り替える方向で進めてみようと思います。 >>144 なるほど、URLStreamHandlerは今まで全く見てませんでした。 URL指定をメモリ内のByteArrayInputStreamにリダイレクトできればあるいは、のような感じですね。 光明が見えたような気がしてきました。この方向で色々トライしてみます。
- 147 名前:デフォルトの名無しさん [2008/08/14(木) 16:47:01 ]
- ライブラリは進化してきたといってるのに、自作しちゃう人がまた一人・・
- 148 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 16:54:55 ]
- 実行中にアプリから、あるインスタンスがどこから参照されているかを確認する術はあるでしょうか?
- 149 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:08:10 ]
- プロファイラで辿れない?
- 150 名前:デフォルトの名無しさん [2008/08/14(木) 17:28:42 ]
- このままライブラリ、というか、部品化が進んでいったら、
やがてプログラマが必要なくなるのではなかろうか? 部品をちょちょいと選択すればプログラムができてしまわないだろうか? そのとき、元プログラマの人は、どうやって食っていくのだろうか?
- 151 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:35:50 ]
- >>149
稼動サーバーでのみリークが発生するようで、アプリ内で何とかしろといわれているので、 JDTとか見たんですけどまったく理解できずに断念です。 やはりツールを使用しないと無理ですかね・・・
- 152 名前:デフォルトの名無しさん [2008/08/14(木) 17:50:19 ]
- 日頃の勉強と技術力しだいだなw
- 153 名前:デフォルトの名無しさん [2008/08/14(木) 18:06:26 ]
- Swingにベクタ画像(psとかeps)なんかを表示するものはありますか?
探しても見つからなかったので… ない場合、何らかの形でJPanel辺りに貼り付けて表示する方法はあるのでしょうか?
- 154 名前:デフォルトの名無しさん [2008/08/14(木) 18:07:30 ]
- 2chで質問するほどだなんて、ひでー職場だな。
- 155 名前:デフォルトの名無しさん [2008/08/14(木) 18:12:13 ]
- >>154
俺の職場、それしかなかったけど。。 色々掲示板みてると俺のいた職場がよほどくそだったことがよくわかる。 ここで揶揄されてることが俺の職場ではまさにデフォルトだった。 ろくに経験もないうちから研修(実務にまったく役に立たない)と称して独力(上司は単なる営業社員)でつくらされて 現場にいっても俺みたいなど素人がもう一人。。できるわけねえだろ。。
- 156 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 18:47:47 ]
- >>110
そりゃあソースコードが複雑で読みにくいという
- 157 名前:デフォルトの名無しさん [2008/08/14(木) 19:56:43 ]
- みんなそれでやってきたんだし、おまえの技術力が低いだけじゃね?
- 158 名前:デフォルトの名無しさん [2008/08/14(木) 19:58:43 ]
- >>155
おまえが糞だってことが良く分かった
- 159 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:09:30 ]
- 匿名メソッドのメリットがいまいち分からないのですが、
コーディング量が少し減ることと、 そのメソッドへ他からアクセスできないこと以外で 何かメリットってあるのでしょうか? よろしくお願いします。
- 160 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:10:15 ]
- 匿名メソッドなんてあったっけ?
- 161 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:15:04 ]
- 匿名クラスでした、すみません
- 162 名前:デフォルトの名無しさん [2008/08/14(木) 20:42:09 ]
- >>155
それは職場が糞なんじゃなくて、お前が糞なんじゃないの? なんかお前にはVBの方が向いてるような・・・
- 163 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:46:24 ]
- そういう話はマ板でどうぞ
- 164 名前:デフォルトの名無しさん [2008/08/14(木) 21:44:18 ]
- 相変わらず、糞だらけのスレですね(^^
- 165 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 22:40:07 ]
- >>159
・いちいち名前を考えずに済む ・普通の内部クラスは書く場所と使う場所が離れていてわかりにくい
- 166 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 23:53:02 ]
- fileChooserを利用して、選択したクラスファイルを取得したいのですが
File file = fileChooser.getSelectedFile(); Class cls = file.getClass(); これではうまくできません。 どのようにすれば良いか、どなたか教えてくれませんか?
- 167 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 00:32:35 ]
- クラスファイルをロードしたいってことか?
class MyClassLoader extends ClassLoader { public Class<?> loadClassfile(File file) throws いろいろ { byte[] data = new byte[(int)file.length()]; FileInputStream in = new FileInputStream(file); new DataInputStream(in).readFully(data); in.close(); Class<?> cls = defineClass(null, data, 0, data.length); resolveClass(cls); return cls; } } という独自クラスローダを作って、 Class<?> cls = new MyClassLoader().loadClassfile(file); でどうよ
- 168 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 00:50:39 ]
- >>167
クラスを取得してコンストラクタの分析などをリフレクションを用いて実現させたいんです。 File file = fileChooser.getSelectedFile(); Class cls = Class.forName(file.toString()); とかも試したんですけどうまくいきませんでした… なにぶん初心者なもので、根本的なことが間違ってる気がしてならないですorz
- 169 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 01:44:09 ]
- >>168
Class.forNameで渡すのはFileとかのクラスファイルの場所ではなくてクラス名そのもの。 クラスファイルをクラスパスの通っているところから参照できる場所に置いておけばクラス名から探してくれる。 クラス名がfoo.bar.Hogeならクラスパスの通っているところのサブディレクトリとしてfoo、その下にbarという ディレクトリがあって、その中にHoge.classがあればClass.forName("foo.bar.Hoge")でClassインスタンスが得られる。 クラスパスとは無関係にクラスをロードしたいのならURLClassLoaderを使うのが楽かも。 URLClassLoaderでぐぐればサンプルはいくらでもある。
- 170 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:09:03 ]
- >>167
readFully(data); を使うのは単に趣味ですか? read(data);とどう違うのかAPI Docs上から分からないんですがご存知でしょうか。
- 171 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:57:34 ]
- readは指定したバイト数全部を読み込むことは保証されていない
1バイトでも読めれば、読み込めたバイト数を返す readFullyは指定したバイト数全部読み込む 読み込めなければEOFException
- 172 名前:デフォルトの名無しさん [2008/08/15(金) 05:35:43 ]
- 秒妙な違いですけど、引数がFileなのでreadFullyはやらないほうがいいのでは?
間違ってはないけど、そこで使うのはDataInputの設計目的と微妙に違うような…
- 173 名前:デフォルトの名無しさん [2008/08/15(金) 09:19:21 ]
- いつも来ていた糞野郎は死んだか?
- 174 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 10:29:51 ]
- Thread.currentThread().getStackTrace()でスタック情報が取得できますが、引数インスタンスは取得できません。
引数インスタンスを取得する方法はあるでしょうか?
- 175 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 10:39:16 ]
- >>174
caller の引数に触りたいって話ならデバッガ使えば?
- 176 名前:デフォルトの名無しさん [2008/08/15(金) 14:05:49 ]
- 糞はドブに流れていってしまったが?
- 177 名前:デフォルトの名無しさん [2008/08/15(金) 19:18:11 ]
- テストについて質問です。
値を返すメソッドなら期待される値と実際の値を比較しますが、 値を返さないメソッドはどのようにテストをすればいいのでしょう。 DBに書き込むメソッドとかなら書き込まれた値をチェックできますが、 例えば以下のようなものです。 ・メールを送信するメソッド ・コンソールに文字を出力するメソッド
- 178 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 19:46:12 ]
- mainって普通プログラムの中でどういう部分を書くものなのでしょうか?
staticだから長いプログラムを書くと面倒になる部分が多いので mainでは自分のクラスのコンストラクタをnewするくらいにしか使わなくて、 そのコンストラクタの方で色々書くようにしているのですが、どうなんでしょう?
- 179 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 19:49:06 ]
- テストの基本は事前条件と事後条件が正しいことを確認すること
・メールを送信するメソッド メールを送信するクラスが正しく呼び出されたかをチェックする ・コンソールに文字を出力するメソッド これは難しいのでやらない やる場合は、特定の文字を出力するメソッドのテストとしておいて、 Writerはsetterで設定できるようにしておく どちらにせよコード中にSystem.outがあるのはウンコ
- 180 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 19:51:46 ]
- >178
いわゆるエントリポイントってやつだから、外部から起動する時に必要な範囲の処理を行うのが正しい なので、コンストラクタの方で色々やっているのは正しいよ。 mainに書くべき処理といえば、後はプログラムの実行引数のチェックやデフォルト値の設定。 バグで落ちたときにどうするかの処理とか、そんな感じだろうな
- 181 名前:177 mailto:sage [2008/08/15(金) 20:12:33 ]
- >>179
> メールを送信するクラスが正しく呼び出されたかをチェックする これ、もうちょい詳しく解説してくれるとうれしいです。 > Writerはsetterで設定できるようにしておく なるほど。それなら結構簡単にテストできそうですね。
- 182 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 20:22:42 ]
- >>177
テストアドレスに送信して、受信して、その内容をチェックすれば良いだけでは
- 183 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 21:40:47 ]
- >>181
方法は幾つかあるけど、インターフェイスをきってテスト用のオブジェクト(モック)でテストを実行する。 モックなんで実際にはメールを投げずに内部的なステータスを変化させるだけ テストとしてはステータスが変わった(目的のメソッドが実行された)ことを確認する 完全にJavaMailを使っている箇所などをテストする場合は面倒だけど、EasyMockなんかを利用するしかない。 単体テストで再帰的にやるならばこんな感じ。 後は本当に動くかどうかは開発中は動作確認レベルで済ませてシステムテストでやる
- 184 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 22:20:58 ]
- ネットワークプログラミングを勉強中なのですが、
サーバ側 public static void main(String[] args){ ServerSocket ss=new ServerSocket(7777); Socket sock=ss.accept(); BufferedReader br=new BufferedReader(new InputStreamReader(sock.getInputStream())); System.out.println(br.readLine()); br.close(); sock.close(); ss.close(); } クライアント側 public static void main(String[] args){ Socket sock=new Sock(コンピュータ名,7777); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(sock.getOutputStream)); bw.write(br.readLine()); bw.close(); br.close(); sock.close(); } この二つを実行するとサーバ側で何も表示されません。 クライアント側のBufferedReaderの件を全部消してbw.write("hoge"); とかに直すと、ちゃんとサーバ側のPCでhogeと表示されるのですが、 何がいけないのでしょうか?
- 185 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 22:23:09 ]
- closeしちゃダメだろ
- 186 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 23:50:37 ]
- JNIを使ってJavaの引数にクラスを指定し、
C側でクラス内のString型のフィールドにデータを入れようと以下のようなプログラムを書きました。 そしたら半角カナに濁点の文字が文字化けしてしまいました。 こういった場合どのように対処したらいいのでしょうか、ご教授ください! C側↓ JNIEXPORT jlong JNICALL Java_Test(JNIEnv *env, jclass, jobject obj){ jclass cs = env->GetObjectClass(obj); jfieldID fid = env->GetFieldID(cs,"strParam" , "Ljava/lang/String;"); env->SetObjectField(obj, fid, env->NewStringUTF("サブキー"); return 0; } java側↓ HogeClass hoge = new HogeClass(); Main.Test(hoge); System.out.println( new String( hoge.strParam.getBytes("iso-8859-1"), "MS932") );
- 187 名前:もう泣きそう mailto:sage [2008/08/16(土) 01:30:05 ]
- UNIXの環境変数受け渡しについて
教えて下さい。 シェルスクリプトで設定した環境変数は、JAVA(jarのクラス)側で 読み取れると思いますが、その逆は可能なのでしょうか? 以下を想定しています。 もし可能なら、メソッド名とかを教えて下さい。 ----------------------------------------- #!/bin/bash export AAA=a.txt java classA -xm=512m・・・ echo KEKKA1=$KEKKA1 ←これが可能でしょうか? echo KEKKA2=$KEKKA2 ←これが可能でしょうか? ----------------------------------------- public void class cassA { String aaa = system.getenv("AAA"); String kekka1 = "data1"; ←これを返したいのです。 String kekka2 = "data2"; ←これを返したいのです。 (設定するロジックというかメソッド名・・・) } JAVA側の変数をシェルで読み取れれば良いのですが、 もし可能なら、メソッド名とか簡単でもいいのでサンプル例等を 教えて下さい。 もう泣きそうです・・(;-;)
- 188 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 01:38:01 ]
- 何か良くわからんけどファイルに書き出せば良いじゃん
でシェルで読み込めば
- 189 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 02:03:52 ]
- >>187
通常、子プロセスは親プロセスの環境変数を変えられない。
- 190 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 05:21:40 ]
- JDBC での Oracle との連携を勉強しようとしていたら
Oracle のサイトに Java関連の Tips が大量に合って助かったのですが 逆に .NET でのサンプルが皆無だったので気になりました Oracle と Java って何か深い繋がりがあるのでしょうか? それとも Oracle が Java を一方的に支持してる感じ?
- 191 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 07:40:40 ]
- >>186
半角かな以外は化けないか確認した? 半角英数はともかく、漢字は化けると思うが。 > env->SetObjectField(obj, fid, env->NewStringUTF("サブキー"); これ UTF-8 渡してるのか? VisualC++ とかなら env->NewString(L"サブキー", 5) とかした方が。 > new String( hoge.strParam.getBytes("iso-8859-1"), "MS932") これやると確実に化けるんじゃね?
- 192 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 08:49:08 ]
- >186
JNI を使ってJavaクラスのパラメータをいじる方法は良く分からんですが、 半角カナというのは、どの文字符号化方式で定義されているものを使うのですかね。 String 内部は UTF-16 (char) 配列です。
- 193 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 09:43:02 ]
- a
- 194 名前:デフォルトの名無しさん [2008/08/16(土) 11:03:24 ]
- interfaceは多重に継承できるんですけど、もしスーパー・インタフェイスと
メソッド名やシグニチャがかぶったら継承できないんですか。 特に他の人が使ったインタフェイスで、 戻り値がかぶったり、戻り値がlongとかだったらどうするのでしょうか。 どうやって回避するんでしょうか?
- 195 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 11:27:09 ]
- >>194
シグニチャ同じで戻り値型違うのは無理。 シグニチャ同じで戻り値型同じなら実装できるけど、 各interface が別々の振る舞いを期待してる場合は無理。 メソッド名付ける時点で被らないように気をつけるぐらいしかないね。
- 196 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 11:30:12 ]
- >>194
インターフェースはそもそもシグネチャしか定義しない(定数定義もあるけどここでは無視)ので、多重定義になっても問題はない。 何故なら、同じ名前、同じ引数、同じ返り値を持っている、ということ以外の情報は定義されないから。 実装側で、同じシグネチャなのに異なるインターフェースでアクセスされると違う動作をしなければならない、ということであれば、それは設計が間違っている。
- 197 名前:デフォルトの名無しさん [2008/08/16(土) 11:38:24 ]
- >>196
そういう問題じゃなくて、AppendableとStringBuffer.appendのような話をしてるんですけど… それもjdk1.4以前だとどうやって回避してたんでしょうか。
- 198 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 11:41:59 ]
- > AppendableとStringBuffer.appendのような話
このケースって、なんか問題あんの?
- 199 名前:デフォルトの名無しさん [2008/08/16(土) 11:48:01 ]
- jdk1.4以前
- 200 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 11:49:53 ]
- 1.4以前は Appendableないから問題ないよ。
- 201 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 12:02:47 ]
- >>197
何が疑問なのかわからん。その例ってインターフェースの多重継承とは何の関係もないじゃん。 一応書いとくけど、インターフェースの多重継承って、 interfece SuperInterfaceA { int hoge(int x); } interface SuperInterfaceB { int hoge(int x); } interface SubInterface extends SuperInterfaceA, SuperInterfaceB {} というものだぞ。
- 202 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 12:25:23 ]
- >194
こんなのでどうさ。 ttp://www.y-adagio.com/public/standards/tr_javalang2/interfaces.doc.html#40247
- 203 名前:デフォルトの名無しさん [2008/08/16(土) 12:50:00 ]
- classと同じでinterfaceをextends出来るけど、継承」の意味が少し違うようですね。
本当は、自作のインタフェイス interface My_interface{ My_interface append(My_interface); } 例えば引数assertチェックありで、 class StringBufferも引数My_interfaceに参加させたいんですけど、 class StringBufferは当然他人が作ったライブラリなので、My_interfaceを実装できません。 今のところifで分岐してるんですけど、こういうときは、どうやれば自作インタフェイスにくわえられるんでしょうか。
- 204 名前:デフォルトの名無しさん [2008/08/16(土) 12:52:20 ]
- 例えば引数assertチェックありとかの実装で。
- 205 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 12:58:17 ]
- アダプタパターン
- 206 名前:デフォルトの名無しさん [2008/08/16(土) 13:45:32 ]
- アダプタよりもデコレータ・パタンかな
- 207 名前:デフォルトの名無しさん [2008/08/16(土) 13:47:28 ]
- >>200
例えばで出してみたんですけど、分かりませんか? 自作したインタフェイスの話しなんですけど・・・
- 208 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 13:53:32 ]
- なんかでラップすりゃいいじゃん
- 209 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 14:15:28 ]
- >>203
まず、Javaでは原則として既存のクラスやインターフェースに手を加えることはできない。 該当のクラスがfinalでなければ、サブクラスを作ってそこでimplementsする手はある。 該当のクラスがfinalであれば、自作のクラスでラップするしかない。
- 210 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 16:38:08 ]
- Listのキャストはエレメントを個別にキャストするしかありませんか?
- 211 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 16:38:53 ]
- generics 使えば?
- 212 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 16:47:37 ]
- どうするんですか?
(List<MyClass>)list のようなキャストが失敗します。
- 213 名前:デフォルトの名無しさん [2008/08/16(土) 16:54:48 ]
- 自作したインタフェイスを使ってライブラリ作ってんるんですけど、
そこに他人が作ったクラスも参加させるのはどうするんでしょうか? とういことなんですけど、これだけじゃ何言ってるかわからないと思いませんか。
- 214 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 16:57:22 ]
- >>213
共有ライブラリとかプラグインとかリフレクションの世界のことかと思った。
- 215 名前:デフォルトの名無しさん [2008/08/16(土) 18:33:05 ]
- class MyBig extends BigDecimal {
MyBig(String v){super(v);} public MyBig abs(){return this;} } BigDecima.abs()をオーバライドしたいのですが、1.4以前ではどうやるんでしょうか。 negate()と同じく、メソッド名に意味があるので名前を変更できないので何かよい方法はないでしょうか?
- 216 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 18:54:57 ]
- eclipse の JDT を使ってみようと思ってるんですが,eclipse 上で,
import org.eclipse.jdt.core.dom.*; などど打っても org.eclipse が見つかりませんというエラーが出てしまいます. どうすれば解決できますか?
- 217 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 19:09:49 ]
- >>215
1.4 だと covariant return typeが使えないから public BigDecimal abs()で我慢。 もしくはextends BigDecimalを諦める。
- 218 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 19:43:52 ]
- finalで参照型変数を宣言した場合、
それはどこを参照するかを固定するという認識で合ってますでしょうか? その場合、参照先のインスタンスの属性をsetter等を用いて変更されないようにするというのは 不可能なのでしょうか?
- 219 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 20:09:15 ]
- >>213
SPIのことじゃない?
- 220 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 20:37:33 ]
- >>218
Immutable な拡張クラス作って属性変更できないようにするとか 不可能じゃないけど変更されないようにできる便利な言語機能はない。
- 221 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 20:40:07 ]
- >>218
setterを作らない
- 222 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 21:36:26 ]
- Java を使って組み込み系のソフトウェア(携帯アプリ除く)を作成することはできますか?
- 223 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 21:48:51 ]
- CDC JavaTVetc
- 224 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 23:41:22 ]
- >>216
自己解決しました. プロジェクトをプラグインプロジェクトに変更して,プラグイン依存関係を解決したらO.K.でした.
- 225 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 00:25:07 ]
- >212
キャストは動的。ジェネリクスは静的かつ、型情報は消滅。 >218 変更させたくないインスタンスは委譲でも使って隠匿すべし。
- 226 名前:94 mailto:sage [2008/08/17(日) 01:12:31 ]
- 94です。だいぶ前で皆さん忘れておられると思いますが、この擦れの方のおかげであの質問は解決しました。
遅くなりましたが、応えてくださった97さんや99さんなど、皆さんありがとうございます。 ・・・すいません。それだけです。
- 227 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 01:27:37 ]
- どうせならどのように解決したかを書いてくれると、後から読む人のためになって良い
- 228 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 12:55:58 ]
- スタンドアロンのJavaアプリで、HTMLのクリッカブルマップのようなことは、可能でしょうか?
具体的には、フォーム上に日本地図の画像があって、 各県をクリックすると、ポップアップウィンドウが表示される、 みたいな感じなんですが。
- 229 名前:デフォルトの名無しさん [2008/08/17(日) 13:00:47 ]
- 非常に簡単
- 230 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 19:59:57 ]
- このスレには親切な人が多いですね。たまにマ版と間違えてるような変な人もいますが・・・・
- 231 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 20:34:20 ]
- マと何か区別しなきゃいけないのか?
- 232 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 21:23:11 ]
- >>231
愚痴を書き込むスレではないだろ
- 233 名前:186 mailto:sage [2008/08/17(日) 21:28:01 ]
- なんとか解決したっぽいです。
初心者なので、UNICODEとUTF8の違いとかいまいちピンときませんが、 イメージは「UNICODEがIDとしたらUTF8はIDをUTF8という形式で表現したデータ」ということでしょうか? 間違ってましたら指摘してくださいorz で、UTF8での受け渡しを止めてUNICODEでの受け渡しをするようにしました C側↓ JNIEXPORT jlong JNICALL Java_Test(JNIEnv *env, jclass, jobject obj){ jclass cs = env->GetObjectClass(obj); jfieldID fid = env->GetFieldID(cs,"strParam" , "Ljava/lang/String;"); const char* cc = "サブキー"; int unicodeLength = MultiByteToWideChar(CP_ACP, 0, cc, strlen(cc), NULL, 0); WCHAR* unicodeBuffer = new WCHAR[unicodeLength]; MultiByteToWideChar(CP_ACP, 0, messagetmp, strlen(messagetmp), unicodeBuffer, unicodeLength); jstring strj = env->NewString((jchar *)unicodeBuffer,unicodeLength); env->SetObjectField(obj, fidsData, strj); return 0; } java側↓ HogeClass hoge = new HogeClass(); Main.Test(hoge); System.out.println( hoge.strParam ); ちゃんと表示できてるみたいです。 しばらくはまってたのですが、「sizeof」で文字サイズを取得してたのですが、 マルチバイト?では使えなくて「MultiByteToWideChar」を使用しないといけないということですね。今までjava言語しか触ったことないのでしたorz もっと簡単な方法ありましたら是非ご教授くださいm(__)m
- 234 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 21:41:51 ]
- >>233
wchar_t wcstr[] = L"サブキー"; jstring strj = env->NewString((jchar *)wcstr, sizeof(wcstr) / sizeof(wchar_t)); Windows環境っぽいので wchar_t が UTF-16 きめうち。 テストしてないので動かなかったらごめん。 あと new WCHAR[unicodeLength] したのに delete しなくていいんか?
- 235 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:02:02 ]
- >>233
いくら夏とはいえ、ちょっと見にコンパイルを通らないコードを貼るやつって、何がしたいんだろうな・・・
- 236 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:12:35 ]
- 初心者ってのはそういうもんさ
- 237 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:24:06 ]
- おい、おまいらJavaでアップロードされたファイルのヘッダ検査を行なうjarはないですか?
教えてください。お願いします。
- 238 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:27:44 ]
- 調子のんな
- 239 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:33:02 ]
- やっぱC#スレの方がいいわ
|

|