【初心者】Java質問・相談スレッド123【歓迎】at TECH
【初心者】Java質問・相談スレッド123【歓迎】 - 暇つぶし2ch175:デフォルトの名無しさん
09/01/28 15:02:24
>>174
ムリ、情報少なすぎ

176:デフォルトの名無しさん
09/01/28 16:21:50
numって変数がないぞってエラー

177:デフォルトの名無しさん
09/01/28 16:24:37
いや、getParameterってメソッドがないぞってエラーかもしれん

178:デフォルトの名無しさん
09/01/28 22:42:58
いまからJavaを勉強しようと考えています。
したい事は、フラットファイルを読み込んで中の文字列を処理し、
別ファイルに吐き出すことです。

こんな感じの事がしたい人が読むといい実用的な参考書があれば、教えてください。
# perlを少しかじったことがある程度の無謀な新参レベルです

179:デフォルトの名無しさん
09/01/28 23:14:50
実用的な参考書か

■読んでないけど参考になりそうだ
Eclipse 3.4で超簡単Javaプログラミング基礎入門 (1/5) - @IT
URLリンク(www.atmarkit.co.jp)

後は、下のキーワードでぐぐればサンプルがいくらでも出てくるぜ
「java テキストファイル 読み込み」
「java テキストファイル 書き込み」

180:デフォルトの名無しさん
09/01/28 23:43:49
しかし、ほんといい時代だ

インターネッツに繋げてれば、参考資料読み放題だぜ

181:デフォルトの名無しさん
09/01/28 23:54:52
誰かが作ったフレームワークを使ってそこからクラスを作って組み込むことは出来るんですが
自分でフレームワークを作りたいときオススメの参考書ないすか?

182:デフォルトの名無しさん
09/01/29 00:08:44
>>179
紙媒体を探してたりしてたわけですが

ありがとうございます。

183:デフォルトの名無しさん
09/01/29 00:32:42
紙はわかんないんだな

グーグル先生に聞いてれば勉強できちゃうって思うようになっちまったもんで。
PCから離れて勉強する機会があるとやっぱ紙媒体も必要だよね

184:デフォルトの名無しさん
09/01/29 08:11:00
>>181
「Java言語で学ぶデザインパターン入門」
URLリンク(www.amazon.co.jp)

これ読んでも、フレームワークが作れるかどうかは経験次第だが。

185:デフォルトの名無しさん
09/01/29 10:52:51
>>174
ファイル P12.java の 45行目に書かれている、
引数にStringを持つメソッド getParameter の定義を
見つけることが出来ませんでした。の意。

大抵はスペルミス。static の付け忘れとかも。
行数の表示されるエディタを使うとヨロシ。

186:デフォルトの名無しさん
09/01/29 12:22:36
COBOLしかやったことがないのですが、
Javaを覚えるのは大変ですか?
家のPCでJavaを用いたオリジナルアプリケーションを作成することは可能でしょうか。

187:デフォルトの名無しさん
09/01/29 12:25:44
家のPCでCOBOLを用いたオリジナルアプリケーションを作成していたのなら難しくはない。

188:デフォルトの名無しさん
09/01/29 12:38:40
>>187
ありがとうございます。
COBOLは出先の金融機関でしか触ったことがないです。
PCでもCOBOLプログラミングができるとは聞きましたが・・・。
例えば・・・小遣い帳や住所録などの管理システムも作れるでしょうか。

189:デフォルトの名無しさん
09/01/29 12:41:48
COBOLは潰しが利かないから、何を覚えるのも大変だと思う。

190:デフォルトの名無しさん
09/01/29 13:02:21
>>189
まあ、他の言語に移ると、扱える整数が小さかったりして驚くよね。
構造体の定義や初期化も面倒くさいし、
表示フォーマットも不便だし・・・

191:デフォルトの名無しさん
09/01/29 13:32:03
他のスレでは.NET使いたいって言ってるし釣りっぽいな

192:デフォルトの名無しさん
09/01/29 13:42:08
>>191
なんで分かるの?

193:デフォルトの名無しさん
09/01/29 14:52:01
質問です。
サーバーサイドJavaをレンタルサーバーでやりたい場合、
サーバーには何を入れたらいいんですか?

サーブレットとかは何に格納すればいいんでしょうか?


194:デフォルトの名無しさん
09/01/29 15:13:37
COBOLだろうが何だろうが基本はアルゴリズムだから同じでしょ
昔の知識で言うとCOBOLは出来るけどBASICは出来ないってありえないだろ

195:デフォルトの名無しさん
09/01/29 15:20:04
Netbeans6.5で初期ページになってる水色のページのタイトル部分だけ
文字化けするんだけど、同じ症状の人いますか?
ネットで調べたら、公式サイトで症状は確認されているが原因は不明とのこと。

196:デフォルトの名無しさん
09/01/29 15:56:04
Netbeans6.5スレにいけ。
専用スレがあるならそこで聞け

197:デフォルトの名無しさん
09/01/29 16:23:09
>>191
COBOLの.Netって富士通が出してるやつしか無いんじゃね?
海外では使ってないのかな?

198:デフォルトの名無しさん
09/01/29 18:30:03
.net使いたいって言ってるだけでcobolを使いたいって言ってるとは限らないんじゃね?
>>191が言うそれと>>186が同一人物だとして>>186はjavaに興味を示してるわけだし
.netでc#やりたいってその別のスレでは言ってるのかもしれん
そんなことより.net版のcobolなんてあるのならjvm上で動作する言語はいっぱいあるからjcobolとかもありそうだな

199:デフォルトの名無しさん
09/01/29 20:49:19
何故インスタンスを作らなくても、大丈夫なのかよくわかりません
どなたか回答お願いします

public class SampleApp extends JFrame{
public SampleApp(){
  this.setSize(new Dimension(300,200));
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  this.setLayout(null);
     略


200:デフォルトの名無しさん
09/01/29 20:49:34
.NETってプログラミング言語ですか?

201:デフォルトの名無しさん
09/01/29 20:53:26
>>199
このクラスのインスタンスを別のクラスからつくるんだろ

202:デフォルトの名無しさん
09/01/29 21:05:57
>>201
ありがとうございます

203:デフォルトの名無しさん
09/01/29 21:08:23
>>199
簡単に言うとthisは自分を参照するから。
実行時は実行中のコンテキストを指す・・・というと誤解があるか。

204:デフォルトの名無しさん
09/01/29 21:19:13
>>203
public SampleApp()がどこかでインスタンス化されるから
インスタンス名を省略できるってわけですね?


205:デフォルトの名無しさん
09/01/29 21:29:27
よそに投稿しようと思ったけどやめた。削除されるから。
馴染み深いここにする。すれ違いだけど、聞いてくれ。

昨日、大発見したんだ。

ハルマゲドンっていうじゃん。あれって、素の言語の意味だと、「ギルドの丘」っていう意味なんだって。
で、聖書の3:16章にハルマゲドン(ギルドの丘)で最終戦争が起こるっていう予言があるんだと。

で、聖書とマヤの予言には大昔のつながりがあるんだと。マヤの暦は2012年12月21日を最後に消えてるでしょう。 だから、なにかあるんじゃないかと思うんだ。。

やっぱ、最終戦争(第3次世界大戦)じゃないかって本とかでいわれてるけど、一番問題なのは、ハルマゲドンの本当の意味のギルドの丘の場所なんだけど、イスラエルのガザの近くなんだって。

まじで、やばくね?

ハルマゲドンっていうじゃん。あれって、素の言語の意味だと、「ギルドの丘」っていう意味なんだって。
で、聖書の3:16章にハルマゲドンで最終戦争が起こるっていう予言があるんだと。

で、聖書とマヤの予言には大昔のつながりがあるんだと。マヤの暦は2012年12月21日を最後に消えてるでしょう。

やっぱ、最終戦争(第3次世界大戦)じゃないかとかいわれてるけど、一番問題なのは、ハルマゲドンの意味のギルドの丘の場所なんだけど、
これってば、イスラエルのガザの近くなんだって。

まじで、やばくね?昨日、深夜ブックオフで買ってきたオカルト本を組み合わせるとこういう結果になるんだけど。

206:デフォルトの名無しさん
09/01/29 21:35:33
メギドの丘な

207:デフォルトの名無しさん
09/01/29 21:44:41
>>207
そうそれ!わかってくれたか。やっぱやばいよ。まじで。

208:デフォルトの名無しさん
09/01/29 22:21:20
メギドの丘は宅地開発でもう無いよ

209:デフォルトの名無しさん
09/01/29 22:38:16
ぱっと見エロゲの話かと思った

210:デフォルトの名無しさん
09/01/30 00:09:17
自演乙w

211:デフォルトの名無しさん
09/01/30 02:45:51
家のwindowsのパソコンにeclipseをダウンロードしてつかっているんですが、
マウスイベントのソースを書くときだけエラーがでます。
授業でもらったソース通りにまるまる書いてもだめです。
ちなみに授業でもecipseを使ってまして学校のPCだったら上手くいくんです。
スペルミスもさんざん確かめました。ダメです。
他のイベントは試したことないですが・・・
テストも近かったりするんで誰かお願いします


212:デフォルトの名無しさん
09/01/30 03:01:52
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
→public class App24 extends Applet implements MouseMotionListener {
int x = -5 , y = -5;

public void init() {
→ addMouseMotionListener(this);
setBackground(Color.white);
}
public void mouseDragged( MouseEvent e ) {
x = e.getX();
y = e.getY();

repaint();
}
public void mouseMoved( MouseEvent e ) { }

public void update(Graphics g) {
paint(g);
}

public void paint(Graphics g) {
g.fillOval(x , y , 3 , 3 );
}
}
>>211です。 
例えばこのようなソースを書いたとします。
すると、4,8行がおかしいようです。

213:デフォルトの名無しさん
09/01/30 03:05:39
addMouseMotionListener((MouseMotionListener)this)

214:デフォルトの名無しさん
09/01/30 03:15:01
返信ありがとうございます。
試しましたが同じ所にエラーが出たままみたいです。
他に問題点はないでしょうか。
よく分かりませんがソースを書く以前に設定とかも適当に
やってるんでその辺におかしいと思う点あればそっちも
考えてくれたらです。こうゆう設定にしないとイベントは
使えないんだみたいな・・・

215:デフォルトの名無しさん
09/01/30 03:16:25
>>212
矢印入ってるからじゃねーの?

216:デフォルトの名無しさん
09/01/30 03:18:37
JDKのバージョンが違うとか?

217:デフォルトの名無しさん
09/01/30 03:23:15
>>215矢印はエラーがでる場所をわかるようにいれました。
実際は入れてないです。
>>216何のことかさっぱりわからないいんです。
とりあえずソースに問題がないならもう無理っぽいですね・・・


218:デフォルトの名無しさん
09/01/30 03:24:47
>>217
エラーメッセージくらい貼れよ、カス

219:デフォルトの名無しさん
09/01/30 03:49:23
まず学校の環境と自宅の環境が違うんだろ。
学校の先生に相談してみたら? テストの点数悪くてもやる気で成績くれるかもよwww

具体的な環境設定はこっち。
Eclipse統合M26【Java/C/PHP/Ruby/Python/Perl】
スレリンク(tech板)l50



第三次世界大戦でも起きたら世界不況脱出するかもな。不謹慎だが。
第二次世界大戦の前にも大恐慌起きて、世界大戦で緊急財政支出行って持ち直したよね。



COBOLは出来るけどBASICは出来ないじゃなくて、BASICじゃやってられないって方が大きいだろう。
器用貧乏であれこれ出来るなら、プロジェクト毎に適当に言語決められてもなんとか成るが、
普通は、新しい言語覚えるのは非常にコスト掛かる物だろ。
基本はコミュニケーションでも、日本語使いが、英語覚えるのは大変だぜ。日本語をそのまま使えたほうが遥かに便利。

220:デフォルトの名無しさん
09/01/30 05:17:43
>>219
鼻糞は黙っとれ

221:デフォルトの名無しさん
09/01/30 05:35:08
エクリプスでコントロールきー+シフトきー+Oでインポート調べてくれる機能あるけど
あれGUIでやるにはどこ押せばいいの?

222:foo
09/01/30 08:36:08
Velocity で、テンプレートから利用できる変数の一覧を出力する方法ってあるかな?グローバル変数のダンプでもいいけど…

223:デフォルトの名無しさん
09/01/30 10:54:41
>>212
は基本的なオブジェクト指向の概念もわかってないくせに
GUIやらアプレットやらやろうとしてるのが間違い
入門からやり直せ

224:デフォルトの名無しさん
09/01/30 14:28:53
質問です。

機種依存文字を扱う必要があって、EUC_JPではなく
EUC_JP_Solaris
という文字コードに変換してファイルに出力しようとしているのですが、「№」の文字だけ上手く変換できません。
他の文字「①」などは正常に出力されてます。

OSはウィンドウズです。
理由や対処法をご存知な方はいらっしゃいませんか?

「~」の変換だけでも頭が痛かったのに……orz


225:デフォルトの名無しさん
09/01/30 15:19:27
EUC_JP_Solarisっていうcnarsetに№っていう文字がないんじゃない?
どうみても拡張文字だし。

226:デフォルトの名無しさん
09/01/30 15:19:50
charsetね

227:デフォルトの名無しさん
09/01/30 16:54:53
ソラリスが動作する開発環境が必要では?

228:デフォルトの名無しさん
09/01/30 18:58:33
エクリプスでコントロールきー+シフトきー+Oでインポート調べてくれる機能あるけど
あれGUIでやるにはどこ押せばいいの?


229:デフォルトの名無しさん
09/01/30 20:33:38
>>225-226
普通に考えたらそうなんだけど確証と、№に対する対処法が欲しかった

>>227
ほかの文字はXPで動いてます。
ただのEUC_JPだったら①だって変換できないですよ。

そもそも拡張文字なんてどうせウィンドウズ以外じゃ表示できないんだから諦めてくれればいいのにorz
ウィンドウズ以外じゃ使わないシステムだからそんな言い訳が通用するはずも無く……

230:デフォルトの名無しさん
09/01/30 20:41:30
ウィンドウズ以外で使わないんなら EUC 使わないで SJIS系の windows-31j つかっときゃいいんでは?

231:デフォルトの名無しさん
09/01/30 21:13:25
>>230
EUC_JPで他システムに送るからeuc系以外不可です。

けどwindows-31j から直接(うにを介さず)EUCに変換できれば上手くいくかもしれないですね。 そんなことできるか知らないですけど。

232:デフォルトの名無しさん
09/01/30 21:24:04
>>231
変換先がないって言ってんだから、送られた側のシステムで№を使うことはないんじゃねーの?

233:デフォルトの名無しさん
09/01/30 22:10:13
>>232
試してもらえば分かると思いますが、
サクラエディタや秀丸エディタで「№」をEUC_JPで保存できますし開けます。

あと事の発端はシステムから送りかえされてきたファイルに①などがあったことなんで使わないとはいいきれないんです。


ここに居る人のレベルでは対処不可ですか? とちょっと煽ってみる。

現象自体は「№」を含む文字列を文字コードにEUC_JP_Solarisを指定してファイル出力するだけで再現すると思います。 (再現しなかったらバージョンの問題など、別の理由になるので再現しないならそのほうがありがたいのですが……)

「№」をEUC_JPで出力したい、ただそれだけなんです。 よろしくお願いします。


234:デフォルトの名無しさん
09/01/30 22:16:49
冗談でもそんな煽り入れられたら死ねといいたくなるね

235:デフォルトの名無しさん
09/01/30 22:27:44
そもそもEUC_JP_Solarisで①やら対応しているのか?
EUC_JP_MSなんて物が存在してるようで、秀丸で保存できるのはEUC_JP_MSだから?か?

236:デフォルトの名無しさん
09/01/30 22:39:24
>>235
javaで使う方法がありますか? その文字コード。

Javaが内部でうにに勝手に変換するのが問題なんです。
うにには本来拡張文字が無いので。


237:デフォルトの名無しさん
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
なんて警告?(エラーじゃなくて?)でてるの?


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