09/01/30 22:47:13
>>236
サポートされているエンコーディング
URLリンク(java.sun.com)
javaの5.0かせサポートされてるくさい
文字コード表
URLリンク(ash.jp)
そしてJISX0208にNo.はある。
しかしjavaはうにとの相互変換でアボーンしちゃうんだよなどうしたものか
238:デフォルトの名無しさん
09/01/30 23:01:03
> うにには本来拡張文字が無いので。
件の№はU+2116。ちゃんと存在する。
239:デフォルトの名無しさん
09/01/30 23:09:12
>>237
EUC_JP_MSで検索したらヒットしなかったんですけど、EUC_JP_Solarisの話ですか?
0208にあるならEUC_JP_LINUX 使えば上手くいく可能性はありますね。
上手くいくなら
EUC_JP_LINUXとEUC_JP_Solarisでそれぞれエンコしてバイト単位で比較して補完するってこともできなくは無いか。一からエンコードプログラム書くよりはましだろうけど…
>>238
そうなんですか? JAVAでバイト吐かせて確認してたのでその値であることは知ってましたが、
どこかの文字コード対応表では未対応扱いになってたので正式なものではないのかと思ってました。
存在するかどうかはあまり問題じゃなくて、変換できないのが問題なんですけどね。
240:デフォルトの名無しさん
09/01/30 23:09:34
>そしてJISX0208にNo.はある。
ないよ。その表はフォントが対応してると勝手に表示しちゃうだけ。
JIS X 0208 では13区は使われてない。
だから独自拡張する人達に13区勝手に使われちゃってるんだけど。
241:デフォルトの名無しさん
09/01/30 23:17:20
>>240
なんというカオス
eucJP-ms
URLリンク(www2d.biglobe.ne.jp)
ここの表だと0208にはない事になってるね
つまり、0208に存在しない№がEUC_JP_Solarisでバケルのは正常な動作なのか
242:デフォルトの名無しさん
09/01/30 23:20:21
>>240
NEC拡張外字って書いてますね。
NEC死ねばいいのに。
243:デフォルトの名無しさん
09/01/30 23:24:10
>灰色のコードポイントは、IBM特殊文字でも定義されています。
こっちに変換されている悪寒
244:デフォルトの名無しさん
09/01/30 23:31:15
>>243
テラパッドでEUCで保存したら0xADE2で保存された。
だが、0208には№は存在しないんだから、
EUC_JP_MS→うにに→EUC_JP_Solarisで破壊されるのは正常くさい。
※EUC_JP_MS→うにに→EUC_JP_MSでも破壊されるかもしれんけどw
そして、最大の問題はEUC_JP_Solarisに存在しない筈の№が、
>>231のシステムで使われているかどうか。
windowsで使えるんだから使えないのはおかしいとか電波な事を客が言うかどうか。
245:デフォルトの名無しさん
09/01/30 23:43:56
>>244
EUC_JP_Solarisに存在するかどうかより使えるかどうかが問題だから
残念ながら多分使えませんは通用しないです……
というか機種依存文字だから使えませんは通用しなかった。
246:デフォルトの名無しさん
09/01/30 23:48:01
>>245
やっぱそうなるか~そっちのシステムの実装によっちまうんだな。
しかし、対策考えると頭から湯気がでそうだな
247:デフォルトの名無しさん
09/01/30 23:48:48
とりあえず、EUC_JP_Solarisのシステムで№を使ってるか、使えているかを調べんとあかんね
248:デフォルトの名無しさん
09/01/30 23:50:38
>>246
正直この仕事で文字が嫌いになりました。
249:デフォルトの名無しさん
09/01/30 23:58:55
長い間ありがとうございました。
結論は「正攻法はなし」って感じですねorz
独自で文字セット作成がんばります……
250:デフォルトの名無しさん
09/01/31 00:09:14
>>249
オマエが勘違いしているだけ。
バカってそんなもん。
251:デフォルトの名無しさん
09/01/31 00:11:47
>>250の意味がよく分からないんだけど、EUC_JP_Solarisで№がファイルに出力できましたよ、って意味?
252:デフォルトの名無しさん
09/01/31 00:15:27
最初の№がでないって悩みがバカなのか、
正攻法はなしという判断がバカなのか。
どっちだろね?
253:デフォルトの名無しさん
09/01/31 00:16:23
0x8FA2F1 に変換できて喜んでる人なんでしょう
254:デフォルトの名無しさん
09/01/31 00:28:13
public List method(){
try {
return new ArrayList();
} catch (Exception e) {
//ここで非チェック例外を投げないと
//このメゾットは型list を返す必要があるというエラーになる
}
}
なぜコレクションを返すときに非チェック例外を投げないとエラーになるのでしょうか
255:デフォルトの名無しさん
09/01/31 00:30:57
>>254
public List method(){
try {
return new ArrayList();
} catch (Exception e) {
}
return null; //←これはないの?
}
256:デフォルトの名無しさん
09/01/31 00:36:34
>>254
エラーというのは、コンパイル・エラーのことですか。
例外が発生した場合の流れに、メソッドを抜ける方法が書かれていないから。
非チェック例外は、メソッドを抜ける方法の一つ。
257:デフォルトの名無しさん
09/01/31 01:41:54
メゾット言う奴はたいてい釣り
258:デフォルトの名無しさん
09/01/31 02:56:42
0xADE2をファイルから入力
EUC_JP_Solaris: №(0x2116)
EUC_JP_LINUX: ?(0xFFFD)
EUC_JP: ?(0xFFFD)
'№'をファイルに出力
EUC_JP_Solaris: 0x8FA2F1
EUC_JP_LINUX: 0x3F
EUC_JP: 0x8FA2F1
0x8FA2F1をファイルから入力
EUC_JP_Solaris: №(0x2116)
EUC_JP_LINUX: ?(0xFFFD)
EUC_JP: №(0x2116)
うちの環境だとこうなったけど、どこら辺が悪いの?
259:デフォルトの名無しさん
09/01/31 07:12:11
ここのやつって結構間違い教えるよな
260:デフォルトの名無しさん
09/01/31 10:43:43
>>258
'№'をファイルに出力
EUC_JP_Solaris: 0x8FA2F1
EUC_JP_LINUX: 0x3F
EUC_JP: 0x8FA2F1
↑これをEUCを扱えるエディタで開いてみて。 3バイトの方になると多分化けるから。
261:デフォルトの名無しさん
09/01/31 11:21:56
>>260
たとえばFireFoxなら?
262:デフォルトの名無しさん
09/01/31 12:45:43
>>256
ご説明ありがとうございました
263:デフォルトの名無しさん
09/01/31 13:11:25
>>260
EUC_JP_MSだと0xADE2だが、EUC_JP_Solarisだと0x8FA2F1で正解ってことか?
だとすると、winのエディタはEUC_JP_MSで動いてるからEUC_JP_Solarisの№を表示できないのは正常ってことになる。
確認するならEUC_JP_Solarisをまともに扱えるエディタでないとあかんと。
264:デフォルトの名無しさん
09/01/31 13:20:25
0x8FA2F1ってJIS X 0212の№かよ。
EUC_JP_SolarisはJIS X 0212も含んでるから、つまり正解。
>>259
バカは何人集まってもバカって事だな。
265:デフォルトの名無しさん
09/01/31 14:11:42
>>263
8FA2F1 読む場合は補助漢字さえサポートしてれば読める。
EUC_JP_MS は出力時は ADE2 だが、
ちゃんと実装してあれば読み込み時は ADE2 8FA2F1 8FF4AC 全部読めるはず。
Windows API の MultiByteToWideChar WideChatToMultiByte とかに
引数 CodePage として 51932 を渡した場合は補助漢字サポートしないから ADE2 しか読み書きできない。
自前でやらずに Windows API に丸投げしてると 8FA2F1 は読めない、って事になる。
266:デフォルトの名無しさん
09/01/31 17:18:56
結局、変換したデータを持っていく先がどう扱っているか分からなければ、なあ。
267:デフォルトの名無しさん
09/01/31 17:30:27
JavaでWebサービスというのがやってみたいので、初心者でも分かる本を教えてください><;
JavaEE5っていう分厚い本は難しそうです><;
268:デフォルトの名無しさん
09/01/31 18:02:02
>>267
Java のWebサービスは難しいかもな。
269:267
09/01/31 19:49:07
教えてくださってありがとうございます><;
お礼に↓これを教えてあげます><;私も昨年夏買いましたが、重宝しました><;
URLリンク(www.rakuten.co.jp)
270:デフォルトの名無しさん
09/01/31 20:48:06
パッケージにjava.*とjavax.*があるけれど、違いは何
271:デフォルトの名無しさん
09/01/31 20:51:44
文字列の変換はpure javaで自前で書くのが一番安心。
Java MEの話だが実機で扱える文字コードがばらばらなのでShift-JISとUTF-8とUTF-16の相互変換を自前で書いたよ。
272:デフォルトの名無しさん
09/01/31 22:22:48
まったくの初心者なんだけど、
未経験者として就職するにはどのくらい覚えたらいいか目安的なのない?
今、入門書で抽象クラスやらインターフェースやら覚えたんだけど・・・
273:デフォルトの名無しさん
09/02/01 01:32:08
他システムがソラリスなんだろ。
で、あっちはあっちでソラリスしか使ってないんだから他で使うのは諦めろよって仕様なんだろ。
黙ってソラリス使っとけ。理由は他システムとの連携のためだ。
javaって実行環境依存な所があるから、システム連携で嵌まりたく無ければ統一しとけ。
274:デフォルトの名無しさん
09/02/01 01:40:16
>>"'#
275:デフォルトの名無しさん
09/02/01 01:42:31
>>273
EUC_JP_Solarisはソラリス限定の文字コードじゃない。
あとEUC_JP_Solarisが問題というよりは№がEUCで出力できないのを問題にしてる。
276:デフォルトの名無しさん
09/02/01 01:44:50
>>267
Webサービス使うだけならeclipseでウィザード起動一発だったような。RADだったかもしれんけど。
277:デフォルトの名無しさん
09/02/01 01:52:34
その環境に対応したクラスを作れば万事解決
278:デフォルトの名無しさん
09/02/01 03:02:58
"東京都 渋谷区 渋谷 1-1-1 キャベツ太郎 03-0000-1111"
みたいな文字列を
"東京都 渋谷区 渋谷 1-1-1"
"キャベツ太郎"
"03-0000-1111"
のように分割したいのですが
"東京都 渋谷区 渋谷 1-1-1" の所にスペースが使われてるのでスペースを区切り文字として扱うことが出来ません
なんかいい方法ないでしょうか
279:デフォルトの名無しさん
09/02/01 03:16:20
>>278
なんか規則性がないと無理だな。
電話番号と氏名は間に空白が絶対に入らないというルールがあるなら、
後ろから空白区切りで電話番号と氏名を切り出して、その前方は全部住所とかそんな感じだ。
280:デフォルトの名無しさん
09/02/01 03:58:31
>>278
氏名と電話番号にスペースが入らないと断言できるなら後ろから取り出すとか。
>>279も言ってるように、なんらかの規則性がないと>>278はただの文字列だし無理。
281:デフォルトの名無しさん
09/02/01 04:22:56
>>278
何かしらデータを区切ってくれたり(規則性を持たせたり)しないと無理
282:デフォルトの名無しさん
09/02/01 06:33:46
無理っぽいね。
"東京都 渋谷区 渋谷 1-1-1 キャベツ 太郎 03-0000-1111" とか
"東京都 渋谷区 渋谷 1-1-1 ハイツ渋谷 101 キャベツ太郎 03-0000-1111" とか
"東京都 渋谷区 渋谷 1-1-1 ハイツ 渋谷 101 キャベツ 太郎 03-0000-1111" とか
"東京都 渋谷区 渋谷 1-1-1 トマト 様方 キャベツ 太郎 03-0000-1111" とか
いくらでも考えられるし。
283:Javaで
09/02/01 10:24:10
現在日本では1万円、5千円、2千円、1千円、500円、100円、50円、10円、5円、1円がある。
金額をあたえると最小の紙幣数、硬貨数で支払うための金種別の枚数・個数を求めるメソッドを作成
37521
1万が3
5000が1
2000が1
500が1
10が2
1が1
ってどうやってつくるんでしょうか?
教えて頂けるとうれしいです。
284:デフォルトの名無しさん
09/02/01 11:15:15
宿題スレ池
285:デフォルトの名無しさん
09/02/01 12:39:52
>>275
もう1つの問題はEUC_JP_Solarisで出力される№と、
EUC_JP_MSで出力される№のコードが違い、
winのエディタで見えなくて、あれあれ?となっている事。
件のシステムがEUC_JP_Solarisといいつつ、
EUC_JP_MSの№じゃないと受け付けないなんてギャグもありえるのが怖いね。
286:デフォルトの名無しさん
09/02/01 13:40:20
>>283
割り算も出来ねーのかよw
287:デフォルトの名無しさん
09/02/01 13:54:37
>>285
EUC_JP_Solarisじゃないと駄目とは言ってなくね?
ウィンドウズで文字コードEUCの№が表示できるコードで出力したいって話でしょ?
288:デフォルトの名無しさん
09/02/01 14:01:03
>>287
最初の質問者はEUCは理解していない様子だ。
289:デフォルトの名無しさん
09/02/01 14:04:26
>>287
暗黙裡の要求は、秀丸やサクラエディタと同じように変換したいと言うことだったらしい。
持って言った先のシステムについて調べたがらなかったのも、そんなものは無かったからなのかも。
290:デフォルトの名無しさん
09/02/01 14:12:35
>>289
だね。
表面上の目的は「EUC_JP_Solarisで№を出力できない」
確認方法は「秀丸で№を表示できない」だったか
しかし、秀丸で№を表示できてもそれはEUC_JP_Solarisの№ではない、
むしろ、秀丸らで表示できないのが正しい姿。
本当にEUC_JP_Solarisの№で出力できればいいのか、
秀丸で表示できる№でいいのかは、彼でなければわからない。
291:デフォルトの名無しさん
09/02/01 14:38:05
まだやってくれてたんか。
>>290
特殊記号がうにからEUC_JPへの変換で化ける(サクラなどで確認)
↓
EUC_JP_Solarisでやってみたら概ね変換できたけど№は駄目だね(サクラなどで確認)
↓
さぁどうしようか ←いまここ
別にEUC_JP_Solarisでないといけないわけではないです。
意図的には
>秀丸で表示できる№でいい
どちらかというとこっちが正しい。
ただこう言うとShift-JISでいいじゃんとかいいだす人がまた出るでしょ……あくまでEUC_JPファミリー、とでも言えばいいのかな。
やりたいことは、「水色の部分も含めこの表の通りに出力したい」と思ってください。 始めからこの表見つけて張ればここの人たちも混乱しなかったよな……
URLリンク(charset.7jp.net)
今までのレスから理想はEUC_JP_MSを指定する、なんだろうけどJAVAのライブラリにないよね……
292:デフォルトの名無しさん
09/02/01 14:40:06
>>291
表示するのは表示するソフト次第だって、理解できないのか?
293:デフォルトの名無しさん
09/02/01 14:42:01
>>291
EUC_JP_Solarisで変換した№だって、秀丸では表示できないけど、FireFoxでは表示されるよね?
294:デフォルトの名無しさん
09/02/01 14:42:41
>>291
>始めからこの表見つけて張ればここの人たちも混乱しなかったよな……
混乱してるのはオマエで、未だに
295:デフォルトの名無しさん
09/02/01 14:45:53
>>291
おぃぃぃw
>>224見るとEUC_JP_Solarisじゃないとあかんようにしか見えんぞ。
ならEUC_JPで出力してみるかEUC_JP_MSでやってみたらいいんじゃね?
296:デフォルトの名無しさん
09/02/01 14:47:47
>>292-293
ソフト次第って片付けられるならそれで片付けてるよ。
URLリンク(charset.7jp.net)
↑基準はこれでお願いします。
EUC_JP_Solarisだと概ねこの表に沿ったエンコードになるけど、№はこの表から外れた文字コードになりますよね?
297:デフォルトの名無しさん
09/02/01 14:47:48
その表ださずに
>ここに居る人のレベルでは対処不可ですか? とちょっと煽ってみる。
なんてあおってたのか?
マジで首吊って死んどけやwww
298:デフォルトの名無しさん
09/02/01 14:48:05
>>291
その表のとおりだと拡張漢字ないから EUC_JP_MS じゃなくて通称 cp51932 の方だね。
EUC_JP っつったら普通は SS3 の第三第四水準までサポートするし。
299:デフォルトの名無しさん
09/02/01 14:54:00
>>297
224以降でEUC_JP_Solaris以外の話を俺はしてるし、エディタで表示できるかどうかを問題にしてることも話してるから
このスレの聡明な方々なら理解してもらえてると思ってたし、実際一部の人は理解してくれてたようですが。
始めからこの表見つけて張っておけばここまで混乱しなかったと反省はしている。
300:デフォルトの名無しさん
09/02/01 14:58:39
>>299
エディタで表示できないのはエディタ表示できないだけで、EUCとしては正しくでてる。
エディタで見れないとは言ってても、エディタで見れないのはダメとは名言してないしね。
301:デフォルトの名無しさん
09/02/01 15:04:37
>>299
ところでさ、エディタで確認したってのは聞いたけど、
>>231 で言うところの他システムで EUC_JP_Soralis の № (0x8FA2F1)
扱えないか確認したの?
302:デフォルトの名無しさん
09/02/01 15:10:12
>>296
オマエが何をみているか知らないが、例えばWindows上でも、Apple Safariなら13区が表示されないのは分かってるよな?
303:デフォルトの名無しさん
09/02/01 15:11:01
>>300
「~」が問題になったと言えば経験者は分かるよ……
俺の質問が分かりづらかった旨を指摘する不毛なレスをいつまでも続けても
誰にも有益ではないと思うのですがその辺りはそろそろ空気読んでいただけませんか?
>>301
あっちから返ってきたものがこっちでファイルに出力できないのが最大の問題なので、
それは(今は)あまり重要ではないです。
こちらの都合で申し訳ないですが、あくまで「うにの№を>>296表(cp51932?)でファイルに出力したい」を解決したいと考えてはいただけませんか?
304:デフォルトの名無しさん
09/02/01 15:13:16
>>303
経験者だけどわかんなかった(テヘっ
空気はお前が読めよ
305:デフォルトの名無しさん
09/02/01 15:14:26
不毛な質問の仕方しといてそれはないわ~
306:デフォルトの名無しさん
09/02/01 15:15:59
>>303
質問が分かりづらいとかじゃなくて、オマエは今でも勘違いしたまま迷走しているだけだよ。
オマエがしたいのは「EUCに変換する」じゃなくて、「秀丸みたいに変換する」だよ。
307:デフォルトの名無しさん
09/02/01 15:17:38
>>306
しかも、本当に変換したデータを持っていく先があるとすれば、
本当の要件は「秀丸みたいに変換する」ではない可能性が大きい。
308:デフォルトの名無しさん
09/02/01 15:18:13
>>302
だから具体的なエディタ名だしてるだろう?相当偏った環境でもない限りあなたのところでも再現すると思いますよ?
文字コードも>>296表ならcp51932という文字コードという情報もでてるしね。
それでいて>>302に俺がレスしてもレスしなくても俺の周りからの心象が下がる絶妙な文章。
あなたからは質問者を困らせようとしてるとしか思えない雰囲気がでてるよ。
309:デフォルトの名無しさん
09/02/01 15:20:33
バイナリで扱った方が楽な気がしてきたw
文字列として扱うから「秀丸なEUC→うにに→秀丸じゃないEUC」に変身しちゃうんだしね。
javaの中で文字列じゃないと不都合な場面がいっぱいありそうだから無理だろうなぁ。
310:デフォルトの名無しさん
09/02/01 15:22:32
>>308
もう他人の指摘はやめといた方がいいよ。
周りがどんなに熱くなっても、それに付き合ったらだめ。
それこそあなたが空気読めてないし、質問者が煽ったら空気読む以前の問題。
311:デフォルトの名無しさん
09/02/01 15:22:44
>>308
オマエが「この表のように」って言っていても、
その表に№が表示されてると思っているのは、お前のブラウザの都合だって言ってんだよ。
312:デフォルトの名無しさん
09/02/01 15:26:10
ここに居る人のレベルでは対処不可ですか(笑)
313:デフォルトの名無しさん
09/02/01 15:26:15
>>303
WAVE DASH問題とは別だよ。
あれはユニコードの方に複数のコードポイントあるだけだから、
例えば読み込み時に Shift_JIS 使っておいて出力時に Windows-31J 使うと化けるけど
要はシステム内で解決できる可能性の高い話なわけ。
№ の方は EUC の方に複数のコードポイントがあるんで
出力先が期待してるコードポイントが何かとか
読み込み元が吐き出すコードポイントが何かとか
要は相手のシステムの情報がないとどうしようもない。
314:デフォルトの名無しさん
09/02/01 15:26:42
>>309
バイナリで扱えば確かに化けることはないんでしょうけど、
文字列操作を全て自前で作成するのと、変換表を一から作るのとどっちが楽か、ってところですね……
315:デフォルトの名無しさん
09/02/01 15:29:19
変換表なんてどーせ他所からパクってくるだけだろ
316:デフォルトの名無しさん
09/02/01 15:31:29
>>308
> 文字コードも>>296表ならcp51932という文字コードという情報もでてるしね。
~~~~~~~~~~~~~~~~~~~~~~~~
317:デフォルトの名無しさん
09/02/01 15:55:34
>>310
ごめんなさい、気をつけます。
>>313
ちゃんと分かってる方がいると安心します。
NECとIBMの二つでしたよね? 13区の方を想定してお願いできますか?
とりあえず今は他システムは(下記で無視できるなら)無視してください。
String str = "№"; //←これをEUC_JP(>>296)の13区の№のあるコードに(実行環境はウィンドウズで)ファイルに出力する
条件としてこれではいけませんか?
318:デフォルトの名無しさん
09/02/01 15:58:49
>>315
どこかでフリーのライブラリになってたりしませんか?
それで済むならそれが一番なのですが。
内容的に需要0ってことはないと思うのですが。
319:デフォルトの名無しさん
09/02/01 16:02:06
ほんとMSのシフトJISには参ったよな。なんでMSはころころと仕様変更するかなぁ・・・
320:デフォルトの名無しさん
09/02/01 16:02:26
ここに居る人のレベルでは対処不可ですか(笑)
321:デフォルトの名無しさん
09/02/01 16:18:21
public class sample
{
public static void main(String[] args)
{
int i [] ={6,5,4,3,2};
System.out.println("最大値" + int max []);
}
static sample()
{
int max = array [0];
for (int i = 0; i < array.length; i++)
{
Math.max( i, array []);
return valmax;
}
}
}
初心者の質問で申し訳ないのですが
最大値を求めるプログラムなのですが研修の時このような形で解いたと
思うんですがどうもうまくいかなくて、足りない部分や間違ってる部分があったら教えていただきたいです
322:デフォルトの名無しさん
09/02/01 16:21:10
>>321
研修やり直してきた方がいいレベルのソース?に見えるが……
ほんとにこれJAVA?
323:デフォルトの名無しさん
09/02/01 16:23:44
>>321
研修でこんなことしてるとか。。。
メソッドとか理解してねーだろ
つかつっこみどころ多すぎてもう・・・
324:デフォルトの名無しさん
09/02/01 16:27:10
charsets.jarのソースコード眺めてたが、他にやりたい事があるせいで頭に入らん。
CharToByteEUC_JP_Solarisを改造してCharToByteEUC_JP_HOGEとでもすればなんとかならんかね?
325:デフォルトの名無しさん
09/02/01 16:28:10
>>321
public class sample{
public static void main(String[] args){
int i [] ={6,5,4,3,2};
System.out.println("最大値" + sample(i));
}
static int sample(int[] array){
int max = array [0];
for (int i = 1; i < array.length; i++){
max = Math.max( max, array [i]);
}
return max;
}
}
こんな感じに習ったんじゃないか?
326:デフォルトの名無しさん
09/02/01 17:04:36
>>322,323,325
すいません、ご指摘ありがとうございます、まだ研修は始まったばかりで今後も続くので
また1から参考書読み直してきます
327:デフォルトの名無しさん
09/02/01 17:06:42
>>324
何にしてもエンコーディング指定で解決、とはいかなそうってことですよねorz
>>ALL
自前でやるしかないってわかっただけでも収穫です。 ありがとうございました。
あと質問が非常に分かりづらくて申し訳ありませんでした。
328:デフォルトの名無しさん
09/02/01 17:12:18
>>327
sunが秀丸っぽいEUC_JP_MS作ってくれりゃありがたいんだが、
sunにとっちゃ知ったことか!だろうしなぁw
329:デフォルトの名無しさん
09/02/01 17:30:29
>>326
勉強するかどうかよりも、そこがブラック会社かどうか疑った方がいいよ。
330:デフォルトの名無しさん
09/02/01 17:44:04
もうコード変換対応するの面倒だから、対応システムと同じソラリスで動かすってことでいいじゃん。
窓で動作させてる時点で負けってことで。
漏れだったらそんな面倒な事に成りそうな仕事受けないからどーでもいいよ。
331:デフォルトの名無しさん
09/02/01 18:41:23
>>330
質問スレとしては最低の答えだと思うが同意w
332:デフォルトの名無しさん
09/02/01 19:16:29
FilterOutputStreamとかで0x8FA2F1のバイト列を0xADE2にして出力するとかは?w
333:デフォルトの名無しさん
09/02/01 20:25:16
>>330
おまえみたいな無能じゃ何やっても無理だろうけどなw
334:デフォルトの名無しさん
09/02/01 20:53:19
javaの質問じゃないかもしれないけど。
jarファイルダブルクリックでアプリケーションを起動させてるんだけど、
VMのオプション"-Xmx512m"の記述をマニフェストファイルに入れるにはどうすればいいんだろう?
マニフェストファイル xxxx xxx でいろいろぐぐってるんだけど、見つからないんです。
335:デフォルトの名無しさん
09/02/01 23:21:20
>>334
見当たらない
Java低速GUI Swing 5
スレリンク(tech板:635番)
>635 名前:デフォルトの名無しさん[sage] 投稿日:2007/07/05(木) 15:07:49
>オプションといってもVMのオプションね。
>システムプロパティを指定する-Dや、
>VMの種類を選択する-clientや-serverとか、
>メモリ割当プールの最大最小サイズを指定する-Xmxや-Xmsなど。
>今のところ、実行可能Jarをダブルクリックでは、
>これを個別指定することはできない。
>
>まあただ、-clientや-serverはCPUやアーキテクチャによって
>自動選択されるし(おおよそではあるけど)
>-Xmxと-Xmsも、Java6からは規定値が64MB/2MBではなくなり、
>物理メモリに応じた値に変わるようになった。
>URLリンク(java.sun.com)
>
>-Dやその他のVMオプションは無理としても、
>実行可能Jarの手軽さを全否定するほど、使えないってことは無いと思う。
336:デフォルトの名無しさん
09/02/01 23:38:19
>>335
わざわざありがとうございます。
あきらめて、「javaw.exe -jar hoge.jar -Xmx512m」ってショートカットに書くことにします。
337:デフォルトの名無しさん
09/02/01 23:50:23
>>336
javaw.exe -jar hoge.jar -Xmx512m
をプロセス起動して落ちるだけのクラスを書いてマニフェストの実行クラスに指定すればよい
338:デフォルトの名無しさん
09/02/01 23:54:18
>>337
おもしろっw
339:デフォルトの名無しさん
09/02/02 00:00:27
>>337
ゴメン間違えたw
javaw.exe -Xmx512m mainclass
をプロセス起動して落ちるだけのクラスを書いてマニフェストの実行クラスに指定すればよい
340:デフォルトの名無しさん
09/02/02 00:31:55
環境依存の動作を、アプリ側でなんとかするなんて無理なんだよ。
サンがそういう実装してるから無理じゃね。
個人的にはsjis自体抹殺したいけどな。
日本語単一なら7ビットのJISでいいじゃん。メールにもそのまま使えて無変換で問題が無い。
いちいち変換するから文字化けする。
341:デフォルトの名無しさん
09/02/02 00:39:45
知らないならレスしないでください。ウザいだけです。
342:デフォルトの名無しさん
09/02/02 00:42:19
>>341
Win32API質問スレへの誤爆ですか?
ウザイだけなので輸入してこないでください。
343:デフォルトの名無しさん
09/02/02 09:25:15
>>327
windows-31jでバイト列にして、それをバイト列でEUCに変換すればいい
じゃん。10~20行ぐらいで書けるよ。
344:デフォルトの名無しさん
09/02/02 09:32:25
おはようございます。
Jpegの画像を読込んで定義してあるカラーに一番近いカラーを判別したいのですが何か
良い方法は無いでしょうか。
画像を読込んでピクセル毎の情報は取得できています。
で、そのRGB情報を使用して判別したいと思っています。
定義カラー(例)
・黒
・赤
・茶
・緑
・白
黒っぽい→黒
茶色っぽい→茶色
345:デフォルトの名無しさん
09/02/02 10:28:52
javaに関係あるんですか?
346:デフォルトの名無しさん
09/02/02 11:05:39
javaとは直接関係ないね。。
RGB情報取得できません。ってんならjavaの領分だがw
347:デフォルトの名無しさん
09/02/02 11:24:53
ジェネリックなクラスの配列を作ろうと思うんですが、ある本(Javaによる
アルゴリズムとデータ構造)のサイトにある解答には、
public class Gqueue<E> {
private E[] que;
que = (E [])new Object[max]
……
}
と書いてありましたが、これってどういう解釈をすればいいんでしょうか。
キャスト?の意味が良くわからないんですが。。。
348:344
09/02/02 11:44:59
確かに直接Javaとは関係なかったですねすいません。
何か使えるクラスがあったらと思いました。
ColorModelとか組み合わせて試してはいるもののいい案が浮かびませんでした。
jimiとかも含めてもうちょっと見てみます
349:デフォルトの名無しさん
09/02/02 16:24:11
>>347
試してみれば分かるけど、
que = new E[max]
とは出来ないんだな。あとは以下参照。
URLリンク(www.ibm.com)
350:デフォルトの名無しさん
09/02/02 17:22:14
>>349
そんな感じでやったらエラーが出て、答えを見てもよくわからないという状態でした。
ご指摘のページの半分も理解できませんが、勉強してみます。ありがとうございます。
351:デフォルトの名無しさん
09/02/02 18:23:24
ナローバンドな俺にとって100MBなEclipseは無理
だから仕方なくNetBeans使ってんだけど、
Eclipseの方が高機能・・・だよね。。
352:デフォルトの名無しさん
09/02/02 18:24:12
あ、sageてなかった・・・
353:デフォルトの名無しさん
09/02/02 18:33:33
>>351
寝る前にDLはじめとけよ
354:デフォルトの名無しさん
09/02/02 18:34:01
>>344
肌色を検出するような課題があるから、そういうのの応用で出来るんじゃないか?
355:デフォルトの名無しさん
09/02/02 19:16:31
質問です。
「台形の面積を求めるクラスを定義し、
これらのインスタンス変数を初期化し、
図形の面積を計算するコンストラクタを用意し、
台形の面積を表示しなさい」
という課題が出ました。
授業を聞いてましたが全然分かりません。
どなたか教えてください。
356:デフォルトの名無しさん
09/02/02 19:25:27
>>355
★★ Java の宿題ここで答えます Part 67 ★★
スレリンク(tech板)
しかしひでえ課題だなw
357:デフォルトの名無しさん
09/02/02 19:41:06
なんという潔さw
惚れてしまうではないかw
358:デフォルトの名無しさん
09/02/02 19:54:11
>>356
失礼しました
どういう意味で「ひどい」なんですか?
359:デフォルトの名無しさん
09/02/02 19:57:08
ここで質問すべきか微妙ですが質問させてください
今度部署にJava初心者の方が3名来られました
Javaを教えよとの命令が飛んできたのですが、何を教えればいいかわかりません
とりあえず、人数分独習Javaでも買おうかと思いましたが、予算凍結により新たな備品購入を禁じられてしまいました
そこで、Webページと自作の課題を駆使して目的を達成したいのですが、参考になるページや問題などありましたら教えていただければ幸いです
ちなみに3名ともプログラム経験は5年以上でC言語とC++をやってたそうです
私の部署ではJava6を使うことになっているので、Java5.0で入ってきたジェネリクスが必須となっております
よろしくお願いいたします
以上
360:デフォルトの名無しさん
09/02/02 20:03:25
>>359
本ぐらい、当人たちに買わせれば良いだろ、ボケ
361:デフォルトの名無しさん
09/02/02 20:05:27
改行コードについての質問です。
以下のようなプログラムを書きました。
StringBuffer buf = new StringBuffer();
List lines = org.apache.commons.io.FileUtils.readLines(new File(filename), "SJIS");
Iterator i = lines.iterator();
while(i.hasNext()){
String line = (String)i.next();
/* ~lineを加工する処理~ */
buf.append(line + "\r\n");
}
org.apache.commons.io.FileUtils.writeStringToFile(new File(newFilename), buf.toString(), "SJIS");
Windows上でコンパイルしWindows上で実行すると、
SJIS(CRLF)のファイルを読み込みSJIS(CRLF)のファイルを出力します。
Windows上でコンパイルしたものをSolaris上で実行すると、
SJIS(CRLF)のファイルを読み込みSJIS(CRCRLF)のファイルを出力します。
"\r\n"を"\n"にすると、Windows上ではSJIS(LF)のファイルを出力しました。
"\n"だとSolaris上ではSJIS(CRLF)のファイルを出力するのでしょうか(Solaris環境がないので試すことができません)
また、どのように対処することが一番自然なのでしょうか
362:デフォルトの名無しさん
09/02/02 20:07:00
>>359
なんか作らせて、ソースレビューしてやればいいじゃん
会社のPCがインターネットに繋がってグーグル使い放題なのが前提だけど
363:デフォルトの名無しさん
09/02/02 20:12:03
>>361
SolarisっていうかUNIX上はLFが改行コードだから、CRは普通の文字として扱われているんでしょ。
オマエが食わせてるファイル(filename)の中身がCRLFで改行しているから、
一行の内容として
hogehoge+CR+改行(LF)
と解釈して、lineの中身はhogehoge+CR
更にオマエのコードでCRLFを追加したら、
hogehoge+CR+CRLF
364:デフォルトの名無しさん
09/02/02 21:42:09
>>359
>予算凍結により新たな備品購入を禁じられてしまいました
人件費はタダだと思ってるんだろうな
365:361
09/02/02 21:45:34
>>363
ありがとうございます。
Linux上で上記ソースをコンパイル&実行したところ、
SJIS(CRLF)になりました。
Linuxも改行コードはLFだと思うのですが(文字コードはEUCです)、モノによって動作が異なるということでしょうか?
(Windowsでコンパイルしたらまた違う結果?)
そもそもWORAを実現するためにはどのようなソースを書けばよいのでしょうか?
366:デフォルトの名無しさん
09/02/02 21:51:27
>>365
読み込ませるファイルはどうやったの?
SJIS(CRCRLF)なった場合のファイルをそのサーバ上で、バイナリでみて、
Linux上のファイルも同様にバイナリで開いてみて、
改行コードがどうなってるか確認しろ。
367:デフォルトの名無しさん
09/02/02 21:51:40
C#ってゲーム作ってユーザーにそのファイルを配布したら
かんたんにソースコードを見られてしまうけど、
javaの場合はどうなの?
専用のツールとか使うとすぐにコードを
見られてしまうの?
368:デフォルトの名無しさん
09/02/02 21:53:07
簡単に見られるっす
369:デフォルトの名無しさん
09/02/02 21:58:25
>>368
まじで?
防ぐ方法とかってないの?
370:デフォルトの名無しさん
09/02/02 22:00:59
難読化って手段があるらしいがやったことないからわかんね。
371:デフォルトの名無しさん
09/02/02 22:08:00
たいていの場合ソースを見られることを防ぐメリットはない
372:デフォルトの名無しさん
09/02/02 22:09:20
専用のツールも何もJDK付属のjavapで十分見えるじゃん
373:デフォルトの名無しさん
09/02/02 22:09:25
それでエクリプスとかは最初からオープンソースなわけだな。
隠してもすぐに見られてしまうから。
374:デフォルトの名無しさん
09/02/02 22:23:05
eclipseがオープンソースな理由はそうではないと思うぞw
あれはプラットフォーム依存部分も結構あるから
そういったソースを隠せばカジュアルハックは結構阻止できるだろ
375:デフォルトの名無しさん
09/02/02 22:25:06
>>373
隠しても見られてしまうからってあえて公開する必要もないだろw
376:デフォルトの名無しさん
09/02/02 22:26:45
eclpseがossなのはIBMが金儲けするためじゃないっけ?
377:361
09/02/02 22:44:59
>>366
>読み込ませるファイルはどうやったの?
WindowsからFTPとSambaで持ってきました。
(もちろんFTPはBinaryで)
>改行コードがどうなってるか確認しろ。
上記、バイナリで0x0d, 0x0aを確認した結果です。
378:361
09/02/02 22:50:54
Javaのversionのせいでしょうか?
WindowsとSolarisはSunの1.4.2だったと思います。
Linuxに入っているJavaは下記です。
java version "1.7.0"
IcedTea Runtime Environment (build 1.7.0-b21)
IcedTea Server VM (build 1.7.0-b21, mixed mode)
379:デフォルトの名無しさん
09/02/02 22:50:58
>>365
改行コードを自分で¥nとか足さないで、↓を使うといいかもしれない。
BufferedWriter#newLine()
380:361
09/02/02 23:15:55
>>379
ありがとうございます。
newLine()は「OSに適した改行コードを出力する」とありますが、
今回の場合にはSolaris上で(どのOS上でも)CRLFを出力したいのです。
あと、LinuxにSunの1.6.0_11を入れて実行してみましたが、
>>361のソースでCRLFとなりました・・・
381:デフォルトの名無しさん
09/02/03 01:21:21
>>357
willcomのx4で某ギガパッチ落とした俺を見習え!
382:デフォルトの名無しさん
09/02/03 01:21:55
>>351ね
383:デフォルトの名無しさん
09/02/03 02:13:21
ネットビーンズはjavascriptのサポートもいけてるらしいぞ
あと標準でswingのポトペタ開発ができるとも聞く
384:Joseph O’Neil
09/02/03 02:28:56
Hey ! I am Joseph O'Neil. Japanese excelent programmer, Did you read my book?
The book name is [Teach yourself Java].
That one is my most like book I ever write.So you don't read this book, I recommend you reading this book.
Good night.
385:デフォルトの名無しさん
09/02/03 04:00:57
>>384
>>359
386:デフォルトの名無しさん
09/02/03 17:25:08
Javaからシェルを起動するには
Runtime r=Runtime.getRuntime().exec("シェル名")
でいいようですが、
オプション(-fとか-tとか)を与えて起動するにはどのようにすればよいのでしょうか?
また、このシェルのパス(c:/shell/shell.shとか/usr/local/shell/shell.shとか)を指定したい場合どうすればよいのでしょうか?
387:デフォルトの名無しさん
09/02/03 17:38:37
execの中で指定する
388:386
09/02/03 18:09:09
>>387
ググったら
URLリンク(www.stackasterisk.jp)
URLリンク(www.smg.co.jp)
といったページがでてきましたが、
String[] str=("bin/sh","-exec -f hoge -t hage","c:/shell/shell.sh")
Runtime r=Runtime.getRuntime().exec(str)
といった感じでよろしいでしょうか?
また、今回実行するのはbash(一行目に#!/bin/bashとあった)のようなのですが、
その場合/bin/shが/bin/bashになるのでしょうか?
正直な話、bashって何? 他いろいろ種類あるし何が違うの? 状態なので的外れなこと言ってたらすみません
389:デフォルトの名無しさん
09/02/03 19:01:53
↑すれ違い
390:デフォルトの名無しさん
09/02/03 19:02:29
>また、今回実行するのはbash(一行目に#!/bin/bashとあった)のようなのですが、
>その場合/bin/shが/bin/bashになるのでしょうか?
そら使うシェルが違うんだし/bin/bashになる
でもWindowsでsh/bashスクリプト使用できるの??そこが疑問。
>正直な話、bashって何? 他いろいろ種類あるし何が違うの?
bashはshの拡張シェルでLinuxの標準シェル
shはボーンシェルと言われるもの、汎用的なスクリプトはこいつで書く
csh/tcshはC系シェルでこいつではスクリプトは書かない、理由は「csh-whynot」でググれ
391:デフォルトの名無しさん
09/02/03 19:12:17
>c:/shell/shell.sh
書き方がWindowsっぽいけどシェル動かすって。。。
激しくスレ違いだな
392:デフォルトの名無しさん
09/02/03 20:58:13
ある本にSystem.out.print()メソッドを使うと、System.out.flash()をしないと表示されない、と
書いてあったのですが、
System.out.print("テスト");
とだけ書いても普通に表示されました。どういうことなんでしょう?
393:デフォルトの名無しさん
09/02/03 21:02:05
>>392
??
どの本?
出力ならSystem.out.print()メソッドだけど?
394:デフォルトの名無しさん
09/02/03 21:08:17
>>392
「flushしないと表示されない」でなくて
「flushしない場合は必ずしも表示されるとは限らない」の間違いじゃね?
System#out 見ても必ず自動的にフラッシュされる、とは書いてないし。
395:デフォルトの名無しさん
09/02/03 21:48:30
URLリンク(code.google.com)
このページを参考にjavaでmecabを使用しようとしているのですがエラーが出てしまい動きません
ライブラリパス等も一応確認したと思うのですが、初心者なもので
javaのライブラリパスやMeCabのライブラリがどこを挿しているのか等は今ひとつ理解できていないかもしれません
エラー内容は
Exception in thread "main" java.lang.NoclassDefFoundError: net/moraleboost/mecab/Tagger
となっています。
396:デフォルトの名無しさん
09/02/03 21:50:52
flashだし違う言語なんじゃない?
397:デフォルトの名無しさん
09/02/03 22:08:30
>>393
ちょっと古いんだけど、「Javaで学ぶアルゴリズムとデータ構造」という本。
JavaのVersionが古いときの話とかでしょうか。Eclipse3.4でやってますが。
>>396
失礼氏やした
398:デフォルトの名無しさん
09/02/03 22:15:15
>>392
細かいけど、一応あってる
399:デフォルトの名無しさん
09/02/03 22:33:44
質問です。
JFrameで作ったフレーム(親フレーム)から新たにJFrameで作ったフレーム
(子フレーム)を呼び出しました。
その子フレームに「×」ではなくJButtonでフレームを終了させるボタンを
作りたいんですが、どうしたらいいでしょうか?
試しにアクションリスナにSystem.exit(0);を入れてみたら親フレームごと
消えてしまいました・・・。
JFrameのsetVisible(false);を入れて試してみましたが、非表示になってくれませんでした。
400:388
09/02/03 23:23:27
>>390
疑問に答えていただきありがとうございました
なお、実機環境はLinuxなので問題ないはずです
>>391さんにも勘違いさせてしまったようなので次に質問があるときは
もう少しわかりやすく書くことを心がけたいと思います
401:デフォルトの名無しさん
09/02/04 00:05:40
ボタンを押すとボタン付きのフレームを生成するような機能を
classを分けて実装したいのですが上手く行きません
調べてもさっぱりなのですがどのようにすれば上手く行くのでしょうか
402:デフォルトの名無しさん
09/02/04 00:15:26
オブザーバーパターンとか?
403:デフォルトの名無しさん
09/02/04 00:53:33
非常に初歩的な質問なのが聞いてください。
eclipseをインストールして、日本語化パックをいれても
うまく日本語表示になりません。中国語になります。
またall in one eclipseをインストールして、表示を日本語に設定しても
(インストール時に表示されるダイアログにより)日本語になりません。
eclipse起動時に中国語になります。
これはどういったことが考えられるんでしょうか?
404:デフォルトの名無しさん
09/02/04 01:08:02
非常に初歩的な質問なのですが聞いてください。
Iteratorインターフェースでコレクションクラスの要素をすべて削除するメソッドを作ったんですが
Iterator it = XXX.iterator();
while(it.hasNext()==true){
it.next();
it.remove();
}
これだとすべての要素が削除されるのか
hasNextでtrueだった要素の次から削除されるのかどっちでしょうか?
405:デフォルトの名無しさん
09/02/04 01:14:00
>>404
すべて
それより==trueは、馬鹿に見えるからやめたほうがいい。
406:デフォルトの名無しさん
09/02/04 01:18:54
>>405
なんですべてなの?
なんで馬鹿なの?
407:デフォルトの名無しさん
09/02/04 01:22:44
next は次の要素を返すので
Iterator it = XXX.Iteragor();
while (it.hasNext()) {
Iterator next = it.next();
it.remove();
it = next;
}
になるんでない?
408:デフォルトの名無しさん
09/02/04 01:26:47
>>403
日本語化パックが正しいかどうかだ
409:デフォルトの名無しさん
09/02/04 01:26:54
ていうかイテレータでぶん回してる最中のremoveって正常動作保証されてるんだっけ?
410:デフォルトの名無しさん
09/02/04 01:26:57
>>406
> なんで馬鹿なの?
オマエだって、
while((it.hasNext()==true)==true){
って書いてあったら頭おかしいって思うだろ?
411:デフォルトの名無しさん
09/02/04 01:28:17
>>407
next()はイテレータを進めてその要素のObjectを返す。
412:デフォルトの名無しさん
09/02/04 01:28:36
>>410
そこはいいよ
ところでなんですべてなの?
413:デフォルトの名無しさん
09/02/04 01:29:05
>>409
されてる。保証できない場合は例外を投げることになってるよ。
414:デフォルトの名無しさん
09/02/04 01:29:30
>>411
わかった乙
トン
415:デフォルトの名無しさん
09/02/04 01:30:06
>>399
子フレームって別ウィンドウじゃないん?
親フレームにaddで足してるなら、親フレームからremove(comp)で消せないかね?
compは子フレームね
416:デフォルトの名無しさん
09/02/04 01:32:16
おい。でぶさみを名古屋でも開催しろ。馬鹿。
417:デフォルトの名無しさん
09/02/04 01:33:37
>>412
hasNext()がfalseなら、もう次は無いってことだろ。
418:デフォルトの名無しさん
09/02/04 01:39:59
XYZ・・・もうあとがない
419:デフォルトの名無しさん
09/02/04 01:43:03
>>411
なるほど。
で、最初の next の呼び出しで得られる要素は
最初の要素になるのかな?
420:デフォルトの名無しさん
09/02/04 01:47:09
そそ、C++のSTLとは反対だ
421:デフォルトの名無しさん
09/02/04 02:08:58
>>399
なんでソースを隠したがるのか分からないが、
つたない言葉で説明されてもなんだか分からないよ。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
422:デフォルトの名無しさん
09/02/04 02:54:45
オブジェクト指向というものを講義で習いました。
その中で「再利用性」というものが挙げられていましたが、
オブジェクト指向言語であるJavaでは、
実際どういったクラスオブジェクト(言葉が正しくないかもしれません)が、
どのようにして再利用されているのでしょうか?
再利用できそうなクラスが、一般的に公開され、
利用されたりもするのでしょうか?
それとも、再利用とは言っても、
閉じた組織の中で、似た機能を持たせるときに再利用するだけなのでしょうか?
かなりわかりにくい質問ですが、回答よろしくお願いします。
423:デフォルトの名無しさん
09/02/04 03:03:01
>>422
ライブラリとか、フレームワークと呼ばれるものは大体そう。
再利用はオブジェクト指向に限ったことではないが、
きちんと分けて、きれいに並べてあれば、再利用はしやすい。
オブジェクト指向の仕組みは、そういうことを助けてくれる。
424:デフォルトの名無しさん
09/02/04 03:10:34
>>422
あなたが使ってるJavaの標準ライブラリが、再利用できるプログラムの代表例
もっと言うと、大抵のプログラムに必要な普遍的な部品を、オブジェクト指向的な発想のもとに集めた物になる
まあ世界中で使われてるだろうね
再利用というのはオブジェクト指向に限った発想ではないけど
特にオブジェクト指向だと、プログラム中から再利用できる部分を切り出しやすい(こともある)、
という程度の意味
425:デフォルトの名無しさん
09/02/04 03:50:32
設計が糞だと、再利用するより、自分でヲレクラス書いたほうが速かったりするけどね。
車輪の再発明状態で敗北感味わうけどしょうがない。
426:デフォルトの名無しさん
09/02/04 04:16:01
エロゲエンジンなんて再開発だらけだぜ
427:デフォルトの名無しさん
09/02/04 04:36:51
再利用性とかなんの言語でもありそうだけど
428:デフォルトの名無しさん
09/02/04 04:57:20
>>425
自分クラスを作成し使用していたら、言語のバージョンアップとともに悲鳴を上げるんですね、わかります。
429:デフォルトの名無しさん
09/02/04 05:29:57
>>428
経験あるけど、修正が大変だよねぇ
430:デフォルトの名無しさん
09/02/04 06:10:13
自分クラスを作成し他人にうっかり使用を許したら、その後メンテや
機能拡張で長い間その世話をさせられた。
431:デフォルトの名無しさん
09/02/04 11:47:14
>>422
すでにレスが入っているが、
もしその再利用性の説明の重点がクラスの継承に関する物であるならば要注意
現在のオブジェクト指向においては、継承による再利用というのはあまり一般的でない
というか再利用のための安易な継承はトラブルを招きやすいのでむしろ避けた方がいい
で、それ以外の観点の再利用性というのは、とくにオブジェクト指向に限った話ではないので
再利用性というのはあまり意識しなくても良いと思う
まあ、テストに出たら書かざるを得ないがw
432:デフォルトの名無しさん
09/02/04 16:46:10
バラバラに作って貼り合わせる の繰り返し
433:デフォルトの名無しさん
09/02/04 20:28:01
public class sample300
{
public static void main(String[] args)
{
int i [] ={6,5,4,3,2};
System.out.println("最大値" + sample300(i));
System.out.println("最小値" + sample300(i));
System.out.println("平均値" + sample300(i));
}
static int sample300(int[] array)
{
int max = array [0];
int min = array [0];
int sum = array [0];
for (int i = 1; i < array.length; i++)
{
max = Math.max( max, array [i]);
min = Math.min( min, array [i]);
sum = sum/(array [i]);
}
return max;
return min;
return sum
}
}
最大値、最小値、平均値を出すプログラムをなんですがSystem,out.printlnのところが違うのはわかるのですが
間違っているところがありましたら教えていただきたいです。初歩的な質問ですいません
434:デフォルトの名無しさん
09/02/04 20:30:27
>>433
違うのがわかってるならそこ直してから貼り付けろよ
435:デフォルトの名無しさん
09/02/04 20:51:51
System.out.println("最大値" + sample300(i));
System.out.println("最小値" + sample300(i));
System.out.println("平均値" + sample300(i));
のsample300(i)は何をどうやって最大値と最小値と平均値を見分けて適切に出力してくれてるんだろうね?
ってあたりから疑問に思ってもらいたいね。 せめてさ。
独自仕様のJavaというならもう知らん。
436:433
09/02/04 20:55:36
>>434
すいません、そのまま貼ってしまいました。
すでにいろいろ試してはみたのですが・・
437:デフォルトの名無しさん
09/02/04 20:55:53
C# とかなら yield 使えばその書き方でも最大値・最小値・平均値出力できるけどな。
まあスレ違いだし当該言語でもそんな書き方はしないが。
438:デフォルトの名無しさん
09/02/04 21:07:12
>>433
とりあえず横着しないで、sample300メソッドをmax300・min300・avg300の
三つのメソッドに分けるところからやってみれば?
メソッドは基本的に基本型の値orオブジェクトを1個しか返せない。
無理に最大値・最小値・平均値の三つの値を同時に返そうとして
いるからはまるわけで。
439:デフォルトの名無しさん
09/02/04 23:23:59
ファイルの書き込みに関して質問があります.
巨大なのデータ(2ギガ以下)をファイルに出力するプログラムを作ってます.
一度に全ての作業を行うにはかなりの時間がかかるので,一旦作業を中断して再起動後に書き込みを再開できる機能を追加しようと思ってます.
その際に,ファイルの末端に今回はどこまで作業を行ったのかを書き込み,
次回,作業を再開する場合には末端の情報を読み込んで前回の作業を再開させようと考えてます.
なお末端の作業の情報は32バイトの固定長です.
そこで質問がありますが,現在BufferedOutputStreamでファイルの書き出しを行っています.
BufferedOutputStreamの書き込みのポインタを,ファイルの末尾から32バイト戻って追加書き込みする必要がありますが
BufferedOutputStreamのポインタ指定はどうやってやるのでしょうか?
440:デフォルトの名無しさん
09/02/04 23:39:14
> ファイルの末尾から32バイト戻って追加書き込みする必要がありますが
これファイルの末尾32バイトが消えちゃうけどかまわないんか?
> BufferedOutputStreamのポインタ指定はどうやってやるのでしょうか?
BufferedOutputStreamじゃ無理。
RandomAccessFile みたいに書き込み位置操作できるクラス使え。
441:デフォルトの名無しさん
09/02/04 23:47:49
>>439
protectedメソッドのbufとcount操作すれば運がよければ32バイト巻き戻せるかもしれないけど
必ず32バイト巻き戻せるとは限らない。
確実にやりたいなら>>440が言うようにRandomAccessFile使うほうが無難。
442:デフォルトの名無しさん
09/02/04 23:48:29
×protectedメソッド
○protectedメンバ
443:デフォルトの名無しさん
09/02/05 00:25:05
>440
>441
RandomAccessFileは調べてみたらストリームじゃないのでバッファリングされないようで,
一文字ずつ処理されるようなんですけどそれでギガ単位のファイルを扱うにはちょっと難があります.
何か良い方法はないでしょうか?
>441さんの方法はちょっと怖いので最後の手段にしたいです.
444:デフォルトの名無しさん
09/02/05 00:35:11
>>443
件の32バイトは別ファイルに保存でどうだ
445:439
09/02/05 00:59:11
>444
32バイトだけRandomAccessFileで上書きしてそこから先はBufferedOutputStreamで追記することにします.
たしかファイルへの追記はStream関連のクラスで昔やった記憶があるので
多分うまくいくでしょう.
どうもありがとうございました.
446:デフォルトの名無しさん
09/02/05 01:06:52
>>443
RandomAccessFileのバイト配列の読み書きじゃダメなのか?
447:デフォルトの名無しさん
09/02/05 01:38:49
java.io.BufferedReaderって何?
448:デフォルトの名無しさん
09/02/05 01:40:16
>>444
自分もこれを強くリコメンド。
たかだか32バイトのために巨大ファイルの取り回しを無駄に
複雑にする事もないかなと。
449:デフォルトの名無しさん
09/02/05 02:13:58
質問です。
フレームにパネルを貼り付ける際に、どのフレームに貼り付けるか
という指定はできないのでしょうか?
ボタンの押したときにアクションリスナーの中で2つ目のフレームを作るようなプログラムを作ったのですが、
元々あったフレーム内のパネルが、ボタンを押して作った2つ目のフレームに残ってしまいます
450:デフォルトの名無しさん
09/02/05 02:38:54
>ボタンを押して作った2つ目のフレームに残ってしまいます
これはコードの書き方が悪い気がする。
コンポーネントを張り付けてないフレームを表示したら(setVisible(ture))中身が何もないフレームが出てきたはずだが。
451:デフォルトの名無しさん
09/02/05 03:18:22
>>450
ありがとうございました、解決しました。
一つ目のフレームはJFrameをextendしたクラス名を使って
クラス名 frame = new クラス名();
として呼び出していましたが、コンストラクタでパネルを配置していたので、
二つ目のフレームも同様に生成した所、そのコンストラクタがまた呼び出されていたのかもしれません
JFrame frame =new JFrame();
で新しいフレームを試した所、中身のないフレームが表示できました。
452:デフォルトの名無しさん
09/02/05 06:31:22
>>435、437、438
ご指摘ありがとうございます、また試してきます。
453:デフォルトの名無しさん
09/02/05 12:00:09
ちょっと質問
public <T> boolean isHoge(T t)
と定義したメソッド内でTのClassを調べたいんだが、どうしたらいいんだろう?
T instanceof Hoge
とかできたらいいのに・・・
454:デフォルトの名無しさん
09/02/05 12:33:08
>>453
t.getClass()
455:デフォルトの名無しさん
09/02/05 15:40:50
>>453
コードで直接指定されたTの型を知るのは原理的に不可能
456:デフォルトの名無しさん
09/02/05 15:44:55
ジェネリクス使うのに T の型情報が必要な理由がわからん
457:デフォルトの名無しさん
09/02/05 15:47:04
できたらできたで結構使い道はあるんだよなこれが
458:デフォルトの名無しさん
09/02/05 16:09:21
jdk1.3の環境でJakartaのpoi3.0を利用してExcelファイルの操作をしています。
対象ファイルがユーザによって開かれている場合は、その旨のメッセージを出力して終了したいのですが、
対象ファイルがネットワーク上の共有フォルダにあると、ユーザが開いていてもお構いなしにファイルに書き込みをしてしまいます。
ユーザがファイルを開いているかどうかのチェックはできないでしょうか?
459:デフォルトの名無しさん
09/02/05 16:14:58
>>457
そんなことはまったくない。Genericsについて勉強した方がいいな。
460:デフォルトの名無しさん
09/02/05 16:26:06
リフレクションが絡んでくるとTからClass<T>が取れれば便利
Class<T>なんかいちいち引数に渡さないといけない時点で明らかに無理がある
461:デフォルトの名無しさん
09/02/05 16:41:51
Class<String> c = String.class;
これじゃだめなん?
462:デフォルトの名無しさん
09/02/05 16:50:18
>>453
PropertyDescriptor pd = new PropertyDescriptor("hoge", o.getClass());
Method rm = pd.getReadMethod();
Type[] tlist = rm.getGenericParameterTypes();
Typeとやらを取ってこれるようだが
463:デフォルトの名無しさん
09/02/05 16:52:39
isHogeが呼び出された時に,実際にTに指定された型は何なのか動的に知りたいんだろ
断言する。絶対無理。
464:デフォルトの名無しさん
09/02/05 16:53:49
PropertyDescriptor pd = new PropertyDescriptor("hoge", o.getClass());
Method rm = pd.getReadMethod();
Type[] tlist = rm.getGenericParameterTypes();
Type t = tlist[0];
if (t.getClass() instanceof fuga) {
}
これで一応望みどおりの処理だろうか?
動かしてないから動くかどうかわからん
465:デフォルトの名無しさん
09/02/05 17:20:22
>>463
それ考えたことあるんだけど実際使う場面はなかった。例えばどういうときだと知りたいの?
466:デフォルトの名無しさん
09/02/05 17:34:08
>>464
プロパティのパターンに則ってないから、
new PropertyDescriptor がアクセサメソッド見つけられんと思う。
あと、reflection使っても同じだけど、
<T> isHoge(T t) みたいな場合は
T が具体的に何の型かでなくて
T という総称型を使ってるよって情報が得られるだけのような。
467:デフォルトの名無しさん
09/02/05 17:46:23
import java.lang.reflect.Method;
import java.lang.reflect.Type;
public class GeneSample {
public static void main(String[] args) {
GeneSample g = new GeneSample();
System.out.println(g.isMage(g));
System.out.println(g.isMage(new GeneSample2()));
}
public <T> boolean isMage(GeneSample t) {
try {
Method rm = this.getClass().getMethod("isMage", t.getClass());
Type[] tlist = rm.getGenericParameterTypes();
Type type = tlist[0];
System.out.println("Type = " + type);
System.out.println("type.getClass() = " + type.getClass());
System.out.println("t.getClass() = " + t.getClass());
if (type.equals(t.getClass())) {
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
}
class GeneSample2 extends GeneSample {
}
468:デフォルトの名無しさん
09/02/05 17:48:17
>>467の実行結果
Type = class GeneSample
type.getClass() = class java.lang.Class
t.getClass() = class GeneSample
true
java.lang.NoSuchMethodException: GeneSample.isMage(GeneSample2)
at java.lang.Class.getMethod(Class.java:1605)
at GeneSample.isMage(GeneSample.java:14)
at GeneSample.main(GeneSample.java:8)
false
作ってみたけど、サブクラスをパラメーターに渡すともう自分のメソッドとれないね。
あと<T>ってなに?意味わかんない
469:デフォルトの名無しさん
09/02/05 18:28:41
class GeneSample を知りたいんじゃなくて<T>の型の正体を実行時に動的に知りたいんじゃないの?
470:デフォルトの名無しさん
09/02/05 19:10:43
import java.io.*;
と書くのと
import java.io.BufferedReader;
import java.io.File;
・
・
では、どっちが速くなるの
もしかして、コンパイルするスピード以外は変化がないのかい?
471:デフォルトの名無しさん
09/02/05 19:17:41
>もしかして、コンパイルするスピード以外は変化がないのかい?
yes
つか、できたclassファイルを見てみればすぐに分かる事
472:デフォルトの名無しさん
09/02/05 19:23:54
何Hogeって
473:デフォルトの名無しさん
09/02/05 19:29:05
お前らって結構マニアックな標準クラスを知ってるけど
そういうのいちいち調べてるの?それとも頭の中に入ってるの?
474:デフォルトの名無しさん
09/02/05 19:45:56
一度使えば覚えてるもんだろ。
それにそんなに特別なクラスがこのスレで出てきたことあったっけ?
475:デフォルトの名無しさん
09/02/05 19:46:42
>>469
それが>>467で作ってみたけど無理だったって事じゃね?
メソッド検索時にパラメーターの型を渡さないといけない。
Class#getMethodsで一覧は取れるけど、同じ名前のメソッドはいくつでも作れるし。
this.getClassみたいにthis.getMethodができたらいいのにね
476:デフォルトの名無しさん
09/02/05 19:56:53
>>471
thx
477:デフォルトの名無しさん
09/02/05 20:06:18
>>475
たしかに <T> boolean isHoge(T t) の T が何かを調べるのは凄く面倒だけど、
>>467 の場合はリフレクションの使い方の部分で間違ってて
宣言してない isMage(GeneSample2) を検索して失敗してるわけで、
>>467 だけから >>453 が面倒だ、とは言えない罠
478:デフォルトの名無しさん
09/02/05 20:14:00
そもそも存在しない情報をどうやって取ってくるんだ
479:デフォルトの名無しさん
09/02/05 20:17:26
classファイルに存在しないってだけでソースみりゃわかるでしょ
480:デフォルトの名無しさん
09/02/05 20:17:40
>>477
>たしかに <T> boolean isHoge(T t) の T が何かを調べるのは凄く面倒だけど、
>>>467 だけから >>453 が面倒だ、とは言えない罠
壮絶に矛盾してないか?
自分のメソッド名も指定しないとメソッドとってこれないし。
自分のメソッドをthis.getClassみたいに取得する方法がないと無理だべ
481:デフォルトの名無しさん
09/02/05 20:18:42
どこが矛盾なのかわからん。
482:デフォルトの名無しさん
09/02/05 20:20:36
む、たしかに矛盾してないな
1行目は面倒だと宣言
4行目の面倒だと言えないで矛盾してると思った俺の頭の中がもうだめだ
483:デフォルトの名無しさん
09/02/05 20:24:05
初心者です。宜しくお願いします
今迄使っていたチャットが表示できなくなったのでjavaを再インストールしました。
ところが、そのチャットのページを開くと
「java アプレットキャッシュをアップグレードしています。
格納されている java アプレットが java SE 6 用に更新されるまでお待ちください。」
という表示が出て、DL進行度のバーみたいなのが途中まで伸びたかと思うとすぐ表示が消えてしまいます
ページを更新するたびにこの表示が出て、なおかつチャットも表示できません。
こういった場合の解決法を教えてください
484:デフォルトの名無しさん
09/02/05 20:49:01
ゲッターとセッターの質問なのですが
class GetterAndSetter
{
private Map mapA = HashMap();
public map getMapA()
{
return mapA;
}
public void setMapA( map mapA )
{
this.mapA = mapA;
}
}
を作ったとして
classAで
GetterAndSetter oj1 = new GetterAndSetter();
クラスAでmapBを作って以下のようにセッターでセットしたものを
oj1.setMapA(mapB);
別のclassBからゲッターを使ってclassAでセットしたmapBを取得して使いたいんですが
どのように記述すれば良いのでしょうか?
ご指導のほど宜しくお願い致します
485:デフォルトの名無しさん
09/02/05 20:55:53
>>484
oj1 を classB のインスタンスに渡す。
486:デフォルトの名無しさん
09/02/05 21:18:59
>>485
早速の回答ありがとうございます
質問の仕方が下手くそでしたすみません。
クラスBで下記のように書いた場合
GetterAndSetter object = new GetterAndSetter();
Map mapC = object.getMapA();
oj1の渡し方の記述がわかりません
宜しくお願い致します
487:デフォルトの名無しさん
09/02/05 21:29:29
>>486
複数のインスタンスで共通の値を使いたいなら static でクラスに紐付けする。
一つのクラスに対して一つのインスタンスに限定したいなら、「シングルトン (Singleton)」で。
488:デフォルトの名無しさん
09/02/05 21:44:07
何をやりたいかちゃんと書いたらどうだ?
意味が分からないんだがメソッド名が欲しいから<T>を知りたいのか?
489:デフォルトの名無しさん
09/02/05 21:45:32
>>486
class B {
private GetterAndSetter obj;
public void setGetterAndSetter(GetterAndSetter obj) {
this.obj = obj;
}
public void doSomething() {
Map map = obj.getMapA();
// Your code here...
}
}
490:デフォルトの名無しさん
09/02/05 21:55:06
>>487,489
シングルトンに挑戦してみたいと思います
ご回答ありがとうございました!
491:デフォルトの名無しさん
09/02/05 21:57:19
>>488
>TのClassを調べたい
が目的なんだろ
492:デフォルトの名無しさん
09/02/05 21:58:47
シングルトン≒グローバル変数
いまは意味解らなくていいからシングルトン使うときには常にこれを念頭に置いておくんだぞ
493:デフォルトの名無しさん
09/02/05 22:08:14
javaだと単にstatic fainal classにしてコンストラクタをprivateにして(中略)してゲッター持たせるだけじゃないか?
494:デフォルトの名無しさん
09/02/05 22:09:19
>>492だけみたら蹴り飛ばしたくなるレスだ
495:デフォルトの名無しさん
09/02/05 22:47:30
どうせオッサンの寝言だろw
496:デフォルトの名無しさん
09/02/05 22:52:03
>>491
なんに使うのか、皆目わからん
497:デフォルトの名無しさん
09/02/05 23:02:55
つ 手段が目的
498:デフォルトの名無しさん
09/02/05 23:07:29
>>492を無理やり意訳すると
javaにはグローバル変数がない→static classで代用、あとは普通にシングルトン実装。
つまり>>493になる。だがまて、>>493から>>492へは不可逆だぞ。
499:デフォルトの名無しさん
09/02/05 23:39:01
>>467
こうとか?
import java.lang.reflect.Method;
import java.lang.reflect.Type;
public class GeneSample {
public static void main(String[] args) {
GeneSample g = new GeneSample();
System.out.println(g.isMage(g));
System.out.println("---");
System.out.println(g.isMage(new GeneSample2()));
}
public <T> boolean isMage(GeneSample t) {//この<T>は、どこにも使われていない?
try {
System.out.println(t.getClass());
Method rm = t.getClass().getMethod("isMage", this.getClass());
Type[] tlist = rm.getGenericParameterTypes();
Type type = tlist[0];
System.out.println("Type = " + type);
System.out.println("type.getClass() = " + type.getClass());
System.out.println("t.getClass() = " + t.getClass());
if (type.equals(t.getClass())) {
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
}
class GeneSample2 extends GeneSample{
}
500:デフォルトの名無しさん
09/02/05 23:40:14
>>467
あるいはこうとか?
import java.lang.reflect.Method;
import java.lang.reflect.Type;
public class GeneSample {
public static void main(String[] args) {
GeneSample g = new GeneSample();
System.out.println(g.isMage(g));
System.out.println("---");
System.out.println(g.isMage(new GeneSample2()));
}
public <T extends GeneSample> boolean isMage(T t) {//この<T>は、どこにも使われていない?
try {
System.out.println(t.getClass());
Method rm = t.getClass().getMethod("isMage", this.getClass());
Type[] tlist = rm.getGenericParameterTypes();
Type type = tlist[0];
System.out.println("Type = " + type);
System.out.println("type.getClass() = " + type.getClass());
System.out.println("t.getClass() = " + t.getClass());
if (type.equals(t.getClass())) {
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
}
class GeneSample2 extends GeneSample{
}
501:デフォルトの名無しさん
09/02/06 00:03:59
>>499>>500
やっぱ意味ないよなぁ
ただメソッドの一覧を出したいだけなら>>475でいいし
自分のメソッド情報となると無理やりな実装しかないし
こうやってコネコネ遊んでる分には楽しいけど
502:デフォルトの名無しさん
09/02/06 00:08:46
オナニーは気持ちいいけど鳩時計しか産み出さないしな
503:デフォルトの名無しさん
09/02/06 00:09:09
>>496
class HogeComparatorA implements Comparator<MyClassA>{
public int compare(MyClassA o1, MyClassA o2){return o1.tehe(o2);};
}
class HogeComparatorB implements Comparator<MyClassB>{
public int compare(MyClassB o1, MyClassB o2){return o1.hehe(o2);};
}
って書く代わりに
class HogeComparatorT<T> implements Comparator<T>{
public int compare(T o1, T o2){
String method="";
if(o1.getClass().equals("MyClassA")){method="tehe";}
if(o1.getClass().equals("MyClassB")){method="hehe";}
try{
return (Integer)(o1.getClass().getMethod(method,o2.getClass()).invoke(o1,o2));
} catch (Exception e) {e.printStackTrace();return 0;}
};
}
って書いて、
Arrays.sort(a, new HogeComparatorT<MyClassA>());
Arrays.sort(b, new HogeComparatorT<MyClassB>());
って呼び出したいのかな?
504:デフォルトの名無しさん
09/02/06 00:12:17
ちょっと今環境無くて試せないんだけど、Javaって今は日本語で変数定義できちゃったりするんだっけ? 具体的には
String ほげ = "ほげ";
みたいなことできたっけ?
505:デフォルトの名無しさん
09/02/06 00:13:34
>>504
出来る。
506:デフォルトの名無しさん
09/02/06 00:15:37
>>499
まだやってたのか。何時間かかってんだ
507:デフォルトの名無しさん
09/02/06 00:22:50
>>504
Java言語仕様の字句構造の識別子の項を参照
508:デフォルトの名無しさん
09/02/06 00:27:28
変数名とかメソッド名に困ったときは、とりあえず日本語やらカタカナで振っといて、後で直す
509:デフォルトの名無しさん
09/02/06 00:40:09
>>506
>>454>>456でFAだったのに、
>>457あたりが混ぜっ返したからいけないんだろ?
>>499>>500は、
>>477の言う「リフレクションの使い方の部分で間違ってて」の確認かな。
510:デフォルトの名無しさん
09/02/06 00:41:29
>>509
ああ、オレは>>467でも>>477でもないよ
511:デフォルトの名無しさん
09/02/06 02:10:51
今のgenericsの仕様ではあんまり意味無いかもしれないけど
ランタイムサポートされてればgenericsでできることの幅も広がって
Tの型を動的に取得したりするようなことはかなり重要になるよ
C#とか使ってみたらわかるけどさ
512:デフォルトの名無しさん
09/02/06 02:16:57
Tの型を気にしないといけないってのは、そもそも設計が上手くないのでは
Tの型が取れると便利な例って、例えばどんなの?
513:デフォルトの名無しさん
09/02/06 02:20:27
>>511
ねーよ
型とか言うな。
514:デフォルトの名無しさん
09/02/06 02:23:25
自分のメソッドのTの型を取るのか?
自分のメソッドに限定しないなら、Class#getMethodsで全部とってくれば、
好きなだけTの型を調べられる。
今のジェネリクスだと、自分のメソッドに限定した時点で、
自分のメソッド名をリテラルで持ってないと使えないし。
C#にはthis.getMethodに相当する物があるんだろうか
515:デフォルトの名無しさん
09/02/06 02:44:47
C#ならType type = typeof(T);で終わりだからな
たとえばTの配列作るのはjavaではClass<T>受けないとできないでしょ
516:デフォルトの名無しさん
09/02/06 02:59:41
>>515
こゆこと?
import java.lang.reflect.Array;
public class GeneSample {
public static void main(String[] args) {
GeneSample g = new GeneSample();
System.out.println(g.isMage(g).getClass());
System.out.println("---");
System.out.println(g.isMage(new GeneSample2()).getClass());
System.out.println("---");
System.out.println(g.isMage("").getClass());
}
public <T> T[] isMage(T t) {// この<T>は、どこにも使われていない?
return (T[]) Array.newInstance(t.getClass(), 100);
}
}
class GeneSample2 extends GeneSample {
}
■実行結果
class [LGeneSample;
---
class [LGeneSample2;
---
class [Ljava.lang.String;
517:デフォルトの名無しさん
09/02/06 03:09:50
>>516
だからそれを余計な引数なしでT.getClass()と書けたら便利だという話だろ
518:デフォルトの名無しさん
09/02/06 03:12:31
それに>>516だとTの配列が返される保証はないよね
tにTの派生クラスのインスタンスが渡されるかもしれない
519:デフォルトの名無しさん
09/02/06 03:16:03
>>517
余計な引数って↓のt.getClass()のこと?
return (T[]) Array.newInstance(t.getClass(), 100);
T.getClass()は無理だが、自分で↑のメソッド作ったなら引数の型は分かる気が
>>518
Tの配列で返してほしいなら、ジェネリクスの出番も必要なくね?
520:デフォルトの名無しさん
09/02/06 03:37:12
<T extend Hoge>のときHogeのサブクラスにキャストしたインスタンス返すメソッドを書きたいときはあるな。
521:デフォルトの名無しさん
09/02/06 04:07:39
すいません質問よろしいでしょうか?
javaアプレットでオセロプログラムを作ったのですが、リプレイ機能を追加したく
駒の配置を随時外部データに保存するのは可能でしょうか?
ローカルに保存するのは禁止されているらしいので、サーバーなどに保存など
できるのでしょうか?
522:デフォルトの名無しさん
09/02/06 07:28:18
>>519
List<T> の toArray()、toArray(T[]) の二つの比較で T[] が余計な引数に該当するんでは?
T[] がない方は Object[] しか貰えないし。
523:デフォルトの名無しさん
09/02/06 07:29:04
>>521
できるできないで言えばできる
524:デフォルトの名無しさん
09/02/06 07:33:29
>>509
>>499-500って new GeneSample2().isMage(new GeneSample()) すると例外くらうんだけど、
これで確認になってんのか?
525:デフォルトの名無しさん
09/02/06 07:38:34
無いものねだりは他のところでやって頂戴。
っていうか巣に帰れ。
メソッドのデフォルト引数を指定するだけで別のメソッド宣言をする必要があったり
クラスメソッドとインスタンスメソッドで同じシグネチャの宣言が出来なかったり
仕 様 で す か ら
526:デフォルトの名無しさん
09/02/06 07:42:29
誤爆?
527:デフォルトの名無しさん
09/02/06 09:03:19
なんだまだやってんのか。
アノテーションを勉強してるならそれを駆使すれば出来ないこともないが・・・
528:デフォルトの名無しさん
09/02/06 18:00:36
初心中の初心の間違いなのでしょうが
//MyJava
class MyJava{
public satic void main(String args[]) {
System.out.println("My Java Program");
}
}
これの間違いを教えてくださいorz
警告見てもちんぷんかんですorz
529:デフォルトの名無しさん
09/02/06 18:01:29
sage忘れ・・・吊ってくる。
530:デフォルトの名無しさん
09/02/06 18:04:14
他にもあるかもしれんが、とりあえず
> public satic void main(String args[]) {
×satic
○static
531:デフォルトの名無しさん
09/02/06 18:05:07
>>528
なんて警告?(エラーじゃなくて?)でてるの?
532:デフォルトの名無しさん
09/02/06 18:07:14
>>530
即レス感謝です。
記述ミスとか最低レベルな自分。やはり吊ってきます
533:デフォルトの名無しさん
09/02/06 18:20:42
どうでもいい指摘
String args[]
↓
String[] args
534:デフォルトの名無しさん
09/02/06 18:25:54
そこはどちらでもいいじゃない?
推奨はあったっけ。
535:デフォルトの名無しさん
09/02/06 21:38:32
試しに電卓を作ってみたいんだけど
どうすればいい?
できれば参考サイトとかよろ
536:デフォルトの名無しさん
09/02/06 21:50:23
>>535
URLリンク(casio.jp)
537:デフォルトの名無しさん
09/02/06 22:01:03
普通の電卓でいいなら、
ボタンとエディットボックスさえ扱えれば
普通に作れると思われ。
JavaのGUIを扱ってる基本サイトなら
どこでも大抵扱ってると思われ。
538:デフォルトの名無しさん
09/02/06 22:43:04
>>536
>>537
サンクス
ボタンとエディットボックスだな!!
ググってみます
539:デフォルトの名無しさん
09/02/06 22:45:23
電卓だけど、思ってるよりもかなり難しいよ。だから慎重にやったほうがいいよ。
540:デフォルトの名無しさん
09/02/06 22:52:52
>>539
マジっすか・・・・
電卓くらいならと思ったんだが
甘いようだなw
541:デフォルトの名無しさん
09/02/06 22:53:12
完璧に機能を再現しようと思えばまあそうだろうけど、
2回押しとか%とか捨てて単純に計算するだけなら大丈夫じゃね?
542:デフォルトの名無しさん
09/02/06 22:58:41
本物の電卓って、表示内容はキーインしたのと同じ効果あるよね。
3、×、=、で9になったり。
543:デフォルトの名無しさん
09/02/06 22:58:53
最初は思いつくまま気の向くままやってみりゃよかろう
544:デフォルトの名無しさん
09/02/06 23:41:36
1, 2, ., 3, 4 って押して 12.34 が変数に入ればあとは簡単かな?
545:デフォルトの名無しさん
09/02/06 23:57:37
最初は整数だけでいいんじゃね?
546:デフォルトの名無しさん
09/02/07 00:37:11
どっちにしてもJAVAはあまり関係ないしC言語でやったほうがいい感じがする
547:デフォルトの名無しさん
09/02/07 00:39:00
GUI が楽に作れるのが Java のいいところじゃん
548:デフォルトの名無しさん
09/02/07 00:42:12
swingスレ行きか
549:デフォルトの名無しさん
09/02/07 00:50:58
ちょっとお知恵を借りたいです。
eclipseから実行するときに「-Xmx512m」オプションつけて実行してたアプリを、
jarファイルにして、以下のコマンドで動かした。
javaw.exe -jar hoge.jar -Xmx512m
アウトオブメモリーが発生して動かない。
eclipseの「-Xmx512m」をはずしてみたら、jarファイルを実行したのと同じタイミングで落ちる。
PC再起動してみたけど状況変わらず。
アプリのverupしたのが原因かと、古いバージョンのアプリをjarで動かしたけど落ちる。
windowsの設定がどこかまずいのか、jreになにか異変がおきたのか。
何か予想とかヒントとかあったら教えてください。
550:549
09/02/07 00:53:23
追記
二日前はちゃんと動いてたんです。
※eclipseからもjarファイルからも
今日はeclipseからは動くけど、jarファイルからは動かないんです。
開発中はeclipseから動かしてるんで、作業はできるんですが、
このままではeclipseなしで動かなくて切ないです。
551:デフォルトの名無しさん
09/02/07 00:53:55
>>549
順番じゃね?
javaw.exe -Xmx512m -jar hoge.jar
552:549
09/02/07 00:56:02
>>551
動きました!
心の底から感謝です!
553:デフォルトの名無しさん
09/02/07 01:04:20
>>552
どうせ聞いてばっかりの教えて君だろ。たまには答えてスレに貢献しろ
554:549
09/02/07 01:13:20
>>553
答えてますよよよ。
答えるときは、敬語なしです。
555:デフォルトの名無しさん
09/02/07 01:18:37
>>540
頑張れ。
通常の四則演算の電卓で難しいのは入力系の扱いね。
小数点の入力制御と、
(3÷3、×3を1にするような)桁落ちに対する精度の保障が難しいのよ。
特に精度保障に関しては、ロジック部(電卓内部の計算機の部分)と
UI部(テンキーと液晶)を分離して設計しないと綺麗にいかない。
初心者の場合、整数演算(四則演算+剰余算)の電卓を作ると楽だよ。
(前述の2項目がいらなくなるから)
その場合でも、表示部、入力部、計算ロジック部を分離して
クラス設計すると勉強になるよ。
いきなり作り出すのではなく、
ラフイメージ&我流でもいいから、
Jude竹とか使ってクラス図とか書いてから作り始めると、色々と見えてくると思う。
556:デフォルトの名無しさん
09/02/07 02:05:00
>>549
336からずっと間違ってたんだな
339をみて直したかと思ってたのに
557:デフォルトの名無しさん
09/02/07 08:47:47
>>555
ありがとうございます
頑張ってみます
558:デフォルトの名無しさん
09/02/07 08:55:51
ジェネリック(´・ω・`)
559:デフォルトの名無しさん
09/02/07 09:57:49
>>558
病院で勇気を出して伝えて来い
560:デフォルトの名無しさん
09/02/07 15:33:49
電卓か逆ポーランド記法でも実装するか?
561:デフォルトの名無しさん
09/02/07 15:39:40
逆ポーランド記法計算電卓は実装楽でいいよな。
慣れないと使い辛いが。
562:デフォルトの名無しさん
09/02/07 16:04:03
どなたか…
今自分も電卓作ってる初心者です。
ループ内のreadLineを使って数値・文字列の判断と出力
までは行けたのですが、次の数値の判断で苦戦してます。
例えば、a*b=c
このbのコマンドライン引数として受け取りたいのに、どうしてもaの場所に
入ってしまいます。
何かいい方法はありませんか?
563:デフォルトの名無しさん
09/02/07 16:07:41
Stackに値を積んでいくのがセオリー
564:デフォルトの名無しさん
09/02/07 19:31:04
>>562
一文字ずつ調べなさい。 初心者が楽しても得るものは少ないぞ?
565:デフォルトの名無しさん
09/02/07 20:03:03
たとえばオープンソースプロジェクトであるSwingXのJXTreeTableだけが使いたいとします。
このとき、jarからJXTreeTableを使用するのに必要なクラスファイル以外を削除してトリムしてくれるようなツールはないでしょうか?
566:デフォルトの名無しさん
09/02/07 20:21:11
>>565
あるよ
567:デフォルトの名無しさん
09/02/07 20:29:55
javaのprivate修飾子の仕様が納得できない。
どうして他のオブジェクトが参照出来ちゃうの?javaなりの都合があるんですか?
自インスタンスに制限する修飾子って無いんですか?
568:デフォルトの名無しさん
09/02/07 20:33:42
そのネタ秋田
569:>>565
09/02/07 20:44:44
>>566
聞き方が悪かったですね。
そのツール名を教えてください。
570:デフォルトの名無しさん
09/02/07 20:58:56
>>567
それないとequals() 時に他インスタンスのprivateなフィールドに触れなくなる。
他の言語もprivateは自インスタンスだけに制限されないものが多い。
571:デフォルトの名無しさん
09/02/07 21:15:32
>>567
よく聞かれるんだけど、それがあるとどういうときに役に立つの?
572:デフォルトの名無しさん
09/02/07 21:16:58
スレッド管理とか
573:デフォルトの名無しさん
09/02/07 21:17:44
そういやC++のスレでも似たような話をみたな
スレリンク(tech板:568番)
574:デフォルトの名無しさん
09/02/07 21:28:13
まぁこれから生まれる言語はこんな馬鹿な設計はしなくなるだろうね
575:デフォルトの名無しさん
09/02/07 21:30:45
>>574
その手の捨て台詞は負け犬の遠吠えっぽく見えるから止めたほうが
576:デフォルトの名無しさん
09/02/07 21:34:32
rubyの仕様はどうなんだろう
577:デフォルトの名無しさん
09/02/07 21:36:57
rubyは当然privateアクセスは自インスタンスのみ
javaとjava周辺のカオスなFWに嫌になった人間がrubyやrailsに触れると感動すると言いますね。
578:デフォルトの名無しさん
09/02/07 21:37:31
rubyはサブクラスから呼び出せて、別インスタンス不可
javaはサブクラスは不可で別インスタンスは可っぽ
579:デフォルトの名無しさん
09/02/07 21:38:28
>>572
一応Javaではそれがなくてもスレッド管理は面倒もなく普通にやってるけど。
出来ないのはおまえが無能なだけだろうけど。
他にないの?
580:デフォルトの名無しさん
09/02/07 21:38:36
スレッド管理でも何でも、現在のprivateの使用で困る事って
何だろう・・・具体例に興味があります。
581:デフォルトの名無しさん
09/02/07 21:38:42
今更仕様は変えられないし、仕方ないやね
582:デフォルトの名無しさん
09/02/07 21:42:48
Java7っていつだっけ?
Java5辺りで既に苦し紛れだったけど
もう馬鹿っぽくて笑えてくるんだけど
583:デフォルトの名無しさん
09/02/07 21:44:16
>>580
一人でコーディングしてる分には全部publicでもいいんだよ……
複数人でコードいじる時にprivateとかが生きてくるはずなんだが、他インスタンスからアクセスされたら意図しない動作をする可能性がある。
584:デフォルトの名無しさん
09/02/07 21:46:09
それは関係無いような
585:デフォルトの名無しさん
09/02/07 21:48:49
またruby信者か
586:デフォルトの名無しさん
09/02/07 21:50:47
rubyスレも災難だな。こんな奴相手にしなきゃいかんのか
587:!572
09/02/07 21:51:01
>>579
wikipediaのjavaの項目によると
>2008年12月現在、ジェームズ・ゴスリンは、「私の勝手な憶測だが」という注意書き付きで、2010年6月以降のリリースを予測している
588:デフォルトの名無しさん
09/02/07 21:53:19
>>583
そりゃRubyみたいに同一インスタンスでも動的にメソッドつけたり外したり書き換えたりし放題ならそうかもしれんが、
基本的に静的なJavaで他インスタンスからアクセスされて意図しない動作するってのは
589:デフォルトの名無しさん
09/02/07 21:56:46
>>588
ブラックボックス化したつもりの場所で漏れてるわけだから意図しない動作はありえる。
スレッド関係ない。
590:デフォルトの名無しさん
09/02/07 21:59:00
>ブラックボックス化したつもり
になってるのは、仕様を理解してない奴が悪いだけなんでは?
591:デフォルトの名無しさん
09/02/07 22:02:37
意図しない動作がありえないものってあんのかね?
それしか使わなければバグのないプログラム作れそうだけど。
592:デフォルトの名無しさん
09/02/07 22:08:35
実装に触られたくなければprivate云々以前にまずインターフェイスを
規定するのでは。具象クラスの型を持った変数引数は使わないよね。
privateでもパッケージプライベートでも実装への意図せぬアクセスは
実際起こりがちで、それを避けるなら作法としてはこれが一般的だと
個人的には思うのだけど。
593:デフォルトの名無しさん
09/02/07 22:08:38
>>590-591
だから複数人の開発だと全員が意図通りに使ってくれるか分からないからprivateなのにアクセスされると困るねって話。
594:デフォルトの名無しさん
09/02/07 22:18:32
>>592
そうは言うけど、あなたはjavaにおいてprivateフィールドとインターフェイスを区別してますか?
595:デフォルトの名無しさん
09/02/07 22:27:59
もうさ、同一クラスどころか自分自身からもアクセス不能な超privateも
作っちゃえばいいんじゃね?
596:デフォルトの名無しさん
09/02/07 22:29:36
仕様とか気にしないでノリで作ってるから、動けばそれでヨシ状態だな
597:デフォルトの名無しさん
09/02/07 22:36:14
静的言語が限界なんだよもう
インタフェースなんてそもそも強い型付けを持つ言語仕様の欠陥を補うだけのもんだし
rubyじゃ勿論インタフェースなんて要らないしクラス設計で苦労することも無い
クラス設計者が色々と苦労してる時点でjava自体の仕様に問題がある
598:>>565
09/02/07 22:38:57
どなたかお願いします。
599:デフォルトの名無しさん
09/02/07 22:40:00
>>593
他クラスから「使う」分には人数もprivateも関係ないじゃん。
複数人で一つのクラスを開発しているという話であれば起こりうる話ではあるけど
世間的にはそれは普通「話し合いが足りない」というと思う。
600:デフォルトの名無しさん
09/02/07 22:43:01
>>594
心配するな。してないのはお前だけだ。
601:デフォルトの名無しさん
09/02/07 22:52:32
>>561
関係ないけど (a b +)では違和感感じるけど
日本語にして(a b 足す)だと全く違和感無い。不思議!
602:デフォルトの名無しさん
09/02/07 22:52:35
>>599
ヒント:開発メンバーが保守をするとは限らない。
603:デフォルトの名無しさん
09/02/07 22:54:37
a と b を足したものに c を掛ける
a b + c *
なるほど。目から鱗だわ。
604:デフォルトの名無しさん
09/02/07 23:00:25
>>600
本当に区別できるのか?結構難しいぞ。
それなら俺もその区別とやらを聞きたいものだな。
605:デフォルトの名無しさん
09/02/07 23:03:48
>>603
自演乙
606:デフォルトの名無しさん
09/02/07 23:04:38
Cのような位置を占めることも無理だし
いずれは消え去る言語
607:デフォルトの名無しさん
09/02/07 23:05:59
>>602
要するにprivateの扱いが原因というより意思疎通に失敗してるだけでは?
608:デフォルトの名無しさん
09/02/07 23:10:42
>>607
それを防ぐためのprivateなんだが。 全然通じてないね。
609:デフォルトの名無しさん
09/02/07 23:10:42
>>604
というかどう区別がつきにくいのか教えて欲しい。
610:デフォルトの名無しさん
09/02/07 23:13:05
>>605
認定失敗って恥ずかしいよね
611:デフォルトの名無しさん
09/02/07 23:13:09
>>608
privateの扱い変えれば意思疎通の失敗が完全に防げるんならともかく、
privateの扱い程度で意思疎通で失敗するなら他の件でも意思疎通に失敗してると思うぞ。
612:デフォルトの名無しさん
09/02/07 23:24:59
>>593
そのレベルだとメソッド内の変数があっちとこっちで使い方違うとかいっぱい出てきそうだが。
613:デフォルトの名無しさん
09/02/07 23:32:06
eclipseでjavadoc生成しようとしたら、
「Servlet何とか~ シンボルが見つかりません」というエラーが大量に出て失敗しました。
javaEEのクラスパスがおかしいのかと思うのですが、解決方法がわかりません。
情報が少なくて申し訳ないのですが、わかる方いましたら教えて下さい。
614:デフォルトの名無しさん
09/02/07 23:35:35
何とか~
で分かるわけ無いじゃん
615:デフォルトの名無しさん
09/02/07 23:37:09
ちなみにeclipseのバージョンは3.3、
javadocを生成するクラスではサーブレットを多用しています。
616:613
09/02/07 23:43:20
>>614
すみません、今確認できる環境がないので正確に書けないのです。
確かHttpServletやHttpServletRequestなどの一般的なクラスだったと思います。
617:デフォルトの名無しさん
09/02/08 00:19:23
ケチな人がいっぱい集まるスレで殺伐としてますね。