09/03/02 15:02:29
>>154
実行中に割り込み食らうとキャンセルされるように作ってあれば、
true 渡してやればタスクが既に実行中の場合タスクを実行しているスレッドに割り込みかけてキャンセルできる。
false の場合はタスクが既に実行中なら諦める。
実行中に割り込まれても無視するように作ってある場合は
true にしようが false にしようが同じ。
160:デフォルトの名無しさん
09/03/02 15:18:12
すみません、質問です。
javaでロックのかかったエクセルファイルのロックを解除して
セルを取り込んだ後、またロックをかける。
といったことは可能でしょうか?
エクセルのロックのパスワードはわかっています。
161:デフォルトの名無しさん
09/03/02 15:28:38
正確に言うとシートがロックされていて、
javaのプログラムでシートのロックを解除して、もう一度ロックをかける。
ということがしたいのですが・・・無理でしょうか?
162:デフォルトの名無しさん
09/03/02 15:33:12
おすすめ本あるでしょうか?
163:デフォルトの名無しさん
09/03/02 17:32:24
swingのJColorChooserで指定した色のrgb値を取得するにはどのように
すれば良いのでしょうか、いま指定した色と調和する色を表示するアプリケーションを
作っているので、ご教授願います。
164:デフォルトの名無しさん
09/03/02 18:52:11
String.format("%.1f", hoge) // 注意: % と 1 の間に小数点があります
で小数点以下2桁で四捨五入するのですが
hoge = 1 のときは「1.0」ではなく「1」と出したいのです。
おしりの0を省く方法ありますか?
165:デフォルトの名無しさん
09/03/02 18:58:17
クラスライブラリを使うとき、ヘッダファイルは、いらないの?
コンパイルされたクラスファイルがあればいい?
ソースコードもいらないの?
166:デフォルトの名無しさん
09/03/02 19:06:18
>>165
○
○
○
167:デフォルトの名無しさん
09/03/02 19:13:19
log4jってクライアント側のアプリに使うと下手したら
デバッグログまで丸見えになってしまいますか?
168:デフォルトの名無しさん
09/03/02 19:19:48
>>167
log4jって、吐き出すログのレベルを簡単に切り替えれたのじゃなかった?
169:デフォルトの名無しさん
09/03/02 19:20:14
public class クラス名<E>{
の、<E>って何よ?
170:デフォルトの名無しさん
09/03/02 19:26:28
人に聞いてばかりで自分で出来ないようなら、いつまでたっても上達しませんよ。
171:デフォルトの名無しさん
09/03/02 19:27:50
>>168
はい、だから設定ファイル変えられたらトレースされて丸見えになってしまうなーと。
ググッっても向いてる用途が書いてないので、ここで聞いてみました。
172:デフォルトの名無しさん
09/03/02 19:29:15
>>167
知っているユーザーが設定ファイルを書き換えたらそうなるかも。
気になるならユーザー配布物にはダミーパッケージでも
つっこんどきゃいい気がするけど、どうなんだろう?
173:デフォルトの名無しさん
09/03/02 19:32:21
ばっちり見えまくり
あと、javaはjadっつーので逆コンパイルすると、
ばっちり読めるソースが出てくる。
そこは.netも同じらしいけど
174:デフォルトの名無しさん
09/03/02 19:32:37
>>171
複数人が関わったり、テスト工程をちゃんとやるような
大規模・中規模開発や統合開発環境やユニットテスタで
テスト回せないような開発では必須。
少人数で回せる様なものなら、エクリプスとかでのデバッガや
Junitだけで使わなくても十分だと思われ。
175:デフォルトの名無しさん
09/03/02 19:33:58
設定ファイルなしで、設定の情報をプログラムコードで設定できるのじゃね?
log4jは、設定ファイル必須なの?
176:デフォルトの名無しさん
09/03/02 19:46:10
設定ファイルでログレベルが変えられるのが売りなので、埋め込みだとあまり使う意味が無いかなと思います。
あと、Apacheライセンスなので、使っていることはばっちりバレバレですね。
クライアント側で使うべきではないようですね。
177:デフォルトの名無しさん
09/03/02 19:49:41
>>174
そういう用途はぐぐると出てくるのですが、クライアントサイド等のアプリ種別につい
て知りたかったのでした。
設定ファイルが暗号化されてたりで簡単には変えられない仕組みとかあるのかと思った
のですが、なさそうだし、クライアントサイドの用途は想定されていないのかなと。
使いたかったのに。
178:デフォルトの名無しさん
09/03/02 19:52:22
>>177
まあ、お客さんがログ見たかったら見ればいいってのはありじゃね?
デバッグログ見られたって困ることはないだろ
179:デフォルトの名無しさん
09/03/02 20:27:00
>>173
jadをダウンロードしようと
URLリンク(www.kpdus.com)
へ行って
Jad 1.5.8g for Windows 9x/NT/2000 on Intel platform (238600 bytes).
URLリンク(www.kpdus.com)
を選ぶと
Go Duddy.com とかいう変なページしか表示されません。
どこでダウンロードできるのでしょうか?
180:デフォルトの名無しさん
09/03/02 20:28:12
デバッグログを暗号化して出力すればいい
181:163
09/03/02 21:04:10
>>163
もよろしくおねがいします。
182:デフォルトの名無しさん
09/03/02 21:21:29
>>179
ありゃりゃ・・・サーバが落ちてるのかな・・・
一時的なものなら、しばらく時間をおいてから再度ためしてみるといい。
いちおう "jadnt158.zip" でググってみたら、ミラーが見つかったので
どうしても本家からダウンロードできないときのために書いておく。
URLリンク(www.esnips.com)
File Name: jadnt158.zip
MD5: FC4CB644F4783AEF5EFA8C9EBEC1EB05
Bytes: 238,600
183:デフォルトの名無しさん
09/03/02 21:22:52
>>182
たぶん一時的じゃない。数日前ダウンロードしたときも同じ状態だった。
184:デフォルトの名無しさん
09/03/02 23:23:12
CやC++でもリバースエンジニアリングやヒープをダンプされたら暗号化しようが中身丸見えだよ
185:デフォルトの名無しさん
09/03/02 23:28:52
隠すほど凄いモノを持っておるまいに……
186:デフォルトの名無しさん
09/03/03 00:01:59
市販アプリがダラダラとデバッグログをはいてたらその会社のレベルを疑うだろ普通。
チンコまるだし、ブリーフ、トランクス、ズボンはいてるのじゃ大違い。
187:デフォルトの名無しさん
09/03/03 00:03:29
客がチンコまるだしを望むならそれもありだろ
ズボン、トランクス、ブリーフを脱がす権利は客にあるんだから
188:デフォルトの名無しさん
09/03/03 00:11:46
ちんこ丸出しの男はキチ外じゃん。
ズボンとパンツを脱がそうとするやつは変態じゃん。
そういうこと。
189:デフォルトの名無しさん
09/03/03 00:14:02
客がズボンとパンツを脱がそうとする変態ならそれもいいじゃないか
納品するのは、最初からちんこ丸出しの変態じゃない、ちゃんとズボンとパンツ履いてる紳士だ。
客(変態)の要求で紳士にもキチ外にもなる、俺はそんなクマ吉になりたい。
190:デフォルトの名無しさん
09/03/03 00:18:35
ログだだ漏れ=ちんこ丸出し
log4jの設定いじりでログ漏れ=ブリーフ一丁
リバースエンジニアリング=ズボン脱がし
191:デフォルトの名無しさん
09/03/03 00:21:11
露出狂がいるスレはここですか?
192:デフォルトの名無しさん
09/03/03 00:39:15
そんなことより超々初心者の質問を聞いてくれあんちゃんたち
スーパークラスにprivateメンバ変数とセッタゲッタがあって、それをextendsしたサブクラスにはprivateメンバ変数は継承されないんだよね?
なのになんでサブクラスをインスタンスしたら継承していないはずのメンバがセッタゲッタでやりとりできるんでしょう?
ちょっと理屈がわからない
193:デフォルトの名無しさん
09/03/03 00:49:08
>>182
ご親切にありがとうございました!無事にダウンロードできました。
感謝です。
194:デフォルトの名無しさん
09/03/03 00:52:32
>>192
privateメンバ変数は、継承されてる。
195:192
09/03/03 00:56:50
>>193
てことは、直接参照できないだけでインスタンスには含まれてるってことなんでしょうか?
196:192
09/03/03 00:57:25
安価ミス>>194で
197:デフォルトの名無しさん
09/03/03 01:07:17
初心者な質問ですいませんが教えてください。
ImageLabel に、画像(Image)を繰り返し貼り付ける方法を教えてください。
Panel上にImgeLabel(240x240ピクセル)を配置しています。これにImage(10x10ピクセル)を
連続で貼り付けて背景にしたいのです。
ちなみにこれはpaintメソッドではなく class mPanel extends Panel ・・・ 内です。
198:デフォルトの名無しさん
09/03/03 01:17:29
ディレクトリの中のファイルの総数を返してくれるメソッドってありますか?
199:デフォルトの名無しさん
09/03/03 01:33:18
>>198
listFiles()でとって、.length?
200:デフォルトの名無しさん
09/03/03 01:46:15
なにかおすすめな書籍はあるでしょうか?
201:197
09/03/03 02:08:44
自己解決しました。
ImageLabelからGraphics g をどうにかして取得できないかと思っていたのですが、
ImageLabelでなく、Imageで、Image.getGraphicsで取得できました。
ありがとうございました。
202:デフォルトの名無しさん
09/03/03 10:00:28
Javaにおけるデザインパターンについて質問です。
Prototypeパターンでインスタンスをコピーする際にclone()を用いますが、ある本で
「自分のクラス(およびサブクラス)からしか呼び出せないのでほかクラスからの養成で複製を行う場合には、createCloneのような別メソッドでcloneをくるんでやる必要があります」
とありました。単純にcloneのアクセス修飾子を変えてpublicにして実装しないのは、Objectクラスでのclone実装を残しておきたいからなのでしょうか?
203:デフォルトの名無しさん
09/03/03 11:38:29
なんじゃそりゃ
204:>>202
09/03/03 12:27:52
>>203
質問の意味が分からないということでしょうか?
Hogeというクラスと、それを拡張したHogeExがあったとします。
HogeはPrototypeパターンで、createClone()というメソッドをもっており、その中でObject#clone()を呼び出しクローンを作成します。
HogeExではcreateCloneをオーバーライドします。
ここでもしcreateCloneというメソッド名ではなく、public修飾子のclone()とすると、HogeExではObjectクラスの純粋なcloneを呼び出すことはできなくなってしまいます(たぶん)。
この事が、私が読んだ本(>>202の引用部分)で敢えてclone()と別にcreateClone()を作成した理由なのでしょうか?
という質問です。
205:192
09/03/03 12:35:46
割り込み失礼
継承理解しました
extendの認識を誤っていました
>>194氏ありがとうございました!!感謝
206:デフォルトの名無しさん
09/03/03 14:45:50
練習問題でも
ランダムに設定した数を当てるプログラムを作りなさい
なお、10回までに当たらなければ、正解を表示して終了すること。
207:デフォルトの名無しさん
09/03/03 20:23:52
>>206
宿題ですか?
・設定するのがプログラム、当てるのがユーザの場合
1.ランダムに値を設定し、その値を格納する
2.ユーザに入力を求める
3.入力された値を数値に変換する
4.1で格納した値と比較し、一致したら(fatal error : 問題に定義されていません)
5.10回繰り返していない場合は2へ
6.1で格納した値を表示する
7.終了する
・設定するのがプログラム、当てるのもプログラムの場合
1.ランダムな値を取得し、その値を格納する
2.ランダムな値を取得し、1で格納した値と比較し、一致したら(fatal error : 問題に定義されていません)
3.10回繰り返していない場合は2へ
4.1で格納した値を表示する
5.終了する
208:デフォルトの名無しさん
09/03/04 00:50:36
ヒットアンドブローってやつだな。
新しい言語を覚える時、必ず作ってみるわ。
209:デフォルトの名無しさん
09/03/04 01:05:32
勉強になるな
210:デフォルトの名無しさん
09/03/04 01:07:17
>>207
久々にフローチャートを見た
211:デフォルトの名無しさん
09/03/04 01:18:29
もっと大雑把なのは今でも書くな
212:デフォルトの名無しさん
09/03/04 02:08:02
間違えたときにヒントは出ないのか?
ゲームとしては問題があるな
213:デフォルトの名無しさん
09/03/04 10:39:43
ヒント:誰もゲームとは言ってない
214:デフォルトの名無しさん
09/03/04 21:12:06
継承とオーバーライドで悩んでいます。
BクラスでAクラスのinitをオーバーライドしています、
Bクラス内でもAクラスのinitを実行したいのですが
「static でない メソッド init() を static コンテキストから参照することはできません。」と出てコンパイル出来ません。
class A{
int a = 0;
void init(){ a = 66;}
}
class B extends A{
int b = 0;
void init(){
A.init(); <---コンパイルエラー
b = 67;
System.out.println(""+a+":"+b);
}
}
void exe() {
B c = new B();
c.init();
--------------
実行結果
66:67
となるようにしたいです。
どうすればいいでしょうか?
215:デフォルトの名無しさん
09/03/04 21:17:40
super.init();
216:デフォルトの名無しさん
09/03/04 21:31:23
>>215
ありがとうございます。
217:デフォルトの名無しさん
09/03/04 21:34:55
java製のwebアプリ経由で別サーバのファイルをダウンロードしたいのですが
実現方法が思いつきません。
操作手順は以下の通りです。
(1)ユーザがブラウザでwebアプリ(サーバAに設置)にアクセスしたら、サーバBのファイル一覧を表示する。
(2)ユーザはファイル一覧からファイル名をクリックし、ダウンロードを行う。
複数のサーバに点在しているログをブラウザ経由で簡単に取れるようにしたいというのが
趣旨なのですが、一般的にどういう感じで実現されているんでしょうか?
218:デフォルトの名無しさん
09/03/04 21:39:40
>>217
各サーバのファイルにリンク張れば、クリックで開いたりダウンロードしてくれるべ
この回答だとjavaの質問と回答になんねーけど
219:デフォルトの名無しさん
09/03/04 21:48:55
>>218
後だしで申し訳ないんですがユーザPCからサーバBは見れないようになっているんです。
リンクというと、「\\「IPアドレス\フォルダ名\ファイル名」という感じでファイル一覧で表示させるんですよね?
このパスをエクスプローラに貼ってアクセスしようとすると、アクセスが拒否られるんです。。
220:デフォルトの名無しさん
09/03/04 21:58:51
>>219
そっちじゃなくね?
221:デフォルトの名無しさん
09/03/04 22:03:32
>>291
俺が想定したのはこんなの
URLリンク(IPADDRESS)
サーバAからサーバBが>>219の形式で見れるのなら、普通にjavaからファイルとして扱えるんで、
ボタンクリックなりリンククリックでサーバにリクエストが来たら、
レスポンスにファイルをぶち込んでやればいい。
222:デフォルトの名無しさん
09/03/04 22:04:18
サーバーBのディレクトリを、NFSやsambaなんか使ってサーバーAで
マウントすればええやん。という意味だと>>218は思われる。
223:デフォルトの名無しさん
09/03/04 22:29:39
>>221
なるほど、なんとなくイメージが湧きました。
この場合、ファイルはサーバB→サーバA→ユーザという風に
サーバAを介してダウンロードされますよね?
速度的にはダウンロード*2の時間が掛かってしまいますか?
224:デフォルトの名無しさん
09/03/04 22:34:39
>>221
すいません、>>223ですが当然2倍時間掛かってしまいますね。。
100Mほどのファイルもあるので難しいかもしれません。
>>222
なんとなくしか理解出来ていないのですがこれも同じような時間が掛かってしまいますか?
というより、普通にDLさせたいんならサーバBから直接取る方法を考えなければならないんでしょうか。。
225:デフォルトの名無しさん
09/03/04 22:42:00
>>224
うん、2倍かかっちゃう。
>>222の方式も同じく、結局ファイルはネットワーク上を流れるんで、
100Mのファイルが2回ネットワークを流れることになる。
226:デフォルトの名無しさん
09/03/04 22:51:11
>>225
そうですか~。となると
(1)ユーザからサーバBのDL対象フォルダだけを見れるようにする。
(2)webアプリで表示する一覧では「サーバBのIP+ファイルパス」をリンク表示する。
(3)ユーザが(2)をクリックして直接サーバBからダウンロード。
という形がベストなのでしょうか。
(1)が可能かどうか確認してみます。
皆さんご回答頂きありがとうございました。
227:デフォルトの名無しさん
09/03/04 22:51:11
サーバ、サーバ言ってるけど、何サーバなの?
228:デフォルトの名無しさん
09/03/04 22:52:59
>>227
実はサーバは6個くらいあるんですが、それぞれwebサーバだったりDBサーバだったりします。
ちなみにwindowsserverです。
229:デフォルトの名無しさん
09/03/05 04:10:27
Tomcat6環境でデータソースを利用したサーブレットを書いています。
データソースを取得すると、Tomcatから次の警告がでます。(エラーにはならず動作は予定通り)
Invalid value {1} for server variable named {0}, falling back to sane default of {2}.
ですが警告内の{1}や{0}が何をさすのかわからず、意味がわかりません。
web.xmlなど各設定の記述順の違いかと思い見てみましたが、影響してそうな部分は見つかりませんでした。
printなどで確認すると、
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/Hoge");
db = ds.getConnection(); //ここで警告がでる模様。取得したデータソースが×?
原因を推測できる方いたらお願いします。
230:デフォルトの名無しさん
09/03/05 04:32:26
java.util.concurrent.locks.ReentrantLockの使用方法についてです。
ReentrantLockのAPIリファレンス※1に書かれている使用方法のサンプルソースに
private final ReentrantLock lock = new ReentrantLock();
と、書かれています。
※1…URLリンク(java.sun.com)
どうして、「final」が必要なのでしょうか?
これは、いわゆる「初期化の安全性」から寄与することなのでしょうか?
ご教授の程よろしくお願いいたします。
231:デフォルトの名無しさん
09/03/05 10:47:47
ファイルを読み込むクラスA
ファイルに書き込むクラスB
javascriptからの値を受けとるクラスCを作成したのですが
クラスCからクラスA、Bの機能を使うにはどうすればいいのでしょうか?
232:デフォルトの名無しさん
09/03/05 14:17:34
<%@ page language="java"%>
<%@ page contentType = "text/html; charset = Windows-31J" pageEncoding = "Windows-31J"%>
<html>
<head>
<title>テスト</title>
</head>
<body>
<form method="post" action="Test">
<input type="submit" name="test" value="確認">
</form>
</body>
</html>
これで実行したところエラーになるのはなぜでしょうか
233:デフォルトの名無しさん
09/03/05 15:40:23
どこかが間違ってるからじゃないでしょうか
234:デフォルトの名無しさん
09/03/05 15:56:13
あげ
235:デフォルトの名無しさん
09/03/05 16:57:15
禿げだとぉ?
236:デフォルトの名無しさん
09/03/05 18:03:29
>エラーになるのはなぜでしょうか
病院に行ってお医者さんに
「どこか具合が悪いので診てください」
って言ってるようなもん。
頭が痛いのか、チンコが痛いのか、なにか症状を言えよ。
なに?お医者さんだったら体のあちこちを押さえて
「ボク、ここがいたいでちゅかぁ?じゃ~こっちでちゅか?」
って聞いてくれるだって?
じゃぁ、おまいも
「ボク、何てエラーがでたんでちゅか~?コンソールやログにメッセージが出てまちぇんかぁ?」
っていちいちこっちから尋ねんと答えられんのか?
237:デフォルトの名無しさん
09/03/05 18:13:54
実は・・・・チンコが痛いんです(アハ
238:デフォルトの名無しさん
09/03/05 18:21:26
>>236
初心者の頃、自分の場合は質問を丁寧にまとめようとすると自己解決してしまった経験よくあった。
だが、それがいいのかもしれない。。
239:デフォルトの名無しさん
09/03/05 18:59:15
今GUIで色々作ってみて遊んでるんですが、
ボタン(b1)を押すとフォーカスがボタンについちゃって
その後、そのウィンドウでキー入力を受け付けてくれなくなってしまいます。
this.remove(b1);としてもキー入力ができなくて困っています。
フォーカスの外し方があるのなら、ご教授ください。
240:デフォルトの名無しさん
09/03/05 19:11:33
>>238
「告白デバック」でググってみ
241:デフォルトの名無しさん
09/03/05 19:38:00
何が分からないか分からないと言った人が
何が分からないかを調べる責任があるらしい
242:デフォルトの名無しさん
09/03/05 19:47:20
すかしっぺの法則だな
243:デフォルトの名無しさん
09/03/06 01:25:58
>>239
(1)
requestFoucs() を呼んでフォーカスを移動する
(2)
ボタンの setFocusable(false) を呼んで
ボタンがフォーカスを持てないようにする
(3)
ボタンにも KeyListener を追加して
ボタンがフォーカスを持ってるときキーが押されても
キーイベントが発生するようにする
244:デフォルトの名無しさん
09/03/06 23:07:39
Javaで、スタンダードなPHP実装アップローダにファイルをアップロードしたいのですがパケットキャプチャしてほとんど同じ内容を送るようにしたのに失敗します。
○対象アップローダ
URLリンク(www.standpower.com)
○作成したプログラム
URLリンク(rg550.hp.infoseek.co.jp)
※プログラム内の******はブラウザで送った場合と同じ内容になるように指定しています。(実際に確認済み)
唯一大きく異なる点はTCPのSource Portが「passwrd-policy」でなく「intersan」となっているところですが、HttpURLConnectionを使う限りこのレベルの変更は難しそうです。
どこかまずい点を指摘、もしくは良い方法を教えてください。
245:デフォルトの名無しさん
09/03/07 00:03:18
>失敗します。
病院に行ってお医者さんに
「どこか具合が悪いので診てください」
って言ってるようなもん。
頭が痛いのか、チンコが痛いのか、なにか症状を言えよ。
なに?お医者さんだったら体のあちこちを押さえて
「ボク、ここがいたいでちゅかぁ?じゃ~こっちでちゅか?」
って聞いてくれるだって?
じゃぁ、おまいも
「ボク、何てエラーがでたんでちゅか~?コンソールやログにメッセージが出てまちぇんかぁ?」
っていちいちこっちから尋ねんと答えられんのか?
246:デフォルトの名無しさん
09/03/07 00:06:07
テンプレに載せたいぐらい的確な罵倒だ。
247:デフォルトの名無しさん
09/03/07 00:27:56
>>245
そうですね。表現が悪かったです。
例外が起こったりは全くありません。
申し訳ありませんが、対象アップローダのPHPの方のソースをご覧ください。
そちらのUpload failedのメッセージが出ます。つまりformデータが適切に送られていません。
症状としてはこれだけですが、バイナリレベルでやりとりされてるデータを見ると、MIME Multipart Media Encapsulationの内容は同じであるにも関わらず、WireShark(パケット解析ソフト)ではまずboundaryが認識されていないのです。
そこでそれまでのデータに問題があると考え、上のレベルで比較したところ>>244で書いたようなTCPのSource Portに違いがありました。
私が調べられたのはここまでで、もし問題点などが思いついたら教えていただきたいのです。
248:デフォルトの名無しさん
09/03/07 00:44:36
パケットキャプチャするとね・・・ばれちゃうんだよね・・・
249:デフォルトの名無しさん
09/03/07 01:47:09
URLリンク(cai.cs.shinshu-u.ac.jp)
URLリンク(cai.cs.shinshu-u.ac.jp)
URLリンク(www.d4.dion.ne.jp)
250:239
09/03/07 01:56:28
>>243
ありがとうございます。
(1)を使って無事解決しました。
ボタン(b1)とテキストエリア(t1)がある場合、
this.requestFocus();
this.remove(b1);
this.remove(t1);
の2行目と3行目を入れ替えるとうまくいかないのですが、、
とりあえず解決したので、これはこれ!それはそれ!としておきます。
251:デフォルトの名無しさん
09/03/07 02:51:25
スレリンク(tech板)
Java ネットワークプログラミング 【教えて!】
252:sage
09/03/07 06:08:35
>>247
えらい小難しいく考えてますが…
boundaryの意味をもう一度しらべてみましょう
URLリンク(rg550.hp.infoseek.co.jp)
253:>>247
09/03/07 07:50:04
>>251
スレッドが適切ではなかったですね。すみませんでした。
>>242
--バウンダリ文字列 →開始
--バウンダリ文字列-- →終了
だったんですね。私の知識不足でした。
わざわざソースまで提示していただき、本当にありがとうございました。
254:デフォルトの名無しさん
09/03/08 19:08:28
findbugsのeffortオプションいじったら何が変わるんですか?
公式のドキュメントにはメモリ使用量なんかが変わるとしか書いてなくて困ってます。
findgubsのソースを読んだらbugをfindする際のオプションの切り替えをしている所は見つけたんですけど
それぞれどんな意味があるのか分かりまあせんでした。
255:デフォルトの名無しさん
09/03/08 20:40:30
現在javaを勉強中ですが、文字のエンコードはUTF8が良いですか?それともEUCの方が良いですか?
256:デフォルトの名無しさん
09/03/08 20:49:37
UTF-8
257:デフォルトの名無しさん
09/03/08 21:32:41
ソースコード中に機種依存文字の、全角マイナス(0x817c)を含めた文字列を記述した場合、
コンパイルのエンコードオプションによって、2種類のUnicodeに変換されるということですが、
これはコンパイルする環境には依存しないのでしょうか?
例えば、Windows付属の文字コード一覧表には、Unicodeの「0xff0d」は存在するが、「0x2212」は存在しないため、
Windows環境で「CP943c」のエンコードオプションでコンパイルした場合、出力されたクラスファイルの中では、
0x2212に変換されていないのでは?(文字化けが発生している?)と疑問をもっています。
258:デフォルトの名無しさん
09/03/08 22:29:38
>>257
MS 製の環境でプログラム作ったことがないから良くわからんが
心配なら UTF-8 のソース書くか実験すれば済む話だと思うが…
259:デフォルトの名無しさん
09/03/08 22:35:11
知らないならレスしないでください
260:258
09/03/08 22:54:34
>>257
仕様的には外部エンコーディングを UTF-8 に変換する手法までは決められていないので
どこの度のバージョンの処理系を使用しているか書かないと答えは得られない
261:デフォルトの名無しさん
09/03/08 23:54:58
>>258
判りにくい質問で申し訳ないです。
今回疑問に思っていることは、ソース中に「全角?」(0x817c)文字列が含まれている場合、
コンパイル時に、コンパイルを実行する機種に依存せず、1対1の変換(シフトJIS→Unicode)
を変換を行うのか?ということです(変換後のUnicodeはどの機種でも同じ)。
しかし、実際に、2通りのエンコーディングでコンパイルしたところ、変換後のUnicodeは、
MS932: 全角マイナス(0x817c) → 全角マイナス(0xff0d)
CP943c: 全角マイナス(0x817c) → 半角?(0x3f)
となり、MS932は意図した通りで、CP943cは、0x2122に変換されるはずが、そうではなかったので、
もしかしたらWindowsには、Unicodeの0x2122(全角?)が存在しないので、0x2122に変換してくれる
ないのでは?と思っています。
>>260
環境は、
OS:WindowsXP
Java:JDK1.5
です。
「UTF-8 に変換する手法」とは、エンコードの仕組み(エンコーディングごとのUnicodeへの
変換マップ)は、コンパイラの実装次第ということでしょうか?
262:デフォルトの名無しさん
09/03/09 00:00:40
>>260
なんどもすみません。
エンコーディングにお詳しいようですが、どのようにして知識を得られたのですか?
一応、今回の疑問で、私なりにSunのサイトや、書籍など調べたのですが、解決には
至りませんでした。
Javaのコンパイル時のエンコーディングの仕組みについて何かお勧めの書籍やサイトなど
よろしければ教えて頂けないでしょうか?
263:デフォルトの名無しさん
09/03/09 00:18:09
未熟者ってことだろ
264:デフォルトの名無しさん
09/03/09 00:30:49
>>262
教えてgooのjavaカテゴリで聞けば
凄腕のお姉さんが教えてくれるよ
265:デフォルトの名無しさん
09/03/09 00:50:38
>>264
ありがとうございました。
このようなサイトがあるとは知りませんでした。
専門的な事柄についての質問も多いですね。
もう一度自身で整理してから利用したいと思います。
みなさんありがとうございました。
266:デフォルトの名無しさん
09/03/09 01:56:28
Stream でソースコードと異なるディレクトリのファイルを指定するにはどうしたらいいのでしょうか?
267:デフォルトの名無しさん
09/03/09 01:59:41
このスレには凄腕はおりません
268:デフォルトの名無しさん
09/03/09 02:19:54
>>265
C:/ほにゃらら
って感じでフルパス指定しる
269:デフォルトの名無しさん
09/03/09 02:20:54
レス番号間違えたw
あと、../ほにゃらら
って感じで..つけると一つ上のディレクトリを指定できる
270:デフォルトの名無しさん
09/03/09 02:30:21
すいません
ソースコードからの相対パスを使う場合にはどうすればいいのでしょうか
InputStream is = new InputStream("Documents/Text/目的のファイル");
のような感じで
271:デフォルトの名無しさん
09/03/09 05:17:10
普通は実行時のカレントディレクトリからの相対パスしか取れない。
ソースコードからの相対パスは無理。
ただ何らかのIDEを使っていて、IDEの実行メニューから実行した
場合はプロジェクトのルートフォルダがカレントディレクトリになって
いるんじゃないのかな(もちろん変更も可能だけど)。
なのでIDE上で実行する分にはある程度相対パスを決め打ちに
出来るはずです。
272:デフォルトの名無しさん
09/03/09 10:27:28
コンパイルされたクラスファイルから
ソースコードの位置を特定することは無理でしょ
クラスファイルからの相対パスなら取得できないこともない
273:デフォルトの名無しさん
09/03/09 16:58:32
Runtime#exec()
で実行したシェルスクリプトがさらに子プロセスを起動するとき、
シェルスクリプトは終了していてもproc.waitFor()では子プロセスが終了するまで
帰ってきません。シェルスクリプトの終了で戻ってくるようにする方法は
ありますでしょうか?&をつけて起動しても駄目でした。
やりたいのはtomcatの実行(catalina.sh start)を叩きたいだけなので、数秒まって
proc.destroy()しても実害はないのですがなんか気持ち悪くて。
よろしくお願いします。
274:デフォルトの名無しさん
09/03/09 21:41:09
J2SE 1.4.2 のAPIリファレンスをダウンロードしようとSUNの公式ページにアクセスしたら、
「もう配布は終了したの、ごめんね」と言われてしまいました。
どこかのミラーサイトか、アップローダにないでしょうか?
275:デフォルトの名無しさん
09/03/09 21:58:21
URLリンク(java.sun.com)
276:デフォルトの名無しさん
09/03/09 22:17:52
>>275
ありがとうございます。
emoneの狭い画面でちまちま見ていて、下の方を見逃してました。
277:デフォルトの名無しさん
09/03/10 19:01:59
みなさんGUI関係でお勧めの書籍はありますか?
278:デフォルトの名無しさん
09/03/11 02:17:16
URLリンク(java.sun.com)
URLリンク(java.sun.com)
279:デフォルトの名無しさん
09/03/11 20:07:45
教えてください
GUIプログラムにおいて、
JTextFieldクラスのオブジェクトを複数設置した場合、
タブキーで移動できますよね?
その際にテキストフィールド内のテキストが
選択された状態にしたいんですが、
どのようにやればいいんでしょう?
JTextFieldクラス内のメソッドでは無いんですかね?
280:デフォルトの名無しさん
09/03/11 20:36:02
>>279
FocusEvent?
281:デフォルトの名無しさん
09/03/11 21:54:05
int i1=100;
String s1="00000";
とあるんですが、このi1を、Stringのs1に入れて文字列で"00100"としたいんですが、
具体的にどう記述すればいいですか?
ちなみにs1の桁数はいつも5ケタで変わらず、i1は0-99999まで変動します。
int i1=20;だったらString s1="00020"、
int i1=120;だったらString s1="00120"・・・って風にしたいんです。
282:デフォルトの名無しさん
09/03/11 22:04:12
String good = "" + i1;
String s1 = "00000";
s1 = s1.substring(0,s1.length - good.length) + good;
動かしてないから間違ってるかもしんないけど、サブストリーングで00000をgoodの文字数だけ削ればいくね?
283:デフォルトの名無しさん
09/03/11 22:20:48
s1 = String.format("%05d", i1);
284:デフォルトの名無しさん
09/03/11 22:28:19
s1 = new DecimalFormat("00000").format(i1);
285:デフォルトの名無しさん
09/03/11 22:34:15
s1 = "";
while (s1.length <= 4) {
s1 = (i1 % 10) + s1;
i %= 10;
}
286:デフォルトの名無しさん
09/03/11 22:42:19
if(i1==20){
s1="00020"
}
else if(i1=120){
.....
287:デフォルトの名無しさん
09/03/11 23:25:15
URLリンク(www.kpdus.com)
jad.exeのサイトがドメイン切れになってるみたいだけど、
どこか他に落とせるところ知ってる人いない?
もしくは、Eclipseでjarからソースを読みたいだけなので
jad.exeがなくても同等のことができるプラグインみたいなのがあればいいんだけど…
288:デフォルトの名無しさん
09/03/12 00:08:41
MergeDoc Project (Eclipse 日本語化)
URLリンク(mergedoc.sourceforge.jp)
これにセットで入ってるらしい
289:デフォルトの名無しさん
09/03/12 00:52:26
>>288
わぁ、ありがとうありがとう!
290:デフォルトの名無しさん
09/03/12 13:18:01
OutputStreamをByteArrayInputStreamに変換する方法はありますか?
具体的には、
1.XML+XSLをJAXPに通し、解析して吐いたOutputStreamを
2.zipに圧縮したOutputStreamを吐き出す仕組みを作りたいです。
1で出来たモノを2でZipOutputStreamに渡すために、ByteArrayInputStreamの形でないとダメなようで。
291:279
09/03/12 14:06:19
>>280
ありがとうございます。
なんかややこしいですが調べてみます。
292:デフォルトの名無しさん
09/03/12 14:09:55
少し教えて欲しいのですが…
現在、jcom.jarでサーバ側でEXCELのテンプレートを開いて帳票作成を行なっているのですが
繁忙期にどうやらEXCELの競合が発生してwebサーバが落ちる現象が発生しています。
このような状況を避ける為にはどのようにすればよろしいでしょうか?
j-Integraのようなcomを扱う正規商品を買う以外方法は無いのでしょうか?
また、買うとすればお勧めはありますか?
すいませんが、アドバイスお願いします。
293:デフォルトの名無しさん
09/03/12 14:28:17
POIでがんばる。
OpenOfficeのテンプレートに変えて、OpenOfficeSDKから操作でがんばる。
どっちともやったことあるけど、どっちも面倒だよ。
金はないけど時間があるなら、がんばってみても良いと思う。
294:デフォルトの名無しさん
09/03/12 14:30:35
>>290
やったことないな。
java.io.PipedInputStream
でなんとかするんじゃね?
295:デフォルトの名無しさん
09/03/12 14:45:43
>>290
ByteArrayOutputStream に出力させて
出力後に toByteArray() で得た byte[] を
ByteArrayInputStream のコンストラクタに突っ込む
296:デフォルトの名無しさん
09/03/12 14:48:36
VBSのバッチでExcel作らせてそれキックならやったことあるぜ
297:デフォルトの名無しさん
09/03/12 15:00:08
String name = obujekuto.getClass().getName();
とすると、フルで長~いクラス名が帰ってくるのですが
末端の短い名前だけ取得する方法はありますか?
例: "jp.co.uncoproject.hoge.fuga.Unko" → "Unko"
298:デフォルトの名無しさん
09/03/12 15:08:19
>>297
おれなら、そんな無駄なメンバまで用意しない。
自分でちょん切るしかないんだろ
299:デフォルトの名無しさん
09/03/12 15:13:59
>>297
Class#getSimpleName()
300:297
09/03/12 15:16:24
>>298
バカは黙っててください><
301:デフォルトの名無しさん
09/03/12 16:36:32
>>299
ありがとうございました。もっとよくマニュアルを読むべきでしたね。
>>298
豆腐の角におちんちんぶつけて氏ね
302:デフォルトの名無しさん
09/03/12 16:41:19
JTable + JScrollPane でプログラムで選択した行を表示範囲に含めるには
どうしたらいいですか?
行選択は SelectionModel を取得すれば出来るんですが。
303:デフォルトの名無しさん
09/03/13 01:36:24
>>302
表示したい行のセルを含む矩形をJtable#getCellRectで取得して、
JScrollPaneのビューポートに対してJViewport#setViewPositionを使って
その矩形が表示されるようにビューの座標を設定する。
手っ取り早くRectangle#getLocationで得られる位置をsetViewPositionで設定すれば、
ビューポートの左上にそのセルが表示される。
セルがビューの下端近辺とかなら左上にはならないかもしれないが少なくとも表示範囲内のはず。
できるだけビューポートの中央に表示したいとかなら、
ビューポートの大きさとセルの座標からビューポートの左上に位置付けるべきビューの座標を計算できる。
304:デフォルトの名無しさん
09/03/13 07:12:45
豆腐の角におチンチンあてがうと気持ちいいよね~
砕け散った豆腐のカスがおチンチンにこびり付くし・・・
305:デフォルトの名無しさん
09/03/13 07:41:33
javaでインストール時にファイルが開かないと出たエラーだけど
je6?のフォルダ内を削除したらインストール出来るようになりました!
レジストリのjavaにもっとも関係するのを削除して
マイコンピューターの環境変数の設定(削除など)して
やったら直りました。
ただ、レジストリをいじくるとPCが起動しなくなったり
壊れて使え物にならなくなったりするから注意
java 環境変数 などグーグル検索してよく調べてからインストールした方が良いよ
306:デフォルトの名無しさん
09/03/13 08:08:20
>>302
テーブルのgetCellRectでとってきた範囲をnullチェック後
テーブルのscrollRectToVisibleで設定する
307:デフォルトの名無しさん
09/03/13 08:36:20
>>303,306
thank you, guys
308:デフォルトの名無しさん
09/03/13 09:18:51
appletから同胞してるJarの中のbinaryファイルを
InputStreamで読み込めない。アクセス違反。
txtは読み込める。appletviewerだと読み込める。
こんなもんかな?
309:デフォルトの名無しさん
09/03/13 12:03:14
javaのフリーソフトを落としたのですが
jarダブルクリックしても
Could not find the class:Program will exit
というエラーが出てしまいます。
どうしたらいいのでしょうか?
自分はプログラムのことは全く分かりません。
javaランタイムは6-12入れています
スレ違いならすみませんがどなたか教えて下さい
よろしくお願いします。m(__)m
310:デフォルトの名無しさん
09/03/13 12:13:35
そのフリーソフトの説明書を読んでよ。
311:デフォルトの名無しさん
09/03/13 12:26:28
>>309
作者に聞くしかないんじゃね?
312:デフォルトの名無しさん
09/03/13 12:47:12
>>310
ソフトの説明にはjavaランタイムが入っていればjarファイルをダブルクリックで起動出来ますとしか書いてありません。m(__)m
>>311
他のjar起動のソフトもエラー出るので、自分のPC環境がおかしいと思われますm(__)m
313:デフォルトの名無しさん
09/03/13 14:58:54
java.lang.Stringにannotationを付与したいんだけど、リフレクションでは付与できず
javaassist等でもjava.lang.Stringには手を出せない。
どうするのが一番簡単だろうか?
314:デフォルトの名無しさん
09/03/13 15:58:50
素直にあきらめろ
315:デフォルトの名無しさん
09/03/13 16:00:25
無理なんじゃね?
JDKのライセンスで「java.*とjavax.*はいじるなゴラァ」となってたような。
316:デフォルトの名無しさん
09/03/13 23:42:57
>>312
Java入れなおしてみるとか
317:デフォルトの名無しさん
09/03/14 01:03:14
>>312
それ、何でか知らねーけどいつの間にかなってるんだよな。
とりあえずコマンドプロンプトで起動する方法をぐぐれ。
java -jar "JARファイル"
318:デフォルトの名無しさん
09/03/14 01:22:35
Swing (AWT) のイベントディスパッチスレッド内のアプリケーション処理で例外が発生した時、
デフォルトだと標準エラーにスタックトレース出すだけですよね? これを一括でハンドリングしたい
んだけど何か良い方法ないですかね? 膨大なイベントハンドラ全てに try-catch 仕掛けるのは
現実的ではないし、ThreadGroup#uncaughtException() みたいな機能があれば良いんですけど。
319:デフォルトの名無しさん
09/03/14 01:56:24
sunのコンソールがみれなくなった
320:デフォルトの名無しさん
09/03/14 02:30:15
>>316
入れ直してみたけど駄目でした(/--)/
>>317
もう一度ググってみますm(__)m
321:デフォルトの名無しさん
09/03/14 23:02:55
コレクションのHashMapは全要素を取り出す〔表示〕できないんでしょうか?
ArrayListなどだと要素番号が0から規則正しく始まるのでfor(int i=0;i<a.length;i++)
などと要素全部取り出せますが、HashMapはキーの型が不規則なので
全表示できませんでした
322:デフォルトの名無しさん
09/03/14 23:07:13
コレクションから値取り出すときってiterator+whileじゃないか普通
323:デフォルトの名無しさん
09/03/14 23:11:14
キーワードは「Java Map Iterator Map.Entry(必要なら)」だ。検索を。
まず゜SetをとってきてあとはIteratorで全要素をとってくるイメージ。
324:デフォルトの名無しさん
09/03/14 23:21:07
インナークラスを外側のクラスの別の場所で継承したいんだけど
下記みたいなへんなコンストラクタ作んないとコンパイルが通らないっす。
もうちっと簡単スマートな書き方ないっすか?
外クラスのオブジェクトを引数にとらなきゃいけない宿命なんすか?
あとインナークラスの無名派生クラスを生成するときは
o.new Inner(){}; ってかけるのに
名前つきの派生クラスだと
o.new ExInner(); ってかけないの?
public class Outer {
public class Inner{
}
}
class ExInner extends Outer.Inner{
/*
* ココ!
*/
public ExInner(Outer o){
o.super();
}
}
325:デフォルトの名無しさん
09/03/14 23:32:28
>>321
HashMap<String,String> map = new HashMap<String,String>();
map.put("a", "ほげ");
map.put("b", "もげ");
map.put("c", "ふが");
for (Object key: map.keySet()) {
System.out.println(key + ":" + map.get(key));
}
326:デフォルトの名無しさん
09/03/14 23:56:15
>>324
> 外クラスのオブジェクトを引数にとらなきゃいけない宿命なんすか?
別に引数に取らなくてもいいけど、
コンストラクタを明示的に呼ばないといけないから
new Outer().super(); とかしないと駄目。
> o.new ExInner(); ってかけないの?
無理。
327:デフォルトの名無しさん
09/03/15 00:01:51
>>324
public class Outer{
public static class Inner{
}
}
328:デフォルトの名無しさん
09/03/15 00:49:45
バイト列を対象にしたReaderについて教えてください。
テキストファイルを読み込んで解析するプログラムを作っているのですが、
ファイルが巨大であるためBufferedReaderで直接読み込むとアクセスランプが付きっ放しになって
エライ時間がかかってしまいます。
傍目に見ても効率がよさそうではないため、いったんメモリに読み込んでbyte[]にしてから解析をしようと思うのですが、
InputStreamのソースをbyte[]にする方法が分からずに悩んでいます。
329:デフォルトの名無しさん
09/03/15 00:54:02
>>328
java.nio.ByteBuffer 使った方がいいんじゃね?
330:デフォルトの名無しさん
09/03/15 00:55:09
BufferedInputStream bis = new BufferedInputStream(new InputStream(new File("ファイル名")));
int c;
byte[] b = byte[1024];
while((c=bis.read(b))!=-1)
/* 処理とか */
のようにすればいいと思われ。
1024は適当に値いじればいいと思うよ
331:デフォルトの名無しさん
09/03/15 00:56:25
あー、対象が文字列なら、CharBuffer の方がいいかな。
332:デフォルトの名無しさん
09/03/15 01:06:43
>>329-331
早速のお返事ありがとうございます。
APIリファレンス確認するとByteBufferでうまくいきそうな気がしてきました。
トライしてみます。
333:デフォルトの名無しさん
09/03/15 01:57:22
>>326
ありがとう
設計みなおすよ、、、
334:デフォルトの名無しさん
09/03/15 16:38:57
サイトのトップに幾つかの画像をランダム表示させることはできたのですが
幾つかのフラッシュファイルをランダムに表示させることができません。
どのように記述すればよいの教えていただけないでしょうか
よろしくお願いします。
335:デフォルトの名無しさん
09/03/15 17:39:54
>>334
>>1
336:デフォルトの名無しさん
09/03/15 19:02:51
JSPの表記で <%, <%!, <%=, がありますよね。
このタグに名称はあるのでしょうか?
基本的なことだと思うのですが使い所がわからなかったので
定義を調べようとしたところ
名称さえわからず ぐぐる事さえできず困っています。
337:デフォルトの名無しさん
09/03/15 19:39:55
JSPタグ
338:デフォルトの名無しさん
09/03/15 21:13:19
スクリプトレット
宣言(declaration)
実行時式(Runtime Expression)
339:デフォルトの名無しさん
09/03/15 21:32:11
>>337-338
ありがとうございます。
340:デフォルトの名無しさん
09/03/16 00:51:47
Javaを本格的に勉強しようと思うのですが
独学でやる場合に適した入門書でお勧めの
ものを教えていただけないでしょうか。
始めようにも路頭に迷ってるって感じで・・・・
御指南よろしくお願いします。
341:デフォルトの名無しさん
09/03/16 02:48:07
目標レベルと現在のレベルでも書いたほうがいいと思う。
342:334
09/03/16 04:10:22
誰か教えてください。急ぎなんです。
先払いで10000wm払いますのでお願いします。
343:デフォルトの名無しさん
09/03/16 08:33:48
>>342
>>1
344:デフォルトの名無しさん
09/03/16 14:22:15
>>341
現段階は少し前に高田美樹著のJavaスタートブック
を一通りやってみたといったところです。
ただ詳しい説明が乏しく感じられほとんど
理解に至ることなく丸暗記という状態です。
そこで改めて別に入門書を購入して勉強し直そうと
思っています。
目標としてはとりあえず既にJavaで組まれたソフトの
ソースコードを読んで理解できる程度になりたいと思っています。
345:デフォルトの名無しさん
09/03/16 16:23:04
キー入力待ちの仕組みについて教えてください。
どの処理が「入力待ち」になっている処理かわかりません。
下記の二行は一連の流れです。
1-BufferedReader keyIn = new BufferedReader(new InputStreamReader(System.in));
2-while (true) { System.out.println(keyin.readLine()); }
1のキー入力では、BufferedReaderがリターンキーを感知するまで返さないという原理で「入力待ち」ができていると考えています。
しかし、2の場合においても「入力待ち」ができます。
考えでは、whileし続けた場合はkeyin = nullとなると思うのですが(ファイルを読み込んだとき、ファイルの終わりがnullになるため)、なぜ「入力待ち」処理ができるんでしょうか?
2はkeyin.readLine()→1の処理で待ちという流れになるにしても理解不能です。
346:デフォルトの名無しさん
09/03/16 17:43:40
>>345
while (true) {
BufferedReader keyIn = new BufferedReader(new InputStreamReader(System.in));
System.out.println(keyin.readLine());
}
これなら納得するってこと?
347:デフォルトの名無しさん
09/03/16 17:56:46
>>345
>1のキー入力では、BufferedReaderがリターンキーを感知するまで返さないという原理で「入力待ち」ができていると考えています。
何を返さないって?
348:345
09/03/16 18:24:08
>>346
それは理解できます。
BufferedReaderで待ち状態を作って、リターンキーが帰ってきたらprintlnで表示されますよね。
>>347
返さないというか返ってこないというほうが表現が正しかったです。
BufferedReaderが\nか\rを感知sるうまではプログラムはその先に進まず「入力待ち」になるという考えです。
349:デフォルトの名無しさん
09/03/16 21:04:40
なんか勘違いしてるっぽいな・・
BufferedReader keyIn = new BufferedReader(new InputStreamReader(System.in));
これは入力待ちじゃなくて標準入力のリーダーを生成しただけだよ。
インスタンス生成して入力待ちとか無い無い
350:345
09/03/16 21:27:32
ちょっと勘違いしてたようです。
いろいろ試したところ、System.inは標準入力からのバイト配列でした。
あくまでBufferedReaderはまとめて表示するのを手伝ってるだけで、System.inが「入力待ち」を作ってるわけですね。
ということは、readLine()も仕様上、「入力待ち」という考えなんでしょうか
1回目は、最初のSystem.inから得られた1行を取得できますが、
whileで2週目が回ってきたときはあらたにSystem.inを取り込む処理を書いてないので普通に考えればnullとかになるはずですよね?
この“見えない”System.in取り込みの処理はどういう内部構造になっているのかなと。
351:345
09/03/16 21:36:27
納得しました。
keyinはSystem.inを取り込むインスタンスである以上、必要があれば常にSystem.inからの入力を求めるわけですね。
keyinがSystem.inとひもづけられているという考えをするとスッキリしました。
ありがとうございました。
352:デフォルトの名無しさん
09/03/16 23:21:46
StreamTokenizerの挙動について教えてください。ダブルクォーテーションに囲まれたテキストを引用符として扱いたいのですが、quoteCharの使い方が分からず、困っています。
下記のようなコード例で、ダブルクォーテーションの中身が無視されてしまいます。解決策をご教示頂ければ幸いです。
import java.io.StreamTokenizer;
import java.io.StringReader;
public class StringTakenizerTest {
public static void main(String args[]){
String test="1 \"aaa\" 2 \"bbb\" 3 \"bbb\"";
int kind;
System.out.println(test);
StreamTokenizer st=new StreamTokenizer(new StringReader(test));
st.quoteChar('\"'); // ダブルクォーテーションを引用符として扱って欲しい
try{
while((kind = st.nextToken()) != StreamTokenizer.TT_EOF ){
switch ( kind ) {
case StreamTokenizer.TT_WORD :
System.out.println("文字列: " + st.sval);
break;
case StreamTokenizer.TT_NUMBER :
System.out.println("数字: " + st.nval);
break;
}
}
}catch (Exception e) {
e.printStackTrace();
}
}
}
353:352
09/03/16 23:22:36
期待している出力は
1 "aaa" 2 "bbb" 3 "bbb"
文字列: aaa
数字: 1.0
文字列: bbb
数字: 2.0
文字列: ccc
数字: 3.0
というものなのですが、このコードを実行すると
1 "aaa" 2 "bbb" 3 "bbb"
数字: 1.0
数字: 2.0
数字: 3.0
となってしまいます。
354:デフォルトの名無しさん
09/03/16 23:37:04
>>352
case '\"': System.out.println("文字列: " + st.sval); break;
すれば?もっとも >>353 のと数字と文字列の順番逆になるけど。
URLリンク(java.sun.com)(int)
> nextToken メソッドが文字列定数を検出すると、
> ttype フィールドには文字列区切り文字が設定され、
> sval フィールドには文字列の本体が設定されます。
355:352
09/03/16 23:46:36
>>354
ありがとうございます。
失礼しました、公式に記載があったのですね。
…なるほど、そういう挙動だったのか…
356:デフォルトの名無しさん
09/03/17 15:17:08
文字コードについての質問です。
Strnig str = "あいうえお"; // UTF-16
という文字列があったとして、これを他の文字コードに変換するにはどうすればいいんでしょうか?
String str2 = new String(str.getBytes("ISO2022JP"));
などとすると、中の日本語表示がおかしくなってしまいます。
同様に、OutpuStreamでの文字コード指定でも表示がおかしくなるようです。
なにかいい解決方法はないでしょうか?
357:デフォルトの名無しさん
09/03/17 15:37:13
nio.charset.CharEncorderをつかう。
358:デフォルトの名無しさん
09/03/17 16:21:23
>>356
byte[] iso2022jp_string = "あいうえお".getBytes("ISO2022JP");
ソースコードがShift_JISだろうがUTF-8だろうが、
Stringは全部UTF-16でしか扱わない。
UTF-16以外の文字コード扱う場合は
基本的にバイナリデータ扱いになる。
java.io とか java.lang では 主に byte[] で
java.nio では主に ByteBuffer で扱う。
359:デフォルトの名無しさん
09/03/17 18:12:08
Graphics2D.drawString( ) を使ってマルチバイト文字を描画すると
文字化けします ( □□□□ になる)
正しく描画するにはどうすればよいでしょうか
目的としてはイメージファイルを生成したいだけです。
appletなどではありません。コマンドラインから実行するだけです。
描画したい文字列を
new String(str.getBytes("UTF-8"),"UTF-8")
など変換したり、入力の時点でさまざまな文字コードを試してもすべてダメのようでした。
バージョンは 1.6.0_02 で
その実行環境はlinuxです。
あまり関係ないと思いますが、
実行前に
export LANG=ja_JP.UTF-8
としています
360:デフォルトの名無しさん
09/03/17 19:27:27
>>359
フォントの設定見直せ。
361:デフォルトの名無しさん
09/03/17 20:21:40
クラス配列についての質問なのですが、例えばPointクラスで
Point[] p = new Point[3];
として、pのすべての要素を初期化したい場合
for( int i =0; i<p.length; i++){
p[i]=new Point();
}
と書くのと
Arrays.fill( p, new Point());
と書くのとでは、なにか大きな違いはあるのでしょうか?
362:デフォルトの名無しさん
09/03/17 20:34:02
下の方はp[0] == p[1] == p[2]になる
363:356
09/03/17 20:44:29
>>357-358
回答ありがとうございます。
文字コードの変換についてもCharsetEncoderを使ってもうまくいかなかったのですが、
テストと処理周りの見直しを行った結果、仕様の見落としが原因でした。
申し訳ないです、ありがとうございました。
364:h.t ◆S5hjT7ruak
09/03/18 10:35:58
先週も質問させていただいた292です。>>293の意見を受けて、現在POIでテスト中です。
で、また疑問が出てしまいましたので質問させてもらいます。
POIのver2.5で以下の記述を行いました。
001 FileInputStream in = null;
002 HSSFWorkbook workbook = null;
003 //エクセルオープン
004 in = new FileInputStream(fname);
005 try{ in = new FileInputStream(fname);
006 POIFSFileSystem fs = new POIFSFileSystem(in);
007 workbook = new HSSFWorkbook(fs);
008 }catch(IOException e){ System.out.println(e.toString());
009 }finally{ try{ in.close();
010 }catch (IOException e){ System.out.println(e.toString());}
011 } }
012 //シート取得
013 HSSFSheet sheet = workbook.getSheetAt(0);
014 //行取得
015 HSSFRow row1 = sheet.getRow(1);
016 //CELL番号
017 short cell_no = 0;
018 //CELL取得
019 HSSFCell cell1 = row1.getCell(cell_no);
020 if (cell1 == null){ cell1 = row1.createCell(cell_no); }
021 // 日本語対応
022 cell1.setEncoding(HSSFCell.ENCODING_UTF_16);
023 // 事業所名セット
024 cell1.setCellValue(INdatas[0].Jigyoseg_name.trim() );
これを、最新のPOI ver3.2にする為、017行目のcell_noをintに、022行目を削除したのですが
019行目に「メソッドgetCell(int)は型HSSFCellで使用すべきではありません」
024行目に「メソッドsetCellValue(string)は型HSSFCellで使用すべきではありません」
のワーニングが表示され、実行すると015行目で落ちてしまいます。
POIのver2.5では問題なく動くのですが…だれかご教授お願いします。
365:デフォルトの名無しさん
09/03/18 13:34:28
スイマセン。落ちるのは019行目でした…
ちなみに開発にはEclipse3.0を利用して外部jarで
poi-3.2-FINAL-20081019.jar
poi-contrib-3.2-FINAL-20081019.jar
poi-scratchpad-3.2-FINAL-20081019.jar
を追加しています。
上記ワーニングはEclipseで表示されます。
366:デフォルトの名無しさん
09/03/18 16:23:18
行番号付いてるけどBASICのプログラム?
367:デフォルトの名無しさん
09/03/18 16:38:27
>>366
馬鹿、代入に LET が付いてないだろ。
368:デフォルトの名無しさん
09/03/18 16:44:52
N88 なら 10 番飛ばしがデフォ
369:デフォルトの名無しさん
09/03/18 17:41:05
LETは省略可
370:デフォルトの名無しさん
09/03/18 17:42:00
>>366
説明するのにくっつけただけです。
3桁なのはなんとなくですw
371:デフォルトの名無しさん
09/03/18 18:12:16
コンパイルはできるのですが
ちゃんと出力できませんorz
class practive1 {
public static void main(String args[]) {
int a;
int b;
int c;
a = 2;
b = 5;
System.out.println("a = " + a );
System.out.println("b = " + b );
System.out.println("値の入れ替え");
c = a;
a = b;
b = c;
System.out.println("a = " + a );
System.out.println("b = " + b );
}
}
372:デフォルトの名無しさん
09/03/18 18:33:06
>>370
OpenOfficeだったらわかるんだけどなー
373:デフォルトの名無しさん
09/03/18 18:40:43
>>370
javadoc見たらいい。
URLリンク(www.docjar.org)(String)
Deprecated! Use - setCellValue(HSSFRichTextString) instead.
って書いてあるジャン。
374:デフォルトの名無しさん
09/03/18 19:01:03
>>373
了解しました。ありがとうございます。
375:デフォルトの名無しさん
09/03/18 20:34:49
iアプリの勉強をしてるのですが
ClassSample1.java
import com.nttdocomo.ui.*;
public class ClassSample1 extends IApplication
{
public void start(){
int Kekka1, Kekka2;
Menseki Zukei;//クラスの参照を宣言
Zukei = new Menseki();//クラスのインスタンスを生成
//①フィールドの利用
Zukei.x=30;
Zukei.y=20;
//②メソッドの利用
Kekka1 = Zukei.Sikaku();
Kekka2 = Zukei.Sankaku();
//③出力
System.out.println("フィールドxの値:"+Integer.toString(Zukei.x));
System.out.println("フィールドyの値:"+Integer.toString(Zukei.y));
System.out.println("変数Kekka1の値:"+Integer.toString(Kekka1));
System.out.println("変数Kekka2の値:"+Integer.toString(Kekka2));
}
}
行番号5 \12288は不正な文字です。と表示されます どこが可笑しいのでしょうか?
376:デフォルトの名無しさん
09/03/18 20:44:06
>>375
俺には 5 行目に全角スペースが見える。
377:デフォルトの名無しさん
09/03/18 20:59:36
>>376
ありがとうございます。ご指摘通りスペースの部分を削除したら動きました
感謝です
378:デフォルトの名無しさん
09/03/18 22:06:46
すいません、Java初心者です。
配列の領域値が1040KBに設定されている理由ってわかりますか?私は1024KBだったら納得いくのですが・・・
わかる方、教えてください。
よろしくお願いします。
379:デフォルトの名無しさん
09/03/19 00:41:37
IBMがSUNを買収するかもってニュースを見たのですが、
Java使いの立場からすると喜んでいいのか悲しむべきか・・
380:デフォルトの名無しさん
09/03/19 00:53:49
安心しろ、すでに Java は親元 Sun を離れて JCP で輪姦中だ。
381:デフォルトの名無しさん
09/03/19 03:06:15
サンのハード売れてないしなあ。
レッドハットのポジションを、自社ハードとソラリスで囲い込めば成功もしたかもしれないが。
コバルトキューブとか買収したのにうまく逝かせないのはもったいなかった。
382:デフォルトの名無しさん
09/03/19 11:43:04
おまいらに Sun が救えるのか
383:デフォルトの名無しさん
09/03/19 12:01:34
俺達がSunだ!
384:デフォルトの名無しさん
09/03/19 16:52:20
またまた、スイマセン。また、POIの質問です。申し訳ありません。
>>373さんの意見を受けてやったのですが、やはり旨く動きません。
コンパイルは通るのですが…
で、間違ってるのかと思い以下の記述をしてみました。
HSSFRichTextString s_VAL = null;
s_VAL = new HSSFRichTextString( "TEST" );
そうすると、2行目で落ちます。
で、HSSFRichTextStringのソースを見ると
47 public HSSFRichTextString( String string )
48 {
49 if (string == null)
50 string = "";
51 this.string = new UnicodeString(string);
52 }
の51行目のUnicodeStringで落ちてましたので、テストソースにUnicodeStringを以下のように書いて見ると、
import org.apache.poi.hssf.record.*;
import java.util.*;
UnicodeString uni_T = UnicodeString("TEST");
の箇所でjava.lang.NoSuchMethodErrorで落ちました。
java.lang.NoSuchMethodError: org.apache.poi.hssf.record.UnicodeString.<init>(Ljava/lang/String;)V
これは、J2SDKのバージョンの問題なんでしょうか?
現在J2SDK Ver1.4.2を使用していますが…
385:デフォルトの名無しさん
09/03/19 17:50:12
>>384
POI全く使ったことないけど、そのエラーはJ2SDKの問題じゃないよ
UnicodeStringのStringを引数としたコンストラクタが見つからない、もしくはアクセス不可能であると考えるのが普通だろうね
386:デフォルトの名無しさん
09/03/19 20:38:50
<form method="post" action="URLリンク(w1m.docomo.ne.jp)">
<input type="hidden" name="ecode" value="OPENAREACODE">
<input type="hidden" name="msn" value="OPENAREAKEY">
<input type="hidden" name="nl" value="URL">
<input type="hidden" name="posinfo" value="1">
<input type="submit" name="ok" value="Open i Area">
</form>
パラメータ不正のため接続できませんでした。
となってしまいました。
どうすればいいでしょうか?
387:デフォルトの名無しさん
09/03/19 20:42:12
スレタイと >>1 を 100 回読み直すと良いと思うよ
388:デフォルトの名無しさん
09/03/19 22:57:07
>>384
とりあえずうちの環境1.6では特に問題なし。
389:デフォルトの名無しさん
09/03/20 02:03:27
JOptionPane の OK_CANCEL_OPTION でキャンセルボタンに初期フォーカスを
合わせるにはどうしたら良いですか? 自分でボタン指定するしかない?
390:デフォルトの名無しさん
09/03/20 09:14:24
>>389
JOptionPaneのフォーカスに関連した話題がswingスレでやられているからあっちへ池
391:デフォルトの名無しさん
09/03/20 10:09:23
DocumentBuilderでHTMLのDOMオブジェクトを作りたいのですが、方法はあるのでしょうか?
392:デフォルトの名無しさん
09/03/20 12:01:51
>>391
HTMLはXMLではないのでHTMLからXMLに適合していない部分を補って無理矢理DOMを構築できるような
DocumentBuilderの実装を自作するかどこかから持ってこない限り無理。
XHTMLとして書かれているならそのままXMLとしてDocumentBuilderで扱える。
393:デフォルトの名無しさん
09/03/20 12:08:57
やはり標準ではできないんですね。
ありがとうございます。
394:デフォルトの名無しさん
09/03/20 13:06:52
>>393
HTMLを解析することが目的ならDOMではないけれど、
javax.swing.text.html.HTMLEditorKit.ParserCallbackのサブクラスを作って、
javax.swing.text.html.parser.ParserDelegatorに渡してやれば、
Readerから読み込まれるHTMLをSAXっぽい感じで扱える。
ParserCallbackの各ハンドルメソッドでツリーを構築してやるようにすれば
DOM的なデータ構造にもできると思う。
395:デフォルトの名無しさん
09/03/20 13:58:02
>>394
ありがとうございます。実装することになればその方法を用いてみようと思います。
396:デフォルトの名無しさん
09/03/20 18:35:07
Imageの中にpngから部分的に切り取った画像を入れたいのですが
切り取る矩形を引数にとって
切り取った画像をImageで返してくれる関数って有りませんか?
397:デフォルトの名無しさん
09/03/20 19:18:22
>>396
java.awt.image.BufferedImage#getSubimage(int, int, int, int)
398:デフォルトの名無しさん
09/03/20 20:00:37
>>397
ありがとうございます!
やってみます!
399:デフォルトの名無しさん
09/03/20 22:51:10
Javaで.NETでいうFile.ReadAllTextみたいなメソッドって無いんでしょうか。
BufferedReaderで全行読みつつ改行コード付け直す作業が不毛で仕方ないです。
400:デフォルトの名無しさん
09/03/20 23:09:44
>>399
標準APIにはない。
commons IO にはorg.apache.commons.io.FileUtils#readFileToString(File, String) とかあるよ。
401:デフォルトの名無しさん
09/03/21 23:21:04
クラスの中に複数のメソッドが入る
これが基本ですね。
402:デフォルトの名無しさん
09/03/22 01:23:50
プレイヤーにコードを書き換えられたのを察知してゲームを強制終了やフリーズさせるのは何て仕組み?
403:デフォルトの名無しさん
09/03/22 02:33:56
必殺チート殺し
404:デフォルトの名無しさん
09/03/22 04:36:34
まあ通信エラーでも誤判定される諸刃の剣だけどな。
405:デフォルトの名無しさん
09/03/22 11:02:03
あるクラスにはフィールドを書き換えるAメソッドと
フィールドを読み込んでなにかするBメソッドがあって、
AメソッドとBメソッドは別のスレッドから呼び出されるとします。
そのとき、Aメソッドで書き換えている途中に、Bメソッドがよびだされり
しても大丈夫ですか?
それとそれがおこらないようにするにはどうしたらいいですか?
どうしても分かりません。よろしくお願いします。
406:デフォルトの名無しさん
09/03/22 11:25:28
>>405をお願いします。
本当に困ってます。
407:デフォルトの名無しさん
09/03/22 11:30:36
>>405
syncronized
408:デフォルトの名無しさん
09/03/22 11:34:03
>>407
syncronizedは一つのメソッドを同時に他のメソッドから呼び出せないことで、
syncronizedのついた別々のメソッドは同時に呼び出せるんじゃないんですか?
409:デフォルトの名無しさん
09/03/22 11:36:14
×syncronized
○synchronized
410:デフォルトの名無しさん
09/03/22 11:36:18
しらべたらあってました。
有難うございました。
さようなら。
411:デフォルトの名無しさん
09/03/22 14:14:44
入門書くらい読めよ
412:デフォルトの名無しさん
09/03/22 15:12:50
まぁ俺様が Java 始めた頃は入門書すらなかったけどな。
413:デフォルトの名無しさん
09/03/22 16:58:33
*7がどうのこうの言ってた時代が懐かしいw
414:デフォルトの名無しさん
09/03/22 17:02:59
*7ってなに?
415:デフォルトの名無しさん
09/03/22 17:04:33
俺様が始めたころはJavaす
いや、なんでもない。
416:デフォルトの名無しさん
09/03/22 18:20:25
真空か
いや何でもない
417:デフォルトの名無しさん
09/03/22 21:31:35
tibiaってゲームしってます?
これはjavaで作られてるんですか?
418:デフォルトの名無しさん
09/03/22 23:10:11
よく解らんけど公式のトップページの拡張子は思いっきりphpだが
419:デフォルトの名無しさん
09/03/22 23:13:33
>>417
よくわからないが、クライアントは違うと思う
420:デフォルトの名無しさん
09/03/23 09:26:29
クラスのメンバとしての定数宣言で、以下のように書くと・・・
private static String REPLACE_ID
Eclipseの警告メッセで、
>名前 'REPLACE_ID' はパターン '^[a-z][a-zA-Z0-9]*$' に一致しなければなりません。
というのが出ます。
ビルドして実行するのには問題無いですが、何か定数に名前付けるルールみたいなのあるんですか?
これはそれに違反しているという警告ですか?
421:デフォルトの名無しさん
09/03/23 10:33:34
オブジェクトがいまいちわからない>_<
422:デフォルトの名無しさん
09/03/23 11:40:42
>>420
;
423:420
09/03/23 13:37:18
正確には
private static String REPLACE_ID = "文字列";
と記述したときにその警告が出ます。
424:デフォルトの名無しさん
09/03/23 13:44:52
SunとかのJavaの命名カルチャーだと思われる
先頭単語はすべて小文字、続く単語は先頭のみ大文字
ってどうですか?
425:デフォルトの名無しさん
09/03/23 13:45:22
final 付けたらOKとかない?
426:デフォルトの名無しさん
09/03/23 13:48:40
'^[a-z][a-zA-Z0-9]*$' に一致しなければなりません。
を素直に読むと、
一文字目は英小文字(aからzまで)で、
それ以降は英数文字(aからz、AからZ、0から9)が最後まで何個か(ゼロ個含む)続く文字列。
427:デフォルトの名無しさん
09/03/23 13:53:52
>>423
final 宣言がされていない変数だからキャメル表記 (replaceId 等) で書けという意味。
それが定数なら public static final String REPLACE_ID = "文字列" と書け。
428:デフォルトの名無しさん
09/03/23 13:54:15
URLリンク(eclipsewiki.net)
>CheckStyleプラグイン
これか?使ったこと無い。
429:デフォルトの名無しさん
09/03/23 15:28:06
// Sample.java
import a.OtherPackageClass;
class Sample extends OtherPackageClass
{
public static void main(String[] args)
{
OtherPackageClass opc = new OtherPackageClass();
opc.protectedInstanceMethod(); ←コンパイル時エラー
opc.protectedStaticMethod(); ←こっちは実行できる
}
}
// a/OtherPackageClass.java
package a;
public class OtherPackageClass
{
protected void protectedInstanceMethod()
{
System.out.println("protectedなインスタンスメソッド実行");
}
protected static void protectedStaticMethod()
{
System.out.println("protectedなクラスメソッド実行");
}
}
430:デフォルトの名無しさん
09/03/23 15:29:13
上記のソースコードの "opc.protectedInstanceMethod();" の部分で、
「protectedInstanceMethod()は a.OtherPackageClassでprotectedアクセスされます」
と表示され、コンパイルエラーになってしまいます。
一方、"opc.protectedStaticMethod();" の部分は、エラーは出ず、普通に実行できます。
記述した2つのメソッドは両方とも、スーパークラスのメンバにアクセスしようとしているし、
protectedは「全てのサブクラスからアクセス可能」という性質を持っているから、
2つともアクセスできると思うのですが・・・
なんでインスタンスメソッドの方だけアクセス出来ないのでしょうか??
431:デフォルトの名無しさん
09/03/23 16:59:59
>>429
protected を付けたインスタンスメソッドは同一インスタンスのスーパークラス (つまり super)
に対して呼び出せる。その例だと ocp.protectedInstanceMethod() は別インスタンスの
protected メソッドなので NG。一方で protected なクラスメソッドはそもそも特定のインスタンスと
結びついているわけではないのでサブクラス内からであればどこでも呼び出せる。
同一パッケージ内でも呼び出せるが話がややこしくなるので省略。
432:デフォルトの名無しさん
09/03/23 18:02:09
>>430
protectedアクセスでは同一パッケージまたはサブクラスからアクセスできるというものの、
同一パッケージの場合とサブクラスの場合では同一パッケージの方がアクセス性が緩くなっている。
URLリンク(java.sun.com) (総則)
URLリンク(java.sun.com) (詳細規則)
URLリンク(java.sun.com) (例)
つまり6.6.2.1節の二つ目の項の規則に従って、
C=OtherPackageClass、E=opc、Id=protectedInstanceMethod、S=Sampleとすると、
opc.protectedInstanceMethod()でアクセスできるのはopcがSampleまたはそのサブクラスの場合になる。
だからOtherPackageClass opc = new OtherPackageClass();でなくSample opc = new Sample();なら、
opc.protectedInstanceMethod()は問題なくコンパイルを通る。
クラスメソッドの場合は、
URLリンク(java.sun.com)
なのでサブクラスのSampleからでもアクセスできる。
ところでopc.protectedStaticMethod()はOtherPackageClass.protectedStaticMethod()と書いた方がいいかも。
433:デフォルトの名無しさん
09/03/23 18:18:59
継承に関するアクセス権って、基本、
・private
・protected
・public
の三つで、
friendとかパッケージプライベートとかは
オブジェクトやクラス間の横のつながりの不便さを補う為のもんだから、
分けてせつめいしたり理解させた方が誤解がないと思う。
434:デフォルトの名無しさん
09/03/23 18:21:57
friend?
435:デフォルトの名無しさん
09/03/23 19:14:12
You are my friend.
436:デフォルトの名無しさん
09/03/23 19:44:27
protected static void protectedStaticMethod();
で
opc.protectedStaticMethod(); ←こっちは実行できる
ほんとに?
437:デフォルトの名無しさん
09/03/23 19:51:34
>>434
Javaにはないけど、概念だけ教えとくと
パッケージプライベートの便利さがみえてくる。
438:デフォルトの名無しさん
09/03/23 20:15:05
>>430
大体答えは書かれていると思うけど、付け加えるとprotectedは
スーパークラスのメソッドを呼び出すための道具だとはあまり
「考えない方が」良いと思う。
この用途にはまずパッケージプライベートを使う方が良い。
何でもかんでもprotectedにしてしまうとそのクラスを利用する
他の開発者にとってはpublicと殆ど大差ないので。
protectedなメソッドはパッケージの開発者自身ではない第三者
がそのクラスを継承して使う際に、一部の実装を変更するため
に提供するもの、程度に考えた方が良い。
なのでprotectedなメソッドを実装する際は第三者に変更される
可能性を考慮して内容は最小限に、注意深く行う必要がある。
439:デフォルトの名無しさん
09/03/23 20:29:22
package test;
public class Hoge {
protected void funcM() { System.out.println("funcM"); }
protected static void funcS() { System.out.println("funcS"); }
}
//++
import test.*;
class Foo extends Hoge {
void f1(Hoge other) {
funcM(); // 継承してるのだからOK
this.funcM(); // 継承してるのだからOK
other.funcM(); // 他のインスタンスは×
funcS(); // 継承してるのだからOK
this.funcS(); // 継承してるのだからOK
Hoge.funcS(); // 継承してるのだからOK
other.funcS(); // staticなのだからインスタンスの確認は不要でOK!!!
}
}
最後のがちと特殊に見えるのかな。
440:デフォルトの名無しさん
09/03/23 20:44:45
>>436
よく見ると main() を持ってる Sample が OtherPackageClass のサブクラスになってる。
441:デフォルトの名無しさん
09/03/23 21:16:03
単に static だからじゃね?protected はカンケー無い
442:デフォルトの名無しさん
09/03/23 21:20:35
protected my friend
443:デフォルトの名無しさん
09/03/23 21:21:04
>継承に関するアクセス権って、基本、
>・private
>・protected
>・public
>の三つで、
「なし」 を忘れてるよ。全部で4つだろ。java 入門書を最初から読み直せ。
444:デフォルトの名無しさん
09/03/23 21:37:15
なし=パッケージプライベート
勉強になったね^^
445:デフォルトの名無しさん
09/03/23 21:37:40
「基本」て言ってるしその直後にパッケージプライベートを挙げてるし (「なし」って何だよ)。
仕様書の最初の1ページ読んで実装始めるタイプだな。
446:デフォルトの名無しさん
09/03/23 21:58:09
「基本」って何だよwww
447:デフォルトの名無しさん
09/03/23 21:59:03
「アクセス権が3つ」は、誰が見ても明らかに間違いだろ。
448:デフォルトの名無しさん
09/03/23 22:04:12
パッケージプライベートや friend は OO の派生継承に絡むスコープの制限じゃないから
別扱いって意味じゃね。
449:デフォルトの名無しさん
09/03/23 22:08:00
どうでも良い知識をひけらかすためにいちいち煽るなよ ハズカシイ
450:デフォルトの名無しさん
09/03/23 22:08:17
OO全体を見てる奴とJavaしか視野に入ってない奴の齟齬だろ。
451:デフォルトの名無しさん
09/03/23 22:13:31
継承に関するアクセス権って、基本、
・private
・protected
・public
の三つで、
friendとかパッケージプライベートとかは
オブジェクトやクラス間の横のつながりの不便さを補う為のもんだから、
分けてせつめいしたり理解させた方が誤解がないと思う。
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
どうでも良い知識をひけらかして大恥かいちゃったひと
452:デフォルトの名無しさん
09/03/23 22:28:58
パッケージプライベート=なしだと気付かず蘊蓄の御披露目しちゃった アフォ 赤面www
453:デフォルトの名無しさん
09/03/23 22:36:46
private protected てアクセス制御がどっかの言語にあったような、と思って調べたら
JDK 1.0 だった。初版の虎本で見たんだったかな。あの本も今思えば、特に AWT あたりで
試行錯誤の結果と思われるむちゃくちゃな知識が書いてあったが。
454:429
09/03/23 22:36:51
たくさんのレスありがとうございました。
なるほど、つまり、スーパークラスのオブジェクトを使って、
アクセスしようとしたことが原因なんですね。
cloneメソッドを調べる→あれ?protectedってなんだ?
→そもそもメソッドを継承するってどゆこと?
って感じでズブズブと深みにハマってしまいましたOTL
--補足--
いろいろ調べてみたらcoreJAVAの225ページに、
「サブクラスから、スーパークラスのオブジェクトのprotectedなメンバにはアクセス出来ない。
なぜならprotected修飾子の性質を利用し、スーパークラスのprotectedなメンバにアクセスする目的で、
サブクラスを作成するのを防ぐためである」
みたいな事が書いてありました。
455:デフォルトの名無しさん
09/03/23 22:37:44
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
ほうほうほう。
それじゃ何でスカイ?
>friendとかパッケージプライベートとかは
も入れて、全部で5つだとでも言うんでスカイ?
456:デフォルトの名無しさん
09/03/23 22:41:50
矢印って失敗すると恥ずかしいよな。
457:デフォルトの名無しさん
09/03/23 22:56:09
このスレの常識が決定いたしました!
javaのアクセス権
・private
・protected
・public
・friend
・パッケージプライベート
の計三つです。
ギャハハハハハハハハ腹痛い~~~
458:デフォルトの名無しさん
09/03/23 23:04:57
>>457
もうとっくに気付いてて、振り上げた拳をおろせなくなってるだけだとおもうけど、
>>433 では OO 的に意味のあるスコープ制約って Java でいう private, protected, public の
3 つだと言ってるところに、>>443 で「Java のスコープ制約は『なし』も入れて 4 つだ」なんて
ズレた事言い始めるからおかしくなってんじゃねぇの。そうやってバカのふりしてあがくと
余計に無様を晒すだけだよ。
459:デフォルトの名無しさん
09/03/23 23:08:48
>>458
馬鹿にかまうと余計暴れるぞ。
460:デフォルトの名無しさん
09/03/23 23:11:20
そんじゃ、「パッケージプライベート」 は 「OO 的に意味のあるスコープ制約」 ではありませ~~ん
てか?
461:デフォルトの名無しさん
09/03/23 23:12:35
だったら private も 「OO 的に意味のあるスコープ制約」 に入らないよな・・・
462:デフォルトの名無しさん
09/03/23 23:13:50
で、結局、friend は
Java の OO 的に意味のあるスコープ制約って
なのか?
ギャハハハハハハハ
463:デフォルトの名無しさん
09/03/23 23:28:49
パッケージという概念に OO は関係ないし、private なかったら OO のブラックボックス化が不可能だし。
という所まで理解は進んでいないのか。まぁ初心者質問スレだから良いけど…
Java のスコープ制限 4 つってのもどっかの本で読んだ知識でしたって感じだな。
464:デフォルトの名無しさん
09/03/23 23:30:54
>>463
「パッケージ」
「パッケージプライベート」
この違いがわかっとらんの?
465:デフォルトの名無しさん
09/03/23 23:32:21
>パッケージという概念に OO は関係ないし、
それだたら、private も public も protected も OO とは関係ないじゃんw
466:デフォルトの名無しさん
09/03/23 23:33:16
>>464
パッケージプライベートがパッケージという概念の上に成り立っている事も理解できてないのか…
467:デフォルトの名無しさん
09/03/23 23:33:40
で、結局、friend は
>Java の OO 的に意味のあるスコープ制約
なのかよ?
ギャハハハハハハハ 笑い死にしそう~
468:デフォルトの名無しさん
09/03/23 23:40:48
いきなり伸びてると思ったら馬鹿が発狂してるだけか
469:デフォルトの名無しさん
09/03/23 23:41:56
この人は侮辱を受けても、その場で言い返すことすらできないタイプだろう
だから匿名のネットでうさを晴らす
そんなことをしても、現実での自分の立場は変わらないのに
470:デフォルトの名無しさん
09/03/23 23:44:11
こうみるとJAVA忠のひとって、C++にいるカルトとはまた違った意味でカルトだよな。
VIPぐらいだとカルトとは言われないで「VIP発狂wwww」のかもしれないけどねぇ
言語設計者の定義でしかないし、アクセス権は3つってことでいいんじゃないの?
たぶんカルトで発狂してる厨房よりははるかにOO思想に慣れてるしアクセス権について分かってると思うよ。
そういえばこの発狂カルトは、たぶんprotectedの質問した本人だろう。IP抜かれてんぞ。ばれてんだよw
471:デフォルトの名無しさん
09/03/23 23:44:22
ああ、こんなことをしても、
javaのアクセス権は
・private
・protected
・public
・friend
・パッケージプライベート
の計三つです。
という現実は変わらないよ~~~w
472:デフォルトの名無しさん
09/03/23 23:46:06
>言語設計者の定義でしかないし、アクセス権は3つってことでいいんじゃないの?
まだ言ってるよw
java のアクセス権は 3つ だってよ~~~w
473:デフォルトの名無しさん
09/03/23 23:49:57
必死に複数レスに分けたりして、余程「なし」発言を流したいみたいだなこの人。
技術知識が無いのはもうバレバレなのに何顔真っ赤にしてんだか。
474:デフォルトの名無しさん
09/03/23 23:55:07
バカが自爆しているのを見ながら飲む酒はうまい。
475:デフォルトの名無しさん
09/03/23 23:55:29
なんだこの鬱陶しい流れは
476:デフォルトの名無しさん
09/03/23 23:56:46
____
/ \ /\ キリッ 「なし」 を忘れてるよ
. / (ー) (ー)\ 全部で4つだろ
/ ⌒(__人__)⌒ \ java 入門書を最初から読み直せ
| |r┬-| |
\ `ー’´ /
ノ \
/´ ヽ
| l \
ヽ -一””””~~``’ー?、 -一”””’ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
____
/_ノ ヽ、_\
ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ <なしって何だおwwww
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒)
| / / / |r┬-| | (⌒)/ / / //
| :::::::::::(⌒) | | | / ゝ :::::::::::/
| ノ | | | \ / ) /
ヽ / `ー’´ ヽ / /
| | l||l 从人 l||l l||l 从人 l||l バンバン
ヽ -一””””~~``’ー?、 -一”””’ー-、
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
477:デフォルトの名無しさん
09/03/23 23:57:06
final class Unko {
protected void hoge() {
System.out.println("うんこ:");
}
}
↑
よくいるよね、こういうの。
final クラスのメソッドに protected 付けるバカ。
478:デフォルトの名無しさん
09/03/24 00:17:43
>>477
コーディング規約が古いところだとそもそも「なし(笑)」の考慮が抜けてる所が多いから
protected で代用されているとか、あと何かスコープ修飾子を付けとかないと気持ちの悪い
潔癖症とか (ないか)。
private final なインスタンスメソッドのように役割上無意味になってしまう修飾子の
組み合わせが出るのは仕方がない。だがこういうのは危険人物を見分ける指標になる。
479:デフォルトの名無しさん
09/03/24 00:23:10
スレが伸びてると思って期待してみたけど、鼻糞小僧が発狂しただけかw
恥ずかしい奴だったな。もう消えてなくなっちゃたんだろうけど
480:デフォルトの名無しさん
09/03/24 00:28:22
>>469
そうは言うけど>>467の知能じゃ無理だろ。
プログラム言語のパラダイムで考えてやっても無理だな。
たぶん、こいつの脳味噌にはクギでも突き刺さってんじゃないのか?
481:デフォルトの名無しさん
09/03/24 00:31:20
危険人物というよりも、クロージャとか次のパラダイムが入ってくるそうともいえなくなる。
482:デフォルトの名無しさん
09/03/24 00:32:17
ひさびさに鼻糞君が自爆したスレはここですか?
483:デフォルトの名無しさん
09/03/24 00:32:53
int型の数値を文字列Stringに変換できますか?
int a=100を文字列として扱いたいのですが、
キャスト変換したらエラーでてしまいました
484:デフォルトの名無しさん
09/03/24 00:35:05
a.toString
485:デフォルトの名無しさん
09/03/24 00:36:27
>>481
去年のうちには出る出るとか言ってgdgdになってたから追うの止めてしまったけど
今どうなってんのさ 7 は。
486:デフォルトの名無しさん
09/03/24 00:38:00
>>483
int → String は Integer.toString(a) または String.valueOf(a)
String → int は Integer.parseInt(str)
487:デフォルトの名無しさん
09/03/24 00:38:51
scalaでいいじゃん、楽しいよscala
クロージャまじ便利
488:483
09/03/24 00:40:08
>>484
>>486
ありがとうございます
助かりました
489:デフォルトの名無しさん
09/03/24 01:03:30
う~ん・・・パッケージプライベート なんて言葉が出てきたから、ちょっと???と思った。
たとえば、hoge ディレクトリに Unko.java と Manko.java がある。
■hoge/Unko.java
package hoge;
class Unko {
int a = 999; //(あ)
}
■hoge/Manko.java
package hoge;
class Manko {
void hoge()
{
System.out.println( a ); //(い)
}
}
(あ) の int a は private も protected も public も、何も付けていないから
「パッケージプライベート」である。
したがって (い) は正しく実行され 999 と表示される。
これは正しい?
490:デフォルトの名無しさん
09/03/24 01:06:34
>>489
Unko unko = new Unko();
System.out.println(unko.a);
なら 999 と表示される。パッケージプライベートは相手が同一パッケージに所属するか
どうか以外は public と同じ。
491:デフォルトの名無しさん
09/03/24 01:24:15
鼻糞君はまだいるのか?
492:デフォルトの名無しさん
09/03/24 01:34:45
>>490
つまり、間違ってるってこと?
>パッケージプライベートは相手が同一パッケージに所属するか
>どうか以外は public と同じ。
は?よくわかりません。
2つのソースファイルとも、package hoge; で「同一パッケージに所属する」から
Manko.java から Unko.java の a は「public と同じ」ようにアクセスできるんじゃないの?
493:デフォルトの名無しさん
09/03/24 01:35:36
そもそも java の パッケージプライベート って何?
494:デフォルトの名無しさん
09/03/24 01:38:27
■hoge/Unko.java
package hoge;
class Unko {
int a = 999; //(あ)
}
■hoge/Manko.java
package hoge;
class Manko {
int a = 888; //(い)
}
こういった場合、(あ) と (い) の int a が重複してエラーになるの?
パッケージプライベートだから。
495:デフォルトの名無しさん
09/03/24 01:44:25
>>492,494
a はパッケージ内のどこからでも参照できるが、特定の Unko インスタンスに
結びつけられた変数であって、C のグローバール変数みたいなものではない。
というかこれはスコープ以前の問題。
496:デフォルトの名無しさん
09/03/24 01:52:55
>>494
publicでも参照できないものが参照できるはずないだろ。
497:デフォルトの名無しさん
09/03/24 01:54:02
いやスコープか、スコープ修飾子以前の問題な。めんどくさいな。
498:デフォルトの名無しさん
09/03/24 03:10:09
なんかすげぇスレ伸びてると思ったらバカが出ただけか。
499:デフォルトの名無しさん
09/03/24 03:50:01
どこの開発現場か知らないが、勝手にネーミングするなって感じだな。
500:デフォルトの名無しさん
09/03/24 05:02:33
>パッケージ内のどこからでも参照できる
はぁ?
501:デフォルトの名無しさん
09/03/24 05:03:45
hoge/Unko.java と hoge/Manko.java は同じパッケージなんですが・・・
502:デフォルトの名無しさん
09/03/24 05:04:26
パッケージ内のどこからでも参照できるワケないお!
503:384
09/03/24 10:43:52
たびたびで申し訳ありません。
先週お聞きして、色々やって見たのですがやはり以下の場所で同じエラーが出て進みません。
import org.apache.poi.hssf.record.*;
import java.util.*;
UnicodeString uni_T = UnicodeString("TEST");
エラー
java.lang.NoSuchMethodError: org.apache.poi.hssf.record.UnicodeString(Ljava/lang/String;)V
J2SDKを1.6にしたりもしたのですが上記エラーから脱出できません。
>>385さんの言葉を元にコンストラクタを見たのですが、
org.apache.poi.hssf.record.UnicodeString.UnicodeString(String arg0)
は存在しているもようです。
後、考えられる要因はなんでしょうか?
ひょっとして、Apache1.3やTomcat3.2のバージョンの問題でしょうか?
504:デフォルトの名無しさん
09/03/24 11:39:55
new UnicodeString("TEST");
505:デフォルトの名無しさん
09/03/24 12:09:27
入門書くらい読めよ
506:デフォルトの名無しさん
09/03/24 12:59:14
>>500,502
パッケージ内からなら private のようなアクセス制限はないだろ。
何を勘違いしてる?
507:デフォルトの名無しさん
09/03/24 13:02:59
すいません。
上の間違いをそのままコピーしたようで…
UnicodeString uni_T = New UnicodeString("TEST");
です。この状態でエラーとなっています。
508:デフォルトの名無しさん
09/03/24 13:04:05
UnicodeString uni_T = new UnicodeString("TEST");
でした…orz
509:デフォルトの名無しさん
09/03/24 13:34:52
>>504-505
m9(^Д^)ぷぎゃー
510:デフォルトの名無しさん
09/03/24 13:42:34
>>472-475
この鼻糞君なんだけど、自分の愚かさに気がつくのが怖くて3ヵ月後には自爆したくなるんじゃね?
511:デフォルトの名無しさん
09/03/24 13:49:50
確か次の目玉は、
swing
nio2
annotation
だったかな。moduleとかも入るような気がした。
クロジャーは時期尚早の結論になってやめたそうな。
512:デフォルトの名無しさん
09/03/24 13:52:52
何じゃクロージャー止めたんかい。なら去年のうちに確定できたろうに。
513:デフォルトの名無しさん
09/03/24 14:03:02
クロージャは去年の12月頃に一応の最終的な結論が出たみたい。
開発者向けの情報サイトでビデオ討論してた。
7の「これが目玉!」のスライドを見てみると、アノテーションについては言語サポートが強化されるから、次は多分アノテーションだけになると思うよ。
514:デフォルトの名無しさん
09/03/24 14:15:58
次は多分アノテーションだらけになると思うよ。
515:デフォルトの名無しさん
09/03/24 17:09:15
アノテーションて下手くそが設計すると C/C++ のプリプロセッサ並に意味不明な事になるよな。
言語体系変えないだけマシだけど。
516:デフォルトの名無しさん
09/03/24 18:22:56
>>503
の件ですが、自己解決しました。
ひょっとしてと思い、ApacheやTomcatもバージョンを上げるとなぜか問題なく動きます。
…Apache1.3やTomcat3.2,J2SDK1.4の環境ではPOIは2.5までしかまともに動かないようです…
517:デフォルトの名無しさん
09/03/24 23:08:36
プログラミングのスタイルについて皆さんの意見を下さい。
お聞きしたいのは「変数を、その変数が作られた意図とは異なる用途で使用するのはおk?」という点です。
以下に例題を記述します。
boolean execFlg = false;
if (rs.next()) {
execFlg = true;
}
//1件以上検索結果があればメソッド実行
if (execFlg) hoge.exec();
rsはありがちなresultSetと考えてください。検索結果の有無によりhoge.exec()の実行を制御する為にexecFlgというフラグを使用しています。
このソースの後ろに「検索結果の有無を出力する」という処理を追加する時、私の場合次のように書きます。
518:デフォルトの名無しさん
09/03/24 23:12:30
boolean execFlg = false;
boolean rFlg = false;
if (rs.next()) {
execFlg = true;
rFlg = true;
}
//1件以上検索結果があればメソッド実行
if (execFlg) hoge.exec();
if (rFlg) {
System.out.println("データあり");
} else {
System.out.println("データなし");
}
この場合、「execFlgがあるんだからそれを使え」という方もいらっしゃいますが、
execFlgはあくまで「hoge.exec()を実行するか」を制御する為のフラグであり、
「検索結果の有無」を見る為のものではないという観点からここは多少冗長であっても
上のような書き方をするのがベストだと思うのですが、皆さんはこういうケースではどのようなスタイルで記述しますか?
519:デフォルトの名無しさん
09/03/24 23:17:23
フラグなどという名称はエロゲーだけでいい
520:デフォルトの名無しさん
09/03/24 23:24:37
変数の意味を「一件以上あるか」あるいは int にして件数を設定するだけの話。
boolean recordsExists = false;
while(rs.next()){
…
recordsExists = true;
}
if(recoredExists)
hoge.exec();
System.out.println("データ有り");
} else {
System.out.println("データなし");
}
521:デフォルトの名無しさん
09/03/24 23:31:16
「isナントカ」 だな。「フラグ」ってあまり使わない。
522:デフォルトの名無しさん
09/03/24 23:32:28
>>518
リファクタリングしろ