【初心者】Java質問・相談スレッド116【歓迎】at TECH
【初心者】Java質問・相談スレッド116【歓迎】 - 暇つぶし2ch185:デフォルトの名無しさん
08/06/16 00:33:32
BufferedReaderを習ってないとすると、
まだDataInputStreamのreadLine()で指導している先生だったりするとか、
そのくらいしか思い浮かばない

186:デフォルトの名無しさん
08/06/16 00:36:56
>>185
あれ…
その方法は学んだっかな…

何かもっとこうシンプルだったような…

187:デフォルトの名無しさん
08/06/16 00:39:26
あとは、例の「IO」みたいなユーティリティークラスを用意していて、
それを専ら使うように指導しているとか

188:デフォルトの名無しさん
08/06/16 00:43:25
スキャナーを利用したインプット表示でした

とりあえず手元にあるパソコンでは
スキャナー表示のものを動かすことができませんので
手を加えたものを後日別の場所で動かしてみます

189:デフォルトの名無しさん
08/06/16 00:50:34
1.5導入かw
素で使ったことなかったYO

190:デフォルトの名無しさん
08/06/16 00:54:54
jdkのバージョンを5.0以上にすれば良いだけじゃないの?

191:デフォルトの名無しさん
08/06/16 00:55:14
>>174
>System.out.println(n + " is a prime number.");
>System.out.println(n + " is not a prime number.");

192:デフォルトの名無しさん
08/06/16 00:58:30
>>190
jcpadはそれで大丈夫なのかなと

>>191


193:デフォルトの名無しさん
08/06/16 00:59:05
## : prime
## : not prime
ならおkかも

194:デフォルトの名無しさん
08/06/16 01:05:14
>>193
どのような記述をすればそうなるでしょうか?

195:デフォルトの名無しさん
08/06/16 01:06:52
いや、>>191は単に>>174の英語が変ってことでしょ
>>193は形容詞版

196:デフォルトの名無しさん
08/06/16 01:13:35
あれっ?
なんだかだんだんおかしな方向に…

表記はこうするように言われているのでこの通りにしております
問題は数字をJCpadのコマンド画面で直接打てないことで…

197:デフォルトの名無しさん
08/06/16 01:19:51
コマンドプロンプトから実行する方法は知らないってことね

198:デフォルトの名無しさん
08/06/16 01:26:08
>>191
いや、わかった。すまん。
URLリンク(www.mlab.im.dendai.ac.jp)

199:デフォルトの名無しさん
08/06/16 01:26:29
>>197
そうです、はい

素数の式が絡んでくるともう…

200:デフォルトの名無しさん
08/06/16 01:28:06
>>198
それのことを言っていたんですかね?
確かに参考にしましたが、うまくできず

201:デフォルトの名無しさん
08/06/16 02:30:09
これじゃ学生が可哀想だ。
教師か教科書か教え方が悪い。

202:デフォルトの名無しさん
08/06/16 03:33:10
>>33 >>158
よく見たらこれと一緒だな
スレリンク(tech板:46番)

203:デフォルトの名無しさん
08/06/16 09:09:44
最近の大学生って頭悪いよね
情報学科卒業してきた子より
高卒で趣味でunixいじってたような子の方ができたりする

204:デフォルトの名無しさん
08/06/16 09:35:23
現在、ポーカーのプログラムを作っています
TreeMapを使っているのに、ソートされないのは
やはりソースに問題がありますよね?

205:デフォルトの名無しさん
08/06/16 11:10:15
最近の情報学科って大したこと教えてないからな。
その上こんなスレに来る奴なんてデフォで講義ろくに聞いてない&屑講師なんだから当たり前だろ。
そりゃ趣味でlinuxいじってた方が強いわ。

206:デフォルトの名無しさん
08/06/16 11:25:17
習うより何とかってことで纏め

207:デフォルトの名無しさん
08/06/16 11:50:09
創価大に情報科なんかあったか?

208:デフォルトの名無しさん
08/06/16 12:03:20
ルートディレクトリを与えるとそこからツリーを生成するプログラムを作ったのですが、
Linuxと違ってWinではルートが複数あり、また環境によって存在するドライブレターも違うので
全ルートを与えるためにはA~Zまで試してみるくらいしか方法が思いつきません。
今現在存在するルートディレクトリ(C:\,D:\…)を取得する方法ってあるでしょうか?


209:デフォルトの名無しさん
08/06/16 12:13:54
>>208
File.listRoots()

210:デフォルトの名無しさん
08/06/16 13:13:08
>>209
四苦八苦していたのにこんな便利なstaticメソッドがあったのですか…。
即レスありがとうございます!!

211:デフォルトの名無しさん
08/06/16 14:50:40
JNIで外部DLLを呼び出しているんですが
そのDLLでEXCEPTION_ACCESS_VIOLATION (0xc0000005)
を発生した場合、Java側ではtry catchをしても
落ちてしまいます。
なんとか例外としてキャッチできないものでしょうか?


212:デフォルトの名無しさん
08/06/16 15:04:19
C側で例外をキャッチする必要があるのでは
でJavaの例外として投げ直す

213:デフォルトの名無しさん
08/06/16 17:21:26
>>212
ありがとうございます。
CでDLLのEXCEPTION_ACCESS_VIOLATION をキャッチできるか
聞いてきます。

214:デフォルトの名無しさん
08/06/16 17:47:14
ArrayListではなく、エクスプローラみたいなイメージのツリーの機能を実装したコレクションクラスや
それに近いクラスはあるでしょうか。JDK1.6です。JDKでなくても、その他ライブラリであれば合わせて教えていただけないでしょうか。

215:デフォルトの名無しさん
08/06/16 18:23:05
文字列「C:\」を「C:」に変換したくて
String path="C:\\";
path.replaceAll("\\","");
とやったのですが、java.util.regex.PatternSyntaxExceptionが出ました。
バックスラッシュを表したくてエスケープさせて指定したつもりが、
どこがおかしいのでしょうか?

216:デフォルトの名無しさん
08/06/16 18:23:55
>>214
JTree

217:デフォルトの名無しさん
08/06/16 18:33:24
>>216
ありがとうございます。
これってawt用ですが、できれば親と子を持つという概念だけのコレクションクラスはないですかね。

218:デフォルトの名無しさん
08/06/16 18:40:02
>>215 [\\\\]->[\\]

219:デフォルトの名無しさん
08/06/16 18:41:49
>>217
それくらい自分で作れ

220:デフォルトの名無しさん
08/06/16 19:00:37
>>217
コレクションでツリーなんて良くあることなのに、高級言語の1.6にしてもないなんてね。そのくせ余計なクラスばかり多い

221:デフォルトの名無しさん
08/06/16 19:21:52
>>218
ありがとうございます。
しかし何故\\\\になるのでしょうか?
replaceを使うと普通に\\で大丈夫なのに。

222:デフォルトの名無しさん
08/06/16 19:25:16
>>217
ない。

URLリンク(bugs.sun.com)
evaluationによれば、Doug Lea御大がC++で実装した経験から、
汎用かつ軽量でパフォーマンスに優れた実装を作るのが難しいからだってさ。

223:デフォルトの名無しさん
08/06/16 19:26:34
>>221
URLリンク(java.sun.com)
> String replace(CharSequence target, CharSequence replacement)
> リテラルターゲットシーケンスに一致するこの文字列の部分文字列を、指定されたリテラル置換シーケンスに置き換えます。
> String replaceAll(String regex, String replacement)
> 指定された正規表現に一致する、この文字列の各部分文字列に対し、指定された置換を実行します。


224:デフォルトの名無しさん
08/06/16 19:46:06
>>223
ここから考えると、
\を表す文字列で表したい→\\
\を正規表現で表したい→\\\\
ってことですよね。

なんか考えているうちにこんがらがってきましたが、
コンパイル時のエスケープと正規表現のエスケープで二重にエスケープする
必要があるってことでしょうか??


225:224
08/06/16 19:47:09
× \を表す文字列で
○  \を文字列で

226:デフォルトの名無しさん
08/06/16 19:57:44
>>224
URLリンク(java.sun.com)
>たとえば、文字列リテラル "\b" は、正規表現と解釈されると、バックスペース 1 文字とマッチされます。 しかし、"\\b" は単語境界とマッチされます。

227:デフォルトの名無しさん
08/06/16 20:29:46
JListでListCellRendererを使いアイコンをセットする際に、
システムで設定されているアイコン(htmlならIEやFxのアイコンのような)を表示したいのですが、
Javaではこういう情報を取得する方法はあるでしょうか?


228:デフォルトの名無しさん
08/06/16 20:38:39
知識不足によりはまっているのでご教授願えればと思います。

現在、Apache + Tomcat の環境で、SSLによるWebアプリケーションを構築しています。
その中でAppletも併用しているのですが、このAppletに証明書を付けて配布したいと考えています(AppletからWebサービスを呼び出す)

Apacheにopensslで作成したキーを登録し、WebアプリケーションやAppletのダウンロードのSSL化はできました。
ところが、そこで作成した証明書をkeytool で登録し、AppletのJarに付与しようとするとエラーとなります(認証チェインがルート証明書に届いていない云々)

そこでkeytoolでキーと証明書を作ればと思ったのですが、keytoolでは証明書はエクスポートできるのですが、鍵は抽出できません。

本番環境では正式なCAを通した鍵と証明書があるのですが、開発環境でオレオレ認証でApacheと署名Jarを同時に行うにはどうすれば良いでしょうか?

229:218
08/06/16 21:39:29
String r;
r = path.replaceAll("[\\\\]",""); // Compile -> "[\\]"
r = path.replaceAll("\\\\",""); // Compile -> "\\"
r = path.replace("\\",""); // Compile -> "\"
コンパイルすると、2つ重なる¥が1つの¥になるので、
逆に1つの¥を表すためには¥を2つ重ねる必要がある。(C/C++も同じ。)
その上で、正規表現の¥自身を表すときは¥を2つ重ねる必要がある。
正規表現で"\"や"[\]"はおかしい。
コンパイル後、String内の¥¥bは2バイト、一方¥bは1バイト文字になる。

230:デフォルトの名無しさん
08/06/16 21:52:01
>>227
JFileChooser で使ってるサイズしか取れないけど。
javax.swing.filechooser.FileSystemView#getSystemIcon(java.io.File)

231:デフォルトの名無しさん
08/06/16 22:06:06
>>230
こんなのあったのですか、ありがとうございます!

232:デフォルトの名無しさん
08/06/16 23:29:30
>>228
オレオレCAの証明書をJREのルート証明書群に追加すればいいんでない?
(jre/lib/security/cacerts)


233:デフォルトの名無しさん
08/06/17 14:06:02
Javaで開発する際に、プロジェクトの構成というか、ディレクトリの整理作法がわからないんだけど
たとえばこんなのとかので
trunk
 +-/build/build.xml              #ビルドに関するもろもろ
 +-/src/net/2ch/pc11/Hoge.java     #ソース
 +-/tests/net/2ch/pc11/HogeTest.java #テスト用
参考になるウェブサイトとか公開されているsvnで秀逸なのを教えてくんろ

234:デフォルトの名無しさん
08/06/17 14:39:42
apacheでは参考にならないと?

235:デフォルトの名無しさん
08/06/17 16:03:25
nextした数を保持するiteratorクラスってありますか?

236:デフォルトの名無しさん
08/06/17 16:16:02
それくらい作れよ

237:デフォルトの名無しさん
08/06/17 17:15:21
>>235
つListIterator

238:デフォルトの名無しさん
08/06/17 17:50:28
一般には>>236かな。反復回数の実績をカプセル化したいんでしょ。

239:デフォルトの名無しさん
08/06/17 19:06:42
Hibernateで、エンティティとして定義しているクラスに継承をしているものがあるとクエリ結果がダブってuniqueRequestでエラーになる、、
ビューを定義していたから楽しようとして落とし穴にはまった、、

継承せずにベタに書くと解決しました。

継承したままうまくクエリする方法ってないでしょうか。

240:デフォルトの名無しさん
08/06/17 19:41:06
音楽を鳴らしたいが、シンボルが見つかりませんというエラーがでるんだ。
何が必要なのかおしえてくれ~~~

play("./burst.wav");//爆発音声

241:デフォルトの名無しさん
08/06/17 20:07:08
>>240
参考資料をよく読むんだッ

242:デフォルトの名無しさん
08/06/17 20:10:43
int x = 2345;
int y = 1585;

xの百の位の3とyの十の位の8を
抜き出して演算処理したいのですが
どのようにしたらいいですか?心優しい方助言をば・・

初心者でごめんですm(_ _)m

243:デフォルトの名無しさん
08/06/17 20:13:36
>>242
123わる10は、12あまり3

244:デフォルトの名無しさん
08/06/17 20:36:27
>>240
アプレットのplayメソッドに渡すのは文字列で表されたURLじゃなくて、
「URL」というクラスのオブジェクト。

play getCodeBase
でぐぐるとわかるよ。

245:デフォルトの名無しさん
08/06/17 20:45:16
>>123わる10は、12あまり3

わかりそうで・・・わかりませんOrz
具体的にコードで操作するにはどうすれば int x = 2345; の
百の位の 3 抜き取れますか?

タイトルに・・初心者大歓迎って書いてあったから・・ごめんなさい

246:デフォルトの名無しさん
08/06/17 20:51:37
ComponentのcreateImageで戻ってきたImageをBufferedImageを変更したいのですが、
どうすればよいでしょうか?

247:デフォルトの名無しさん
08/06/17 20:53:40
Tomcat 6上で動くアプリを開発してます。
サーブレットのユニットテストを書こうと思っていて、
ちょっと調べた所HttpUnitとCactusってのが有名っぽいので
どちらかを使おうと思ってます。、

それぞれの長所短所とか教えて下さい。

248:デフォルトの名無しさん
08/06/17 20:55:14
>>245-246
こういうのって良くあるTIPだと思うんですけど、そういうサイトとご存知ないですか?

249:デフォルトの名無しさん
08/06/17 20:56:46
>>245
x=String.valueOf(2345);
x.charAt(2);


250:デフォルトの名無しさん
08/06/17 21:02:15
>>248
すみません。いろいろ調べたのですが。InputStream見たいにデコレータ形式だと思ってjavadocも見たのですが、
コンストラクタにもなくて。

251:デフォルトの名無しさん
08/06/17 21:02:28
>>246
PixelGrabberでピクセル値とってきてBufferedImageに書き込むとかは?

252:245
08/06/17 21:12:56
どこかこういうTIPが載っているサイトありましたら教えてください
初めてiアプリ自作してるのでわからないことだらけ・・ですOrz

253:デフォルトの名無しさん
08/06/17 21:16:17
>>245
整数の商、整数の剰余の出し方はさすがにわからないとおかしいと思ったんだけど。。
123 / 10 == 12
(123 / 10) % 2 == 2
123の十の位は2。

254:デフォルトの名無しさん
08/06/17 21:16:38
やべ、何だ % 2 ってw
% 10 ね

255:デフォルトの名無しさん
08/06/17 21:19:51
>>245
いえ、大歓迎とまでは

256:デフォルトの名無しさん
08/06/17 21:27:47
初心者っつーか
ちと、質問がある 誰か教えてくださいまし

俺はインターネットファイルを取り出して
自分のPCにディレクトリごとにフォルダを作ってコピーし
オフライン時にこのように模擬サイトを作って見るんだが

javaアプレットが入ったサイトだと、そのファイルを取り出せずに
仕方なくjavaなしのオフラインサイトを見ることになるんだが
どうやったら、javaアプレットを動作させる模擬サイトを作れるか教えてくださいまし


257:デフォルトの名無しさん
08/06/17 21:36:30
>>233
Pragmatic Starter Kitのどれか(たぶんVersion ControlかAutomation)に載っ
てるのがひとつの参考にはなると思う。

訳は↓
達人プログラマー―ソフトウェア開発に不可欠な基礎知識 バージョン管理/ユニットテスト/自動化
URLリンク(www.amazon.jp)

まぁ立ち読みしてみてくれい。


258:245
08/06/17 21:45:12
>>253
ありがとぅ><

>>255
大歓迎・・は、してなかったですねOrz



259:デフォルトの名無しさん
08/06/17 21:46:05
>>256
アプレットがどのファイルを使うか、というのは基本的にHTML上のリンクとして現れないから、
アプレットの中身を分析するとか、そういうツールを調達するとかしないとダメな場合が多いと思われ。

260:デフォルトの名無しさん
08/06/17 21:48:43
いや、JREのキャッシュから復元できたりするのか?やったことないけど

261:256
08/06/17 21:57:17
>>259>>260
どもども、すいませんです
プログラミングとしての質問でなくて肩身狭いっす><
java自体仕組みが分かってないので 専門の方にはバカっぽい質問でしょうが、

その、俺が復元したいサイトはjavaアプレットを使って中学数学を教えているサイトでして、
そのアプレットが動作しないと、文章や画像があってもサイトとしての意味がないものに
なってしまいます><

ソースを見るとどうやら、拡張子がclassのファイルがjavaアプレットだと思うのですが(それって当たってます?)
どうも、キャッシュにないです><

どうにか復元したいので、教えてください;;

262:デフォルトの名無しさん
08/06/17 22:06:27
Appletはオフラインよりオンライン(ネット上のアプリ)を想定してるので、素直につなげていた方がいいですよ。
出来なくも無いですけど、アレコレやるの面倒でしょ
何なら作者に連絡取るとか

263:デフォルトの名無しさん
08/06/17 22:07:49
>>261
>javaアプレットを使って中学数学を教えているサイト

ちょっと設定に無理がある

264:デフォルトの名無しさん
08/06/17 22:12:01
参照渡しの概念って厳密にはどんな定義なんですか?
今まで自分は配列を参照する変数やオブジェクトを参照変数を引数で渡すことが
参照渡しだと思ってたのに、Cの本なんかを読むとどうやら違うみたいなので。

265:デフォルトの名無しさん
08/06/17 22:56:08
厳密な定義などはないけど、C的にはメモリ上のアドレスの値を渡すこと

266:デフォルトの名無しさん
08/06/17 23:00:31
javaでいう参照渡しとC++でいう参照渡しは別モノ

267:デフォルトの名無しさん
08/06/17 23:05:41
>>258
オレの答えたcharAtじゃご不満なわけか

268:デフォルトの名無しさん
08/06/17 23:11:32
>>265
Cに参照渡しはない

269:デフォルトの名無しさん
08/06/17 23:12:58
FORTRANの引数やC++の参照型の引数は純粋な参照渡し。
Cのはポインタ渡し。

270:デフォルトの名無しさん
08/06/17 23:13:14
用語は違うがあるけど?
Cやったこと無いくせにに、適当なこと言う言うな

271:デフォルトの名無しさん
08/06/17 23:14:51
Cのはポインタの値渡し。
参照渡し使ってる言語をちゃんと知ってるなら
ポインタ渡しが参照渡しなんて口が裂けても言えないはず。

272:デフォルトの名無しさん
08/06/17 23:16:28
>>265

273:デフォルトの名無しさん
08/06/17 23:18:07
>>267
たぶんこのjavaスレは呪われてんだろ

274:デフォルトの名無しさん
08/06/17 23:18:23
多重継承とか参照渡しとか何時まで釣れるんだよw

275:256
08/06/17 23:18:54
>>262,263
やっぱりサイト主に連絡しないとですか…
復元してるなんて、、言って大丈夫なのか心配です、、

いい方法があったら、教えてください。 
場違いを感じてきたので、ロムりながら勉強します。


アプレットは
作図の手順をクリックすると順番に線が現れるやつとか
比例反比例のグラフが点が多くなってゆき最後に線になる奴とか

なんかフラッシュでもできそうなやつです…


276:デフォルトの名無しさん
08/06/17 23:20:20
>>264
「変数」に関する参照渡し(参照呼出し)はできない、と言っていい。
URLリンク(javafaq.jp)

Cの場合、「参照による変数渡し」のような文法的概念はないけど、
変数への参照を明示的に渡すことによってほぼ同等のことができるという感じか。

277:デフォルトの名無しさん
08/06/17 23:21:30
>>275
初めの質問のときとだいぶ態度が違うけど、何で?

278:デフォルトの名無しさん
08/06/17 23:22:54
>>272
仮引数の値をコピーして実引数に渡すのが値渡し。
仮引数に対する操作が(可能なら)実引数に及ぶのが参照渡し。
厳密に定義されています。

ポインタ渡しは単に値をコピーするだけなのであくまで値渡し。
参照渡しのエミュレートでしかありません。
残念でした。

279:256
08/06/17 23:27:14
前スレ読まず、ただ教えてくれ~の気持ちが強くて
ちょっと強気に言ってました。。。  気に障ったらごめんなさい。。

すげぇ場違いだったと今反省してます;;
オフラインで使用可能な方法がありましたら、よろしくです。
id表示ありませんがすべて自分ですのでよろしく。


280:デフォルトの名無しさん
08/06/17 23:30:36
>>278
はぁ?

281:デフォルトの名無しさん
08/06/17 23:33:42
>>279
十分教えてもらったのにまだ教えてもらいたいなどと考えてるし、
たぶん君が願っている事はもうかなわないと思う。

282:デフォルトの名無しさん
08/06/17 23:34:08
まあなんていうか、「厳密には参照渡しじゃねーよ」というものも、
「実質的にはそーじゃねーか」とか言われてるね、みたいな空気を感じるあたりで手を打たないかw

283:256
08/06/17 23:38:02
279
あ、前スレじゃなく このスレを読まず 
いきなり質問してしまいましたが、
レス入れていただいた方ありがとうございます。

では、<(__)> 

284:デフォルトの名無しさん
08/06/17 23:38:06
そうやって甘やかすから
void foo(int *p) { p = malloc(sizeof(int)); }

int *p;
foo(p);
free(p);
とかして、ポインタに代入して参照渡しにしたのに
何かエラーになりますとか言う奴が現れるんだろ・・・。

285:デフォルトの名無しさん
08/06/17 23:41:55
Cをちゃんと勉強してからジャヴァやるもんじゃないですか?普通は

286:デフォルトの名無しさん
08/06/17 23:42:05
>>256
はいさようなら

287:デフォルトの名無しさん
08/06/17 23:43:36
Java の引数も値渡しだな。

288:デフォルトの名無しさん
08/06/17 23:45:20
>>283
個人的な意見で申し訳ないが、なんかアパマン・ショップの物件案内の社員(DQN)と似てるんだがw
やっぱりDQNはどの分野でもDQNであって、決してそのようなDQNに期待してはいけないのだろうかといつも悩んでいるんだけど、誰か教えてくれませんか?

289:264
08/06/17 23:47:24
たくさんのレスありがとうございます。
まだモヤモヤしてるけど雰囲気は掴めました。
CもJavaも基本は値渡しだけどポインタとか使っちゃうと似た感じにできちゃうけど
でもそれは厳密には参照渡しじゃないぜ
って感じですね
面白そうだから純粋な参照渡しを仕様としてる言語を勉強してみます

290:デフォルトの名無しさん
08/06/17 23:47:30
何か質問者も回答者も頭おかしいのがちらほら増え始めたな
>>288はそんな質問ここでして何がしたいんだ

291:デフォルトの名無しさん
08/06/17 23:48:23
毎度のことながら値渡し/参照渡しで揉める理由が分からん

C, Javaには参照渡しはない。C++, C#にはある。

というだけの話しだろう

292:デフォルトの名無しさん
08/06/17 23:48:40
>>289
正確に理解してくれて嬉しいぜ。

293:デフォルトの名無しさん
08/06/17 23:49:50
>>289
というか、あなたの理解は根本的に間違ってますね。
少しCをかじったことあるみたいですけど・・

294:デフォルトの名無しさん
08/06/17 23:50:52
>>293
^^;

295:256
08/06/17 23:52:20
・・・すいません。失礼します。

296:デフォルトの名無しさん
08/06/17 23:55:05
>>256
>>286
おいでくさいまし

297:デフォルトの名無しさん
08/06/17 23:55:22
C++でもint& b = a;を「参照」という言葉で表現するという罠があるし、
まあいいんじゃねそんな世界

298:デフォルトの名無しさん
08/06/17 23:57:04
値渡しor参照渡しってのは、呼び元に影響を与えるかどうかだ。
int[] data = new data[5];
この変数dataには実体ではなく配列データが保存されたメモリを指す
だからf(data)と渡してf関数の中でdataをいじれば呼び元の配列に影響を及ぼす
よって参照渡しである。
OK?

299:デフォルトの名無しさん
08/06/17 23:57:09
いや、それは参照で合ってるだろ。
b に対する操作が a に及ぶんだから。

300:デフォルトの名無しさん
08/06/17 23:58:20
>>298
data の参照先に影響を及ぼすが
data には影響を及ぼさない。
仮引数をいくらいじろうが、data の中身が急に int[10] に変わることは無い。
よって値渡し。
OK?

301:デフォルトの名無しさん
08/06/17 23:59:32
>>298
引数に指定した変数そのものを指すのが参照渡し
実体がどうとかじゃなくて,そういう風に見せる言語機能

302:デフォルトの名無しさん
08/06/18 00:00:39
>>300
例えば関数の中でdata[0] = 1 と代入したら
呼び元のdataに入ってる配列の値も変わるんですが。
意味分かってる?

303:デフォルトの名無しさん
08/06/18 00:00:50
>>256みたいな人をここでバカにすると、今度は>>256みたいな人が他のところでjava技術者を馬鹿にするから、そういう事はやっちゃダメ!!

304:デフォルトの名無しさん
08/06/18 00:01:40
298 = 馬鹿
ってことぐらいしか分からない

305:デフォルトの名無しさん
08/06/18 00:01:46
>>302
分かってるに決まってるだろwww

306:デフォルトの名無しさん
08/06/18 00:02:12
盛り上がって参りました(棒読み)

>>299
あれは参照渡しに使えるけど、参照そのものではない

307:デフォルトの名無しさん
08/06/18 00:02:47
もうツマンネー自演はいいから

308:デフォルトの名無しさん
08/06/18 00:04:13
>>288
をこのスレの方々はどう考えてるのか教えていただけないでしょうか・・

309:デフォルトの名無しさん
08/06/18 00:05:04
void 参照渡し(ref int[] data) { data = new int[] { 4, 5 }; }

int[] a = { 1, 2, 3 };
参照渡し(ref a);
出力(a);//{4, 5}が出力される

C#だとこんな感じ

310:デフォルトの名無しさん
08/06/18 00:05:33
ポインタの話と同様、
void foo(int[] hoge) { hoge = new int[10]; }

int[] data = new int[5];
foo(data);
とやっても data が参照してるのは new int[5] のままであって new int[10] ではない。
Java の引数が本当に参照渡しなら、data は new int[10] を指すようになる。

311:256
08/06/18 00:08:05
一応、ロムしてましたが、

アプレットはオフラインはできない
という答えを受け取って消えます。

さようなら。

312:デフォルトの名無しさん
08/06/18 00:08:13
>>309>>310 の差をきちんと理解し実感していれば
Java が参照渡しなんて口が裂けても言えなくなる。
「Java が参照渡し」 という言葉は初心者にいらぬ誤解を与える邪悪な言葉だ。

313:デフォルトの名無しさん
08/06/18 00:09:48
いつの時代でも、Cのポインタを理解するのは鬼門ってこと
char*manko=&tinpo

314:デフォルトの名無しさん
08/06/18 00:12:21
>>310
それってdataはnew int[10]になるんじゃないの?

315:デフォルトの名無しさん
08/06/18 00:12:59
>>312
じゃ、何渡しがいいかな?

316:デフォルトの名無しさん
08/06/18 00:13:34
「オブジェクトの参照値渡し」とか?w

317:デフォルトの名無しさん
08/06/18 00:14:07
>>315
ポインタ渡しでいいよ。
ぬるぽとか言うくらいだし。

318:デフォルトの名無しさん
08/06/18 00:14:30
一応、ポインタを全快に理解してないと、GCを実装できないんだが・・

319:デフォルトの名無しさん
08/06/18 00:14:48
お前らが頭いいのは分かったが
何言ってんのかがさっぱり分からん!

320:デフォルトの名無しさん
08/06/18 00:15:48
>>314
ならないよ

321:デフォルトの名無しさん
08/06/18 00:15:54
>>316
あまり厳密に突っ込みを入れたくは無いだが、それは「インスタンスの」じゃないの?

322:デフォルトの名無しさん
08/06/18 00:17:34
>>314 みたいなのが出てくるから
Java は参照渡しとか言うのは邪悪としか言いようが無いんだよな。

323:デフォルトの名無しさん
08/06/18 00:19:12
Javaやる前にCを勉強してください。それも鬼門とか超難関といわれる「ポインタ」(と参照)についてしっかりやっておかないとついてこれなくなります。

324:デフォルトの名無しさん
08/06/18 00:20:57
>>315
参照の値渡しでいいんじゃね?

325:デフォルトの名無しさん
08/06/18 00:21:17
Cに参照はないし
別にポインタは難関でもなんでもない。

326:デフォルトの名無しさん
08/06/18 00:23:45
アパマンの奴はDQNしかない。「とーちゃん。派遣面接受かったみたいだよー」のあの派遣会社のCMと同程度のDQNしかいない。

327:デフォルトの名無しさん
08/06/18 00:33:46
>>326
なにいってんだ?同じ人間だし、確かに変なやつだとしてもな、どこかにいいところがあるだろ。
そういうところを互いに評価しないといけないんじゃないのか?

328:デフォルトの名無しさん
08/06/18 00:38:13
>>321
URLリンク(java.sun.com)
> An object is a class instance or an array.

だから「オブジェクト」のほうが正確なんじゃないかな?

329:デフォルトの名無しさん
08/06/18 00:44:08
いや、Java的にはね

330:デフォルトの名無しさん
08/06/18 01:00:22
>>328
たぶん君もアパマンのDQNと同等と思ったけどね、そう噛み付きなさんなw

331:デフォルトの名無しさん
08/06/18 01:03:15
「アパマン」「DQN」がマイブームの香具師がいるな

332:デフォルトの名無しさん
08/06/18 01:03:53
オレ的解釈だと、C的にはオブジェクトの」、Java的にはインスタンスの」かな。
オブジェクトの単語自体があいまだからなんともいえないけど。>>328の引用は単なる君が権威主義(英語とかSUNとか)が好きなだけじゃないのかな?

333:デフォルトの名無しさん
08/06/18 01:05:57
よくわからんw

334:デフォルトの名無しさん
08/06/18 01:09:26
>>328は権威にあこがれるDQNってことじゃないの?

335:デフォルトの名無しさん
08/06/18 01:17:09
>>328,331,333
食わず嫌いはいけませんね。
そうなってしまったのは、あなたの人格が歪んでるからでしょうか?

336:デフォルトの名無しさん
08/06/18 01:55:47
権威も何も、Sunが作った言語なんだから、
Sunの見解を参照するのは当然でしょ。

337:デフォルトの名無しさん
08/06/18 02:26:01
英語の文脈で使われるobjectと日本語の文脈で使われるオブジェクトは違うでしょ
javaを使うならJLSは当然第一に参考にすべき文書だけど日本語に訳する時に直訳はいかんよ

338:デフォルトの名無しさん
08/06/18 06:28:49
>>268 >Cに参照渡しはない
>>270 >用語は違うがあるけど?
Javaでいう参照渡しはC/C++でいうアドレス渡し

ところで、
>>270 >Cやったこと無いくせにに、適当なこと言う言うな
??

339:デフォルトの名無しさん
08/06/18 09:11:17
toStringで任意の型のオブジェクトを文字列に変換することができますが、
逆に、Type型の値と文字列からオブジェクトを作成するような枠組みは無いのでしょうか?

よろしくお願いします。

340:デフォルトの名無しさん
08/06/18 10:00:02
>>339
意味がよく判らないんだけど、
 "int", "1" => int で 1
 "float", "1" => float で 1.0
みたいな感じ?
で、それは既存の組み込み型だけでいいの?

341:デフォルトの名無しさん
08/06/18 10:32:46
sprintf() の 逆なら atoi()
static Integer Integer.valueOf(String s)
<指定された String の値を保持する Integer オブジェクトを返します。>
Type型と文字列から、じゃなくて? 表現は正確に。

342:デフォルトの名無しさん
08/06/18 11:56:44
Cのscanf()に相当する関数が欲しいって話かな。

343:デフォルトの名無しさん
08/06/18 12:15:23
スクリプト系言語のeval相当のものが欲しいようにも読める

344:デフォルトの名無しさん
08/06/18 12:34:41
そこでJson-libですよ。

345:339
08/06/18 13:50:08
説明がわかりにくくてすみません。

Object a = fromString(java.util.Date.class,"2008/1/1");
System.out.println(a.getClass()); // class java.util.Date
System.out.println(a); // Tue Jan 01 00:00:00 JST 2008

Object b = fromString(Integer.class,"10");
System.out.println(b.getClass()); // class java.lang.Integer
System.out.println(b); // 10

上のfromStringのように、文字列と変換後の型を指定すると、
文字列を指定した型のオブジェクトに変換できるような物が欲しいのです。

.NETのTypeConverterのように、
既存の組み込み型や標準ライブラリで定義された型に対して使用でき、
さらに、自分で作成したクラスに対する動作も指定できるような枠組みがあればよいのですが
このようなものはありませんでしょうか?

346:デフォルトの名無しさん
08/06/18 13:51:30
JDK6でrhinoでevalすればいいだろ

347:346
08/06/18 13:53:03
>>343-344あてね

348:デフォルトの名無しさん
08/06/18 13:57:57
Class.forName()

349:デフォルトの名無しさん
08/06/18 13:59:30
>>339
「toStringの逆」という変換が一般には無理だとわかった上で?
具体例をどうぞ

350:デフォルトの名無しさん
08/06/18 13:59:51
やべ遅れたw

351:デフォルトの名無しさん
08/06/18 14:32:23
リフレクションで出来そうじゃない?

352:デフォルトの名無しさん
08/06/18 14:35:23
よくわからんけど、インターフェースが統一されないとやなのか

353:デフォルトの名無しさん
08/06/18 15:20:13
いやいや、単なるC#宙でしょ

354:デフォルトの名無しさん
08/06/18 16:00:56
自分で作ればいいんじゃない
Object fromString(Class c, String s) {
if (c == Date.class) return DateFormat.getInstance().parse(s);
if (c == Integer.class) return Integer.parseInt(s);
if (c == Float.class) return Float.parseFloat(s);
以下略
}

355:デフォルトの名無しさん
08/06/18 16:52:10
toStringが返す文字列からオブジェクトを復元することは汎用的には無理

356:デフォルトの名無しさん
08/06/18 17:42:53
Object#toString()ってサブクラスの実装依存じゃなかったっけ?

357:デフォルトの名無しさん
08/06/18 18:41:28
うん。というか、
Object#toString()がオーバーライドされていないと、
クラス名とハッシュ値しか返ってこないから、
インスタンスの内部状態を知ることができない。

358:デフォルトの名無しさん
08/06/18 18:58:04
URLリンク(msdn.microsoft.com)(VS.80).aspx
Windows フォームのプログラミング
方法 : 型コンバータを実装する

ここなんかを見ると、GUI要素のプロパティをいじる時に文字列を経由したりするよねっていう感じの
用途がかいま見える

359:デフォルトの名無しさん
08/06/18 19:02:03
TypeConverterってそういうもんだよ
実装したらメタデータとして型やプロパティに指定しといてリフレクションで取ってくるの

360:デフォルトの名無しさん
08/06/18 19:39:10
これは邪道かな(あとPnutsですまん)
pe = class java.beans.PropertyEditorManager::findEditor(Integer.TYPE)

pe.setAsText("100")
println(pe.value - 1) // 99

pe.value = 200
println("200".equals(pe.getAsText())) // true

361:デフォルトの名無しさん
08/06/18 20:27:12
だからそれならrhinioで出来るって

362:デフォルトの名無しさん
08/06/18 20:36:38
このスレでは、String.charAtやClass.forNameじゃ不満なのか?
もう答えるつもりないし、どうでもいいけど

363:デフォルトの名無しさん
08/06/18 20:45:44
>>361
ぐぐったら前立腺マッサージャーが出たYO

364:デフォルトの名無しさん
08/06/18 21:44:13
>>362
Class.forNameは外していると思うけど、String.charAtはまあまあかな。桁数チェックにもなるし。

365:デフォルトの名無しさん
08/06/18 22:09:43
だれだ、おまえ?

366:デフォルトの名無しさん
08/06/18 22:50:54
>>364
ここではあなたの評価を気にしながら質問に答えなければいけないのですか?

367:デフォルトの名無しさん
08/06/18 23:14:03
>>366
どこからそういう疑問が湧いたのですか?

368:デフォルトの名無しさん
08/06/19 00:12:43
C言語でいう
int data = 3;
printf("%3d",data);
のように右寄せするメソッドご存じないでしょうか?

369:デフォルトの名無しさん
08/06/19 00:17:55
>>368
System.out.print(String.format("%3d", data));


370:デフォルトの名無しさん
08/06/19 00:18:33
>>368
System.out.printf

371:デフォルトの名無しさん
08/06/19 00:18:54
または
System.out.format("%3d", data);


372:デフォルトの名無しさん
08/06/19 00:19:10
ごめん,かぶった.

373:デフォルトの名無しさん
08/06/19 00:19:32
System.out.printf();

改行は ¥n ではなく %n を使う。


374:デフォルトの名無しさん
08/06/19 00:29:23
>>369-373
迅速にお答えいただきありがとうございました。

375:デフォルトの名無しさん
08/06/19 01:13:23
1.4系だったという落ちですね。わかります。

376:デフォルトの名無しさん
08/06/19 02:40:00
質問です
開発は windowsXP+Eclipseで行い、jarファイルを生成
実行は Solaris10 にて行いました
実行時にエラーとして
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Layout
at Cardget.<clinit>(Cardget.java:40)
と出てしまったのですが、ドコから調べればよいかヒントなど
ありませんでしょうか

実行方法は $ java -cp zgss_core.jar Cardget としました


377:デフォルトの名無しさん
08/06/19 02:59:14
log4jをクラスパスに通せ

378:デフォルトの名無しさん
08/06/19 04:00:33
うむ

379:デフォルトの名無しさん
08/06/19 04:29:15
if(test[s]<test[t]){
int tmp=test[t];
test[t]=test[s];
test[s]=tmp;
}

if(test[s]<test[t]){
int tmp=test[s];
test[s]=test[t];
test[t]=tmp;
}
はどっちを書いてもいいの?


380:デフォルトの名無しさん
08/06/19 04:35:39
どこに

381:デフォルトの名無しさん
08/06/19 08:01:31
そのソースだけだと、どっちでもいいとしか言えんがなw

382:デフォルトの名無しさん
08/06/19 09:17:15
TraverseEventってなに?
マウスイベントとか、キーイベントで、ででてくるんだけど、
イマイチ英和辞典の訳じゃ掴めない。

trav・erse ━ vt. 横切る, 横断する; 通過する; あちこち動く;

383:デフォルトの名無しさん
08/06/19 11:25:27
質問させてください。
Mapの値を降順に表示したいんです。現在下のような記述をしてるのですが、
どうも最善な気がしません。これよりマシな方法をごぞんじなら教えてください。
Mapのインスタンス名はmapです。

Set<Integer> ts = new TreeSet<Integer>();
ts.addAll(map.values());

List<Integer> order = new ArrayList<Integer>();
order.addAll(ts);

for(int i= order.size()-1; i>=0; i--){
int num = order.get(i);

for(Entry<String, Integer> en:map.entrySet()){
String key = en.getKey();
Integer value = en.getValue();
if(value == num){
StringBuilder sb = new StringBuilder("Products: ");
sb.append(key).append(": Number: ").append(value);
System.out.println(sb.toString());
}
}
}

384:デフォルトの名無しさん
08/06/19 11:32:59
TreeSetの値を出力すればいいのではなくて?

385:デフォルトの名無しさん
08/06/19 11:54:42
>>383
値の降順にソートするコンパレータを設定したTreeMapにmapをputAllして、
そのTreeMapから順番に取り出せばいいんじゃない?

386:デフォルトの名無しさん
08/06/19 11:58:04
あ、キーの値じゃなくて値か
じゃあ385はダメだね

387:385
08/06/19 12:08:03
Entryの値の方で降順にソートするコンパレータを設定したTreeSet<Map.Entry<String, Integer>>に
map.entrySet()をaddAllして、そのTreeSetから順番に取り出せばいいのかな。

388:デフォルトの名無しさん
08/06/19 12:11:05
配列に全部突っ込んでからソートした方が速そう

389:デフォルトの名無しさん
08/06/19 12:23:26
おおまかにはこんな感じかな?
Set<Map.Entry<String, Integer>> set = new TreeSet<Map.Entry<String, Integer>>(
new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
set.addAll(map.entrySet());
for (Map.Entry<String, Integer> e : set) {
System.out.println("Products: " + e.getKey() + ": Number: " + e.getValue());
}

StringBuilderを使っているところはインスタンスをループの外で生成するのなら別だけど、
わざわざそう書かなくても+で結合する書き方でもコンパイラがそんな感じにしてくれる。

>>388
それもいいかも

390:デフォルトの名無しさん
08/06/19 12:34:23
どうもgenericsの記述量に負けてあまりシンプルって感じに見えないや。
流れは単にnew TreeSetしてaddAllだけなのに。

391:デフォルトの名無しさん
08/06/19 17:34:42
JavaSE6からjavax.tools.Compilerを使えばJREだけでJavaのコンパイルできるってこと?

392:デフォルトの名無しさん
08/06/19 18:05:52
>>391
JRE には tools.jar が無いから無理のはず。

393:デフォルトの名無しさん
08/06/19 18:18:21
JREにtools.jarは入っていないけれど、
tools.jarをJREといっしょに再配布するのは構わなかったはずなので、
あとはtools.jarにパスが通っていればおk

394:393
08/06/19 18:23:07
自分の作成した動的コンパイル機能付きのプログラムを配布する場合、という意味ね
自分の環境だけでいいのなら素直にJDKをインストール

395:デフォルトの名無しさん
08/06/19 18:24:52
なるほど、tools.jarの再配布条件を調べてみます
ありが㌧

396:デフォルトの名無しさん
08/06/19 22:17:29
質問です
jarを実行したところエラーが出まして
Can't find resource for bundle java.util.PropertyResourceBundle, key table.section.pointup9
というエラーが出たのですが、ドコから調べていいのかわからず。
設定ファイルを読んで処理をするjarなのですが・・


397:デフォルトの名無しさん
08/06/19 22:43:48
久しぶりにJavaのお仕事…
既存のWebシステムに一画面追加するだけのお仕事だったのですが、
SIとSLを作成し、ローカルでコンパイルし、
作ったクラスファイルをUNIXサーバにFTPで配置したのに404

WebOTXを何度落とし上げしても404・・・

ずっと悩んでしまったんだけど、
これってもしやasant deployを忘れてるってことでおkですか?

398:デフォルトの名無しさん
08/06/19 22:52:14
>>396
その設定ファイルが正しく読めてない予感

399:396
08/06/19 23:00:58
pointup9
という項目を追加して読もうとしてるので、そこがおかしいみたいです・・ね
javaのmain定義部分をもう少し見直してみます

400:デフォルトの名無しさん
08/06/19 23:26:37
初心者です
歌詞検索みたいなのってJavaでつくることは可能ですか?

401:デフォルトの名無しさん
08/06/19 23:34:30
データがあればね

402:デフォルトの名無しさん
08/06/20 00:00:07
>>383
もっと素直に
ArrayList<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>(){
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o1.getValue().compareTo(o2.getValue()) * -1;
}
});

for (Map.Entry<String, Integer> entry : list) {
System.out.printf("Products: %s, Number: %s%n", entry.getKey(), entry.getValue());
}


403:デフォルトの名無しさん
08/06/20 00:23:02
> * -1;

初めて見た

404:デフォルトの名無しさん
08/06/20 01:26:42
そんな奴には Integer.MIN_VALUE を渡すことにしている。

405:デフォルトの名無しさん
08/06/20 02:11:20
すいません、質問させて下さい。

classpath上に存在するクラスの中から、特定のアノテーションが付いているものだけを抽出する方法を調べています。

Javaで実行時のclasspath上に存在する全クラスを取得する方法ってないのでしょうか?
もしくは特定のpackage以下に存在する全クラスでも良いのですが・・・。

ClassLoaderを自作するサンプルとかにあるみたいに、ディレクトリ以下の.classを直接読みに行く他ないのでしょうか・・・。


406:デフォルトの名無しさん
08/06/20 02:24:26
ええ本教えて

407:デフォルトの名無しさん
08/06/20 03:29:59
>>397

JavaとWebOTXについて言うと
WebOTXを使ったWebアプリ開発についての書籍とかサイトって
なかなかないんだよな・・・

WebOTXユーザって相当少ないのかな・・・
事例とか簡単入門とかもあんまり見当たらないよな・・・

だれか詳しい人、何か参考になる情報あれば、ぜひ

408:デフォルトの名無しさん
08/06/20 03:34:46
>>407
君が詳しい人になって本を書くかサイトを立ち上げてほしいな。

409:デフォルトの名無しさん
08/06/20 03:40:18
3ヶ月間職業訓練校行った人
授業の内容どんなの?

410:デフォルトの名無しさん
08/06/20 06:35:48
>>389
>>402
383です。おそくなりましたが、カキコをありがとうございます。
教えていただいたComperatorインタフェースの使い方、大変参考になりました!
まさに知りたい事だったように思います。

411:デフォルトの名無しさん
08/06/20 06:44:01
スペル間違い、Comparatorでした。

412:デフォルトの名無しさん
08/06/20 09:03:29
私は今年javaを本格的に学び始めた者ですが質問です。

interface Frame {
String Frame = "Alumi";
String getFrame();
}
上記の内容のinterfaceがあるとき実際にはどのような記述と同意であるか?というものです。

いろいろ調べてはみたのですが問題の定義もなんだかイマイチ曖昧で分かりません。
どなたか分かる方教えていただけませんか?

413:デフォルトの名無しさん
08/06/20 09:21:18
っinterface 暗黙 修飾子


414:デフォルトの名無しさん
08/06/20 09:29:50
>>413
abstract?

415:デフォルトの名無しさん
08/06/20 11:49:00
DecimalFormat exFormat2 = new DecimalFormat("###,###,###,##0.##");
System.out.println("hoge=" + exFormat2.format(99.999));

上記ソースで実行結果が99.99となるような切捨てにしたいのですが
どうしたらよいでしょうか?


416:デフォルトの名無しさん
08/06/20 11:51:54
>>405
クラスパスを自力で辿って、すべてのクラスの名前を (ファイル名等から) 知る
Class#forName で、その名前のクラスをロードする
Class#getAnnotation で、ロードしたクラスのアノテーションを調べる

417:デフォルトの名無しさん
08/06/20 12:35:18
>>415
1.6以降なら exFormat2.setRoundingMode(RoundingMode.DOWN) とかすりゃ切捨てできるけど

418:デフォルトの名無しさん
08/06/20 13:33:21
すいません、ここでJSPの質問をしても大丈夫でしょうか?

419:デフォルトの名無しさん
08/06/20 13:34:09
>>417
さんくす。1.5なので100かけて100で割ることにしました。

420:デフォルトの名無しさん
08/06/20 14:58:24
BufferedImageに読み込んだ画像の背景を透明にしたいのですが
どのような方法がいいでしょうか?


421:デフォルトの名無しさん
08/06/20 15:11:56
最初から背景が透明な画像 (透過GIFやアルファ付きPNG) を読み込むのが一番簡単だと思うよ
それじゃだめな理由があるなら、説明よろしく

422:デフォルトの名無しさん
08/06/20 15:53:16
>>420
何をもって背景にするかによって方法はいろいろあるけど、
一番お手軽で処理が速いのは>>421の言う通り最初から透明化したリソースを用意すること。
動的に透過色を変更したいとかの要求があるなら、イメージフィルタを通す方法がある。
例えば真っ白を背景色として透明にするなら、白のピクセルのアルファを0にするイメージフィルタを介してやる。
おおまかにはこんな感じで。
Image transimage = Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(
sourceimage.getSource(),
new RGBImageFilter() {
public int filterRGB(int x, int y, int rgb) {
return (rgb & 0x00ffffff) == 0x00ffffff ? rgb & 0x00ffffff : rgb;
}
}
));
これは背景色が固定された処理だけど、
背景にしたい色を与えて動的に背景色を変更するようにフィルタを実装すればそれなりにいろいろと。

423:420
08/06/20 16:14:09
>>421>>422
返信ありがとうございます

できれば最初から透過された物を使用するのがベストだと思うのですが
アプリケーションを実行する時にpngに関する事でエラーを起こしてしまい
うまくいきません

これは画像の作り方が悪いのでしょうか?

424:デフォルトの名無しさん
08/06/20 16:16:54
>>423
少なくともエラーは晒せ
できればソースも
それともエスパーによる回答希望?

425:420
08/06/20 16:41:26
本当にすいません
画像を作り直したら成功しました
ありがとうございました

426:デフォルトの名無しさん
08/06/20 17:12:38
whileで永久ループしているプログラムに外から停止命令を
出したいのですが、こういう場合はソケット通信が適切でしょうか?
ほかに良い方法がありましたら教えてください。

427:デフォルトの名無しさん
08/06/20 17:15:40
普通はThreadじゃないの?

428:デフォルトの名無しさん
08/06/20 17:15:48
っスレッド

429:426
08/06/20 17:23:55
>>427,428
ありがとうございます。

たとえば
>java hoge.class
で実行して
>java hogestop.class
を実行するとhoge.classのプログラムが終了するような感じにしたいです。

このような場合ですがスレッドはどのように使えますでしょうか?

430:デフォルトの名無しさん
08/06/20 17:45:17
なんだ、小出し野郎か。

431:デフォルトの名無しさん
08/06/20 18:11:37
staticなflagを作って外部から書き換える

432:デフォルトの名無しさん
08/06/20 18:32:00
canvas3D上にpaintでfillRectを用いて描画したいと思っているのですが、
最前面に表示されません。何かいい方法ご存知でしたら教えて下さい。
よろしくお願いします。


433:デフォルトの名無しさん
08/06/21 01:53:26
javaアプリケーションからjarファイル(他のjavaアプリ)を起動することはできるのでしょうか?
方法をご存知でしたら教えていただきたいです。よろしくお願いします。

434:デフォルトの名無しさん
08/06/21 02:03:41
>>433
クラスパスが通ってれば、String[] argsを用意して
com.example.app.FooApplication.main(args);
を呼ぶだけ。

・クラスパスが通ってない場合
・mainのクラス名がわからない場合
などなどあるけど、まあ基本は↑ので。


435:デフォルトの名無しさん
08/06/21 08:58:12
>>434
ありがとうございます。試してみたところ起動できました。
今は同一プロジェクト内のクラスのmainを複数起動してみたのですが、
クラスパスが通っていれば他プロジェクトのmainも起動できるのでしょうか。
一つ問題なのが、この方法だとおそらく複数のアプリが同一プロセスで
実行されている気がするのですが、別々のプロセスで実行することは可能でしょうか。
答えていただければ幸いです。

436:デフォルトの名無しさん
08/06/21 09:21:18
ProcessBuilderとかRuntime(1.4まで)とか

Javaではサブプロセスと縁を切ることはできないんだっけ?


437:デフォルトの名無しさん
08/06/21 10:45:23
独習JAVAで勉強してるんですが
スレッドの章でRunnableを実装したクラスで
MyThread4(String str, long msec) {
this.str = str;
this.msec = msec;
new Thread(this).start();
}
と言う部分があり、その中の
new Thread(this).start();
の部分が意味がいまいちわかりません。
質問があいまいですいませんが
どなたか説明していただけないでしょうか。
お願いします。

438:デフォルトの名無しさん
08/06/21 10:51:36
// 自分自身をスレッドで実行されるコードとして、スレッドを作成する
Thread t = new Thread(this);
// スレッドを開始する
t.start();


439:デフォルトの名無しさん
08/06/21 11:23:58
MouseMotionListenerをimplementsしないと
・mouseDragged(MouseEvent e)
・mouseMoved(MouseEvent e)
が実装できないのはなぜでしょうか。
インターフェイスはあくまで、指定したメソッドの
実装を義務付けるみたいな感じで習ったので。

440:デフォルトの名無しさん
08/06/21 11:33:21
>>439
MouseMotionListenerをimplementせずに
・mouseDragged(MouseEvent e)
・mouseMoved(MouseEvent e)
を実装しても一向に構わないが、
MouseMotionListenerを実装したとは認識されない。ただそんだけ。

441:デフォルトの名無しさん
08/06/21 11:52:57
っダックタイピング

442:デフォルトの名無しさん
08/06/21 11:54:33
ダックタイピングか強い静的タイピングの違いだな。

443:デフォルトの名無しさん
08/06/21 11:55:16
ち、リロードしてなかったぜ

444:439
08/06/21 12:14:32
>>440
ありがとうございます。
addMouseMotionListner(this)によって渡すものが
MouseMotionListenerクラスのオブジェクトでないと
いけないのだと解釈しました。

445:439
08/06/21 12:17:13
ああ、何かおかしい

クラスというよりは、MouseMotionListenerという型で
受け取れる形だから、継承または実装されたオブジェクト
でないと、うまいこといかないってことなのかなぁ

446:439
08/06/21 12:19:27
MouseMotionListenerというインターフェイスを
実装してないとダメなわけですね!

447:デフォルトの名無しさん
08/06/21 14:29:59
ダックタイピング だとしてもimplementsやらないと結局機能しないんじゃないの?

448:デフォルトの名無しさん
08/06/21 14:57:52
ダックタイピングは持ってるメソッドで所属するクラス(オブジェクト)決めてるからそんな心配ナス

449:デフォルトの名無しさん
08/06/21 15:34:40
リスナーの呼び出し元はどうするの。
addMouseListener()とかしないでどうやってcallするの?

450: [―{}@{}@{}-] デフォルトの名無しさん
08/06/21 15:41:54
ホスト名(FQDN)が正当かどうか評価する方法はないでしょうか。
どうも . が付いても InetAddress#getByName 等では引けてしまうようで、

1. www.example.com  : 当然 OK
2. www.example.com. : OK
3. www.example.com.. : これは NG

といった状態になってしまいます。
或いは RFC 的に 2 も OK(1 と同じ場所を指す)と言う事なのでしょうか。
であると逆に、InetAddress#getByName で引ければ正当と判断して良い?

451:デフォルトの名無しさん
08/06/21 15:52:46
. つけてもブラウザで見れるね

452:デフォルトの名無しさん
08/06/21 16:25:32
>>449
addはもちろんするが型がなんであるかは関係ない。
普通はメソッドテーブルを検索して対応するメソッドがあれば呼ぶ。
この場合だとコールバック関数名が一致するオブジェクトをadd(これがcallee側になる)しといてcaller側が必要なコールバック関数を呼び出せるかどうか試してみる。
それに成功すればcallee側のコールバック関数を呼び出す。
ダックタイピング採用してるruby辺りをいじるのが早くて分かりやすい。

453:デフォルトの名無しさん
08/06/21 16:27:39
implements MouseListener
じゃないと、型が違うからadd出来ないと思うが?

454:デフォルトの名無しさん
08/06/21 16:37:11
おまえはまずダックタイピングを理解しろ

455:デフォルトの名無しさん
08/06/21 16:50:24
このスレ的にはダックタイピングの議論を深めるのはスレ違いだし初心者を混乱させる元だ
今のjavaをやっている限りはダックタイピングについて理解しなくても構わない

456:デフォルトの名無しさん
08/06/21 17:08:28
いっそ、java.beans.EventHandlerについて語ろうぜ

457:デフォルトの名無しさん
08/06/21 17:09:57
いやここはJAXB2.0だろ

458:デフォルトの名無しさん
08/06/21 17:50:33
eclipsでtomcatを使用できるようにしようとしているんですが
サーバービューで起動するとポートが使用されているか既に使われていて使えないと出てしまいます。


どうすれば使えるようになるのか教えてください。

459:デフォルトの名無しさん
08/06/21 18:05:10
eclipseスレに行け

460:デフォルトの名無しさん
08/06/21 18:31:27
そのポートを使用しているアプリケーションを終了するかポートを変更してください

461:デフォルトの名無しさん
08/06/21 18:46:17
JSFでFragmentを切り替えるにはどうしたらいいでしょうか

462:デフォルトの名無しさん
08/06/21 18:55:25
InputStreamのread()の返却値の型がintになっている理由がよく分からないのですが、
read()はストリームから次の1バイトを読み込み、それを返すというものと考えて良いのでしょうか?
OutputStreamのwrite(int)ではintを引数にして上位24bitを無視することで1バイトの書き込みをするというのも不自然な気がして、
これもreadの仕様が素直にbyteなら良い気がするのですが。

463:デフォルトの名無しさん
08/06/21 18:58:28
255と-1(EOF)を区別するためだろうけど、Cへのオマージュではなかろうか。

464:デフォルトの名無しさん
08/06/21 18:58:56
>462
JavaDoc嫁
int read()  入力ストリームから次のバイトデータを読み込みます。
戻り値:  データの次のバイト。ストリームの終わりに達した場合は -1

intな理由はint read(byte[] bytes)との兼ね合いかもね

465:デフォルトの名無しさん
08/06/21 19:00:33
むしろ、Byte read() だったならばOKなのか、ストリームの終わりの場合はnull(EOF)とできるから

466:461
08/06/21 19:05:06
リンクにイベント発生させるようにすればいいのかしら

467:デフォルトの名無しさん
08/06/21 19:19:30
JavaAppletからJavaScriptを操作する方法を知りたいので、
検索して調べたところ、「netscape.javascript.*」を取り込まないといけないと書いてあり、
コンパイルのために、JDKに付属するライブラリをCLASSPATHに通す必要がある、
と書いてありました。
それでCLASSPATHを通すというのが分からないので教えて下さい。

開発環境は
CPAD for JAVA2 SDK
j2sdk1.4.2_15
です。お願いします。

468:デフォルトの名無しさん
08/06/21 19:26:00
環境変数設定しろ。あとはググレ。
あとcom.netscapeパッケージはNN系しか使えないからRhino組み込め。

469:461
08/06/21 19:30:33
やっぱjavaコード側で何とかする話なんだよねえ

470:デフォルトの名無しさん
08/06/21 20:10:28
素直にページ作るよ

471:デフォルトの名無しさん
08/06/21 20:38:15
>>468
IEでも動くがな

472:デフォルトの名無しさん
08/06/21 20:47:15
>>471
一部だけな

473:439
08/06/21 21:04:07
ダックタイピングってもしかして私に対するレス!?
だとしたら、みなさんありがとうございます。

ダックタイピングも調べてみたのですが、やっぱり
>>453さんの仰るように、
implements MouseListener
がないとエラーが出てしまいます。
Javaはダックタイピングができないのかな

それから、もうこの話はしない方が良いのでしょうか?

474:デフォルトの名無しさん
08/06/21 21:10:15
ダックタイピング知らないなら気にしなくて良いよ。

475:デフォルトの名無しさん
08/06/21 21:56:55
>>473
すくなくともJavaをふつうに使っている限りは関係がない。


476:デフォルトの名無しさん
08/06/22 04:37:27
>>473
implementsをつければ、クラスを作る側がそのインターフェースを実装する気だったことが早い段階で確認できるでしょう。
偶然メソッド名などが一致していて動作の辻褄も合うなら同類とみなす、というダックタイピング的考えとは対照的(だから参考になる)。
Javaの型の基本が身についていれば出てこない疑問かもしれない。

477:467
08/06/22 08:25:07
>>468
com.netscapeの使い方が分かるようになりました。
ありがとうございます。
あと、Rhinoについて調べてrhino1_7R1というのをダウンロードして、
今度は使い方について調べたのですが、
コマンドラインからの利用法しか載っておらず、
JavaAppletなどからの利用法が見つかりませんでした。
よろしければ使い方を教えて頂けませんか?
もしくは使い方の載ってるサイトを教えて下さい。お願いします。

478:デフォルトの名無しさん
08/06/22 11:07:12
Listの中身をチェックしながら消したいんですけど

for (ManagerImpl manager : managerList) {
if (manager.cleanup()) {
managerList.remove(manager);
}
}

こういう書き方だとjava.util.ConcurrentModificationException
が出ます。

どういうお作法がいいんでしょうか。

479:デフォルトの名無しさん
08/06/22 11:46:25
OKWaveに同じ質問がありました。

for (Iterator<ManagerImpl> i = managerList.iterator(); i.hasNext();) {
if (i.next().cleanup()) {
i.remove();
}
}

だそうです。

480:デフォルトの名無しさん
08/06/22 11:51:29
URLリンク(java.sun.com)
> for-each ループでは反復子が隠されるため、remove メソッドを呼び出すことができません。
> そのため、for-each ループをフィルタリングに使用することはできません。

481:デフォルトの名無しさん
08/06/22 11:56:09
>>477
rhinoのページに組み込みかた載ってるしrhinoのサンプルにも組み込みサンプルがあるよく見てみ。

482:デフォルトの名無しさん
08/06/22 11:57:00
>>478
Listのremoveでなくイテレータのremoveを使わないと
for (Iterator<ManagerImpl> iter = list.iterator(); iter.hasNext(); ) {
ManagerImpl manager = iter.next();
if (manager.cleanup()) iter.remove();
}

483:デフォルトの名無しさん
08/06/22 12:43:51
2chでのマルチが減った代わりに
教えて君御用達Q&Aサイトとのマルチが増えたな

484:デフォルトの名無しさん
08/06/22 12:48:48
質問です。
JTableのセルにJbuttonを配置したいのですが、うまくいきません。

具体的には、JTableのセルにImageIconを配置するサンプルプログラム
URLリンク(www.javadrive.jp)
のページの下にあるソースコードの、テーブルデータの配列中のImageIconを指定している部分
new ImageIcon("./img/***.gif") を
new JButton("a") のように置き換えてみましたが、javax.swing~という文字列が表示されるだけです。

クラスが正しく扱われていないのではと思い、

public Class getColumnClass(int col){
return getValueAt(0, col).getClass();
}

上部分のソースコードのreturnを、
return JButton.class;
のように置き換えて直接指定してみたのですが、結果は同じでした

説明が拙くて恐縮ですが、JTableのセルにJbuttonを配置する具体的な方法を
どなたかご存知でしたら教えてください


485:デフォルトの名無しさん
08/06/22 13:16:30
>>478
まあ for(member:list)構文の弱点の一つだな。
見栄えはいいんだけど、イテレタ展開しちゃうからね。

このパターンだけは、昔ながらの書式で、
for(int i=list.size()-1;i>=0;i--){
 if(list.get(i).cleanup()){
  list.remove(i);
 }
}
と書くのが好み。

Iteratorの実装はなんどかやったことあるけど、
remove()は必要になるまで書かない(というか書きたくない)からさ、
使うのも自重してる。

486:デフォルトの名無しさん
08/06/22 14:20:57
javaアプレットでさ、動画と画像を描画するときに動画が手前にくるんだが、z軸を調整する関数はなんだっけ?

487:デフォルトの名無しさん
08/06/22 14:30:55
API何使ってんだよ?

488:デフォルトの名無しさん
08/06/22 17:07:02
>>486
動画?

489:467
08/06/22 17:24:24
URLリンク(www.mozilla-japan.org)
このページ読んだのですが、使い方が分かりませんでした。
まずはimport org.mozilla.javascript.*;を使うにはまた環境変数をいじらないといけませんよね?
あと、これを書けばJavaScriptの文法を使用可能になると言うことでしょうか?

490:デフォルトの名無しさん
08/06/22 18:03:23
>>489
実行時にクラスパス通せばいい。

>あと、これを書けばJavaScriptの文法を使用可能になると言うことでしょうか?
そう

491:使用書無しさん
08/06/22 19:17:24
javaフリークの皆さん。100%PureJavaでドローソフト URLリンク(jdrafter.sakura.ne.jp)
を作ったので是非使ってね。javaの帳票設計にも使えるよ。

492:デフォルトの名無しさん
08/06/22 19:25:37
java3D?



493:使用書無しさん
08/06/22 19:27:13
2Dだよ


494:デフォルトの名無しさん
08/06/22 19:28:39
おー
頑張った頑張った。だが…

495:使用書無しさん
08/06/22 19:32:02
だが?

496:デフォルトの名無しさん
08/06/22 19:32:03
初心者から中級者ってどこで判断するんだ
開発経験年数?

497:デフォルトの名無しさん
08/06/22 19:36:47
>>491
すっげぇ!!!!
まじで感動したw
俺もがんばろっとー

498:使用書無しさん
08/06/22 19:51:23
>>497よかったら使ってね。

499:デフォルトの名無しさん
08/06/22 20:01:56
javaなのになんでexeなの?

500:デフォルトの名無しさん
08/06/22 20:08:30
ただの自己解凍zipだよ。解凍したらclassファイルいっぱいでてくる。
けど・・・ほんとすごいわ。
経験が浅いからこんなでっかいプログラム見たこともなかった。

馬鹿にされそうw

501:使用書無しさん
08/06/22 20:09:14
jarパッケージでもよかったんだけど、jarだと中身丸見えだしアイコンも
ダサいので、あえてExeにラップしました。

502:デフォルトの名無しさん
08/06/22 23:26:45
あの~
色決めるときに { | | } こんな感じで区切ってbyteに代入するのはいったいどういう意味があるんですか?
ほかにも | で区切る表現が偶に出てきて戸惑うんですけど・・・・・
入門書にも載ってなくて 誰か教えてもらえませんか?

503:デフォルトの名無しさん
08/06/22 23:37:25
| は区切りではない
ビットごとの論理和 (OR) の演算子
その入門書の演算子の一覧かなんか見てみろ、載ってるはず

504:デフォルトの名無しさん
08/06/23 01:26:41
趣味で為替のチャート表示のプログラミングをJAVAでしたいと思っているのですが、為替のリアルタイムでのデータをネットから取り込むことは出来るのでしょうか?
質問が漠然としていて申し訳ないのですがお願いします。

505:デフォルトの名無しさん
08/06/23 01:32:42
>>504
きみのPCのブラウザで表示できる情報はすべてJavaで取得できる手段が
存在すると考えていい。すごく難しい場合もあるけど。


506:デフォルトの名無しさん
08/06/23 01:48:37
>>505
ありがとうございます。
大学ではCとFortranを使ってたのですがどちらも制御系のプログラムばかりでこういった類の経験がありませんでした。
林晴比古の入門JAVAシニア編でもネットから情報を取り込むことに触れられないので不安に感じましたが、もっと勉強しようと思います。
その辺を詳しく解説してくれる書籍などはないでしょうか?

507:デフォルトの名無しさん
08/06/23 02:31:02
赤音れおん

508:デフォルトの名無しさん
08/06/23 03:33:11
>>504 >>506
よくわからないけど、java.netパッケージあたりが基本では
URLリンク(java.sun.com)

509:デフォルトの名無しさん
08/06/23 07:31:09
>>508
ありがとうございます。その系列の本をあさってみようと思います

510:デフォルトの名無しさん
08/06/23 09:42:26
>>504
原則的には>>505が言ったとおりなんだけど
ファイナンス系サイトはデータを流用されないように工夫しているところもあるから注意
例えば数字に見えても画像だったりFlushで表示を制御してたり

511:デフォルトの名無しさん
08/06/23 10:02:41
プログラムのために準備されたものでないものからデータを拾う場合は
それないりに工夫や苦労はつき物。
相手がレイアウトや内容を変えない保障はどこにもない。
うちの社内なんていくつかのシステムの寄せ集めで、
システム間のデータのやり取りの大半が、
印刷直前の帳票データから拾ってるから間違い多いしカオスすぎる・・・

512:デフォルトの名無しさん
08/06/23 10:32:44
特定のフォルダ内からフィルタを掛けて、条件に引っかかるファイルの内容を表示したいので、
finamefilterを使って実現したのですが、当然の如くフォルダ内のファイル数増加に伴って応答が遅くなります。
なにかいい解消手段はないでしょうか?

513:デフォルトの名無しさん
08/06/23 10:42:39
>>510
なるほど・・・たしかに証券会社のチャートやボードはフラッシュや動画の類いに見えます。
実際問題、個人でそういったデータを引っ張ってきて表示させるのはきつそうですね。
ありがとうございました

514:デフォルトの名無しさん
08/06/23 11:15:17
MT4辺りにDLLフックかけてJNI経由で取り込む

515:デフォルトの名無しさん
08/06/23 12:27:35
>>512
(十分な効果が出るか分からんけど)ファイル名をあらかじめメモリに展開するとか
よほど大量なら、全文検索エンジンに放り込んでおくという手もあるが
取り扱いが面倒になる

516:デフォルトの名無しさん
08/06/23 12:59:21
>>513
もうちょっと有力な回答があるとまってたんですけど・・・
確か個人ですけど、リアルタイム(1秒毎)は証券会社に加入するしかないです。

yahooのあれは20分遅れだったかな?
個人集団が作ってる有力な株ソフトがいくつかあるんで、それを参考にしたらどうですか。
やってることもhtmlのテキスト解析・分析・処理のようですけど。

517:デフォルトの名無しさん
08/06/23 13:20:03
eclipseでパッケージの中にパッケージをつくるにはどうやるんですか?

518:デフォルトの名無しさん
08/06/23 15:32:10
eclipseスレにいけ

519:デフォルトの名無しさん
08/06/23 20:26:11
javaでstrutsでなにかしてみたいのですが
お勧めのHPあれば教えてください。

520:デフォルトの名無しさん
08/06/23 20:46:11
為替と聞かれて証券教えるこの不思議

521:デフォルトの名無しさん
08/06/23 22:14:40
なに、御礼もないし嬉しくもないの?
まあ、もう答えないからいいよ。

522:デフォルトの名無しさん
08/06/23 22:25:39
いじけちゃってかわいい♪

523:デフォルトの名無しさん
08/06/23 22:53:26
殺すぞ?

524:デフォルトの名無しさん
08/06/23 22:57:50
通報すっぞ?

525:デフォルトの名無しさん
08/06/23 22:58:46
ってかわいい♪

526:デフォルトの名無しさん
08/06/23 23:06:04
以下のソースだと、
java.lang.NullPointerException
がtd[count].setWord(strAry[1]);のところで
出てしまいます。
かれこれ4時間やっているのですが、わからないので、
解決法をおしえてください。
また、できるだけ、影響が少ない方法(データモデルをあまり変えない)
だと助かります
よろしくお願いします。

int count = 0;

while ((line = br.readLine()) != null) {
String[] strAry = line.split(" ");

System.out.println(strAry[1]);
if (strAry.length==2) {
System.out.println("aaa");
}
else if (strAry.length==3){
System.out.println("gp" + strAry[1]);
td[count].setWord(strAry[1]);
td[count].setSpeech(strAry[2]);
} }
count++;
}

527:デフォルトの名無しさん
08/06/23 23:08:47
>>526
td[] はどこでどうやって宣言してる?恐らくそれが間違っている。

528:デフォルトの名無しさん
08/06/23 23:13:23
S!アプリ造りたいんですけどいいサイト知りませんか?

529:526
08/06/23 23:26:25
>>527
ありがとう

public class Manager {
TokenData[] td;

という感じで,クラス宣言の後で,宣言しています.

また,TokenDataは,以下のクラスで宣言しています.
よろしくお願いします.
public class TokenData {
private String word = "";
private String basicWord = "";
private String speech = "";
public void Token() {}
public String getWord() {
return word; }
public void setWord(String word) {
this.word = word; }
public String getBasicWord() {
return basicWord; }
public void setBasicWord(String basicWord) {
this.basicWord = basicWord; }
public String getSpeech() {
return speech; }
public void setSpeech(String speech) {
this.speech = speech; }}

530:デフォルトの名無しさん
08/06/23 23:29:35
>>526
配列の宣言と初期化について調べたほうが良いと思います。

項目数が不明な取り込みには ArrayList を使いましょう。
配列での保持が必要なら、後で変換しましょう。

531:526
08/06/23 23:33:20
ありがとう。
ArrayListを使う場合の例をおしえていただけませんか?

532:使用書無しさん
08/06/23 23:35:55
javaフリークの皆さん
100%purejavaのドローングソフト
URLリンク(jdrafter.sakura.ne.jp)
登場
帳票設計や、アプレットのヴェクターアニメーションにも使えるよ
ダウンロードしてね

533:デフォルトの名無しさん
08/06/23 23:43:58
>>531
[配列]
TokenData td[]=new TokenData[20];
for(int i=0;i<td.length;i++)
td[i]=new TokenData();

[ArrayList]
ArrayList<TokenData> td=new ArrayList<TokenData>();


534:デフォルトの名無しさん
08/06/24 00:02:55
最近、PGやSEが逮捕されること多くないですか?
それもアキバのお宅イメージをセットにして報道してるように感じますが、警察は何か恨みでもあるんでしょうか。winney?

535:デフォルトの名無しさん
08/06/24 00:08:26
ButtonGroupでグループ化した3つのラジオボタン1,2,3に対して、
初期はすべてのボタンが選択されていない状態ですが、
いずれかのボタンが選択された状態から、グループを初期の状態に戻す方法を教えていただけませんでしょうか。
ちなみに、clearSelection()は使えない環境です。

536:526
08/06/24 00:09:09
>>533
本当にありがとうございます。
素人なので、こうした情報が勇気づけられます。

java1.4の場合ですと、ArrayList<TokenData>のような表現は無理だそうです。。。
その場合は、どのような方法がありますでしょうか?
DATACLASSをArrayListではあつかえないってことでしょうか?
すみません。おしえてください。

537:デフォルトの名無しさん
08/06/24 00:16:31
>>536
ArrayList td=new ArrayList();
ただしこの場合は中身はObject型になるので利用する際キャストが必要。
td.add(new TokenData());
TockedData token1=(TokenData)td.get(0);

538:デフォルトの名無しさん
08/06/24 00:16:34
a.javaをコンパイルしたらa.classとa$1.classてゆうのができました
この二つのclassをjarに圧縮したいのですがどうもうまくいきません
ちなみにプロンプトには jar cfm g.jar d.txt a.class a$1class
と打っているんですがあっているでしょうか?

539:デフォルトの名無しさん
08/06/24 00:20:44
ぱっとソース見ただけだけど、selectionをnullにする必要があるのに、selectionのsetterがsetSelected(ButtonModel,boolean)しかないから、無理な気がする・・
せめてprotectedにしててくれたらなぁ。

大したプログラムじゃないし、自分で作ってみたら?

540:デフォルトの名無しさん
08/06/24 00:22:32
>>538
unix系のshellなら $は意味がある文字だから \$ とエスケープしてみたらどうでしょう。

541:デフォルトの名無しさん
08/06/24 00:26:28
しまった。>>539>>535へのレスね。

542:デフォルトの名無しさん
08/06/24 00:45:01
>>538
>>540以前にコマンド自体あってないね
書き込み時のtypoかもしれんが

543:デフォルトの名無しさん
08/06/24 00:45:53
JSFでも使うぞ$

544:デフォルトの名無しさん
08/06/24 03:04:20
クラスの設計を、
・コードで直接行う場合のメリット、デメリット
・UMLを利用する場合のメリット、デメリット
を教えてください 。


545:デフォルトの名無しさん
08/06/24 08:59:35
冗長、どちらか一つでいい。
・コードで直接行う場合のメリット
・UMLを利用する場合のメリット

546:デフォルトの名無しさん
08/06/24 09:14:24
> クラスの設計を、
> ・コードで直接行う
設計になってねえ

547:デフォルトの名無しさん
08/06/24 11:03:46
クラスの設計を、コードで直接行う場合のメリット、デメリット
を教えて下さい

548:デフォルトの名無しさん
08/06/24 11:04:26
クラスの設計を、コードで直接行う場合のメリット、デメリット
を教えて下さい

549:デフォルトの名無しさん
08/06/24 13:03:13
こんにちは。
学校の課題で作った掲示板システムの拡張をしています。
設計について質問させてください。

DB1テーブル1Entityで、各Entityが自身のvalidateメソッドを持つ形の設計をしています。
今回、一部のテーブルに対し、validateのみが異なる複数のEntityが必要な状況になりました。

いくつか方法を考えたのですが、このような場合どの方法がよいでしょうか。

(1) 関連のない別クラスとしてEntityを定義する。
(2) 共通の親Entityクラスを定義し、validateメソッドをoverrideする。
(3) validateを別クラスに切り出し、strategyに持ち込む。

よろしくお願いします。

550:デフォルトの名無しさん
08/06/24 13:26:49
コーディングと設計の区別もつかないPGが混じってんのか

551:デフォルトの名無しさん
08/06/24 14:52:17
こんにちは。JAVA初心者です。
eclipseでソースを打っているのですが、
コメントを打つと、たまに日本語が□に変わって
うまく表示されません。
なぜか、教えてください。

552:デフォルトの名無しさん
08/06/24 15:25:52
すいません解決しました。
ありがとうございました

553:デフォルトの名無しさん
08/06/24 16:01:27
javaの土初心者です。JavaでWindows PCの
I/O空間アクセス、物理メモリアクセス
ってどのようにするんですか?

554:デフォルトの名無しさん
08/06/24 16:21:53
>>553
JNIとOSのディバイスドライバが必要だな。
そもそもWin32でそれをする方法を知ってるのか?

555:デフォルトの名無しさん
08/06/24 17:13:06
>>554
デバイスドライバを作りたくないからJavaでやろうと考えたのですが...
今回はI/O空間アクセスが出来ればOKで、物理メモリアクセスはあればなんかの役に立つかな
ぐらいなんですが

Windowsならドライバで
IO空間アクセス:
READ_PORT_XXX、WRITE_PORT_XXX で行う
物理メモリアクセス:
MmMapIoSpaceしてREAD_REGISTER_BUFFER_XXX、WRITE_REGISTER_BUFFER_XXX で行う

で使うときにはDeviceIoControlで叩く

ってC/C++のWinプログラム初心者でも知っている知識ですよ。
初心者Javaな人でもこれぐらいは知っていますよね。

556:デフォルトの名無しさん
08/06/24 17:22:57
ここはクマーとかいうAAを貼るところだろうか?

557:デフォルトの名無しさん
08/06/24 17:27:05
アンダーフローやオーバーフローは構文エラーですか?論理エラーですか?

558:デフォルトの名無しさん
08/06/24 17:38:27
違います
低脳エラー(うぽぽんエラー)です

559:デフォルトの名無しさん
08/06/24 17:40:41
>>555
すっげー
俺もこんくらいの知識ほしい

560:デフォルトの名無しさん
08/06/24 17:50:21
>>85-105

なんか爆笑した。>>85の言動にw

>>109
そこにJavaの格言とJavaの鉄則が入ってるのが理解できない。
あの本はJava5以前の本だぞ。Java5が出てから役に立たなくなったテクニックやTipsが
けっこうあるので今ではおすすめしがたいな。鉄則のほうはそこそこ役に立つが、
それだったらEffective Javaのほうが全然役に立つ。

561:デフォルトの名無しさん
08/06/24 17:51:04
そクマー

562:デフォルトの名無しさん
08/06/24 17:56:02
>>121
Java+謎、落とし穴を書いた前橋 和弥よりはましではないかと。
あれは酷かった。本に愚痴ばかりかいて、今となっては解決済みの問題が
あたかも解決されていないかのような書き方が、初心者に誤解を与えかねない本だな。
アンチがあれを読んで昔飛びついていた記憶がある。

563:デフォルトの名無しさん
08/06/24 17:57:58
>>134
> ただM$の都合で、変な改定されるのが怖いんです。(J++とかw)

そのくせ、こんなこと言ってるよな。VBにしておけよ電波。

> どうしてjavaは初心者にこうも厳しいんですか?
> 例えばダブルクリックの起動ファイルひとつ作るのでも、ネット上の情報はうそっぱちか役に立たない情報ばっかり。
> VBと比べても必要な情報にたどりつくのに時間がかかりすぎ。
> これだったら、M$社製品(C++、C#、VB2005等)の方が手っ取り早かった(と思う、たぶん)。
> とくかく情報の出し惜しみはやめてほしいな。
> なんで、java弄るひとって性格の悪い人がおおいんだろ。
> java関係の本でもろくなのないし。


564:デフォルトの名無しさん
08/06/24 18:00:22
>>141
> LinuxではC#動かないでしょう?
Monoで動く。

> .NETははっきりいって糞くらえですよ。(食事中のかたすんません)
VB忠なのに。

565:デフォルトの名無しさん
08/06/24 18:01:37
>>146
> ふりだしに戻る・・・
> ⇒なんで、java弄るひとって性格の悪い人がおおいんだろ。
>
> 自分なりの分析ですが
> java弄る人って、殆どが玄人(それで飯食っているひと)なわけですよ。
> もしくは、いま勉強中で資格とって就職しようとしている人々。
> したがって、ライバルは少ないほうがいい、もしくは自分の優位性をつねに保っていたい。
> そんなエゴが見え隠れしている。

一昔前のC言語厨やUNIX屋じゃあるまいし。
このスレ見ればわかると思うが、素人がよく質問しに来ているが。

566:デフォルトの名無しさん
08/06/24 18:04:05
>>154
たいした警鐘に感じないなあ。
Javaの情報は10年前に比べれば腐るほどあるし
ライブラリもたっぷりあるし書籍もネットも充実して情報には困らないんだよなあ


567:デフォルトの名無しさん
08/06/24 18:05:19
この使い方の意義が分からん漏れはヴァカですか?
StringBuffer sb;
sb.append("Hello, ").append("world!!");


568:デフォルトの名無しさん
08/06/24 18:15:01
>>567
意味じゃなくて意義となればワンライナーと呼ばれる人々が喜ぶ

569:デフォルトの名無しさん
08/06/24 19:08:36
>>549
validateを交換可能にしたいんでしょ?
まあ2のTemplateMethodパターンかなあ

570:デフォルトの名無しさん
08/06/24 19:09:11
java.awt.FileDialog上のキー操作、マウス操作をフックしたいのですが、
実装方法を教えてください。

フックしたい目的は、右上の×ボタンとESCキーによるキャンセル抑止です。
processEventメソッドをオーバーライドしたり、
リスナを追加してもどうもフックされていないようです・・。

571:デフォルトの名無しさん
08/06/24 19:19:11
>>567
それだったらStringBufferをStringBuilderに変えて
StringBuilder sb = new StringBuilder();
sb.append("Hello, world!!");
したkなる。

new忘れていたようなのでつけておいた。



"Hello, "と"world!!"が文字リテラルではなく変数や定数だったら
意義はある。

572:デフォルトの名無しさん
08/06/24 19:45:18
5万ぐらいの激安のノートパソコンで
勉強できる?

573:デフォルトの名無しさん
08/06/24 20:05:32
>>569
ありがとうございました。
その方向で設計してみます。

574:デフォルトの名無しさん
08/06/24 20:42:39
JMFを使ってキャプチャした画像→
 JNIを通してOpenCVに送り顔認識→
  認識した顔の中心座標を返す

といったプログラムを書こうとしていますが、そもそもこんなことは可能なのでしょうか。

別にJNIを使わなくても顔認識ができればいいのですが、
OpenCV程度の顔認識精度があるJAVA用ライブラリなどあれば教えて頂きたいです。

575:デフォルトの名無しさん
08/06/24 20:56:56
>>572
何が?

576:デフォルトの名無しさん
08/06/24 20:59:29
>>572
勉強するだけなら10年前のでもできるだろ
何を勉強するのかしらんけど

577:デフォルトの名無しさん
08/06/24 21:00:01
4月からIT企業に入社したヒヨッコです。いろいろ勉強のために調べていたらどうしても理解できないソースを見つけたので質問に来ました。
インタフェースの中にある以下のようなソースなんですが

public interface IntComparator{
public static final IntComparator
NATURAL_COMPARATOR = new IntComparator(){
public int compare(int i1, int i2){
return
i1 < i2 ? -1 :
i1 > i2 ? 1 :
0 ;
}
};
}
出典:URLリンク(mitv2.net)

1.「new コンストラクタ{メソッド名(引数){メソッド定義}}」という書式はこの他にも見かけたのですが、
これはこれから生成するインスタンスに含まれるメソッドを定義する構文という理解で正しいのでしょうか?また、その場合このメソッド定義はどのインスタンスに対して有効なのでしょうか?
(クラス定義と同じでこれ以降同じクラスから生成するインスタンス全てに有効?それともここで生成するインスタンスのみに有効?)

2.メソッドを定義する構文であるとすれば、抽象メソッドしか持たないはずのインタフェース内でメソッドを定義していることになります。
Eclipsにコピペしてみてもコンパイルエラーは発生しないようですが、本当にこのようなことが許容されるのでしょうか?

長文になってしまいましたが、よろしくお願いします。

578:577
08/06/24 21:01:02
インデントきえたーーー

読みにくくてスイマセン…出典元を見ていただいたほうがいいかも知れません…

579:デフォルトの名無しさん
08/06/24 21:04:21
>>578
専ブラならポップアップで見てみ

580:デフォルトの名無しさん
08/06/24 22:00:48
>>577
それは匿名内部クラス、あるいは単に匿名クラス、もしくは無名クラスなどという。
指定したクラスかインタフェイス(その場合はIntComparator)を継承・実装している名前のないクラスを定義してnewする。
定義したメソッドは、そこで生成するインスタンスだけのもの。

581:デフォルトの名無しさん
08/06/24 22:09:13
>>577
1回限りしか必要のないクラスの名前をわざわざ付けて名前空間を汚す代わりに
名無しのクラスからインスタンスを生成することができる。

書式的には、
new 親クラス(親クラスのコンストラクタの引数) { メソッド定義 }
みたいな感じ。

名前がないので、新しいメソッドを定義してもクラスを明示できないから呼べない。
大抵、親クラスのメソッドのオーバライドしないと意味がない。
クラスじゃなくてインターフェースでもおk

似たようなものに、配列の生成と初期化を同時に行う方法がある。
new int[] { 1, 2, 3, }
とか。
いちいち配列を入れる変数名を用意して名前空間を汚さずとも
そのままメソッドの実引数などに使える。

ただ、見づらいと言う人は多々居る。不毛な論争の種にどうぞ

582:577
08/06/24 22:51:54
>>580
>>581
ありがとうございます。
読みながら想像してたのと大体合ってたようで一安心です。

クラスの中でインスタンスをいっぱい(50コとか)作るけど、そのうち1つだけメソッドの中身がちょっと違うときに使ったりするものなんですね。

もう少しこのソースがどんな動きをするのかを考えてみたいと思います。その過程で壁に当たったらまた質問に来るかもしれないので、そのときはよろしくお願いします。

583:デフォルトの名無しさん
08/06/24 23:28:01
クラスの設計を、コードで直接行う場合のメリット、デメリット
を教えて下さい

584:デフォルトの名無しさん
08/06/25 00:22:10
サイズを固定しないJTableを作りたいのですが、
可変長の二次元配列ってどうやって表現すればよいのでしょうか?
一次元でも実現可能なのでしょうが、コードが冗長になりそうで・・・

585:デフォルトの名無しさん
08/06/25 00:29:21
>>584
配列じゃなくてコレクション使ったMODELで

586:デフォルトの名無しさん
08/06/25 00:52:08
>>585
引数がVectorのDefaultTableModelを使うという事でしょうか?

587:デフォルトの名無しさん
08/06/25 00:53:39
javaで図形処理をさせる課題が出て難しく感じたので
これを機に参考書を買おうと思っています。

wiki乗っている「コアJava2 Vol.1 基礎編」が良さそうだと思ったのですが
図形処理関係では他にどういう参考書があるか知りたいので
教えてください。

588:デフォルトの名無しさん
08/06/25 01:20:12
WebOTXでJavaを利用したアプリサーバを
構築してるんですが、なんというか情報が少なすぎる…
参考書があるか知りたいですが、探し方が悪いのか
丸善とかでは見つからなかった。

WebOTXでJavaをつかったアプリサーバ構築
みたいなテーマの本はないでしょうか・・・

589:デフォルトの名無しさん
08/06/25 08:08:51
Javaはガベジコレクション等プログラマがメモリを意識しないでいい利点があると聞いたのですが・・・

int[] a = {10, 9, 8, 7, 6}
int[] b = {1, 2, 3}
a = b;

とした時にC言語だとfree?されてないのでメモリが無駄になるのですが、Javaだとどうなるんですか?

590:デフォルトの名無しさん
08/06/25 08:09:37
↑{10, 9, 8, 7, 6} のメモリ領域が

591:デフォルトの名無しさん
08/06/25 08:23:43
>>589
言語仕様で決まってるのは{10, 9, 8, 7, 6}の配列がガベコレ可能な状態になるってところまで。
どのタイミングで回収されるかは実装依存。

あと、C言語だと、スタックに確保されるんじゃなかったか? それ。

592:デフォルトの名無しさん
08/06/25 11:47:12
指定した番号目の素数を出すにはどうしたらいいですか?

593:デフォルトの名無しさん
08/06/25 11:49:39
age

594:デフォルトの名無しさん
08/06/25 11:56:34
素数を降順でリストに突っ込んで取だしゃいいだろ。

595:デフォルトの名無しさん
08/06/25 11:57:20
>>594
すみません、素数を出すコードがわかりませんので。

596:デフォルトの名無しさん
08/06/25 12:03:16
エラトステネスのふるいでググレ

597:デフォルトの名無しさん
08/06/25 12:06:59
了解

598:デフォルトの名無しさん
08/06/25 12:41:32
数日前にチャート表示のプログラムを相談したものですが、
ttp//plaza.rakuten.co.jp/meime/diary/200603310002
を参考にしてみます。相談に乗っていただきありがとうございました。

599:デフォルトの名無しさん
08/06/25 13:42:22
>>594
なんで降順?

600:デフォルトの名無しさん
08/06/25 15:10:17
そんなどうでもいいこと聞いてなんになるの?

601:デフォルトの名無しさん
08/06/25 15:22:59
普通は昇順(1,2,3,5,7....)で何番目の素数とか言うだろw
降順の素数番目ってどうすんだw

602:デフォルトの名無しさん
08/06/25 17:11:11
じゃあ昇順てことで

603:デフォルトの名無しさん
08/06/25 18:27:38
スレ違いかもしれませんが、DoJaのコンソールの

Main :java.lang.NullPointerException Test
java.lang.NullPointerException
at MainCanvas.<init>(+40)
at Test.start(+7)
MainCanvas

このエラー出力の(+40)や(+7)はどういう意味ですか?


604:デフォルトの名無しさん
08/06/25 18:31:26
バイトコードの位置
<init>メソッドの40バイトめとstartメソッドの7バイトめ

605:デフォルトの名無しさん
08/06/25 21:23:38
進むほど↑↑なのが昇順。
進むほど↓↓なのが降順。


606:デフォルトの名無しさん
08/06/25 21:47:03
自分で使えるAPIをもっと増やしたいと思っている者ですが、みなさんの方でおすすめの本などあるでしょうか?
仕様を見ているだけではなかなか使いこなせず、使用例を見て理解したいと思うんですが、ソースをどこから探せばいいかとよく迷います。
自分のレベルですがJava歴は1年3ケ月、JSP、JSTLのタグを経て、GoFのデザインパターンを現在勉強しています。

ご教授、よろしくお願いします。

607:デフォルトの名無しさん
08/06/25 21:48:08
new コンストラクタ(引数).メソッド(引数)

という構文を見たのですが(左辺には何も無し)、これは
staticでないメソッドを使いたい!でも他に使うものはないからインスタンスを作るまでも無い!
というときにインスタンスを介さずに非staticメソッドを呼び出すものと考えていいのでしょうか?

608:デフォルトの名無しさん
08/06/25 21:48:30
>>605
時間軸で見た前方後方くらいにわかりづらいな

609:デフォルトの名無しさん
08/06/25 21:59:50
>>607
いや、newでインスタンスを生成してからメソッドを呼んでる形だよ、それは。
つまり
Hoge hoge = new Hoge(param);
Hoge.method(param);
の2行を
new Hoge(param).method(param);
に省略。

610:デフォルトの名無しさん
08/06/25 22:01:36
ああスマン、上のHoge
hoge.method(param)の間違い。

611:デフォルトの名無しさん
08/06/25 22:12:41
>>577
なんでそんなものを作るのか。

java.lang.ComparableインタフェースとComparable#compareTo()メソッドがあるのに


612:デフォルトの名無しさん
08/06/25 22:15:07
>>589
AtomicIntegerとか使えばいい

613:デフォルトの名無しさん
08/06/25 22:16:18
>>607
インスタンスは必要だが参照として保持する必要がない場合に使う書き方
FileChanel channel = new FileInputStream(file).getChannel();
とかよく使うパターンかね

614:607
08/06/25 22:47:43
>>609>>613
ありがとうございます。

内部ではインスタンスは作られているけれど、参照が無いから後から同じインスタンスをいじったりはできないということですね。
いまさらこんなこと聞くのもアレなんですが、Javaで言うところの「参照」というのはCでのポインタみたいなものと考えていいんですよね?
…ちょっと自信がなくなってきた…

>>611
出典のページによるとcompareToではオブジェクト同士の比較だけで、int同士の比較ができないから作っちまえということのようです。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch