トップページ⇒tech
890コメント344KB

Java相談室 Part3

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
Java関連の質問はここでお願いします。

旧スレはこちら↓
http://piza.2ch.net/test/read.cgi?bbs=tech&key=980858322
0002デフォルトの名無しさんNGNG
===========駄スレ終了============
Σ(゚Д゚)もう終わりかよ!?
(´β`)終了。
0003デフォルトの名無しさんNGNG
>2
やってみたかったんだね
よしよし
0004デフォルトの名無しさんNGNG
マサカズ ♥
0005全スレの 954NGNG
そういえば昔、他の人が AIX で 100Mbsp のネットワークから
64kbsp のネットワークへデータを送信するゲートウェイみたい
なものを作ったことがあった (C++)。開発段階ではまだ
100<-->100 のネットワーク構成だったので select 使わないで
データタレ流してたら、本番で構成が変わって 64k になってし
まった。結果、64k 側の送信バッファがいっぱいになってシグナル
が上がり、プロセスごと落ちるような障害を突き止めたことがあった。
Java でどういう動きになるかは分かりませんが、もしこのままだっ
たら非ブロッキング I/O がないままではこういう所には向かない
かもね。どちらにせよ JDK1.4 でこのような脆弱性を補強して
サーバ用途のアプリが組めるようになったと思う。
まだ使ったことないけど (藁
0006デフォルトの名無しさんNGNG
>>5
入力と出力を別スレッドにしてパイプストリームかFIFOキューでつなぐだけじゃん
selectでごにょごにょやるよりよっぽど素直でわかりやすい設計だろ?
00075NGNG
やっぱり上記の動きは AIX の Java VM が吸収しているみたいだわ。

>>947 VB 誤字スマソ
00085NGNG
>>6 通信速度の差で 64k 側の送信バッファがいっぱいに
なるっていうのは解決できます? select で送信可能に
なってるかどうか随時みる必要があるのでは...
0009デフォルトの名無しさんNGNG
>>8
キューの最大値を超えそうになったら
キューの追加関数でブロックするようにしときゃいじゃん。
入力スレッドはそこでブロックされる。
(言うまでもないけど残量が0になった時はキュー取り出しがブロック)

つーか普通FIFOキューっていったらそういう物を指すと思っていたんだけど、、

#標準ライブラリのパイプストリームはバッファの容量が指定できなかったかもしれない
#からひょっとしたらメモリの限り読み込まれてしまうかも
00105NGNG
>>9 お〜それで出来ると思う。でもあの時はカットオーバー直前で
時間がなかったから、とりあえず知ってる方法で対処した。
で、そろそろ Java の話に戻しませんか? とりあえず sage。
0011デフォルトの名無しさんNGNG
ソケット接続した同士が、お互いにヘルスチェック電文投げ合ってるような時、
selectが無いと困るが…。
0012デフォルトの名無しさんNGNG
>>11
Javaでは、全てのSocketにバッファリードするThreadを貼り付けて
おいて、んでもって可能な限りある時点でrunnable状態のスレッド
の数を少なく(理想的にはCPUの数前後に)しておくのが良いようだと
思われます。
0013デフォルトの名無しさんNGNG
「いまさら Java なんか憶えるな、これからは C# だ!」
って言ってた人たちは今、どうしてるんですか?
0014デフォルトの名無しさんNGNG
>>13Javaを勉強中
0015デフォルトの名無しさんNGNG
Java厨房にゃやっぱ無理か。
0016デフォルトの名無しさんNGNG
>>11
ヘルスチェックの受信側はwait( long timeout )の引数指定で
使えば問題ないな。
送信側はタイマー用に別にスレッドがいるかもしれない。

selectでできることはスレッド、排他、wait-notifyでほとんどなんでもできる。
ただし何も考えないで作るとどんどんスレッドが増えるから
スレッド管理の重いOSでサーバーアプリ動かすのはつらかった。
0017デフォルトの名無しさんNGNG
入力された文字列が、アスキーコードで何バイトかって返したいんですけど、
どうすればいいでしょうか??
0018デフォルトの名無しさんNGNG
>>15 は >>10 を指してるのかな? 趣味でやっているのではありませんから、
カットオーバー直前に新規スレッドを起こすような実装変更は出来ませんよ。
0019デフォルトの名無しさんNGNG
>>17
return str.getBytes("iso-8859-1").length
002017NGNG
>>19
即レス有難うございます。

ところで、str に "あいうえお" をいれると、
返された値は5だったんですけど、
"あいうえお"はアスキーコードなら10バイトですよね?

どこか、使い方間違っているでしょうか?
0021デフォルトの名無しさんNGNG
日本語が入るんだったら

return str.getBytes("Shift_JIS").length;
0022デフォルトの名無しさんNGNG
すまん、Win 環境だったらデフォルトで Shift_JIS (というか
MS932?) だから↓で良い。
return str.getBytes().length;
002317NGNG
何度もすみません。。。

今度は、str に "アイウエオ"(半角カナ)を入れてみたんですけど、
返ってきた値は、5でした。
アスキーコードで半角カナって1文字当たり1バイトでしたっけ?
2バイトだった気が。

どうでしょうか?
0024デフォルトの名無しさんNGNG
だからそれはアスキーじゃないっツーの
002522NGNG
>>24 ウケタ
002617NGNG
文字コードのことがわかってなかったっス。

おっしゃってる事が理解できました。
ありがとうございました。
0027デフォルトの名無しさんNGNG
>>17,26
これ実行してためしてみ
public class encode{
  static String[] encodes = {"Shift_JIS","EUC-JP","ISO2022JP","UnicodeBig"};

  public static void main( String[] args )
    throws java.io.UnsupportedEncodingException{
    String str = "アイウエオ";
    
    System.out.println(str+"\n");

    byte[] bytes;
    for( int i=0; i<encodes.length; i++ ){
      bytes = str.getBytes(encodes[i]);

      System.out.println("encode="+encodes[i]);
      for( int j=0; j<bytes.length; j++ ){
        System.out.print( " "+Integer.toHexString( 0xFF&bytes[j] ) );
      }
      System.out.println("\n");
    }
  }
}
002817NGNG
>>27
感謝です!!
0029922NGNG
JInternalFrameでフレーム内のサイズからWindowのサイズを
逆算したいのですけど方法が判らないんです。

Insetsとか見てみたんだけど如何してもシックリくる値が算出出来ない〜
どなたか御教授願います。
0030デフォルトの名無しさんNGNG
>>29
親のJDesktopPaneの参照拾ってサイズ取ればいいんじゃないの?
0031>>30NGNG
知りたいんじゃなくて
中身のサイズで外身のサイズを決定したいんです。
003230NGNG
>>31
あら、そういうことならpack()したら?
中身のComponentの推奨サイズの和で、自動的にサイズ
決定してくれるよ。

Componentの推奨サイズをデフォルトから変えたいなら、
setPrefferedSize()だったかな?
0033名無しさんNGNG
W2K+SP2環境にJBuilder4を入れて使用していたのですが、
突然Internal Errorが出るようになって立ち上がらなくなりました・・
メッセージには Failed to start Java VM:3と出ています。

このエラーの対処方法をご存知の方、どうか私を救って下さいませ(;´Д`)
0034デフォルトの名無しさんNGNG
J2SEのバージョンを書きなされ。
0035名無しさんNGNG
>>34さん
Version 1.3.0_02です。元あった Version 1.3.0はリネームしてあります。
この環境で動いていたのですが・・・むぅ。
0036デフォルトの名無しさんNGNG
VCを主に使ってたけどJAVAを勉強してます。
本とかをみると、関数の頭は小文字で書く規則が一般的に使われている
と書かれてますが、VCのようにメンバ変数はプレフィクス「m_」をつかう、
クラス名の頭には「C」をつけるなどの、一般的に使われてるような規約はないんでしょうか?
前から不思議だったんだけど異常にみにくいんですけどjavaのソースって
0037ほらよ。NGNG
>>36
おれはVCのほうが見難いよ。

これなんかどうだ?
http://objectclub.esm.co.jp/eXtremeProgramming/CodingStd.pdf
0038デフォルトの名無しさんNGNG
>>36
http://homepage2.nifty.com/tomonari/documentation/standard/javacode/howtocode2.html
日本語だよ。
javadocの勉強のときに拾ったけど、見やすいからどうぞ
0039デフォルトの名無しさんNGNG
>>36
もうこのネタ飽き飽き、お腹いっぱい。
0040Java使いNGNG
>>39
つまり、よっぽどの問題だってことだ。
こういう弱点とも言えるところに目をつぶることなく
前向きに対処していこうという気持ちはないのかい?
0041デフォルトの名無しさんNGNG
>>40
IBM ソースみると インスタンス変数はケツアンダーバー
instanceVariable_
だよな。
0042デフォルトの名無しさんNGNG
>>36
由緒正しい? Sun推奨コーディングルール
http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

非公式日本語訳
ttp://kuro.mdg.human.nagoya-u.ac.jp/~tarbo/jcode/JavaCoding.html
004336NGNG
>>37
デザインパターンの記事は非常に面白いですね
コーディング規約はメンバ変数がアンダーバー・・うーむ・・

>>38
変数名の規則がないですね・・(!)

>>39
ということはやっぱよく話題になるんすね。当然ですよ!

>>40
ですね

>>42
これも変数名の規則がない・・


初めてCプラをはじめたころTurboC++を使ってて、これにはたしか変数名の
プレフィクスがなかった。仕事でVCを使い始めてメンバ変数にm_をつける
ことを知って、コードが非常に読みやすくなって感動したのを覚えてますよ
メンバ変数にプレフィクスをつけたことがない人はつけないと読みにくいと
いうこと自体に気づかないものだと思うけど、なんとかしないとなー
とりあえずVC式でやってみますたぶん
0044デフォルトの名無しさんNGNG
変数名に型名やメンバ変数の別がないと読めないソースを書く奴は氏ね。
0045デフォルトの名無しさんNGNG
>>44 激しく同位体
004636NGNG
>>44 >>45
意味不明・・
その変数がどのスコープにあるかわからないんだからわかるように書くのが
利にかなってると思うが
メンバ変数使うのってCでグローバル変数にアクセスするようなもんだから
ねえ・・
それにプレフィクス等をつけないと読めないというのではなく、つけたら読みやすい
という話しだし
0047デフォルトの名無しさんNGNG
>>46
>その変数がどのスコープにあるかわからない
 ようなソースを書くのが問題、ってことでしょ。
まともな設計をしてたら
>メンバ変数使うのってCでグローバル変数にアクセスするようなもん
 という感想は出てこないと思うけど……。
004844NGNG
> その変数がどのスコープにあるかわからないんだからわかるように書くのが
> 利にかなってると思うが
m_をつけてわかるのは「どのスコープ」でなくて「メンバか自動か」だろ。
コード中のある変数を見て、それがメンバか自動かわからないということは、
その関数内の自動変数をすべては把握できていないということ。
(自動でないのはすべてメンバだから)
ということは、その関数は可読性が低いということ。

> メンバ変数使うのってCでグローバル変数にアクセスするようなもんだから
> ねえ・・
こっちのほうが意味不明。

> それにプレフィクス等をつけないと読めないというのではなく、つけたら読みやすい
> という話しだし
つけなくても読みやすいのならば、はじめからつけないし、
つけないと読みにくいのなら、元からその関数は可読性が低い。
すなわち、わざわざつけるということは、そのソースは可読性が低いということ。
004936NGNG
まあどうでもいいや・・勝手に誰が読んでも読みやすいプレフィクスのないコードを書いておいてください
中学校でしこしこプログラム汲んでるだけだろうけど・・
いろんな奴が手を加えてる十万行以上ある商用コードを読んだことないんだろう・・
0050デフォルトの名無しさんNGNG
低可読性に寄与する度合
設計>コーディング規則

VCのコーディング規則は冗長に感じる。
Javaくらいがちょうどいい。
0051晒しとくかNGNG
>>49
ヴァカ発見!
0052デフォルトの名無しさんNGNG
>>36
過去に何度も何度もがいしゅつの
それも負け戦を戦おうとした心意気は買うぞ。
005344NGNG
まあどうでもいいや‥勝手に誰が読んでも読みやすい変数が途中でごっちゃになるコードを書いておいてください
中小システム開発会社でクズ仕様書のままにソースかいてるだけだろうけど‥
開発体制が3階層以上の、ソースが50万行以上あるプロジェクトをやったことないんだろう‥

# マジでコードレビューやってないんだろうな
005436NGNG

負け戦・・? 全部ちゃんと出荷してんだろうが

>>53
さぞかしご立派な環境で完璧なコーディングをされる方ばかりなんでしょうから
プレフィクスがないと読みにくいコードをかくような輩はいないんでしょうね
おまけに44さんは50万行以上あるコードのどの部分をみてもぱっとその変数
がメンバかローカルかわかるすばらしい仕様書と洞察力をお持ちなんだから問題ないでしょう
0055デフォルトの名無しさんNGNG
オブジェクト指向って知ってマス?
005644NGNG
>>55
43 名前:36 投稿日:2001/07/05(木) 11:09
>>37
デザインパターンの記事は非常に面白いですね
コーディング規約はメンバ変数がアンダーバー・・うーむ・・

とかいてあるくらいだから、知らないんだろ。
ごめんね。何も知らない君を煽ったりして。でも、コードレビューはちゃんとしようね(はあと>>36
0057デフォルトの名無しさんNGNG
>>54
一クラスは40人くらいだよ、ぼくチャン!
0058デフォルトの名無しさんNGNG
つか今までJavaを全く知らなかったというのが驚き。
仕事で使わないにしてもメジャーな言語は一応知っておくのが
プログラマの嗜みだと思っていたのだが。
005936NGNG
いえいえ・・44さんの50万行のシステムが問題なく動くことをお祈りする次第ですよ
50万行のレビュー。もちろん全部目を通されたんだから問題ないでしょう
しかしJavaで50万行・・
・・あっCOBOLか・・気づかなかった
006036NGNG
デザインパターンの解説としてあのページは非常にわかりやすいと言いたかった
だけだが・・
50万行オブジェクト指向で・・もちろん3階層以上の開発体制なんだからデザインパターン
をふんだんに取り込んできれいに設計されてるんだろう・・
あっCOBOLだからなわけないか・・
なんでもいいから拝んでみたいもんだそんな全員がきれいなコード書くメンバー
で作られたソースを
006139NGNG
結局今回も得られたことといえば、

>過去に何度も何度もがいしゅつの
>それも負け戦を戦おうとした心意気は買うぞ。

↑ これだけだったか(w
0062デフォルトの名無しさんNGNG
変数の範囲を示すprefix/suffixは、サボる人にはありがたいものではあるね。
(クラス・メソッド分割を。言い換えればリファクタリングを)
0063デフォルトの名無しさんNGNG
結局36が言いたいのは、
・自分はコード行ミリオン級のプロジェクトに関わってるぜ
・そのプロジェクトの要員はみんなだめコードを書くぜ
の二つ?
0064VB厨房NGNG
よく見積書番号に意味のある値を紛れ込ませるか(例:年+担当者+連番 980301B01001)
純粋にキーとしてだけのシーケンスな番号にするか、みたいな問題だな。

総じて一つのものにいろいろな意味を紛れ込ませるのは設計が良くないか運用スキルが低い証拠。
変数名は実態の識別子であって属性を紛れ込ませるものじゃあない
006562NGNG
ついでに。
C++でクラスにC付けたりメンバにm_付けたりって言うのは
旧態のCにおける構造体型やグローバル変数と区別するためなんじゃないの?
Javaにはどっちも無いから付ける意味もほとんど無いよ。
付いてても直接の害は無いから付けるのは自由だけど、某所で某が主張してた
ように、prefixがついてるからってんでクラス分割とかに頭が回らなかったり
という弊害もあるね。
0066VB厨房NGNG
安全性のため馬鹿が読んだら読みにくいコードを書こう(ワラ
006736NGNG
たしかに。
39(自作自演)が過去の自分の負け戦を思い出して感慨にふけっただったようだ

//

俺が他人のソースを読む時プレフィクスがないコードが一番よみにくいってこと。
どうせ読みにくいならプレフィクスがあったほうがまだよみやすい。
m_がついるだけで他でもいじられてる可能性がある変数だってわかるし、型をみたか
ったら関数の外をみなきゃいけないってすぐわかるわけだから
メンバ変数にプレフィクスがないのはCのグローバル変数にg_がなくて苦労すん
のと同じ。同じクラスにある分まだましだが

プレフィクスがなくてもぜんぜんおっけーとかいうのはjavaから言語覚えて
大規模開発したことがない人だけでは
もしくは仕様書だけ書いたり眺めたりしてて自分でコーディングしてないか

>>旧態のCにおける構造体型やグローバル変数と区別するためなんじゃないの?
メンバか、グローバルか、ローカルを示すためにつける
グローバルはg_、メンバはm_をつけるのが一般的。構造体かどうかは関係ない
006836NGNG
訂正

誤:
俺が他人のソースを読む時プレフィクスがないコードが一番よみにくいってこと。

正:
俺がいいたかったのは他人のソースを読む時プレフィクスがないコードが一番よみにくいってこと。
0069デフォルトの名無しさんNGNG
有名な法則
「全角アルファベットを使うプログラマにろくなのはいない」
が今回もまた適用できますね。
0070デフォルトの名無しさんNGNG
俺はウザウザと余計なプリフィックスがついてないコードのほうが
遥かに読みやすいです。
0071デフォルトの名無しさんNGNG
で、当然ながら >>36 さんは Java 標準ライブラリのソースコードを
お読みになられてるんですよね?言語特性の雰囲気くらい掴んでから
プロジェクトを開始したほうがよろしいですよ。
0072VB厨房NGNG
>>67=36
大規模開発のケツにくっついてるゴールドフィッシュの糞が偉そうに。

高レベルプロダクトには竹ヤリ民兵はいらん。
0073デフォルトの名無しさんNGNG
そんなに読みにくいというのは、
1クラスに50とか100とかインスタンス変数があったり、
1メソッドに30とか50とか変数を使ったりするんだろうか。
設計が悪いとしかおもえない。
それと、prefix よりも見て意味の分かる変数名を付ける事の方が大事だと思われ。
0074デフォルトの名無しさんNGNG
おいおい、m_はローカル変数と区別するためにあるんだぞ。
0075VB厨房NGNG
36は変数の仕様が数値型から文字型に変わったらいちいちメンバ変数を変えるのだろうか?
アクセッサメソッドも変更しそうな勢いだ(ゲラ
0076デフォルトの名無しさんNGNG
>>36 が今作っているコードは、来年 Java を知っている新人が
入った時「だせーよなーこいつ、ぜってー Java しらねーよ」
って陰口叩かれるだろう。m_ ではないが俺が以前接頭辞つけた
コードは多分言われている。今は Java になれたので、以前
のコードが恥ずかしいし、>>36 のような接頭辞とかを付けて
いる他人のコードをみると痛い、痛すぎ... (徹夜明け乱文スマソ)。
0077VB厨房NGNG
>>74
ここはJava相談室だぞ。区別する必要なんぞ無い。
this.変数じゃいゴルァ
0078デフォルトの名無しさんNGNG
っていうか >>36 は大規模開発に向いていないに 12 ペソ。
007962NGNG
>>>旧態のCにおける構造体型やグローバル変数と区別するためなんじゃないの?
>メンバか、グローバルか、ローカルを示すためにつける
>グローバルはg_、メンバはm_をつけるのが一般的。構造体かどうかは関係ない

で、Javaはg_がないわけだ。それでフィールドとローカル変数の区別になるわけだが、
ローカル変数は使用する直前で定義するので見間違えること無いねぇ。

で、よく読んでくれ。
>C++でクラスにC付けたりメンバにm_付けたりって言うのは
>旧態のCにおける構造体型やグローバル変数と区別するためなんじゃないの?
クラスにCを付けるのは(C流儀の)構造体型と区別するためでしょ?
他に理由は思いつかん。

>俺がいいたかったのは他人のソースを読む時プレフィクスがないコードが一番よみにくいってこと。
違うよ。読みにくいのは変数名と使用方法が整然としていないコードであって、prefixなんてごまかし。
prefixに頼らないコードを書けるようにがんばろう。
まぁあれかねぇ。Javaはフィールドとローカル変数の名前空間が分かれているから、うっかり変数の
hidingをやっちゃっても気づかないことに起因するバグを回避するためにprefixを付けるというのも
考えられるけど、それって本末転倒だよなぁ(藁 何のための名前空間なの?
008036NGNG
>>71
まあたしかに。まだ読んでないっすよ。

>>72
まさにあなた

>>VBちゅうぼう
数値型・・文字型・・。VB小学生医って善し・・
だいたいメンバかローカルかって話しをしてんのに型がどうのってアンタ・・

>>76
その可能性はたしかにあるかもね。まあいろいろ調べてから結論はだすけど
008145NGNG
>>77 あんたが正しい
0082よこやりスマソNGNG
javaのstaticでfinalじゃないメンバ変数はグローバルじゃないの?
0083デフォルトの名無しさんNGNG
>で、Javaはg_がないわけだ。それでフィールドとローカル変数の区別になるわけだが、
>ローカル変数は使用する直前で定義するので見間違えること無いねぇ。

うむ。ついでにメソッドの中のフローで
メンバ変数か自動変数かが決定的に重要とは思えん。
0084デフォルトの名無しさんNGNG
>>77 そやね。m_ 付けさせるのだったら this. 付けさせる規約
にしたほうが良い。
0085デフォルトの名無しさんNGNG
>>82
「グローバル」ではなかろう。
クラスFooにstaticメンバbarがあったとしたら、
外からはFoo.barでアクセスするわけで、見紛いようもない。
008662NGNG
>>82
prefix付ける必要あるの?
そういえば36はstatic変数にどういうprefix付けるんだろう(藁
定数は大文字ってのも実際のところフィールドにprefix付けることと
見た目で区別をつけるという意味で大差無いわけだから、まぁ程度問
題ではあるよ。だからあんまり強固にフィールドのprefixを否定して
もしょうがないよね。好ましさと慣習程度のことなわけだ。
008736NGNG

>>で、Javaはg_がないわけだ。それでフィールドとローカル変数の区別になるわけだが、
>>ローカル変数は使用する直前で定義するので見間違えること無いねぇ。
関数が長い場合などわかりにくい。というかつけてあったほうが直感的。
その定義をみたい時、m_がついてれば関数の上の部分を探す手間がはぶける。
ここで長い関数はいくつかの関数に分けろっていう意見がでてきそうだけど、
関数はあくまで意味単位でわけるものだから「長くなったからさあ小分けしましょう」
というコードは、あちこちコードを追わなきゃいけいし何の処理をしてるかわかりづ
らい関数が増えて逆効果。これもたぶん宗教問題だからもう反論せんけど

>>クラスにCを付けるのは(C流儀の)構造体型と区別するためでしょ?
>>他に理由は思いつかん。
あ・・Cに関してはたしかに

>>prefixに頼らないコードを書けるようにがんばろう。
っていうか自分が書くぶんにはどっちでもかけるよそれは。
ただ「俺のソースはわかりやすい。プレフィクス医って由!」っていうのは傲慢だと
思うからつけてる。
自分しか読まないコードなら好きにすればいいわけだけど
0088よこやりスマソNGNG
あ、変数名かぶることないッスネ、バカでしたスマソ。
0089デフォルトの名無しさんNGNG
C++と違ってJavaは言語レベルでコーディング規則が結構あるからなあ。
・1ファイル1クラス
・クラス名は大文字で始める
・フィールド名・メソッド名は小文字で始める

人の作ったライブラリを使うときに混乱しなくてすむ。
009062NGNG
>>84
this.は強制力が無いからいまいち。結局ローカル変数のhidingは
不幸な機能だったと思う。
009139NGNG
結局36が言いたいのは、
・自分はコード行ミリオン級のプロジェクトに関わってるぜ
・そのプロジェクトの要員はみんなだめコードを書くぜ
・プレフィックスつけてもっとダメコードにしようぜ
の三つ?
0092デフォルトの名無しさんNGNG
ほんとうにm_(もしくは類似する何か)をつけないで大規模開発してる
人っているの?
ローカル変数と区別するって言うのは
・うっかり面罵変数と同じ名前をローカル変数につけちゃって、
・またまたうっかり変数の宣言を忘れちゃった時に
発見困難なバグが発生するのを未然に防ぐためなんだけど。
0093訂正(藁NGNG
結局36が言いたいのは、
・自分はコード行ミリオン級のプロジェクトの金魚の糞だぜ
・そのプロジェクトの要員はみんなだめコードを書くぜ
・プレフィックスつけてもっとダメコードにしようぜ
の三つ?
009436NGNG

>>92
>・うっかり面罵変数と同じ名前をローカル変数につけちゃって、
>・またまたうっかり変数の宣言を忘れちゃった時に
>発見困難なバグが発生するのを未然に防ぐためなんだけど。

そうそう。それが大きいよね。
0095デフォルトの名無しさんNGNG
>>92
大規模ってなんか関係あるの。OOしってる?
クラス単位でテストしていけばそんなバグすぐみつかるよ。

>>36には無理だけど(藁
009662NGNG
はい。ちゃんと使用意図のわかる命名をしてるのでその問題は出会ったことがありません。
あと、クラスのフィールドの数は相当多くても10いくことはほぼ無いので、十分把握できます。
とはいえ今時分が扱ってるのは2〜3万行程度ですけど。
0097デフォルトの名無しさんNGNG
>>95
JUnitまんせーですな。C++にもユニットテストツール有ったような。
0098VB厨房NGNG
>>94=36
お前はそんなにJava技術者にm_を使って欲しいのか?(ワラ

こんなとこで吼えてないでJavaHouseで啓蒙したら?
http://java-house.etl.go.jp/ml/
0099デフォルトの名無しさんNGNG
>・うっかり面罵変数と同じ名前をローカル変数につけちゃって、
>・またまたうっかり変数の宣言を忘れちゃった時に
>発見困難なバグが発生するのを未然に防ぐためなんだけど。

こんな一瞬で分かるプチバグでつまづいたことなど
Java使いはじめて数年間一度もありません。
0100デフォルトの名無しさんNGNG
>>92 >>94
クラスの要素たるメンバ変数と、あくまで一時的に使われるローカル変数、
ともに適切に命名されている限り、ダブることは通常ありえないっしょ。
ひとつのメソッドの中で、変数hogeと変数m_hogeが
一緒に使われてたりするわけ? そりゃ絶対どっか変なコードだろ。

俺はそういうケースに出くわしたら(そんなこと滅多にないけど)
メンバ変数の命名から見直すね。
バグにもならず放置されてしまうほうが怖いよ。
010162NGNG
setterはどうしてます?
私はnewValueとかaValue。もちろんより適切な名前がつけられるときはそうはしないけど。
0102>>100NGNG
>クラスの要素たるメンバ変数と、あくまで一時的に使われるローカル変数、
>ともに適切に命名されている限り、ダブることは通常ありえないっしょ。
これの根拠が分からん。class Customerのname変数とかPointのxとか
ありうると思うけど。

>ひとつのメソッドの中で、変数hogeと変数m_hogeが
>一緒に使われてたりするわけ? そりゃ絶対どっか変なコードだろ。
そうじゃなくて「ほんとはnameというローカル変数が使いたいんだけど、
たとえばタイポでString nama にしてしまったとき」にもし同名の面罵変数
があったら困ったことになるって言う話。

このバグは凶悪だ。ローカル変数は一度は代入されるだろうから確実に
面罵変数を壊す。しかも同じ名前を使ってるくらいだからきっと型も同じだ。
しかもそのことが発覚するのは壊された面罵変数を参照するコードが呼ばれた
ときだ。
これを単体テストやJUnitで発見するのも難しい。あるメソッドがアクセスする
面罵変数すべてをを明示的に表明する(もしくはそれ以上の厳密さで表明を書く)
しない限り見つけられる保証はない。
010344NGNG
人が真面目に仕事している間にヴァカが何か好き勝手言ってるな。
0104デフォルトの名無しさんNGNG
すみません、次バージョンのメンバ変数のアクセスは
明示的にthisを付けないとエラーにします…。
 ________
〈 ホントスミマセン
 ∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  Sun
 (´Д`;)ヾ
   ∨)
   ((
0105デフォルトの名無しさんNGNG
>>104
あ、そうか。
それナイスアイデアだね
0106デフォルトの名無しさんNGNG
import java.awt.*;
import java.applet.*;


class Date
{
int month;
int day;
int year;


Date(int month, int day, int year)
{
this.day = day;
this.month = month;
this.year = year;
}


public String toString()
{
return("" + month + "/" + day + "/" + year);
}
}


public class DateToString extends Applet
{
public void paint(Graphics g)
{
Date Today = new Date(4, 15, 99);
g.drawString("Today is: " + Today, 5, 15);
}
}
長くてすいません。DateコンストラクタのうしろにtoStringクラス定義
があるのはなぜでしょうか。クラスって上から順番に実行されるんですか。
そのばあいコンストラクタ定義のところはスキップするんでしょうか。
toString定義の引数は無しでいいんですか。
0107デフォルトの名無しさんNGNG
質問の仕方が悪いですね。コンストラクタ定義を削って

public string(day,month,year)
〜

ってやったらだめなんでしょうか。だめとしたら理由を教えてください。
0108デフォルトの名無しさんNGNG
>>106-107
ううむ、ここまで突込みどころ満載だとどうして良いか分からんな...
0109デフォルトの名無しさんNGNG
クラスとかコンストラクタとかのところが理解できてないみたいです。
テキストをよーく読んで勉強し直します。
0110デフォルトの名無しさんNGNG
>>106
うーむ、、、。1冊本を読んでから
質問するかどうか考えるべきかと、、、。
0111デフォルトの名無しさんNGNG
>>102 ハァ?
そんなもんローカル変数未使用でコンパイル通らんよ。一瞬で気付くって(藁
もうちょっと面白い例出してよ
0112デフォルトの名無しさんNGNG
っと思ったけどバージョンによっては警告出さないんだった。鬱
(何しろ出くわしたことないもんで)
lint使っとく?
011329=31NGNG
>>30->>32
スゲー今更なんだけどありがとう。
まだ出来てないけど今から作成します。
0114デフォルトの名無しさんNGNG
>>102
>class Customerのname変数とかPointのxとかありうると思うけど。

逆に、クラス全体でnameやxが一貫した意味を持っているときに
たまたま同じ名前の変数が出てくる理由は?
setterや比較などは最初から重なると分かってるので問題ないし。

>そうじゃなくて「ほんとはnameというローカル変数が使いたいんだけど、
>たとえばタイポでString nama にしてしまったとき」にもし同名の面罵変数
>があったら困ったことになるって言う話。

class Customer {
  String name;
  public void setName(String nama) {
    this.name = name;
  }
}
こういうの? Java使いなら誰もが通る厄介な罠ではあるが、
分かっていれば2度も3度も引っかかるようなもんじゃないと思うぞ。
0115デフォルトの名無しさんNGNG
大規模な開発に本当に参加してる人はおらんらしい
0116デフォルトの名無しさんNGNG
あれ?
メンバ変数の前に_を付けるってルールはどこの話だっけ?
Javaじゃないの?
0117デフォルトの名無しさんNGNG
>>116
少なくともSunのコーディング規約にそんなルールはない。
0118デフォルトの名無しさんNGNG
>>114
あーそれメッチャ悩んだヨー
「どこも間違ってネーじゃん
 何で null になるんだよー」
とかってサ。

5分くらいだけど
0119デフォルトの名無しさんNGNG
Sunのコーディング規約に従わない奴は、糞
0120デフォルトの名無しさんNGNG
>>115 本当にいないと思ってる? 今数えたら Java だけで
95万行、C/C++ が 8万行、その他 COBOL や VB やよく分
からん製品スクリプトがあったけど、Java はプレフィクス
使わなかったよ。一部DBのパフォーマンスが悪い部分も
あるけど正常系/異常系/負荷テスト全部通って現在使われて
いる。ちなみに俺は Java と C/C++ の部分全部レビュー
した (C/C++ は m_ つけてる会社もいた)。>>115 が m_
付けたがってるのはただ自分が慣れてるだけでしょ。

# いや、行数で規模みる人みたいなので敢えて行数で表した
# だけだよ...。
0121デフォルトの名無しさんNGNG
ようやく一人?
0122デフォルトの名無しさんNGNG
そういやJavaのlintってないのか?
0123デフォルトの名無しさんNGNG
>>121 2ch で挙手を求める気か (ワラ
0124デフォルトの名無しさんNGNG
>メンバ変数の前に_を付けるってルールはどこの話だっけ?
>Javaじゃないの?

方言かもね。
方言でも共通のルールは必要だよね。
012544NGNG
今ごろ帰ってきて疲れたし、すべて(36などを除く)他の方が仰っていることに激しく同意だし、
皆さんもうだうだ聞きたくないだろうけど、細かいことを2、3だけ。

>>54=36
>負け戦・・? 全部ちゃんと出荷してんだろうが
出荷=勝利じゃない。出荷=BET上積みだ。
賭けが膨らんだところでの負けがいかに惨めかはソニーを見れば一目瞭然。

>>87
>ただ「俺のソースはわかりやすい。プレフィクス医って由!」っていうのは傲慢だと
>思うからつけてる。
何で見てもらうかというと、間違いを指摘してもらうため。
何で可読性をよくするかというと、間違いを見つけてもらいやすくするため。
もしプレフィックスを付けてなんとなく読みやすくなったとしても、
理解しにくい(関数が長い、制御が複雑など)構造的原因は取り除かれていないため、
バグを見つけにくいまま。
であれば、分かりにくいとはっきり言ってもらって、読みやすく整理して
バグを見つけてもらいやすくする方がはるかに良い。
012644NGNG
ま、結局
「バグは見つからなければ良い」→「可読性なんかは関係ない」
という思考が
「負け戦・・? 全部ちゃんと出荷してんだろうが」
「どうせ読みにくいならプレフィクスがあったほうがまだよみやすい。」
「長くなったからさあ小分けしましょうというコードは、
 あちこちコードを追わなきゃいけいし何の処理をしてるかわかりづ
 らい関数が増えて逆効果。」
という発言からにじみ出ており、36の金魚の糞ぶりを如実にあらわしているな。

ちなみに50万行のプロジェクトは言語はC++だったよ。
36の好きなヴィジュアルなんて単語はついてないけどな。
て言うか、ステップでは30万強じゃん。たいしたことないだろ。

俺は>>119などの意見に反発する厨房が消えればそれで充分なので、
36が戻ってこなければまた名無しさんにもどって、ゴルァと答えていきます。では
0127120NGNG
>>125 そやね。プロジェクト開始直後に上位技術者がサボってると
あとでうんこコードの大量生産になってしまう (何度か痛い目を見
た)。単なる命名規則だけでなく、クラス分割を行う規模の目安とか
うんこコンポーネント再開発にならないようなフレームワーク作り
とかサンプルコードとかを (口頭でなく) ドキュメントで残して
やる義務があると痛感している。ドキュメント化を徹底して悪い
ところを指摘してやれば Java に m_ なんて不要だよ。ちなみに
>>120 のレビューでクラス分割 or 統合させたのは 1/5 くらい
だったなか。あの規模で協力会社さんたちもなかなかうまくやっ
てくれたと思う。
0128120NGNG
>>127 すまん、あのときの赤書き見てみたら 1/5 って事はない。
赤が入ったのが 2/3 くらい、クラス分割が入ったのが 1/10
くらい (もっと少ない?) だった (あの時の赤書きは記念に
とってある ワラ)。
0129デフォルトの名無しさんNGNG
最近「じゃばじゃば」で知った規則。メンバ変数にpostfix _ をつける。
private String fooName_;
public void setFooName(String fooName) {
    fooName_ = fooName;
}
最初気持ち悪かったが、慣れるとイイ感じ。
013039NGNG
ま、糞がどんな糞コードかこうと漏れには関係ないね。
コンパイル&デコンパイルしてから読むからいいや(藁
013139NGNG
メンバー変数名は保存されてるけどね。
%s /_hage/hage/g
でおしまいよ。
013239NGNG
だからさ、厨房はできればローカル変数のほうにプレフィクスつけてよね。
ローカル変数名のよい例

  String 厨房用につけますよname;

とかね(藁
0133デフォルトの名無しさんNGNG
>>114
違う、こんな感じだ。
class Customer {
 String name;
 public void sendLetter(Letter l) {
  //いろいろ...
  name = l.getName();
  if (name.trim().equals("")){
   name = "Default";
  }
  Logger.log("Sending letter is " + name);
 }
}
思わずString nameを忘れることだってあるし、タイ歩だって考えられる。
確かにめったにあることじゃないけど、これに出くわしたときの被害は甚大だ。
うちのチームはこんなコーディングミス絶対に出さないっていうなら好きにすれ
ばいいと思うが。
013439NGNG
>>133
「うちのチームはこんなコーディングミス絶対に出さない」

こんなミスするやつなら他にもいっぱいミスがありそだね
もっと苦労話きかせてよ(w
0135デフォルトの名無しさんNGNG
他の言語に毒されてるね。だから使う直前に定義するんだっつーの。
そもそも名前ぶつからんよ。
0136デフォルトの名無しさんNGNG
>>133 単体テストで見つかりそうなもんだが。
え、やってないんですかっ!
すまん、俺が悪かった...
0137デフォルトの名無しさんNGNG
>単体テストで見つかりそうなもんだが。
まあ煽りならしょうがないが、本気で言ってるんだとしたら>>102
をもう一度読んでくれ。
0138デフォルトの名無しさんNGNG
>>137
こんなプチミスすぐみつかるよ。
単体テストって一クラステストじゃないんだよ。
013936NGNG
44は自分ではほんのちょこっとコーディングの経験があり、あとは形だけ
SEへと突入した机上バカだということが判明しているのでもうウンザリ
だが

>>「バグは見つからなければ良い」→「可読性なんかは関係ない」
>>という思考が

誰が言った? C++でm_つけねーのはドシロートだけだし、可読性よく
するためにつけんだよ。ドアホ

>>「負け戦・・? 全部ちゃんと出荷してんだろうが」
おめーのスバラシーシステムはさぞ出荷後も大評判なんでしょーよゴラァ(糞

>>どうせ読みにくいならプレフィクスがあったほうがまだよみやすい。
おめーのプレフィクスねー読みやすいコードをみせてみんかいゴラ
コードみるのにいちいち仕様書みんといかんコードのどこが見やすい
んじゃゴラ!

>>長くなったからさあ小分けしましょうというコードは、
>>あちこちコードを追わなきゃいけいし何の処理をしてるかわかりづ
>>らい関数が増えて逆効果。

これは俺だけじゃなくて言ってる人はよくいるよ。
関数化サルはコードが長くなるとすぐに関数化したがる。その結果半端な
処理単位の関数が増え汚いコードになる。そんなことも知らんのだろー
おめーはこの構造化プログラミング覚えたてクソ猿が。

つーかジサクジエンもほどほどにしてくれよダンナ・・泣けるキャラだよキサマは
0140デフォルトの名無しさんNGNG
36はバカ決定。
バカは痛いところを突かれると必ず暴れるか
辞書引き小僧になるか
慇懃無礼になるなあ。
0141VB厨房NGNG
>>133
ローカル変数使うときに宣言しない奴を憂い出したらキリがないな。
VBorASP使いかい?(w
0142VB厨房NGNG
>>36=139
つーか一生C++に引きこもってくれ(ゲラ
Java初心者が勘違いするだろが
014336NGNG
>>44=140

お前は黙って辞書ひきながらプレフィクスのない仕様書かいてればよいジサクジエン猿
イタイとこなんてどこにもねーんだよあほ
痛いのはキサマじゃよ
014436NGNG

文字型がどうのとこ数値型どうのとかいいながら消防用システム収めててくれ・・VB君は
ここはjava版だろ?
VB厨房とは厨房に失礼だろ。消防未満
0145140NGNG
>>143 違うよ 44じゃないよ(藁
0146VB厨房NGNG
>>144=36
お前は大脳の替わりにCeleron466MHzをさした方がよいと思われ。(プ
つーかJavaの本デザパタまで含めて10冊くらい読んでから同じこと言ってみろや
お前こそC++プログラマに失礼。J++でもやってろ(ワラ
0147デフォルトの名無しさんNGNG
>>133
そのミスでCustomer.nameがおかしな値に変更されうる場所といえば、
Customerクラスの中しかないでしょうが。

滅多にないだけでなく、クラス全部精査すれば
カップラーメン作ってる間に見つかるバグですな。
014844NGNG
はあ、メシくらいゆっくり食わせてくれよ。

>>139
>44は自分ではほんのちょこっとコーディングの経験があり、あとは形だけ
>SEへと突入した机上バカだということが判明しているのでもうウンザリ
>だが
どーも。どーせCとC++あわせて、マジメに使ってるのは10年くらいしかないですよ。

>誰が言った? C++でm_つけねーのはドシロートだけだし、可読性よく
>するためにつけんだよ。ドアホ
へー。じゃ、俺の会社にある「独習C++」って本を書いたシルト氏って、
ドシロートだったんだ。
変数名が変わったら、汚いコードも何やってるかはっきり見えるんだ。

>これは俺だけじゃなくて言ってる人はよくいるよ。
どこに? 文脈って意味わかる?

>つーかジサクジエンもほどほどにしてくれよダンナ・・泣けるキャラだよキサマは
自作自演って、どこをどう見たらそう思うんだろうね。
0149デフォルトの名無しさんNGNG
>こんなプチミスすぐみつかるよ。
>単体テストって一クラステストじゃないんだよ
どして?sendLetter()したあとにCustomer.getName()が変更されていないことを
保証するテストをするためには膨大な指数間数的な数のテストケースを書かなく
てはいけないと思うけど?

>ローカル変数使うときに宣言しない奴を憂い出したらキリがないな
忘れることや間違えることはあるでしょ?という話です。
それとも「未定義のローカル変数にアクセスしました」というえらーを見
たことはないの?その時にたまたまその変数が面罵変数と同じ名前だったら
そのバグを見つけられないジャン

>滅多にないだけでなく、クラス全部精査すれば
>カップラーメン作ってる間に見つかるバグですな
そういう問題じゃないでしょ。いかにバグを予防するかを話してるんですが。
0150デフォルトの名無しさんNGNG
>>149
>忘れることや間違えることはあるでしょ?という話です。

それがメンバー変数のアタマになにか付けたらなくなるんですか?という話です。
間違えるやつはやっぱり間違えるでしょう。
015144NGNG
>>138でも>>141でも>>147でもないが

>どして?sendLetter()したあとにCustomer.getName()が変更されていないことを
>保証するテストをするためには膨大な指数間数的な数のテストケースを書かなく
>てはいけないと思うけど?
そのテストケース量を少なくするために、
「関数は小さく分けましょう。」
「(バグ発見効率の高い)コードレビューしましょう。」
「そのためにはソースを見やすく、理解しやすく書きましょう。」
ということなのです。

>>ローカル変数使うときに宣言しない奴を憂い出したらキリがないな
>忘れることや間違えることはあるでしょ?という話です。
変数定義があるかないかをチェックしやすくするための
「関数は小さく分けましょう。」
「変数定義は使うところの近くで」

>>滅多にないだけでなく、クラス全部精査すれば
>>カップラーメン作ってる間に見つかるバグですな
>そういう問題じゃないでしょ。いかにバグを予防するかを話してるんですが。
クラスを小さく保っていれば、精査にかかる時間はたいしたことないでしょ。
それに精査はこれだけのためにやってるんではないのです。
>>133のようなバグを恐れてワケワカランことする前に、
やることあるでしょ、ということです。
015239=150NGNG
>>151
全面的にサンセー!

メンバー変数のアタマになにかつけないといけないって、
一回嘘つくと嘘を重ねないといけないのと似ている。
0153デフォルトの名無しさんNGNG
サーブレットを使うのに、IISにTomcatをアドオンさせて使おうと思ったら
アクセス時に

inetinfo.exe
例外:アクセス違反(0xc0000005)、アドレス:0x011f3d50

とかいうエラーが出ます。
これにはどう対処したらよいでしょうか?

リダイレクタのログ
[jk_uri_worker_map.c (334)]: jk_uri_worker_map_t::uri_worker_map_close, NULL parameter
[jk_uri_worker_map.c (184)]: In jk_uri_worker_map_t::uri_worker_map_free, NULL parameters
0154デフォルトの名無しさんNGNG
> 保証するテストをするためには膨大な指数間数的な数のテストケースを書かなく
> てはいけないと思うけど?
構造化プログラミングって知ってます? (プ
0155デフォルトの名無しさんNGNG
>それがメンバー変数のアタマになにか付けたらなくなるんですか?という話です。
>間違えるやつはやっぱり間違えるでしょう。
アタマになにか付けとけばコンパイルでエラーになります。

>「関数は小さく分けましょう。」
>「(バグ発見効率の高い)コードレビューしましょう。」
>「そのためにはソースを見やすく、理解しやすく書きましょう。」
これらには全面的に賛成だが、なぜそれが
「面罵変数の頭に何か付けるのは止めましょう」
につながるのかがわかりません。

>そのテストケース量を少なくするために、
これは違う。あるメソッド(あるいは機能)が「望みどおりのことをする」というテ
ストは容易だけど「望んでないことはしない」テストを行うのは難しい、という話です。

>変数定義があるかないかをチェックしやすくするための
>「関数は小さく分けましょう。」
>「変数定義は使うところの近くで」
これも全面的に賛成。しかしそれがなぜ…以下略

>クラスを小さく保っていれば、精査にかかる時間はたいしたことないでしょ。
>それに精査はこれだけのためにやってるんではないのです。
もう一度繰り返すけど、バグが出た後どうやって原因を探すかではなくていかにバグを
出さないかの話です。

>133のようなバグを恐れてワケワカランことする前に、
>やることあるでしょ、ということです。
もちろんです。そのやることをやった後にm_しましょうってことです
0156120@ip58.dialup.tokyo.jp.psi.net NGNG
>>36 は C/C++ から Java に移った人の典型的なツボにはまっていると思うよ。
結構、
 C で言うモジュール == クラス
 C で言う関数 == メソッド
みたいに認識している人を見かけるんだけど、クラス設計する場合は C の
モジュールよりももっと粒度を高くするのが普通だよ (モジュールって呼び
方でよかったんだっけ? static 変数/関数のスコープ範囲ね)。C の
モジュール規模のクラスを書くような人だったら m_ を付けたくなるのも
もっともだと思う。>>36 は次のプロジェクトでもっとクラスの粒度高めて
みたら? そして俺は自作自演と言われるのが嫌いだから初めて fusianasan
を使ってみる。うまくいくかな。
0157デフォルトの名無しさんNGNG
>もう一度繰り返すけど、バグが出た後どうやって原因を探すかではなくていかにバグを
>出さないかの話です。

めったに起こらない、出てもすぐに判明する
ただ一種類のポカミスのために
ソースコード全体にprefixを導入する
そのバランス感覚に疑問を抱かざるをえないのですが。
015839NGNG
>>155
>アタマになにか付けとけばコンパイルでエラーになります。

この例に限ればそうですよ。ただしこんな間違いするやつなら
m_nameと書くべきとこをnameとかいたりその逆やったりしそう
ってこといいたかったんだけど。

いずれにせよ、原因はもとから断たないとだめですよ。ってことを
みんないいたいんだと思うなー。m_をつけるなんてセンス悪すぎ。
0159XP萌えerNGNG
>滅多にないだけでなく、クラス全部精査すれば
>カップラーメン作ってる間に見つかるバグですな。

ついでにクラスのリファクタリングもやればエレガントね。
0160デフォルトの名無しさんNGNG
>めったに起こらない、出てもすぐに判明する
ちがう。バグが発生してからでは遅いんだ。バグがそれほど高く付か
ないシステムならいいかもしれんが、人命に関わったり莫大な損害を
出したりすることもあるんだよ。

>この例に限ればそうですよ。ただしこんな間違いするやつなら
>m_nameと書くべきとこをnameとかいたりその逆やったりしそう
>ってこといいたかったんだけど。
繰り返しになるけどあなたは「未定義のローカル変数にアクセスした」
コンパイルエラーを出したことないの?
どんなベテランだってこのエラーは出すと思うけど。
そして運良くエラーになったのはたまたま同名の面罵変数が存在しなかった
からでそ。

>いずれにせよ、原因はもとから断たないとだめですよ。ってことを
>みんないいたいんだと思うなー。m_をつけるなんてセンス悪すぎ。
そうだ。原因は明示的に書かなくても面罵変数にアクセスできてしま
うことだ。これをもとから絶つのに最もコストが低い手段はm_だと思う。
016139NGNG
>>160
>繰り返しになるけどあなたは「未定義のローカル変数にアクセスした」
>コンパイルエラーを出したことないの?

憶えている範囲ではないなー。

>そして運良くエラーになったのはたまたま同名の面罵変数が存在しなかったからでそ。

運じゃないよ、必然なんだよ。
メンバー変数と同名のローカル変数なんて使わないよ。

>原因は明示的に書かなくても面罵変数にアクセスできてしまうことだ。

そんなクラスローカルで済むプチバグなんて出してもすぐわかるんですよ。
だいたいローカル変数なんてほんとに局在しかしないものだよ。

あなたさー、イミュータブルって知ってる?
他にもっと考えないといけないことがあるんだけど。
0162120@ip30.dialup.tokyo.jp.psi.net NGNG
> ちがう。バグが発生してからでは遅いんだ。バグがそれほど高く付か
> ないシステムならいいかもしれんが、人命に関わったり莫大な損害を
> 出したりすることもあるんだよ。
何のためにテスト期間があるのですか? テスト期間中にバグを発見する
ことはそんなにまずいことですか?

> 繰り返しになるけどあなたは「未定義のローカル変数にアクセスした」
> …
ここは論議がかみ合っていない。

> そうだ。原因は明示的に書かなくても面罵変数にアクセスできてしま
> うことだ。これをもとから絶つのに最もコストが低い手段はm_だと思う。
少々暴走気味ですね。m_ 反対派は、タイポミスによって特定困難なバグが
入り込むのはクラスの設計が悪いのでは? と言っています。m_ のは決して
プロジェクト全体のコスト (というかリスク) を低くするものではありま
せん。

とりあえず、もう少し冷静になられたほうが良いかと思われます。
0163デフォルトの名無しさんNGNG
そっかーメンバ変数にm_をつけるのはいいアイデアかもね。
ローカル変数にはl_をつけるのもいいかも。
引数の変数には何をつけようかな・・・h_とかでいいかなぁ。
016439NGNG
>>160
もしかして、あなたの仕事ってCからJavaへの移植がおおいんじゃない?
0165デフォルトの名無しさんNGNG
m_ なんて書いてるとソースが汚くなって可読性が悪くなり、
別の意味においてバグが入りやすくなる。それを考慮しないで
m_ 付けとけばコンパイル時にエラーが検出できるなんていっても
無意味だね。

というか私が見た限りでは m_ 付けてる奴が作るクラスはバカでかい。
これじゃどんなメンバ変数作ったか覚えられないのも無理はない。
つまり設計が悪いってことだ。
0166h_デフォルトの名無しさんNGNG
やっぱハンドルはこうでなくっちゃ
0167120@ip30.dialup.tokyo.jp.psi.net NGNG
すまん、ちょっと表現を訂正させて。

>>162 タイポミスによって特定困難なバグが入り込むのは…

タイポミスによって入り込んだバグが特定困難な状況というのは…
016839NGNG
>>160
まあメンバー変数名にm_を付ける規約を絶対だめとはいいませんよ。
ローカル変数にl_を付けるほうがまだましとは思いますが。
もちろん私はどちらも付けません。読みにくくなりますから。

大切なのはそのクラスがクラス外に見せるインターフェイスですからね。
きちんとしたクラス名、インターフェイス名さえ守っていただけたら、
そのクラス内でどんな変数名をつけようが大した問題ではないですね。

もちろんメンバー変数をクラスの外から直接さわらせたりしてませんよね?
0169同じことを何度も言いたくないのでNGNG
1. Customer.name の例のように面罵変数とローカル変数が同名になることはある
2. ベテランでも「未定義のローカル変数にアクセス」エラーは出すことがある。

この2つは前提だ。もし違うというのなら俺の論理は成り立たないし
それが俺の厨房度のせいだというなら甘んじて受けよう。
そしてこれが俺の主張だ。

3. 1,2の組み合わせによって生じたバグは
「望んでいないことをする(しかし望んでいることはちゃんとする)」
タイプのバグで通常の
「望んでいることをするかどうかのテスト」
ではみつけられる保証が無い
4. 従って特にバグが高く付くシステムではこの種のバグを完全に防ぐためにm_
もしくはそれに類する命名規約を採用するべきだ。
0170h_デフォルトの名無しさんNGNG
そうだ、ローカル変数に m_ を使いたくなるかもしれないから
メンバ変数には m_m_ を付けとこう。我ながらいいアイデアだな。
0171デフォルトの名無しさんNGNG
でもさ、たとえば、Cのプログラムを書いているときに
わかりやすくなるように構造体のtypedefは _t をつけたり
ポインタには _p をつけたりするじゃん。

もちろん自分のためというのもあるけど、どちらかというと
一見さんであるレビュアーに見せたときに
ソースレビュー時にケアレスミスを発見しやすくするため、
という意味合いの方が強いな。
017239NGNG
>>169
>1. Customer.name の例のように面罵変数とローカル変数が同名になることはある

ないな。

>4.従って特にバグが高く付くシステムではこの種のバグを完全に防ぐためにm_
>もしくはそれに類する命名規約を採用するべきだ。

なぜローカル変数にl_をつけるほうを採用しようとしないの?
0173デフォルトの名無しさんNGNG
>>172
それは、たとえば引数
hoge( String name )
なんていうのを
hoge( String l_name )
とすることを奨励しているととらえていいのね?
0174デフォルトの名無しさんNGNG
m_をつけることでソースが汚くなるといってる人はそれこそなんの根拠があって言ってるんだろう?
ローカル変数とメンバ変数の名前が重なる代表例は設定メソッドだろう
例えばimageというメンバ変数があって、SetImageというメソッドがあれば、引数はSetImage(Image image)
としたくなるのが普通ではないか?
this.image = image
と書くよりは
m_image = image
と書いたほうが楽だろう。

100歩ゆずって設計が悪いからクラスが大きくなってm_を使う必要がでてしまうのだとしても、
そーいうクラスをつくってしまう場合がある以上m_をつかっておいて損はないだろう
ちなみにCやCプラでは引数のプレフィクスにはa_(argument)やin_(input)をよく使う
ある程度CやCプラの開発をしたことがある人ならこれくらい見たことがあると思うが?
社内でセコセコ小さなプログラマムだけ組んでいるなら別だが・・
017539NGNG
>>173
いやです。
0176デフォルトの名無しさんNGNG
>なぜローカル変数にl_をつけるほうを採用しようとしないの?

ローカル変数のほうが宣言する回数が多いからに決まってる
それにm_をつける文化ができたのはシープラで、シープラにはグローバル変数
もあるから、ローカル以外にg_かm_かを区別する必要があったというのもある
だろうけど
0177デフォルトの名無しさんNGNG
メンバ変数にm_をつけるというのは便利だね。
ちょっとこれを機会にC++も勉強して
いいところだけいただいておこう
0178デフォルトの名無しさんNGNG
あのー
TOMCATが生成してくれるServlet.logなんですがー
出力フォーマットを変更するにはー
どうしたらー
時刻を24時間制で出力したいのですー
017939NGNG
>>176
>ローカル変数のほうが宣言する回数が多いからに決まってる

ふーん、じゃあなたのソースは短い名前が多いんだろうね。
iアプリの担当なのかな、あなたは(藁
0180デフォルトの名無しさんNGNG
>>179

意味不明。なにが言いたいの?

メンバ変数は場合によってはゼロ個のこともあるけど、ローカル変数は
がんがん使うでしょ。ここまで書かないとわからないかな

ちなみに私がつける名前は比較的長い。可読性を重視してるから。
CTime StartTime;
のように。
m_をつけるのがいやだという人はブラインドタッチが苦手でm_を一瞬で打てないから
いやがってるんじゃないかという気もする
0181デフォルトの名無しさんNGNG
>>174
プリフィックスが mennba_hensuu_ だったら汚くなると思うだろ?
その 1/7 くらい汚いと思えばいい。

>100歩ゆずって設計が悪いからクラスが大きくなってm_を使う必要>がでてしまうのだとしても、

設計しなおせ。
0182デフォルトの名無しさんNGNG
>>174
まったくの主観。m_を普段使っている人の目からみるとローカルもメンバ
もいっしょくたにしているほうが汚い。そもそもm_をつけるアイデアはたぶんVC
からで、何もしらない頃はみんなm_なぞ使ってなくて「なんか不便だな」
と思っていたわけだ

>>設計しなおせ
あなたはすべての部分を自分で設計できる小さな世界でソフトをつくってきた人なんだね・・
お好きにどうぞ
018339NGNG
>>180
タイプ数が多くなることがローカル変数に l_をつけない理由っていうからさ
面倒くさがりやさんかなって思ってね。

わるいけど、もう帰るよ。彼女と焼き肉の予定なんでね、今夜は。
またこんど遊ぼうね。
0184デフォルトの名無しさんNGNG
あー質問はこっちでしたほうがよいですよ。
http://piza.2ch.net/test/read.cgi?bbs=tech&key=993358225&ls=50

バカもバカを煽るほうもどっちもどっちだなぁ。
0185120@ip43.dialup.tokyo.jp.psi.net NGNG
>>174
> m_をつけることでソースが汚くなるといってる人はそれこそなんの
> 根拠があって言ってるんだろう?
何かがきれい汚いと感じるのは個人的な感覚の問題だけでしょう。少
なくとも私は根拠がありません。言ってみれば趣味ですね。

> this.image = image
> と書くよりは
> m_image = image
> と書いたほうが楽だろう。
そしてこれはあなたの趣味ですね。私は this.image の方がきれいに
感じますので (よく Thread クラスで if(this.isInterrupted())
とかきれいに感じます)。

> 100歩ゆずって設計が悪いからクラスが大きくなってm_を使う
> 必要がでてしまうのだとしても、そーいうクラスをつくってしま
> う場合がある以上
そこを反対派はつついているわけですよ。

> m_をつかっておいて損はないだろう
いくつかのクラスのために数十人に徹底させるのはどうかと思われます。
たまにはアゲときます。
0186みてみてNGNG
class {
class {
public:
// すべてのメンバ変数
} m;
}
ほらこーすれば m_ を付けなくてもローカル変数とかぶらないよ。
代わりに m. だよ。メンバ変数の一括コピーも簡単さ。
0187デフォルトの名無しさんNGNG
>>184
バカは煽ってこそバカ
0188デフォルトの名無しさんNGNG
>>186
もうちっと練ればナイスアイデアかも。
0189VB厨房NGNG
>>174
>this.image = image
>と書くよりは
>m_image = image
>と書いたほうが楽だろう。

こんな事言い出すやつは一生多態を理解できねんだろな。
識別子にへんなもん足すな、ヴォケ
0190120@ip24.dialup.tokyo.jp.psi.net NGNG
そういえば C++ に namespace がなかった頃は >>186 みたいな
方法で名前空間切ってたのを思い出した。いや、ただそれだけだけど。
0191デフォルトの名無しさんNGNG
昔の話だが THINK-C のクラスライブラリは確かメンバ変数が its で
始まっていた。例えば itsFile みたいに。これは結構好きだったな。
m_File なんて命名は知性のかけらも感じない。
0192デフォルトの名無しさんNGNG
いっそのことthisはどうだ?
thisValue = value;
this.thisValue = value;
とか
0193デフォルトの名無しさんNGNG
>>192 なんか myParameter みたいでやだな...
0194デフォルトの名無しさんNGNG
俺も一時 myFile とか書いてみたことがある。
でも恥ずかしくなってやめた。
0195デフォルトの名無しさんNGNG
フィールド名に m_ などというプレフィックスをつけるというのは、粋じゃないんだよな。
純粋にクラスの属性としてフィールド名を見た場合、
class Person {
String m_name;
}
name (名前) が本来なのに m_name (メンバの名前)
などと書かなくてはいけないのは冗長であり不純だ。
0196デフォルトの名無しさんNGNG
>>195
そうなってくると、ローカル変数に l_ をつけるのは
わりといいアイデアだね。
m_ をつけるのはやめて、そっちを採用します
0197HOENGNG
というか、論外だよ。
参考書最初から読み直せ>>m_派の奴
MSの仕様をJavaに持ち込むなよ。
0198HOENGNG
だから・・メソッドの使い回しやリサイクル、果てはオブジェクト指向
の観点から言って、個人の主張をごり押しするなよ・・
ローカル変数には何も付けないのがいいんだよ
localValue で頭が小文字で次の単語が大文字であれば変数で、thisが
付けばグローバル変数を見ることになってるんだからよ〜
いい加減C++の枠を越えろよ・・
0199デフォルトの名無しさんNGNG
メンバ変数に name_ のように _ をつけることを推奨している本もあります。
その本ではクラス変数には __ (_を2つ)つけることを推奨してます。
privateなメソッドには先頭に _ をつけたりもしています。
0200デフォルトの名無しさんNGNG
ふーん。
そのJavaの参考書の表紙には勿論Sunのロゴは入ってるんだよね?
0201199NGNG
>>200
入ってるわけ無いじゃーん
てゆーか、そんなの読みとばすっしょ、ふつー。
他には結構いいこと書いてあるんだけどね・・・
すげー使えるテクと全然使えない情報がこんぜん一体となって
実に中途半端な本になってますよ。

え、本の名前は秘密だよ。でもヒントはね〜
「ハローワールドがいっぱい書いてある本」
0202名無しさんNGNG
>>196
ていうか、
そういう小手先の手段を使わないと解読できんほど
長いメソッドを書くのは止めれ。
0203デフォルトの名無しさんNGNG
m_とかl_とか言ってる奴とは絶対一緒に仕事したくないな
どうせ他の局面でも標準に沿わずに自分の好みをゴリ押しするんだろ
0204デフォルトの名無しさんNGNG
synchronized ブロック直前で停止しているスレッドに割り込みを
かけても InterruptedException を発生しない仕様にした理由が
未だに分からん。なんか懸念することあるのかな?
0205デフォルトの名無しさんNGNG
それは誰がcatchするの?
0206デフォルトの名無しさんNGNG
36は120を見習ってfusianasanを使え。
もちろん会社のアドレスからナー。36の会社の受注が増えるかもよ。ププ。
0207デフォルトの名無しさんNGNG
grep m_ * | wc
してみてほしいなあ。その50万行の中にいくつみつかるか。
0208デフォルトの名無しさんNGNG
>>205
うん、InterruptedException を発生させると synchronized
ブロックやメソッド使っているあらゆるところ (多分相当な量)
で try-catch もしくは throws を入れなければならないので、
RuntimeException を派生させた SyncInterruptedException
(変な名前) の方が良い。で、synchronized ブロックでデッド
ロックがかかっている (らしい) スレッドを外部のタイマース
レッドから割り込みかけるような使い方が出来ないよね、という
話 (stop()-ThreadDeath 使って解決しろということかな…)。
0209デフォルトの名無しさんNGNG
>>172
>1. Customer.name の例のように面罵変数とローカル変数が同名になることはある
>ないな。
はぁ。君にかかるとJDKも厨房なんだね。(確かにたいしたことないが)
java.io.File:471とか
java.lang.FloatingDecimal:289,668,1007
とかちょっと調べただけでもぞろぞろ出てきたぞ。(jdk1.2)

でもさそんなことよりString.java読んでて思ったんだけど、どう考えたってm_
(d_でもなんでも)使ったほうが読みやすいよ。m_使わないなら
・メンバにアクセスするときは必ずthisを使う
・もしくは必ずアクセッサ使う
とかしてくれないととてもレビューできません。
0210デフォルトの名無しさんNGNG
class Customer {
  String name = "";
  public void setName(String nama) {
    this.name = name;
  }
}
これってだめですか?
0211デフォルトの名無しさんNGNG
>>210
読みにくいからダメです!
バグの元です!
今すぐ修正しなさい!
今すぐm_をつけなさい!

コーディング規約? 私が規約です!
0212211NGNG
nama・・・生
0213XP萌えerNGNG
>>209
キミがprefixに慣れてるだけだと断言しましょう。
0214>209NGNG
>でもさそんなことよりString.java読んでて思ったんだけど、どう考えたってm_
>(d_でもなんでも)使ったほうが読みやすいよ。

Stringクラスのstaticでないメンバ変数は以下のたった4つ。

>private char value[];
>private int offset;
>private int count;
>private int hash = 0;

こいつらにプリフィックスがついたりつかなかったりで
何がどう変わるとゆーのだ?? レビューできないって一体??
とてつもなくぬるま湯な世界で生きとるとしか思えませんな。
0215214NGNG
s/staticでない//
あー、ねみー。
0216デフォルトの名無しさんNGNG
つけてはならない理由:「よみにくい」「センス悪い」「とにかく不要」
「つける必要があると感じた時点で設計を見直すべき」
つけない理由:「Sunマンセー」「困ったことが無い」「自分の趣味」
「どう考えたって読みやすい」

つける理由:「見誤りを防ぎやすい」「名前がかぶることがない」
「ケアレスミスを防ぐ最もコストが低い手段」
つけなければならない理由:「よみにくい」

美しい/センス悪い/お前が慣れてるだけだ
等の鳥頭厨房的発言は、"つけない"派に多いようです。

プログラム言語に 使われ ちゃってる人って哀れだね 藁
なーんて言われないような、まともな意見をお願いしたいところです。
0217デフォルトの名無しさんNGNG
countやoffsetなんてありふれた名前が・・・
0218>216NGNG
メンバ変数はクラスの命のようなもの。だからメソッドを読むときには
それらは頭に叩き込まれてるはずである。だからありふれた名前でも
問題ない。いうなればクラス内の予約語のようなものだ。
「あれ、この変数はなんだっけ? m_ が付いてるからメンバ変数には
違いないが...」なんていう読み方はありえない。
0219デフォルトの名無しさんNGNG
>>216
ソースレビューする時ってjavadocを印刷したの片手にするから
そんな心配ないよ
0220デフォルトの名無しさんNGNG
一言で言えば、Javaのコーディング慣習を破ってまでするほど効果がない。
0221デフォルトの名無しさんNGNG
>>216
つけてはならん理由はコーディング規約に違反してるから、だろ
外部とか別のプロジェクトの作ったクラス再利用する時どうすんだ?全部m_振りなおすのか?
0222オプションの名無しNGNG
そう、クラスと設計方法に問題がある場合が多い。(m_ 高々3kBの
ファイルにm_ なんて付けてそれがローカルとメンバの区別も付かない奴は
おかしい..継承やパッケージングが行えるのに、何千行もあるクラスを書い
ていれば区別つかなくなって当たり前さ。もちろん継承がいやなら、
断ち切るためにパターンもも色々ある。
> 217 > 説明しよう。通常はメンバには長い名前が必要だ.
public methodでは、さらに顕著だが、これは継承による弊害。
つまり本来継承すべきではないインタフェスが多重継承の再来として
混乱を招く恐れがある。...えっなに???...
(名前を考えるのが面倒だって!?)
私の師は、こういって(h)ageタモのだ。
「変数に名前を付ける、メソッドに、クラスに、パッケージに、さらに名無し
のものにも..そしてあらゆる次元に展開させ、そしてその名を呼ぶ。
そう、君の仕事はまさしくそれだ、真の長い名前を唱えなさい...」
0223デフォルトの名無しさんNGNG
>>222
良く分からないんだよもん…
0224デフォルトの名無しさんNGNG
>>216 自分の都合の良いところだけ拾って、ご愁傷様...。

> なーんて言われないような、まともな意見をお願い
> したいところです。

>>120 は結構まともに話しようとしているけど、それには
一度も反論できてないね (プ
0225デフォルトの名無しさんNGNG
くだらない事ほど盛りあがるね。
022644NGNG
>>209
JDK1.3には1つもねーよ

>>216
なぜコード規約が必要かというのは
http://java.sun.com/docs/codeconv/index.html
にちゃんとかいてあるだろ。読めねーのか(ワラ
022744NGNG
>>160
>>158に対する反論
>>この例に限ればそうですよ。ただしこんな間違いするやつなら
>>m_nameと書くべきとこをnameとかいたりその逆やったりしそう
>>>ってこといいたかったんだけど。
>>繰り返しになるけどあなたは「未定義のローカル変数にアクセスした」
>コンパイルエラーを出したことないの?
>どんなベテランだってこのエラーは出すと思うけど。
>そして運良くエラーになったのはたまたま同名の面罵変数が存在しなかった
>からでそ。
というのは違うんじゃないかと思うのだが。
countに代入すべきところをポカミスでm_countに代入してしまったというミスの確率は、
int count;をint coutn;と書いてしまってエラーが出ないというのと比べて
そんなに低いだろうか?

後者の防ぎ方は>>209が例としてあげたjava.util.Stringに良い例があった。
例えばtoLowerCase()では、
 int len = count;
 int off = offset;
 char[] val = value;
とある。メンバ変数には正しい単語を、ローカル変数には略称を使うという方法。
これにより、m_の有無で区別するのと同様の効果がある。
022844NGNG
で、こちらのほうが良い理由が1つある。
プログラミングに疎い人がコードレビューに参加したとき、
m_count / count の別よりも count / len の別のほうが理解しやすいということ。

>>160は
>ちがう。バグが発生してからでは遅いんだ。バグがそれほど高く付か
>ないシステムならいいかもしれんが、人命に関わったり莫大な損害を
>出したりすることもあるんだよ。
と書いているが、このようなプログラムを扱う会社であれば、
品質保証専門の部署があるだろう。その部署の人間はプログラムには疎いだろうが、
品質保証部門の人にコードレビューに参加してもらうと、鋭い指摘をして
もらえるそうだ。まあ、品質保証の人間は、ミスを見つけるプロだから、
指摘が鋭いのは当然だろう。(もちろんある程度の知識は必要だし、コードには
充分な量のコメントがあるべきだが、コンピュータに不慣れなわけではないし、
typoや代入ミスやロジックの矛盾を指摘するために必要な知識はそう多くないし、
人命にかかわるようなコードにはコメントがたくさんあるだろう。)

そのような人間にすんなりと理解させるためにはどちらが有利だろうか。
自然言語に近いほうではないか。m_が不自然という主張は、
こういう問題にリンクしていると俺は思うが。
022944NGNG
そのような人間にすんなりと理解させるためにはどちらが有利だろうか。
自然言語に近いほうではないか。m_が不自然という主張は、
こういう問題にリンクしていると俺は思っている。

「コードレビューにプログラミングを分からん奴を入れるかゴルァ」
というヤツも多いだろうが、>>160の
>人命に関わったり莫大な損害を出したりすることもあるんだよ。
という言葉を受けてのことだ。この場合、人間は多く、多様なほど良い。
それに、これは会社の勉強会の事例報告の受け売りだが、コード規約にも
The choice of a variable name should be mnemonic- that is, designed to
indicate to the casual observer the intent of its use.
と書いているYO!
0230デフォルトの名無しさんNGNG
>>104プラス、this.valueを.valueに省略できれば解決ですネ!
0231デフォルトの名無しさんNGNG
ところで>>218に心の底から同意。
0232HOENGNG
クラスの再利用性に乏しいから m_ の仕様は厳禁!
そう言う奴はVJ++買って 好きなだけMSの仕様使ってExe作って友達に配布してろ
0233デフォルトの名無しさんNGNG
おれのメソッドは長くて10行くらいだから、
ローカルと面罵をまちがえることないよ

クラスもせいぜい200行くらい。
面罵も多くても20くらい。

m_
なひとってメソッドが長すぎるんじゃないの?
0234デフォルトの名無しさんNGNG
なんでメンバフィールド名が気になるの?

メンバフィールドが全部privateで、メンバメソッドはちゃんと
分割して10行程度ずつにしておけば、どんな名前ついていても
問題ないとおもわれるが?

外部にメンバフィールド晒すなんて真似を、まずやめれ。
0235デフォルトの名無しさんNGNG
>どんな名前ついていても問題ないとおもわれるが?

どんな名前でも同じことなら、
prefixなどつけず必要最小限の命名をするのがベストだわな。
0236216NGNG
Sunのコード規約だから
なんていう思考停止な意見が減ってきて喜ばしい限りです。

>>218その他
「間違うことは無い」がやたら多いですね。
人の認識能力ほどあやふやなものはないのでは。

あやふやであれば、間違いにくくすればいいんですが、
(各種方法はあるとして)

>>44,228,229
prefixやpostfixや名前の付け方によって理解しやすさに差があるとのことですが、
その差についての根拠が見当たりません。
アンケート調査でも、心理学の実験でもなんでもいいから、ありませんか?

>>224
120は命名方法については「つける必要はない」としか言ってないようです。
つけてはならない、と主張してました?
0237デフォルトの名無しさんNGNG
つーか "this." つけろやゴルア!
        ̄ ̄ ̄ ̄ ̄
0238デフォルトの名無しさんNGNG
Sunの規約に従っているやつが一番多いんだよ。

http://www-106.ibm.com/developerworks/java/library/java-pollresults/standards.html
0239デフォルトの名無しさんNGNG
>>218は「間違うことは無い」じゃないでしょうが。
0240デフォルトの名無しさんNGNG
Sun のコード規約をわざわざ破らなければいけないのか分からない。
既に世にある Java のコードはそれに沿ったものが大部分だ。
Java プログラマにとって見慣れたコードであることだ。
今更 m_ prefix を付ける習慣など普及してほしくない。
何故なら見慣れない読みにくいコードだからだ。
C++ において m_ prefix が主流であるならそれはそれでいい。
だが、Java にそのまま持ち込もうとするな。
0241デフォルトの名無しさんNGNG
そんなに typo が気になるなら、何度も言われているように、
「フィールドへの代入には this. を必ずつけること」
で済む話だよな。
0242デフォルトの名無しさんNGNG
>「間違うことは無い」がやたら多いですね。
>人の認識能力ほどあやふやなものはないのでは。

そんなこと言われても、実際にあなた方m_派もおっしゃっている通り
滅多にないバグなんだからしょうがないです。出てもすぐ解決するし。
変数名に余計な文字をつける不自然さと天秤にかけて、
必要なしと判断しているだけ。

#不自然さは感覚的厨房的?
#いえいえ、良質なコードを書くには感覚は重要ではありませんか。

というか、ずっと思ってるんですが、m_なんか使ってるから
メンバ変数を壊している可能性がスッポリ頭の中から抜け落ちたり、
ローカル変数との区別を一目でつけられなくなったりして
本来なら些細なバグにてこずるハメになってるんじゃないですか?
で、ますますm_依存症、m_がないとコーディングできないし
レビューもできないなんて有様になると。

鶏と卵、プリフィックス・スパイラルとでも申しましょうか。
世の中にあるのはm_がついてくるコードだけじゃないし、
特にJavaではついてこないコードが大多数を占めるわけで、
とても不幸な悪循環に落ち込んでいるように思えます。率直に言って。
0243デフォルトの名無しさんNGNG
メンバ変数というのはメソッド中に頻繁に登場する変数である。
もちろんローカル変数よりも多い。そうでない場合は設計がまずい。
だからなるべく読みやすい名前を使うべきだ。間違ってもおかしな
プリフィックスなど付けてはならない。

メンバ変数が頻繁に参照されない場合というのは、大抵メンバ変数に
対する put/get メソッドが用意されている。それ以外の部分では
全く参照されていない。そのようなコードを書く者はそれが正しい
オブジェクト指向なのだと勘違いしているのだ。
0244デフォルトの名無しさんNGNG
このスレのせいで昨日見た悪夢

class C0 {
int m_1, m_2, m_3, m_4;
char *m_5_p;
}
0245デフォルトの名無しさんNGNG
mはmasochistのm.
0246かぼちゃNGNG
>>245
LはLipのLか?
0247デフォルトの名無しさんNGNG
テキストフィールドに入力された文字を
parseInt()で整数に直すときに、整数以外を入力するとエラーがでてしまうので
入力された文字を整数に直すまえに整数かどうかを確かめる
方法はあるのでしょうか?
0248ワインNGNG
>>246
古すぎて誰も知らないよ!
0249デフォルトの名無しさんNGNG
>>248
あんた・・・もうすぐ30だな
0250デフォルトの名無しさんNGNG
>>247
parseIntで確かめましょう...?

boolean success = true;
try {
 Interger.parseInt(text);
} catch (NumberFormatException ex) {
 success = false;
}
if (success) {
 d = Integer.parseInt(text);
}
0251デフォルトの名無しさんNGNG
>>250
意図はそれしかないだろうけど、
そういうのは厨房コードといわれちゃうよ。
try-catchの意味分かっていないといわれちゃう。

try{
 func(Integer.parseInt(textfield.getText()));
 //func(int)が対象の処理
}
catch(NumberFormatException e){
 JOptionPane.showMessageDialog(null,"入力まちがってますよ");
 //ユーザに通知
}
0252169NGNG
>>227
>countに代入すべきところをポカミスでm_countに代入してしまったというミスの確率は、
このミスは一定レベルの人間ならまずないと思う。(俺はしない自信がある)
 int count;
 m_count = SomeThing.getCount(); //ここでミス
 if (count < XXX){
  ...
この場合ローカルのcountは代入されなかったのだからそのあとにcountを参照している
コードが「望むことを行わない」タイプのバグになりそれこそ容易に発見されるだろう
しかしこれは考えさせられる問題だ。反論求む

>とある。メンバ変数には正しい単語を、ローカル変数には略称を使うという方法。
>これにより、m_の有無で区別するのと同様の効果がある。
まさしくその通り、>>169の3で述べたように
「ローカル変数とメンバ変数のアクセスには区別された方法を使うべきだ」
には賛成してくれるのか?
0253169NGNG
>>228
>で、こちらのほうが良い理由が1つある。
>プログラミングに疎い人がコードレビューに参加したとき、
>m_count / count の別よりも count / len の別のほうが理解しやすいということ。
なんつうかこれもアンフェア。「すべてのローカル変数には省略形が用いられている」
という規約でもない限り count / count で文脈によって判断しろ!になってしまう。
あなたが言ってるようにm_につながる問題であることは認める
return start - offset + 1
なんていう文を見たときにoffsetはメンバでstartはローカル。なんてつらすぎるよ
「ねぇ小柳君、このoffsetっていうのはメンバにアクセスしているみたいだけど、
それはいいんだよね?」
(誰かが行っていたように俺はぬるま湯につかりすぎているのだろう)

>「コードレビューにプログラミングを分からん奴を入れるかゴルァ」
>というヤツも多いだろうが、>>160の
>>人命に関わったり莫大な損害を出したりすることもあるんだよ。
>という言葉を受けてのことだ。この場合、人間は多く、多様なほど良い。
ここまでくると屁理屈だぞ。あなたはちゃんと議論してくれているんだから
ここはとりあえず忘れることにする
0254169NGNG
>>241
>そんなに typo が気になるなら、何度も言われているように、
>「フィールドへの代入には this. を必ずつけること」で済む話だよな。
これが強制力を持っているのなら俺も問題にしない。
ローカル変数にアクセスするつもりで間違ってメンバにアクセスしてしまうのだから
this.をつけろと言う規約は>>169のバグを防ぐ目的では役に立たない。

これは他の人へ
Sunのコード規約ではm_を禁止していないように見えるが。
違反していると言う人はぜひその根拠を示して欲しい。
(ついでにその根拠だとなぜSwingのJXxxxが許されるのかも)
ちなみにうちはm_を使っているがどうどうとSunのコーディング規約に準拠して
いるといっている。
0255デフォルトの名無しさんNGNG
ねえねえ、Servletってのが流行ってるみたいだけど、
どうしてAppletってすたれちゃったの?
遅いから?
0256デフォルトの名無しさんNGNG
>>255
ブラウザ作ってるところがまともなJVM実装してくれなかったからだよ。
0257デフォルトの名無しさんNGNG
>>255
1.M$(IE)が、確信犯で嫌がらせしている。
2.Netscapeが、アホナJVMをNCに組み込んで、
Applet=使えないの図式をすっかり定着させちゃった。

この二つがおもな原因。
0258デフォルトの名無しさんNGNG
Part 4 立てる人は m_ ネタは禁止、と入れといてくれ。
0259デフォルトの名無しさんNGNG
>>257
3.サンドボックス分かってない厨房が何も出来ないと騒いだ。
0260デフォルトの名無しさんNGNG
代替の技術ができたからじゃないの
0261デフォルトの名無しさんNGNG
アセンブラはおろかCすらしらない低レベル厨房です
JavaVMのお勉強によいWebリソースありますか?
英語はよめます
0262マジレッサーNGNG
>>261
まず、アセンブラとCを勉強してください。
これらはJavaVMを勉強するにあたり最低限の知識として必要です。
なぜなら、JavaVMはそれらで作られているのですから・・・
0263169NGNG
>>226
>JDK1.3には1つもねーよ
・・・頼む卑劣なうそは止めてくれ・・・
java.lang.FloatingDecimal:285,664,1002
java.io.File:470
に行番号変わってるけどそのまま残ってる
にせものの44であることを祈る
0264247NGNG
>>250,251
ご指南ありがとうございました。
無事できました。
026544NGNG
>>263
簡単なことなので、ここにだけ返答する。
俺の今見ているのは、Win32プラットフォーム用のSDK ビルド1.3.0-C
java.lang.FloatingDecimal:
285: char digits[];
664: char digits[] = this.digits = new char[18];
1002: char[] digits = new char[ l ];
java.io.File:
470: String path = getAbsolutePath();
となっている。
他のプラットフォームでは、今は残念ながら確認できない。(Linux機が不調で…)
したがって、Win32用ではないといえるが、別のプラットフォームにないとは言えない。
プラットフォームを書かなかった点は申し訳ない。

残りは風呂上りにゆっくり読んで検討したい。
0266デフォルトの名無しさんNGNG
>>265
他のプラットフォームでは って、プラットフォームごとにAPIのソースって
変わるのか?
0267デフォルトの名無しさんNGNG
>>266
nativeメソッドの内部実装はプラットホームごとに変わるだろうけど、
その上を変える必要なんか無いと思われるが…
0268デフォルトの名無しさんNGNG
>>266 配布元で変わるな。Sun と IBM じゃ IBM のほうが
バグフィクスを進めてるのでコードが変わってる。
026944NGNG
あ、メンバ変数とローカル変数の名前が一致しているという話か。
m_が付いているかと言う話かと思っていた。
俺はSetterでは同じにすることが多いので、一致しているのは絶対にダメとは思っていない。
流れを読んでなくてすまん。
それから、java.lang.FloatingDecimal:664はたしかにダメだな。
0270255NGNG
Appletに関してレスくれた人サンキュ。
チャットとか画像掲示板とかサーバの状況表示なんかは、代替の技術ってないですよね。

そだ、質問。
IE4.0上でAppletからJavaScriptのfunctionを呼ぶにはどうしたらできますか?
0271250NGNG
>>251
250はジョークのつもりだったけど、
そういうツッコミ期待してたからナイスです。
>>247も例外を使うスマートさを理解してくれたと思う。

けど、>>247みたいに例外を探し忘れちゃう気持ちも結構わかる。
自分の想定していることが、必ずしも例外的な状況でなかったら
methodが投げる例外に注意が逝かないこともある。
Javaだとsignatureにthrowsがあるから普通気付くけどね。

instanceofしてからダウンキャストしたくなる状況に似てるかも。
027244NGNG
まず、>>228では例が少し不適当だった。m_value/valueとvalue/valを
比較すべきだった。この点については謝らせてもらう。(ダメダメだな)
が、>>253を見る限り大意は伝わっているようなので、
今後はこちらの例を使用して、議論を続けたい。

>>252
「メンバ変数とローカル変数と同じ(ような)名前をつけることがある」
「その場合でもメンバ変数とローカル変数の名前は明確に区別したほうが良い」
というのは同意できる。
ただ、実際にはメンバ変数と同名のローカル変数を使う状況はどのような
状況だろうかと検討してみると、かなり限定されている、具体的には
「メンバ変数とローカル変数は同じ属性をあらわしており
(恐らく実際の値と計算中の値)、両者を混在して扱うことはない
(恐らく初期化と最後の格納の高々2回)」という状況であると考えられる。
そうでないと、変数名が変数の意味を正しく表現していないと思われ。

したがって、
> int count;
> m_count = SomeThing.getCount(); //ここでミス
> if (count < XXX){
>  ...
のcountはsomeThingCountであるべき。

「名前が悪い」議論に戻ってしまったな。
027344NGNG
>>253
>なんつうかこれもアンフェア。「すべてのローカル変数には省略形が用いられている」
>という規約でもない限り count / count で文脈によって判断しろ!になってしまう。
はっきり言うと、その通りだ。文脈で判断すべき。変数名は自然言語でついて
いるのだから。ただ、上で述べたとおり、同じ名前のメンバ変数とローカル変数が
混在する状況は変数名のつけ方がおかしいか、勘違いかtypoなど単純ミスのどちらか。
で、 value の中で m_value を見つける労力と val の中で value を見つける
労力は同じだろう。

>return start - offset + 1
>なんていう文を見たときにoffsetはメンバでstartはローカル。なんてつらすぎるよ
区別する必要ないと思うが。片やあらかじめ保存されている属性、
片やそこから導出や測定が必要だった属性の違いであり、
ともにそのオブジェクトの属性であることには変わりはない。

>>>人命に関わったり莫大な損害を出したりすることもあるんだよ。
>>という言葉を受けてのことだ。この場合、人間は多く、多様なほど良い。
>ここまでくると屁理屈だぞ。
そうかな? 今後、ソフトウェア品質保証の規格化と取得要求が進むにつれて、
ハードウェア品質保証規格への対応のノウハウが必要になってくると思うが。
まあ、m_とは関係ないな。(ワラ
027444NGNG
>>254
>これは他の人へ
>Sunのコード規約ではm_を禁止していないように見えるが。
>違反していると言う人はぜひその根拠を示して欲しい。
俺は多分他の人じゃないと思うが(ワラ
Variable names should be short yet meaningful.
メンバ変数かローカル変数かは「意味」ではない。
The choice of a variable name should be mnemonic
自然でないものを記憶させるのは、理解の障害となる。
0275教えて!NGNG
本日java world を購入しsdkをインストール
簡単なpgmをメモ帳で作り、ファイル名にclass名.javaと付けて保存
再度開けようとすると、program.exeが見つからないので、開けられません
とでてしまう。
どなたか理由わかりますか?
0276教えたる!NGNG
>>275
わかります。
0277教えて!NGNG
276さん
では、何故でしょうか?
0278デフォルトの名無しさんNGNG
何故だと思う?
0279教えて!NGNG
何故だかわかんないからここで聞いてるんだけど・・・
不毛な対話は時間が勿体無いのでどなたか教えてください。




宜しくお願いします。
0280276NGNG
program.exeが見つからないのが理由です。キッパリ!
0281教えて!NGNG
成るほど、そういうことでしたか。
ではどうすればprogram.exeって手に入るのでしょうか?
私のjava本には触れてないので全く分かりません。



宜しくお願いします
0282デフォルトの名無しさんNGNG
>>281
>私のjava本には触れてないので全く分かりません。

でしょうねー、漏れもみたことないです。
そういうときは、検索しましょう。
0283教えて!NGNG
検索してもprogram.exeは見つかりませんでした
0284教えて!NGNG
なぜだろうか・・
0285デフォルトの名無しさんNGNG
じゃ、エディタかえてみたら?
わーくぱっどとかにさ。
0286超能力者NGNG
>>279
それはあなたが、class名.javaというファイルをダブルクリックしているからです。
メモ帳を開いて、そこにそのファイルをドラッグ&ドロップすればよろしい。
0287教えて!NGNG
本当だ。情報有難うございました。

でもコンパイルしても何故か?noclassdeffound error って出てきます

何故だろうか・・・?

だってfile名.javaで正しいdirctryに保存してるのに。
分かる方いましたら、宜しくお願い致します。
0288超能力者NGNG
その答えは、あなたが持っている本に載っています。
巻末の索引でCLASSPATHというものを調べてみましょう。
0289教えて!NGNG
pathの設定は既にしてあるのですが・・・・
その設定が間違ってるのでしょうかねー、。。
0290デフォルトの名無しさんNGNG
あぁ、買った本というのはJava Worldだったのか。
http://java-house.etl.go.jp/ml/
あたりで調べろ。
0291デフォルトの名無しさんNGNG
pathの設定とCLASSPATHの設定は違いますね。
pathはOSがプログラムを探しに行く場所ようなものです。
CLASSPATHはjavaがコンパイルされたクラスを探しにいく場所のようなもの。
pathにコンパイルされてできた.classファイルを通しただけでは
Javaがクラスを認識できません。
CLASSPATHに出来た.classファイルを通して見てはどうですか?
これっくらいでいいですよね?
大文字のCLASSPATHと小文字のclasspathについては
またどこかで調べましょう。
0292教えて!NGNG
難しいな…現在サンサイト熟読中

情報有難うございました。
0293分からん・・・NGNG
駄目だ、私には難しすぎる。mmxcpuがオーバーワークに成っております。
もう少し具体的にCLASSPATH設定の方法を教えて頂けないでしょうか?

宜しくお願いします。
0294分からん・・・NGNG
>CLASSPATHに出来た.classファイルを通して見てはどうですか?

↑これの意味が分かりません。
もう少し分かりやすく教えていただけませんか?
0295デフォルトの名無しさんNGNG
俺も詳しくないけど
set CLASSPATH=.
ってやってから
java ・・・
ってやっても駄目か?
0296デフォルトの名無しさんNGNG
287
ソースと
あなたが入力したDOSのコマンド履歴をコピーしてあっぷしなされ。
0297デフォルトの名無しさんNGNG
まず最初のプログラムはひとつのクラスしか
つかってないんだろうから、classpathの指定は
不要です
0298デフォルトの名無しさんNGNG
クラスのファイル名を打ち込んでるに一票。
とりあえず画面に出たエラー表示をそのまま載せれ。
0299分からん・・・NGNG
no class deffound error :com/sun/tools/javac/Main

がエラー理由のようです
0300ソース開陳NGNG
public class Hello
{
public static void main (string args[])
{
System.out.println("Hello \n") ;
}
}
0301良く知らない人NGNG
少なくとも
string -> String
でしょ。

それから
java -version
の結果もコピペすれ。
0302未だにコンパイル不可NGNG
上記のエラー文言はソースと同dirctoryにjavacを置いておいたときにでました
そのjavacを削除して初期インストール時の場所でコンパイルを行ったら、
Hello.javaを読みこめませんと出てきました。
これって一体・・・

java-versionって何ですか?
0303デフォルトの名無しさんNGNG
君ね、本屋に行って図がたくさんある初心者向けのJavaの本を買ってきたほうが
いいよ。

DOSもWindowsもShellも良く知らないんでしょ?

「漫画で覚えるJava」みたいなのがあればベスト。
(煽りじゃないよ)

全てのことが良く分からないまま、人に答えを教えてもらって出来るようになっても
何も身につかないと思うよ。
0304デフォルトの名無しさんNGNG
>>303
禿げ敷く同意。
0305デフォルトの名無しさんNGNG
そろそろ、すがやみつるに「こんにちは!Java」を執筆してもらいたい。
0306未だにコンパイル不可NGNG
ここで解凍を頂くのは無理と言うことなのでしょうか?

一応本は「図解でわかるjavaのすべて」と「java言語プログラミングレッスン」を
漏っていますが、環境設定についてはそれ程詳しく斯かれてないのが
実情だと思います。

初期環境さえ設定できれば後は勉強して行けるのかな?と思ったのですが・・
0307デフォルトの名無しさんNGNG
>>306
君の場合、まず質問のやりかたを勉強したほうがいいと思うぞ。

>>290で紹介されたJavaHouseの「スペシャルトピック(必読)」
をとりあえず全て読め。

君の目の前で何が起こってるのかを説明できるレベルにならないと、
どこに行っても回答を得るのは難しいと思う。
0308未だにコンパイル不可NGNG
というか私は「図解で分かる」で斯かれている通り
1java world 付録のCDでsdkをインストール
2syseditでpathの設定
3クラス名と同名のソース名.javaをメモ帳で作成
4新規ファイルに保存
5dosでcdで上記ディレクトリにてjavac 同名.java を実行

結果   同名.javaを読みこませんでした

とのコンパイル結果

故原因がわからないでおります

どなたか知者の助言願います。
0309デフォルトの名無しさんNGNG
いや、あの、騙されたと思ってJavaHouseの「スペシャルトピック(必読)」を
読みなさいって。

君の持っている「図解でわかるjavaのすべて」は、おそらく、このスレで回答
しようとしている人は持っていないだろう。
そんな状況で、

>「図解で分かる」で斯かれている通り
>2syseditでpathの設定

と言われても誰も分からないよ。その「設定した内容」を書かないと。

>1java world 付録のCDでsdkをインストール
も、どのバージョンのJDKなのか、調べないと分からないでしょ。

3,4,5も同じようなこと。

はやる気持ちはわかるけど、まずは、JavaHouse。
0310デフォルトの名無しさんNGNG
親切だな(藁
0311デフォルトの名無しさんNGNG
>>308 だんだん基地外字見てきたな。君、プログラマには
向いてないよ。少なくとも一緒に仕事したくないタイプで
はあるな。
0312デフォルトの名無しさんNGNG
>>308
そのディレクトリで
dir
と
java -version
をうった結果をウプしてくれ!
0313デフォルトの名無しさんNGNG
>>308
echo %CLASSPATH%
っていうコマンドを実行して、
結果を書き込んで。
0314shigeNGNG
>>308
名前欄にfusianasanっていれると、親切な人が答えてくれると思うよ。
0315デフォルトの名無しさんNGNG
どうせ原因は、
クラスパスなんだろうなあ。。
0316デフォルトの名無しさんNGNG
>>315
こういうタイプもJavaHouseによくいる。そして混乱させるわけだ(藁
0317デフォルトの名無しさんNGNG
>>316
ほっときゃいいのに。
0318デフォルトの名無しさんNGNG
>>317
お前の血は何味だー!
0319デフォルトの名無しさんNGNG
コンソメパンチですが何か
0320ケンシロウNGNG
きさまにはCすらなまNULLい!!!
0321デフォルトの名無しさんNGNG
ファイル名.java.txtになってたりしないよな・・・
0322デフォルトの名無しさんNGNG
>>321
一票
0323デフォルトの名無しさんNGNG
原因がわかっても俺は答えてやらないに 100 票。
0324デフォルトの名無しさんNGNG
これはただのネタであると思いたいに1万ミズノ。
0325デフォルトの名無しさんNGNG
http://java-house.etl.go.jp/ml/topics/
>308

ここを読むか、DOSの画面コピーしてはってください

どんな知恵ものでも、あなたの質問のしかたでは
正しい答えをおしえることはできません
0326デフォルトの名無しさんNGNG
このスレ、レベル低いね
0327デフォルトの名無しさんNGNG
275以降(これも)透明あぼーんしなさい。
0328デフォルトの名無しさんNGNG
>>326 前スレから2連発で荒れたからねぇ…
0329216NGNG
レベルが下がりきってますが、続けます。

>>238.240.243
慣れ/読みにくい/主流 ですか? 鳥頭厨房確定。
猿以下の思考停止生物は有害だから去れ。
prefixをつけてはならない根拠は?>>243 その説明がないから・・・

>>239
218は、コードの読み方によって、(prefix等がなくとも)間違いを回避できるという主張。
これは"つけなくてもよい"根拠であって、"つけてはならない"ではないね。

>>242
バグが出る環境を想像してみてください。

# 自然不自然だとか、ですが、
# そんな不安定な感覚なんてものに頼るなんて前時代的ですよ?

ところで後半の文章によって厨房確定で残念です。
アナタの感覚なんか誰もアテにしていない。
感覚でないというなら根拠を示せば?
0330デフォルトの名無しさんNGNG
(まっとうな)仕事:
設計/コーディング/レビュー/テストなどにきちんと時間を与えられる
→どのようなstyleであろうとバグは取れ、動作する。

アマチュア:
動こうがうごくまいがどうでもよい
→どのようなstyleであろうと誰も文句を言わない

結論:
この中間に位置するJava仕事は存在しない。
0331デフォルトの名無しさんNGNG
>>329 まだやってんの?
0332デフォルトの名無しさんNGNG
329によってレベルがまたひとつ下がった
0333未だにコンパイル不可NGNG
313さんへ
ECHO は ON
との返答がありました。
0334デフォルトの名無しさんNGNG
エナジードレイン
0335デフォルトの名無しさんNGNG
329 は難癖つけることしかしてないな。
しかも、流れが変わったのにいつまでも続けているし。
0336169NGNG
>>329
俺なりにm_反対派の意見をまとめてみた。個々のレスへの反論はあるだろうがもう大体
意見は出尽くしたようなのでこれで終わりにしよう。

・まずm_をつけないことによってテストでは発見困難なバグが発生する可能性は彼らも
認めている。(と思う)
・しかしそれがたいした危険と考えていないので防ぐ必要なしと判断している
これはまったくそのとおりでプロジェクトの性質によっては十分に無視できる問題だ。

・次に可読性についてだが String.javaを「可読性が低くない」と判断できる人間に
とっては確かにm_をつければかえって可読性が低下するものと思われる。
その点君も俺も旧式の脳みそを持っているようなので素直に引き下がったほうが賢明
と思う。
彼らが超人かわれわれが厨房か、2chでいくらやっても結論は出ない
0337デフォルトの名無しさんNGNG
>>336 すまん、そのバグは単体テストフェーズで十分見つかるだろう
というのが抜けてる (まるでバグをほったらかしみたいだ)。それから、
まだ m_ について話し足りないなら悪いけど別スレ立ててくれる?
0338しんちゃんNGNG
JavaHouseに持ち込んでみればぁ?
0339デフォルトの名無しさんNGNG
>>338 過去記事のポインタ示されて終わりな気もするが、最近活気
がなくなってきてるので、この手の宗教戦争投げるのも良いかも。
きっと、ここぞとばかりに厨房がわんさか出てくるよ。(藁
0340デフォルトの名無しさんNGNG
特にノースタンスみたい? って、5年前か。
http://java-house.etl.go.jp/ml/archive/j-h-b/006427.html#body
0341デフォルトの名無しさんNGNG
全然関係ないがひろみちゅって名工大にいたんだ。
0342デフォルトの名無しさんNGNG
>>341
名工大時代の高木浩光さんといまのひろみちゅでは、肉体は一緒だが、
魂が実は何物かによってこっそり入れ替えられてるぞ。
注意しろ。
0343JAVA3ヶ月生NGNG
ttp://family.millto.net/~molita/
ここを参考にして、TomCatをインストールしていたのですが、
いろいろ試してもTomCatが起動しません。
「指定されたバッチラベルが見つかりません -startServer」とか、言われちゃって・・・。

OSは、WIN2000プロフェッショナル。
Apacheは、apache_1_3_12_win32。
インストールしたバージョンは jakarta-TomCat-3.1.1 です。

なにかしらわかる方がいらっしゃれば、ご教授願います。
0344JAVA3ヶ月生NGNG
失礼。h消す必要ないですね。
http://family.millto.net/~molita/
0345JAVA3ヶ月生NGNG
できました。
逝ってきます。
0346デフォルトの名無しさんNGNG
>>333
いや、echoじゃなくて
echo %CLASSPATH%
なんだけど。
もし、これでONってでてきたんなら、
CLASSPATHの設定を変えないとだめ。
034736NGNG
>>336
きみってアタマ悪そうだね。まとめになってないよ。
だからいつまでもm_なんていってんだろうけど。

漏れのまとめはこうさ。
メンバー変数名にm_などのprefixをつけるやつは100%厨房。
悪いことはいわないからJavaはいますぐやめてC#に遺稿せよ(藁
0348デフォルトの名無しさんNGNG
趣味のプログラミングならm_つけてもいいんじゃない?
仕事なら、m_をつけてはいけない。
つける必要が無いようなコーディングを心がけろ、ということで。
0349デフォルトの名無しさんNGNG
m_がついていることが発覚した時点で今後そのソースは読みません。
0350デフォルトの名無しさんNGNG
>>227
>後者の防ぎ方は>>209が例としてあげたjava.util.Stringに良い例があった。
>例えばtoLowerCase()では、
> int len = count;
> int off = offset;
> char[] val = value;
>とある。メンバ変数には正しい単語を、ローカル変数には略称を使うという方法。
>これにより、m_の有無で区別するのと同様の効果がある。

javaのクラスライブラリってそんな真似やってるんだ
わけわからん略称で埋め尽くされた昔のCソースのようだ..
そんな略称考えてる暇があったら自然な名前にm_でもitsでもなんでもいいから
つけたほうがいい
シープラでも別に最初からm_をつける文化があったわけじゃなくてmfcの設計者
が途中からつけた工夫だろ
純粋にjavaはシープラより歴史が浅いからそこらへんの文化が発達してないん
でしょ。だって、メンバ変数と名前が重なるから略称を考える、という問題は実際
に発生しているわけだから。その目的で略称を考えてる人たちにm_をつけるのが
汚いとか絶対に言われたくないが..

あとメンバ変数は重要なもんだから頭の中に絶対に入ってるって、それは自分が
書いたソースの場合でしょ。
他人の書いたソースみる時にまず仕様書なんて必ずみるわけじゃないっていうか、
よっぽど正式な状況以外ではいちいちみない。よほどみにくいソースじゃない
限り。参考にするために拾ってきたりもらったりしたソースに仕様書なんかないしさ。

っていうか・・・プレフィクスがなし派はかなり限られた状況でしか開発したことが
ない奴と思われ..
0351デフォルトの名無しさんNGNG
>>350
>プレフィクスがなし派はかなり限られた状況でしか開発
そんなの、現場で規定された名称付与基準次第じゃねーか。
なにすっとぼけたこと言ってんだ?
0352デフォルトの名無しさんNGNG
>>350さあjavadoc
035339NGNG
>>350
きみ何番?はじめてでてきたの?

他人の書いたソースをどんな目的で見るときのはなし?
そのクラスを使うだけならインターフェイスだけ知っていればいいでしょ。

そのクラスを継承しないといけない場合はソースの全部を読んで
アタマにいれないといけないけどね。継承なんてめったにしないでしょ?

さー、ここでまた厨房が釣れるかな?(藁
0354350NGNG
本質じゃねーところでグダグダいっててもしょーがねーよ。
つけろといわれたらつけるし、つけるなといわれればつけない。
それに、Sunはつけるなともつけろとも言ってねーよ。
ちゃんと規約読めバーカ。
035539NGNG
>>348
>趣味のプログラミングならm_つけてもいいんじゃない?

いいよ、できればローカル変数名にprefixのほうがましだと思うけど。

>つける必要が無いようなコーディングを心がけろ、ということで。

そう、こっちは本質だよね。
つける必要がないようなクラス構造、クラスの大きさにしろ、ってことかな。
0356348=350NGNG
>>355
なんだ、ちゃんとわかってるじゃん
0357デフォルトの名無しさんNGNG
>>348
趣味だからって醜悪なコードを許容するのは「趣味が悪い」かなとも思う。
趣味人にはドキュコードを書く自由がある!と主張することには
結局なんの意味も無いと思う。ていうか趣味でやるやつほど
せめて美意識とかを意識して欲しいもんだというか。

それはそれとして。
>>347
なるほど。delでも、fHogehoge(フィールドの略らしい)
とか書かずにself.Hogehogeと書くべきだってことか。
そう言われて見ればそうだな。

ただ、delの場合は、propertyという便利な仕掛け(わら)のおかげで
Hogehogeと別にfHogehoge相当の変数をも作らないとならない
という事情はあるんで、ちと悩ましいけど。
0358デフォルトの名無しさんNGNG
>>325のhttp://java-house.etl.go.jp/ml/topics/にこんなの有りました。
コンストラクタ等で「this.foo = foo」と書くとき引数名を間違えると...
http://java-house.etl.go.jp/ml/archive/j-h-b/019444.html
気をつけてネッ!
0359デフォルトの名無しさんNGNG

>>353
前にちょっとみて、さっきまたざーっと流し読みしたわけだけれど..

>>他人の書いたソースをどんな目的で見るときのはなし?
>>そのクラスを使うだけならインターフェイスだけ知っていればいいでしょ。

>>そのクラスを継承しないといけない場合はソースの全部を読んで
>>アタマにいれないといけないけどね。継承なんてめったにしないでしょ?

>>さー、ここでまた厨房が釣れるかな?(藁

継承なんてしないでそのソース自体を参考にする、なんてことを
あなたはけーけんしたことがないんでしょうおそらく・・
ふつーに開発やってたらいくらでもあることだが

だいたいプレフィクスをつけるうんぬんは、プレフィクスなきゃできない
とは上の人もたぶん誰もいってないわけで、ありゃわかりやすいと
言ってるだけでしょう

どうでもいいけどあなた(39)の過去の発言をみかえしてみたけれど、
どう考えても開発経験豊富な人には思えない、というか、たぶん
学校かおうちか、ごく小さな会社で小さな開発せこせこやってる人
という人にしか思えないので、反論するきもあまりおきないので、
これで書き込みやめときます
036039NGNG
>>359
>継承なんてしないでそのソース自体を参考にする、なんてことを
>あなたはけーけんしたことがないんでしょうおそらく・・

あるよ。その時m_がついてたほうがいいの、ふーん。
その時ローカル変数にl_がついてたんじゃなぜだめなの?
つーか、そんなのエディタで一発変換してよめばいいんじゃないの?

>どう考えても開発経験豊富な人には思えない

人間て悲しいものだね。
自分より上のレベルの人間だと読みとれるのはごく一部の優れた人だけなんだよね。
0361デフォルトの名無しさんNGNG
>>360
>つーか、そんなのエディタで一発変換してよめばいいんじゃないの?
むちゃくちゃゆーな。
0362デフォルトの名無しさんNGNG
カードレイアウトを使いたいんですけど、
うまくいきません・・・。

これでは、次のカードしか見れないのはわかっているのですが、
それ以前にアプレットが初期化されてないと言われてしまいます。

何が間違っているのでしょうか?
よろしくお願いします。

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

/*
<applet code = "card" width=250 height=200>
</applet>
*/

public class card extends Applet implements ActionListener{

CardLayout CL;

Panel p1,p2,p3;
Label label1,label2;
Button button = new Button("next");

public void init(){
p3.setLayout( CL = new CardLayout() );

p1 = new Panel();
label1 = new Label("Label 1");
p1.add(label1);

p2 = new Panel();
label2 = new Label("Label2");
p2.add(label2);

p3.add(p1);
p3.add(p2);

add(p3);
add(button);
}
public void actionPerformed(ActionEvent ae){
CL.next(p3);
}
}
0363デフォルトの名無しさんNGNG
>362
p3がnull
0364362NGNG
あ、うっかりしてました。

が、p3 = new Panel();
を追加しても、うまくいかないんですけど。
なんででしょうか?
0365デフォルトの名無しさんNGNG
>364

p3.add(p1);
p3.add(p2);
↓
p3.add("card1", p1);
p3.add("card2", p2);

"card1", "card2"は何でもいいッス。
0366デフォルトの名無しさんNGNG
>364
あと、"next"ボタン押して表示パネル変更したいんだったら、

button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae)
{
CL.next(p3);
}
});

ボタンにリスナ付けないと。
0367362NGNG
>>363,365,366

文字列入れなきゃいけなかったのか〜
知りませんでした。

あ、リスナも付け忘れてた・・・。

皆様のおかげで、無事に機能させることができました。
ありがとうございました。
0368レベルドレインerNGNG
・String.javaに代表されるJDKのコードが美しいと考えるヤツはいないと思われ。
・m_がついてようとついていまいとJDKのコードはクソ(w

・m_派がさんざん見つけにくいと主張するメンバ変数破壊バグだが、
 「あるクラスのメンバ変数が意図した結果にならなければ、
 そのクラス内の引数を含めたローカル変数の宣言ミスを疑え」という
 ごくシンプルなデバッグ要項ひとつで対処できると思われ。
0369デフォルトの名無しさんNGNG
>>368
JDKのコードはクソかもしれないけど
そんなのはLinuxもWindowsもQNXもクソだから
許してやってくれ
0370デフォルトの名無しさんNGNG
別スレいけ。
兎剤。
0371デフォルトの名無しさんNGNG
JAVAでRTSPを実装したアプリケーションを作りたいのですが、
どのAPIを使えば良いのかよくわかりません。
JMStudioやREALPRODUSCERのようなものです。
0372未だにコンパイル不可NGNG
コンパイルできた・・・

皆さんサンクス!
0373デフォルトの名無しさんNGNG
>>372 お、出来たか。煽って悪かったな。
次回はもうちょっと表現力つけて質問せれ。
0374デフォルトの名無しさんNGNG
>>371
なにそれ?おいしい?
0375デフォルトの名無しさんNGNG
JDBCを使ってPostgresのデータベースに接続したいのですが
ドライバの設定の仕方はどうすればいいのでしょうか?
0376デフォルトの名無しさんNGNG
>>375
JDBCドライバってなんか設定いるの???
どこかに置いとくだけなんじゃないのけ?
0377デフォルトの名無しさんNGNG
ドライバが置いてあるjarファイルに対しておn
CLASSPATHの設定が必要
0378デフォルトの名無しさんNGNG
>>377
どちらかというとURLClassLoaderで動的ローディングする
ほうが、エンタープライズシステムっぽくて素敵。
0379デフォルトの名無しさんNGNG
>>378
なにそれ?
動的にclassを自分の意志でダウンロードできるの?
0380デフォルトの名無しさんNGNG
>>379
ClassLoader loader = java.net.URLClassLoader.newInstance(java.net.URL[] クラスパスの代わり);
loader.loadClass(String クラス名);

これで Class.forName(String クラス名);
の代わりになる…はずだ…

URL指定でできるので、例えばリモートのストレージに
一個ドライバ置いておいてみんなでそこを呼び出すように
すれば、ローカルストレージを汚さないで済む。
AppletからネイティブJDBCドライバ呼び出しもできるんじゃ
ないかな。
0381デフォルトの名無しさんNGNG
データベースに検索をかけて得た
データをテーブルに再描画するとき
元のテーブルをremoveして新しくテーブルをつくり直して
validate、repaintをかけているんですが
もっと良い方法はありませんか?
0382デフォルトの名無しさんNGNG
>>381
直前に一度検索しているなら、前回検索との差分だけを
バックグラウンドでロジック組んで検索して、そのセルだけ
書き換えるとかしたら?ついでにそこだけ色を変えたりすると
表現力たっぷり。
0383382NGNG
前提としてデータモデルとビューの分離は必須。
まあ、JTableつかえば簡単簡単。
0384381NGNG
382>>
なるほど、セルの色を変えて追加するのは思いつきませんでした。
よい案をありがとうございます。
しかしJTableはほんとにデータ表示には便利ですね。
0385デフォルトの名無しさんNGNG
Swingは相対的に非常に遅いし、バグもあるんだけど、プログラマ
から見るととっても楽なGUIツールキットだとおもう。

基本的にはボタンだのテキストフィールドだのといったコンポーネント
をNEWして貼ってけばいいだけ。あとはイベントハンドラを登録
(ListenerをNEWしてADD)してやれば終了。後ろのロジックは普通に
Javaで書けるわけで、あとはだだっ広いAPIのジャングルから適当な
パッケージ引っ張ってきて組み合わせれば、何でもできる。

J2SDKなら表現力は無限大。コンポーネントの上に何でも好きに書ける。
個人的にはテキストグリフのアンチエイリアシング処理が好き。
フラグ一個立てるだけであとはライブラリが中で勝手にやってくれる
んだもん。

おいらVB知らないんだけど、変な環境汚染とかはしないし、裏の
ロジックはオブジェクト指向でいろいろ書けるわけで、VBつかう
よりJDKの方が安全なアプリの開発が楽にできるんじゃないかな?
0386デフォルトの名無しさんNGNG
>>385さん
同意です。
テーブルモデルは慣れると楽しいですね。

>>381さんへ
http://www-6.ibm.com/jp/developerworks/java/010518/j_j-jtable.html
JTableのセル・レンダリングについては
↑が詳しかったですよ。
0387デフォルトの名無しさんNGNG
JDK1.3 です。
LinkedList.Java のソースをみたところ、
private transient Entry header = new Entry(null, null, null);
となってるんですが、この「Entry」ってなんですか???
0388デフォルトの名無しさんNGNG
クラス
0389デフォルトの名無しさんNGNG
>388
どのパッケージ???
0390デフォルトの名無しさんNGNG
ごめんなさい、標準のクラスかと思ったらば
LinkedList内で
private static class Entry
で定義されてました。(TT)
逝ってきます。
0391デフォルトの名無しさんNGNG
>>385
非常に遅くてバグがあるんじゃ、ダメダメじゃん…。
0392デフォルトの名無しさんNGNG
>>391
バグって具体的になにがあるの?
0393デフォルトの名無しさんNGNG
>>391
バグっていっても、動作上の致命的な奴は最近あんまりない。
描画更新でたまに残骸のこったりとかがあるくらい。
GUIの動作が多少遅くたって、入出力に支障が無い程度なら
別にいいじゃん。GUI相手に一秒間16連射するユーザなんて
めったにいないと思うし。
0394デフォルトの名無しさんNGNG
高橋名人。
0395デフォルトの名無しさんNGNG
マジデ?
0396デフォルトの名無しさん NGNG
外部ファイルを読み込みたいのですが
拡張子を"js"に変えるにはどうすればいいのでしょうか?
ちなみに変える前の拡張子は"txt"です。
0397デフォルトの名無しさんNGNG
>>396
1.外部ファイルを読み込みたい
2.ファイルをリネームしたい
のどっちが質問なの?両方?

自分なりに補って解釈すると
 Javaアプリケーションから
 他マシンにあるファイルの"txt"ファイルを読み込み
 また、そのファイルを*.jsにリネームしておきたい
または
 Javaアプレットから
 アプレットのあったサーバーの(or他サーバーの)"txt"ファイルを読み込み
 また、そのファイルを*.jsにリネームしておきたい
に思えるんだけど、そのあたりはどうなのだろう?>396
0398デフォルトの名無しさんNGNG
>>397
ネタじゃないの?
0399397NGNG
とりあえず、Fileのリネームなら
File f = new File("hoge.txt");
f.renameTo("hoge.js");
だけど(例外処理とかは抜きね)
0400java駆け出し者NGNG
こんにちは。
アプレットで画像のサイズを取得して、変数(クラスフィールド)に
入れておきたいのですが、うまくいきません。
以下のソース(アプレット)を実行すると-1が表示されて、
幅が取得できないようです。
コメントアウトしてある方法だとうまくいくのですが・・・
どなたかご教授ください。
画像は2枚必要です。すいません。


import java.applet.*;
import java.awt.*;

public class Test extends Applet{
int size;
Image[] Myimg = new Image[2];

public void init(){
Myimg[0] = getImage(getDocumentBase(),"1.gif");
Myimg[1] = getImage(getDocumentBase(),"2.gif");
size = Myimg[1].getWidth(this);
}

public void paint(Graphics g){
String c = new String();
// g.drawString(c.valueOf(Myimg[1].getWidth(this)),10,20);
g.drawString(c.valueOf(size),10,20);
}

}
0401VB厨房NGNG
>>400
必要なときに必要な分だけ使えば良いと思われ。
よってコメントをはずすべし。

つーかイメージがゲット出来ないことも考慮してnullチェックしとけ
0402java駆け出し者NGNG
こんにちは。

実際のプログラムは何度もsizeを使いたいので、
できれば定数にしたいと思っています。

nullチェックはテスト用のためにつけてませんでした。
0403デフォルトの名無しさんNGNG
>>400
AppletのgetImageは"画像の読み込みを開始"させるメソッド。
呼び出し直後はまだ読み込みが完了していないためサイズがわからないのも当然。
読み込みを完了させるためにはMediaTrackerを使って、

MediaTracker tracker = new MediaTracker(this);
tracker.addImage(Myimg[0], 0);
tracker.addImage(Myimg[1], 0);
try {
tracker.waitForID(0);
}catch(InterrputedException e) {
e.printStackTrace();
}

こんな感じの処理をサイズ取得の前(getImageの後)に入れとけばいい。

ちなみにImageのgetWidthメソッドとかの引数にthisを渡すのは
読み込みが終了したとき等に改めて通知してもらうため。
ていうか俺の日本語読みにくいぞくそったれ!!
この辺の仕組みが理解できれば画像読み込みをバックグラウンドでやって、
読み込みが終了したものから画面に表示していくというようなこともできる。
0404デフォルトの名無しさんNGNG
オブジェクトとインスタンスとエンティティの違いが良く分かりません。
おしえて
0405ななしNGNG
【質問】オープンソースであるLinuxで動く
    Javaコードをネイティブコードにコンパイルしてくれる
    コンパイラはどんなものがありますか?
0406デフォルトの名無しさんNGNG
>>404
本1冊読んでからのほうがイイと思うよ。
0407VB厨房NGNG
>>404
エンティティは設計段階で扱い
オブジェクトは実装段階で扱い
インスタンスは実行段階で扱うオブジェクト
0408404NGNG
じゃあEntityObjectってなんすか?
0409デフォルトの名無しさんNGNG
>>404
どんな文脈で使われてるのか書かないと正確なレスは帰ってこないと思われ
0410404NGNG
>409
ごもっとも。
もう少し勉強してからくる。
0411デフォルトの名無しさんNGNG
こんにちは。

image もしくは imageIcon の
任意のドットの色を取得したいのですが
取得の方法がわからないんです。
(VCとかでいうGetPixelみたいなの)

どなたか取得方法を御教授願えないでしょうか?
0412デフォルトの名無しさんNGNG
ガーベージコレクションが動くとき、
空きメモリは連結されてる?
0413デフォルトの名無しさんNGNG
>>411
java.awt.image.PixelGrabber
ってのを使え。

BufferedImageなら
int color = bufferedImage.getRGB(x, y);
でいける。
0414デフォルトの名無しさんNGNG
>>413
JavaDocでPixelGrabber見たらサンプル付きで解説ありました。
ありがとうございます。
BufferedImageも調べときます。
0415デフォルトの名無しさんNGNG
厨房的質問なんですが2点質問です。
Javaでクラスを作るとき、コンストラクタって
必ず作らなくてはいけないのですか?
コンストラクタ内でなにもすることがない場合は
何もコンストラクタ内で何も記述しなくてもいいのでしょうか?
0416デフォルトの名無しさんNGNG
>>415
そのとおり(大爆笑)
0417デフォルトの名無しさんNGNG
コンストラクタを一つも作らないとコンパイル時に自動的に
引数を持たない、中身が空の、コンストラクタが作られる。

ttp://www.gimlay.org/~javafaq/S010.html
0418デフォルトの名無しさんNGNG
>>411に便乗して質問。
PixelGrabberもいいんだけどなんか遅そうな感じが
するのは気のせいでしょうか。
最近のJavaはなんかFilterとかRenderedImageとか
WritableRasterとかわけがわからないクラスがたくさん
追加されていますが、これらみたいな新しいクラスを
使った新しいピクセルの扱い方ってあるんでしょうか?
0419デフォルトの名無しさんNGNG
>>418
WritableRasterからBufferedImageつくれる。
BufferedImageからRasterとりだせる。

Rasterでピクセルの値見れる。
WritableRasterでピクセルの値いぢれる。
WritableRasterはRasterのサブクラス。

Filter系使うとImageにエフェクトかけれる。ぶら〜とか。

RenderedImageはインタフェースか・・・。
とりあえずこれを実装してるクラスはBufferedImageだけみたいだね。
まぁいいや。

あとJ2SE1.4から新しく
VolatileImageとかいうのでイメージをVRAMにおけるようになったみたい。

PixelGrabberは始めにぐぁっとデータ取り込んで
int配列とかに入れてしまうので速度は別にかんけーないかと。
MemoryImageSourceとかはどうだろうね速度。
0420デフォルトの名無しさんNGNG
コンパイルエラーで
「"("がありません」と出たんですが
どうして直したらいいんですか?
すいません、全くの初心者なので…。
0421デフォルトの名無しさんNGNG
>>420
どう突っ込んでいいのやら。
0422デフォルトの名無しさんNGNG
>>420
どうするも何も、括弧同士の対応が足りなくて、
「(」の数が「)」に比べ1個少ないんだよ。

それくらいなら、その行のソース貼り付けてみ。
0423デフォルトの名無しさんNGNG
>>421
すいません、ほんと。
何が足りないとこのエラーが出るんでしょうか…。
0424デフォルトの名無しさんNGNG
(が無いからです。
そんなことよりlispをやんなさい、キミィ!
0425デフォルトの名無しさんNGNG
>>422
function En(){
pass = prompt(" ","");
if{
(pass == " " ) alert(" ")
location.href = " .html";
}else {
alert(" ")
}

すいません、厨房で…。
本片手にやり始めたばっかりなので。
0426デフォルトの名無しさんNGNG
・・・それはJava???
その本タイトル違うんじゃないの?
0427デフォルトの名無しさんNGNG
…すいません、スクリプトの方です。
ここでJavaスクリプトもお聞きしていいのかと
思ってました。
0428デフォルトの名無しさんNGNG
JavaScriptはこの板では扱っていません。>427
0429422NGNG
>>425
それJavaScriptじゃん。

ちなみにそれはif文の書式が間違っているのでは
if (条件) {
 真
} else {
 偽
 }
だよ(要は if (条件) {真} else {偽})

だから、推測だけど

function En(){
pass = prompt(" ","");
if (pass == " " ) {
 alert(" ");
 location.href = " .html";
} else {
 alert(" ");
}
じゃないの?セミコロンも抜けてたから注意するべし。
0430デフォルトの名無しさんNGNG
ネタにマジレス
カコワルイ
0431422NGNG
スマンカコワルイネ
0432422NGNG
429訂正

ファンクションEnを完結させるなら
function En(){
 pass = prompt(" ","");
 if (pass == " " ) {
  alert(" ");
  location.href = " .html";
 } else {
  alert(" ");
 }
} ←※これ追加
0433デフォルトの名無しさんNGNG
↓のようなプログラムを書きたいのですが、ここはソースを提供していません。
http://pascal.seg.kobe-u.ac.jp/~shii/java/Title3D/Title3D.html

このようなプログラムのつくり方を教えるページはどこかありますでしょうか?もしくは参考書はございますでしょうか?
0434デフォルトの名無しさんNGNG
flash5覚えれ>>433
0435デフォルトの名無しさんNGNG
フラッシュ5もってます。
0436デフォルトの名無しさんNGNG
じゃぁソレで何が出来るか調べれ
0437デフォルトの名無しさんNGNG
javaあんま分かってないのでご教授願います。
例外処理を元のクラスにthrowするのですがその時にいっしょに文字列を
渡すのはどうやればできますか?Exception eとString messageを元で
受け取って一緒に表示したいのですが。よろしくどうぞ
0438デフォルトの名無しさんNGNG
[GVDFSGでRBGVDFJKBGヵぜGVQAHS
0439デフォルトの名無しさんNGNG
catch(Exception e) {
 throw new Exception("Hello, Exception\n", e);
}
0440デフォルトの名無しさんNGNG
>>439
即レスどうも。ちょっとよくわかんなかったんでwebで調べたら名前を
MyExceptionとかにしてExceptionのサブクラスにする方法があって
うまくいったんですが439のようにそのままthrow new Exception
みたいにやるのはできるんですか。
0441デフォルトの名無しさんNGNG
>>440
メッセージは入れられるけど、元Exceptionの格納はできないはずだ。
つうことで、格納昨日つきExceptionクラスつくっぺ。
足らないオーバーライドは自分で考えれ。

public class NestException extends Exception{
 private Exception e;
 public NestException(String message,Exception e){
  super(message);
  this.e = e;
 }
 public void printStackTrace(){
  super.printStackTrace();
  if(e==null)return;
  System.err.println("nested exception");
  e.printStackTrace();
}
}
0442デフォルトの名無しさんNGNG
>>441
ヨンキューだっぺ
勉強になったべ
0443439NGNG
Exception(String s, Throwable t)
since 1.4

だった。鬱
0444デフォルトの名無しさんNGNG
おー1.4なのか
RMIなんかも良くなってるってどっか書いてあったからなあ
使ってみようかのお
0445デフォルトの名無しさんNGNG
>>444
仕様を読んだ限りだと、Serlvet何ていうちゃちな遊びレベルじゃなくて、
サーバサイドを本気で作るつもりなら、J2SE1.4+J2EE1.3が最低ライン。
これからは+JAXB,JAXMのラインで進んでいくんだろうと思う。

1.J2EE1.3
メッセージングサービス、パブリッシュ=サブスクライブモデル、
複相コミットメント、ネーミング=ディレクトリサービス、ETC…

2.J2SE1.4
ノンブロッキングI/O、ロギング機構、正規表現検索機構、RMI=CORBA互換
SSLソケット機構、暗号化ライブラリ、XML(DOM/SAX)パーサ、ETC…

3.JAXB,JAXM
オブジェクト←→XMLテキストマーシャリング・アンマーシャリング機構
ヴァリデーションチェック機構、SOAPメッセージ送受信、ETC…

こんだけできれば、今したいことは何でもできそうでしょ?
0446445NGNG
個人的には、J2SE1.4のノンブロッキングI/O、メモリマップド
ファイル機構のサポートがお気に入り。これが使えるというだけで、
マルチスレッドのサーバモジュール書く労力が段違い。
0447デフォルトの名無しさんNGNG
>435
何ができるのかは十分承知しております。でもフラッシュでつくってもなーんも面白くありません。目標は3Dのゲームですので。
0448デフォルトの名無しさんNGNG
>>446
new I/OってCのヒープがいぢれるのかな・・・。
よくわからないけど面白いかも。

ゲーム系での話が気になるますよ。これとか
http://java.sun.com/products/jfc/tsc/articles/jcanyon/

Game Profileとか
http://jcp.org/jsr/detail/134.jsp
0449デフォルトの名無しさんNGNG
>>447
じゃあJAVA3Dの本を探せ。
多分英語だけど。
0450デフォルトの名無しさんNGNG
JAVA3Dはデフォルトじゃ入ってないぞ。
SUNからDLするんだ。
ちなみにweb上でやるならアクティブX
アプレットだとちょっと厳しい。
つーか無理?
0451デフォルトの名無しさんNGNG
>>448
1.4のNEWI/Oって、JVMヒープ内での非同期マルチスレッド処理用で
しかないと思うよ。プロセス間通信には使えないと思うが。
0452デフォルトの名無しさんNGNG
>>433
オープンな3Dエンジン、わりとあるよ。

とりあえず、ここのやつとか
ttp://homepage1.nifty.com/open-prog/
少し解説つき オープンソース(日本語)

あと、海外で
ttp://cg.cs.tu-berlin.de/~ki/3del_1419_src_lang_j.html
Javaソースつきの3Dエンジン集(英語)

そういえばJDKのサンプルにもなんかあったね。しょぼいけど。
0453448NGNG
>>451
ゴメソ。よくわかってないんだけど、
"JNIで呼び出されるネーティブ部のもってるヒープに、Java側から触れるのかぁ"
っていうつもりで・・・。
C->Java だけだったのが Java->C も、というか。
#って別にCだけじゃなくて、なんかネーティブのコードね。

なんか変なこと言ってたらごめん。よくわからん。
0454デフォルトの名無しさんNGNG
>>453
そりゃ無理でしょ。なんであんさんがカスタムで作ったJNIコールで
アロケートしたメモリエリアとコアAPIがインターフェイス取れるのよ?
0455デフォルトの名無しさんNGNG
>>450
先行者はどうでしょう?
0456デフォルトの名無しさんNGNG
3Dなのは絵だけ>>455
0457デフォルトの名無しさんNGNG
>456
問題は地面です。
0458デフォルトの名無しさんNGNG
>>457
擬似だよ。
でも、すごいゲームにはかわりないよな
0459ビギナNGNG
質問!
Forte For Java
って98,95では動かんの?
0460shigeNGNG
もちろん動く。
0461デフォルトの名無しさんNGNG
jGLっちゅーソフトウェア描画のOpenGLもどきもあるナリよ。
JDK1.1ベースのブラウザのVMでも動く。
リアルタイムアニメーションに使えるような速度ではなかったと思うけども。

>>458
F-ZERO面(なにそれ)が擬似ならDoomとかも擬似じゃ〜ん。
べつにいいか。
0462デフォルトの名無しさんNGNG
>>433
>↓のようなプログラムを書きたいのですが、ここはソースを提供していません。

はっはっは。そういうときはですな、
おもむろにページのソースを表示、APPLETタグを見つけて
jarファイルを直接URL入力してダウンロード、
逆コンパイラにかければいいのです。

言っちゃいけなかったかな(w
0463デフォルトの名無しさんNGNG
>>462
それをまずやったんですけど(jadで)なんかおかしいんですよ。出てきたファイルをコンパイルしてみてもエラーがでるし、どのクラスかも指定しないでインスタンスを生成していたような気がするし・・・
0464448NGNG
>>454
ちょいと調べてみたですよ。なんか1.4から

jobject NewDirectByteBuffer(JNIEnv* env, void* address, jlong capacity);
って関数が用意されてて

- Allocates and returns a direct java.nio.ByteBuffer referring to the block of
- memory starting at the memory address address and extending capacity bytes.

って書いてあるんで、つまりこれを使ってaddressからcapacity分のメモリ空間に
マップされたByteBufferをつくって、Javaのコードの側に渡せるんぢゃないかな、と。
思うです。どう?だめ?
0465デフォルトの名無しさんNGNG
ちょっとかなりあほな質問なんですけど、でかいプログラムを書きたいときCのように分割してかけますか?
0466デフォルトの名無しさんNGNG
そりゃまあ、普通にクラス設計すれば。
0467デフォルトの名無しさんNGNG
全部1個のクラスで出来るんならソレはソレで凄いぞ(笑
0468デフォルトの名無しさんNGNG
アプレットだとfinal以外のstatic変数使えないも同然なので
ついついやっちまうッス。
0469デフォルトの名無しさんNGNG
以前に、自分の書いたソース読んでたら、
置換ミスで変数名が全角の単語になってた。
でも、何事も無く動いてた。ちょっとびっくり。
0470デフォルトの名無しさんNGNG
Unicodeマンセー(ウソ)
0471デフォルトの名無しさんNGNG
今コアJava2という本で勉強していますが質問が3つほどあります。
1.CORBAのところでつまづきました。omniORBというもので説明されているのですがこれには
VC++が必要であるらしいですが持ってません(windowsです)。他にCORBA、C++コンパイラ
共に無料で試せるもの、それに関するwebページなどありましたら教えて下さい。
2.そもそもCORBAというものはどうなんでしょうか?netではsoapという魅惑的な名前の
サービスがそれに当たるものでありJavaでも使えるようになった、と認識していますが
比べるとどうなんでしょうか?
3.RMIについて>>445のような専門的な事はどのような本に載っているのでしょうか?
所有しているJava本にはRMIについてはメッセージを送信受信するぐらいな事しか
書いておらずここまでしか分かりません。よく皆さんがノンブロッキングI/Oなどという
言葉を出してjdk1.4を語っていますがそういうのが詳しく載っている本を教えて下さい。
以上3点教えてクンになっちゃいますがよろしくどうぞ
0472デフォルトの名無しさんNGNG
>>471
CORBAの最も基本的なサービスは、ネーミングサービスですが、これつかうと
オブジェクト自身をサーバとして起動することが出来ます。
TCP/IPのDNSに相当するネーミングサーバに、オブジェクトを
適当な名前と一緒に登録すると、クライアントはそのネーミングサーバ
に名前で検索するとそのオブジェクトのリモート参照が取れます。
簡単に流れを追うとこんな感じ。

サーバ側:
オブジェクト生成;
ネーミングサービス・登録("ほげほげ"、オブジェクト);

クライアント側:
オブジェクト=ネーミングサービス.検索("ほげほげ");
オブジェクト->メンバ関数();※

ここで、※で呼ばれているメンバ関数は、実際にはリモート
にあるサーバオブジェクトがその関数を起動してます。
(デザパタ知ってる人ならよくご存知の、RemoteProxyパターン
の代表例ですな)
あっというまにサーバクライアントシステムの出来上がり。
ソケットで同期取りながらシコシコやるより楽ちんです。
まあ、いろいろ約束事有るんだけどね。
0473デフォルトの名無しさんNGNG
>>471
たぶんその皆さんはC++などでサーバーを組んでいてそれと比べているのでしょう。
1.4になって始めてついた機能について過去の本に載っているわけ有りません。
僕も知らないので知りたいです。1.4に対応した本っていつ出るのかなあage
0474デフォルトの名無しさんNGNG
>>469
全角のひらがなとかでも動くよ。
Unicodeで表せる文字なら使えるよ。
0475デフォルトの名無しさんNGNG
>>474
コード内の識別子や文字定数は、コンパイル時にJavacが全て
Unicode変換してんだよね?違ったっけ?

だから、日本語だって識別子にできる。

public void ほげ(ほげほげ ぱげ){
ぱげ.あっち向いてほい();
}

なんてのもあり。読みにくいのと、日本語では
シンボル定義がサマにならないからやらないけど。
0476デフォルトの名無しさんNGNG
>>475 以前に興味がてらちょっとやってみた。
ローカル/インスタンス/クラス変数名やメソッド名に日本語を
使用することが出来た。Beans の Introspection でもちゃんと
日本語の getter/setter (プロパティ名) を参照することが
出来た。

クラス名はファイル名と関係するのでどうもうまく行かなかった。
それから JSP 内で <jsp:getProperty> も文字化けしてしまった
(Tomcat 使用)。金融アプリみたいにプロパティ名が日本固有の
言葉になるもので日本語を使えたら便利なんだけどなぁ。
0477デフォルトの名無しさんNGNG
HTTPクラスってどっかにないですかね?
PerlでいうところのLWPモジュールみたいな奴。
0478デフォルトの名無しさんNGNG
ところで、最近java.sun.comにアクセスしようとしても
できません。なんでか知ってる人いませんか?
0479477NGNG
JAVAによるネットワークプログラミングを勉強したいのですが、
(HTTP、FTP、SMTP、POPなど)
どこかいいサイトないでしょうか?
0480デフォルトの名無しさんNGNG
RFC読め
0481422NGNG
>>477
PerlのLWPがオレには?だけど
java.net.HttpURLConnection
はどう?
0482デフォルトの名無しさんNGNG
http://www.mars.dti.ne.jp/~torao/program/index.html
なんてどうよ。
0483あNGNG
> 米マイクロソフト、「XP」からジャバ対応ソフト取り外し=米WSJ紙
>
> 18日付の米紙ウォール・ストリート・ジャーナル(電子版)が報じた
> ところによると、ソフトウエア最大手マイクロソフトは、今年10月に
> 発売する予定の最新OS(基本ソフト)「ウィンドウズXP」の
> プレリリース版から、人気プログラム言語「ジャバ」対応のプログラム
> を稼働させるために必要なソフトを取り外した。ジャバは、米ネット
> ワークコンピューター大手サン・マイクロシステムズが開発したもの
> で、マイクロソフトの対応は、ジャバ陣営にとって打撃となるものと
> みられている。

http://www.jiji.com/cgi-bin/contents.cgi?content=2001071810738&genre=ind
0484デフォルトの名無しさんNGNG
IEがデフォルトでアプレットを実行できないってこと?
0485483NGNG
>>484
そう
0486デフォルトの名無しさんNGNG
プラグインとってくるなんて素人には無理だろうなぁ
0487デフォルトの名無しさんNGNG
今までアプレットでシステム組んでた奴はどうなるの?
ActiveXControlで作り直し?それとも.NET?
0488デフォルトの名無しさんNGNG
なんか現実味帯びてくると.NETってスゲーメンドクセー気がしてきた。
0489デフォルトの名無しさんNGNG
.NET で、Javaアプレットの代わりみたいなことは出来るの?
0490デフォルトの名無しさんNGNG
ゲイツちゃん、うざいね
なんで、そう余計なことばかりするかな・・・?
0491デフォルトの名無しさんNGNG
VMのオブジェクト一つ一つが生まれ、行き、死んでく様子を
モニターできるツールってありますか?
コレクションクラスを使いまくっていると、
どれくらいメモリを使ってるのが気になってきます。
0492デフォルトの名無しさんNGNG
SunがVMの再配布可にするってのはどう?
んで、製造元がMS以外且つ広く使われているアプリの
インストーラに組み込むとか。
みんな結構MP3とか聴いていると思うから、MP3プレイヤーなんか
いいんじゃない?
0493デフォルトの名無しさんNGNG
>>483
最初からインストールされてないだけで、
APPLETタグあるページ行けば自動的に
MSVMインストールされるこたされるとは聞いたけど、どうなんやろね。
つまり今までよりちょっと手間かかるようにしたっつー。

>>489
できるっちゃあできるが、
どうもセキュリティ上サーバとの通信すらできないくさい。

……という認識でいいのかな。
実のとこよく分からんのでみんなも調べてクレー。
0494デフォルトの名無しさんNGNG
MSのVMなんかもう実質役立たず。

Java2がJavaのスタンダードである昨今、SunかIBMのVMを
インストールせざるを得ない。

多分、SunあたりがJRE&PlugInのワンクリックインストール
の仕組みを作るだろうよ。8MBくらいあるから、ブロードバンド
の普及状況とにらめっこかな。それさえ大丈夫なら,FLASHや
SHOCKWAVEのランタイムのインストールと同じ感覚程度にに
なるだろうから、そんなに気にしなくていいことだと思っとるよ。
0495デフォルトの名無しさんNGNG
つまり、
「やっとJava2をターゲットにしたブラウザ用アプレットをおおっぴらに作れるようになる」
と言う認識で間違いないですか?
0496デフォルトの名無しさんNGNG
>>494
そう思う。
要はプラグインという認識にすればいいんだよね。
それをSunがやるかどうかだが、、、
0497デフォルトの名無しさんNGNG
>>495
そうですな。ADSL&FTTHマンセー。
ナローバンドユーザにJRE落させるのは無理。
0498デフォルトの名無しさんNGNG
雑誌につくようにならないかなJRE、
アナログPPPに8Mダウンロードはねぇ。
0499デフォルトの名無しさんNGNG
>>496
Microsoft が Sun Microsystems を買収すればいいんだと思うよ。
0500デフォルトの名無しさんNGNG
>>498
JavaPressやJavaWorldみたいなJavaマンセー本には
JREどころか、JDK1.3が丸ごと付いてるんだけどね。
0501デフォルトの名無しさんNGNG
>>500
そのあたりでなく、
日経netnaviとかPCJとかにつけば
「市民権あり」なんだけど、なんで今付いてないの?
0502デフォルトの名無しさんNGNG
>>501 付いてても使わないから。
0503デフォルトの名無しさんNGNG
>>496
あるよ一応
0504503NGNG
↑プラグインの自動ダウンロードのことね
0505デフォルトの名無しさんNGNG
>>504
アドレス教えれ
0506496=500NGNG
>>505
http://java.sun.com/products/plugin/

>503が「あるよ一応」と記してるけど
まさに、「こんなとこにある」という感じ。

日本のサンのサイトにはない。
プラグインとして使われる可能性が増えるなら、
もっとわかりやすい場所に置いておくべきでは?と思う。
0507デフォルトの名無しさんNGNG
try
catch
で囲まれた文の中でreturnするとき、最後のretrun って何にしてます?
参照型なら
retrun null
ってやっちゃうんだけど

public int getCount() {
try {
int i=0;
return i;
} catch (Exception ex) {
ex.printStackTrace();
}
return -1;
}
0508デフォルトの名無しさんNGNG
>>507
>で囲まれた文の中でreturnするとき
この感性がスゲーよ。マジびっくり。むしろ感動。
0509デフォルトの名無しさんNGNG
>>507 Exception はなかったことに…ということでしょうか?
0510デフォルトの名無しさんNGNG
public FileWriter newMethod2() {

try {
FileWriter file = new FileWriter("fileName");
return file;
}catch(IOException ex){
ex.printStackTrace();
}
return null;
}
こうやらずに、こうやれってことですね
public FileWriter newMethod() {

FileWriter file = null;
try {
file = new java.io.FileWriter("filename");
} catch (IOException ex) {
ex.printStackTrace();
}
return file;
}
0511デフォルトの名無しさんNGNG
すいません。横から割り込み質問なんですが、
こういうのって止めた方がいい書き方ですか?

String hogeFile(File f){

 if( f == null || !f.canRead() ){ return null; } //ファイルがなかったらサッサとnullで返す
 String s;
 //諸々の処理
 return s;

}

returnって{}を越えて抜け出すので、
↑のような書き方は避けるべきなのか疑問でした。
私は、結構多用してしまう癖が、、、、
0512デフォルトの名無しさんNGNG
tryの中から返すなってことだYO!
0513511NGNG
>>512
さすがにtryからすような荒技?はしません。
0514513NGNG
>>512
付け足しです)サンキューです
0515デフォルトの名無しさんNGNG
文字列をURLEncodeにするメソッドencode(java.lang.String)
なのですが
com.nttdocomo.net.*;
とimportして
writer.write(encode("name="+input_name.getText()+"&pass="+input_pass.getText()));
としてるんですが
それでビルドしても

メソッドencode()はclass java.lang.Stringで見つかりません

というエラーがでます。
文法上の間違いなのでしょうか?
0516神NGNG
>>515
ちゃんとメッセージを読もう。
エラーの内容は意訳せずコピペしよう。
きみには英語を読む力が無いのだから。
0517デフォルトの名無しさんNGNG
>>515
超基礎知識だけどJavaのメソッド呼びだしって
ClassName.anyMethod() //staticメソッド
か
instanceName.anyMethod() //非staticメソッド
しかないのに

writer.write(encode("name="+input_name.getText()+"&pass="+input_pass.getText()));
       ~~~~~~~~~
はないだろう。
0518デフォルトの名無しさんNGNG
>>510
catchしないで上に投げるという選択肢もあるかと。

>>511
おいらは、そういう場合俺様Exceptionをthrowしとくぞ。
0519デフォルトの名無しさんNGNG
なんでtry内部でreturnしちゃダメなの?
0520デフォルトの名無しさんNGNG
■PC-Success 個人情報流出に対するホームページ

http://whythishappened.tripod.co.jp
0521デフォルトの名無しさんNGNG
>>518
そうですね。スローがベターですね
0522デフォルトの名無しさんNGNG
>>519
少なくとも、tryの後にfinallyがあったら、マズイだろう
0523デフォルトの名無しさんNGNG
>>522 よく使うんだけど意識して作ってあったらマズくないよね。
ただし finally ブロックはリソースのクリーンアップに限定使用っ
て感じだけど。
0524デフォルトの名無しさんNGNG
>>519
returnする時にfinallyが呼ばれないってのは、
言語仕様的にクソだと思うがどうよ?
0525デフォルトの名無しさんNGNG
>>524
逆に、明示的に呼びたくないときはそうすればいいのかな
0526デフォルトの名無しさんNGNG
>>525
finallyをわざわざ書いてるのに、
「明示的に呼びたくないとき」なんてあるのか?
returnとfinallyが協調しないなんて、おかしいよ。
0527デフォルトの名無しさんNGNG
>>523
>524-526 あたりの解釈の幅ゆえに
try〜catchでは、returnするのは
できれば止めた方がいいかと思われ
0528デフォルトの名無しさんNGNG
>>518

これが正解。

エラーが発生したことを、fileがnullかどうかで伝えるのではなく、
例外で伝えないとだめ。
そうしないと呼び出し元でcatchできなくなり、エラー処理が煩雑になる。
0529デフォルトの名無しさんNGNG
戻り値があるばあいは、
呼び出しで例外を処理するってことですか?
0530デフォルトの名無しさんNGNG
>>529

JavaはわからないのでC++でサンプルを書かせてもらいます。

×
if (method_open(filename))
{
 if (method_read()) ...
 if (method_write()) ...
 method_close();
}

○
try
{
 method_open(filename);
 method_read();
 method_write();
 method_close();
} catch(exception &e)
{
 error_proc();
}

method_openやmethod_readが例外を投げずにエラーコードで返すと、
呼び出し元のエラー処理って複雑にならない?

Javaは知らないから、下のように書けるかどうかわからないけど、
呼び出し元も呼び出される側もこのほうが単純でしょう。

public FileWriter newMethod() {
 try {
  FileWriter file = new java.io.FileWriter("filename");
  return file;
 } catch (IOException ex) {
  ex.printStackTrace();
  throw ex;
 }
}
0531デフォルトの名無しさんNGNG
下の例だとコンパイルがとおりません。
try{}catch{}の下にreturnを入れる必要があります。
となると
public FileWriter newMethod() {
FileWriter file = null;
try{
file = new java.io.FileWriter("filename");
  return file;
 } catch (IOException ex) {
  ex.printStackTrace();
  throw ex;
 }
return file;
}
となります
最後に戻す必要があるので、
変数の宣言と同時にインスタンスを行うことができないのが
まどろっこしいです
0532デフォルトの名無しさんNGNG
まちがえた。
try
の中のreturnは不要です
0533デフォルトの名無しさんNGNG
ArrayList list=new ArrayList();
Double[] p=(Double[])list.toArray(new Double[0]);
long num=p.length;
for(long i=num;i>0;i--)
  System.out.println(p[i-1]);

上のようにすると最後の行で精度が落ちている可能性で止まってしまいます
配列pの長さをlongにするにはどうすればいいのでしょうか?
0534デフォルトの名無しさんNGNG
int型の上限って2,147,483,647だよね。
それで足りないってことは・・・

doubleは64ビットだから
8byte * 2,147,483,647 = 17,179,869,176

・・・データのサイズが17GB超えてる?
なんか凄いね、それ。

あと、toArrrayの使い方間違ってる気が。
0535デフォルトの名無しさんNGNG
>>534
doubleが2の64乗だと思ってない?
0536デフォルトの名無しさんNGNG
>8byte * 2,147,483,647 = 17,179,869,176

いろんな意味でツッコミ入りまくる計算やな……。

とりあえず、基本情報技術者試験でも受けてきなはれ。
んで基礎からシコシコお勉強。
まだ秋の申し込み間に合うで。
http://www.jitec.jipdec.or.jp/
0537デフォルトの名無しさんNGNG
つーかintの上限を越える長さの配列なんか作れるの?
0538534NGNG
スマソ。534 != 533だ。なんか紛らわしかったかも。
なんかおれ変なこと言ってる?

配列のサイズがintで扱いきれないってことは
配列の要素数が2,147,483,647以上ってことで、
それでdoubleひとつが8byte、ってことでああ書いたんだけど・・・。
単位(byte)落ちたのはミスだ。ごめん。

おれ、なんか頭茹だってる?

あと、toArrayの使い方はあれでいいみたいだった。
あやまります。ごめんなさいごめんなさい。
・・・なんか本気で不安になってきた。頭冷やしてきます。
0539デフォルトの名無しさんNGNG
>>538
まぁまぁ、マターリしようや。
0540533NGNG
お、いつのまにかいっぱい・・
>>537
intを越える事はできないんですね、にゃるほど
みんなには悪いけど・・あーすっきりした
0541デフォルトの名無しさんNGNG
超えることができないってのも正しいけど、要するに配列の要素は
intが要求されるってだけのことだよ。言語仕様見れ。
0542デフォルトの名無しさんNGNG
げ、要素->添え字。超える->越える。鬱氏。
0543:)NGNG
>>189
早速のレスありがとうございます。
ごめんなさい。chgはすでに使ってるんですが、
できればIEのツールバー等に張り付くプラグイン型を
探しています。
0544:)NGNG
↑ごめんなさい。間違えました。
0545デフォルトの名無しさんNGNG
switchにもlong値が使えない罠
0546デフォルトの名無しさんNGNG
つうか、なんでJavaのint(signed 32bit)で不足するような配列添字や
switchがあるんだYO!どんなコードかいてんだYO!

doubleとlongは64ビットで、バイトコードレベルで2ワード消費するから、
単純に遅くなるぞ。必要もないのにわざわざ使うな、というのが普通じゃ
ないの?
0547デフォルトの名無しさんNGNG
switch(arg)
{
case 0:
 〜
case 0x1ffffffff:
 〜
}
0548デフォルトの名無しさんNGNG
意外なところで直交性ないんだね。
sage。
0549デフォルトの名無しさんNGNG
直交性って何?
0550デフォルトの名無しさんNGNG
A使ってB出来るならB使ったってA出来るだろ
ってやつだ
0551デフォルトの名無しさんNGNG
>>546
floatよりdoubleのほうが遅いの?
0552とおりすがりNGNG
>>551
floatよりdoubleの方がでかいし・・・
0553デフォルトの名無しさんNGNG
C言語使ってる頃に、
「floatはCPU内部で一旦doubleに変換して演算をして
その後もう一度floatに格納する」って聞いたことがあるんだけど。
Javaではそういうことはないのかな?
0554デフォルトの名無しさんNGNG
>>553
すっげー昔の話かと。
0555デフォルトの名無しさんNGNG
Javaのdouble,longは、バイトコードレベルで、値自体にint,floatの
倍の2word使用するし、それに伴ってスタック出し入れにもint,float
の倍か又はそれ以上の操作(スタック操作は1ワード毎にやるので)を
必要とするので、単純に遅くなると思うですよ。
0556名など無用NGNG
RMIでのリモートオブジェクトと、EJBのSessionBeanの違いがよくわかりません。
おしえろ〜〜。
0557デフォルトの名無しさんNGNG
なんかjavacのsourcepathオプションが効きまへん。
カレントディレクトリにディレクトリhoge用意して
その中にHoge.javaつっこんで

javac -sourcepath hoge Hoge.java
エラー: Hoge.java を読み込めません。
エラー 1 個

と非常につれないです。-sourcepath ./hogeでもダメです。
でもAntのjavacエレメントのsourcepath属性はちゃんと効きます。
なんでなんでなんで?
0558デフォルトの名無しさんNGNG
JTextAreaにappend()で文字を追加していく際に、
画面からはみ出す部分に対して、自動でスクロールさせたいのですが、
どうすればよいのでしょうか?
スクロールの方向は縦方向のみだけでいいのですが。
JTextAreaにはJScrollPaneのコンポーネントとすることで
スクロールバーをつけてみました。
0559557NGNG
自己解決しやした。
javac -sourcepath hoge hoge\Hoge.java
ってせにゃあかんのね。
Cコンパイラとかのソースディレクトリ指定とは別物なのか。
0560デフォルトの名無しさんNGNG
>>552
>>555
はっはっは。それはどうかな明智君!

n += 1234.5; n -= 6789.0;
n *= 1234.5; n /= 6789.0;

を1億回ループさせたら(もちろんバイトコード考慮して別のメソッドで)
floatだと18.577秒、doubleだと14.1秒になりました。
ま、大量の浮動小数点を扱う場合は
メモリアクセスがボトルネックになってfloatのほうが都合よさげだけど。
0561560NGNG
逆アセンブルしてギャース!
n += 1234.5f; n -= 6789.0f;
n *= 1234.5f; n /= 6789.0f;
ってしなかったせいでdouble<->float変換が起きていたらしい。

んで正しい結果。
それでもfloatで14.1秒、doubleで14.1秒で同じです。
0562デフォルトの名無しさんNGNG
いちいちF付けるのもイヤだなあ
大体、有効桁数が6〜7桁しかないでしょ
0563デフォルトの名無しさんNGNG
初歩的な質問なんですが
String型のyをint型のxに代入するには
yをIntegerクラスにしてから、int型にしてxに代入するんですよね
yをxに直で代入できる静的メソッドってないんですか?
0564デフォルトの名無しさんNGNG
Stringをintには代入できません。なにワケワカランコト
いってんの?

多分あんたが欲しいのは、
static int java.lang.Integer#parseInt(java.lang.String)
でしょうけど。
0565デフォルトの名無しさんNGNG
>>563
x=Integer.parseInt(y); じゃあダメなの?(大爆笑)
0566デフォルトの名無しさんNGNG
夏休みだねえ…
0567デフォルトの名無しさんNGNG
夏休み厨房へ注意:まずドキュメントを読みましょう。
0568デフォルトの名無しさんNGNG
>>567
おにいちゃん、どきゅめんとってなぁに?
0569デフォルトの名無しさんNGNG
>>569
穴を提供してください。
0570デフォルトの名無しさんNGNG
>>569
再帰堀りか、器用だな。
0571563NGNG
>>564
おっさん、ちがうちがう。
まだ、独習JAVAのはじめのほうしか読んでないから
代入できるとか言っちまった。

>>565
アナタ正解
アナタスキ
0572デフォルトの名無しさんNGNG
>>564と>>565が同じ事書いてると分からないみたいだな。
その本終えて、少しはドキュメント読んでから来い。
0573デフォルトの名無しさんNGNG
>>563=571
意味不明 564と565のアドバイスは同じ意味だよ
0574デフォルトの名無しさんNGNG
JAVAで作ったGUI上からCで作ったプログラムを実行したいのですが
どうしたらいいのですか?
また、Cプログラムの実行結果をGUI上に表示することはできますか?
0575デフォルトの名無しさんNGNG
>>574 Runtime#exec()
0576デフォルトの名無しさんNGNG
今までVC++をやってきて、これからもWin32アプリケーションでは
VC++を使いつづけようと思っているんですが、どんな環境でも動く
というJavaに魅力を感じます。C++ユーザーが分かり易いように書かれた
Javaの入門書を教えてください。
0577デフォルトの名無しさんNGNG
SUN JAVA2て書いてある分厚い本
0578デフォルトの名無しさんNGNG
package hoge;
import ClassName; //デフォルトパッケージのクラス

public class xxx{
*******
}
のようにデフォルトパッケージ内のクラスをimportしたソースをjavadocにかけようとしても importに.が無い といわれてしまいます
どうすればうまくいくでしょうか?あるいはjacadocのバグですか?
0579デフォルトの名無しさんNGNG
すぐコンパイラのバグとか言い出す輩が最近多い。気をつけよう。
0580デフォルトの名無しさんNGNG
>>573
そう切り替えしたら、571が「普通の人にとってはお前らの言ってることなんて、
全然わからねぇんだよ」っていいそう
0581デフォルトの名無しさんNGNG
>>576
「プログラミング言語Java 第3版」がお勧め。
全般的な話題をカバーしつつ、冗長でもなくよくまとまっている。
ピアソンから出てる。

ISBN4-89471-343-8
0582でふNGNG
独習Javaもなかなか
0583デフォルトの名無しさんNGNG
>>582
独習Javaは、あまりに初心者向けすぎる。
いままで、C++使ってきたなら、やはり>>581の
「プログラミング言語Java 第3版」がいいだろ。
0584デフォルトの名無しさんNGNG
例外のtyr catchはできるだけ、呼び出しに実装したほうがいいのですか?
なんとなく、例外がおきる場所のすぐそばでスタックとレースを吐かせたい
きがするので、結局例外がおきそうなメソッド全部にtry catchを実装してしまいます

There's one
general rule about it: try to catch the exception at
as closest to the surface. This means that when A
calls B, B calls C, C calls D and D throws an
exception, very often it makes sence to implement the
try..catch in A.
0585デフォルトの名無しさんNGNG
その例外に対して障害対応動作が出来るところ。
0586デフォルトの名無しさんNGNG
初心者向けすぎるんですか、ちょっとショック。その独習Javaで解答通り入力しても
コンパイルエラーが出るので困ってます。

class ObjArray {
 public static void main(String args[]) {
  Object array[] = new object[5];
  array[0] = new integer array[0];
  array[1] = new float array[1];
  //以下略

これの3行目以降でエラーが出ます。
0587デフォルトの名無しさんNGNG
object[5] → Object[5]
0588デフォルトの名無しさんNGNG
というか本当にこう書いてあったのか?ネタ?
0589デフォルトの名無しさんNGNG
すいません、コピペじゃないので間違いだらけでした。コピペ
class ObjectArray {
public static void main(String args[]) {
Object array[] = new Object[5];
array[0] = new Integer(4);
array[1] = new String("Hello");
//以下略
暑いのでぼけてます。もうちょと自分で考えてからあぷするよにします。
0590デフォルトの名無しさんNGNG
エラーメッセージも貼り付けてくれ。
0591デフォルトの名無しさんNGNG
GPLじゃないフリーPNGエンコーダのクラスないですか?
いまのところ見つかったのはGPLだけだった。
0592デフォルトの名無しさんNGNG
>>591
libpngはGPLじゃないだろ。ってJavaスレか。

http://java.sun.com/products/jimi/
http://java.sun.com/products/java-media/jai/
http://oikaze.com/~tamada/TJP/
0593デフォルトの名無しさんNGNG
関数の戻り値を成功したか否かといったステータスにつかうことは結構あることだと
思いますが、javaでこれをしたときに、関数の中での計算結果などを返すには
引数で配列やオブジェクトを渡す以外にないんですか?

例えば、ただint型の値がほしいだけなのにそれを何かのクラスで包むのは面倒な気がするんですが。
0594デフォルトの名無しさんNGNG
>>593
例外を使え
ただそれだけだ
0595デフォルトの名無しさんNGNG
>>593
プライベートなフィールドをつくっておく。
これでだいたい解決するよ。
0596デフォルトの名無しさんNGNG
>>593
引数に計算結果を返すようなメソッドは恰好悪いので使うべきじゃない。

こういう場合は、適当なクラス作って
それに対するメソッド呼び出しの形をとるのが普通。
# 実行が成功したかどうかは返り値か例外で伝える。
0597593NGNG
これ連結リストを作っつているときに思ったんですが。
まず 「データと次のNodeオブジェクトへの参照を持つ変数」を持っているNodeクラスと
連結リストを管理するListクラスを作りました。

そして、Listクラスで要素を取り出したり、加えたりするようにしたんですが、
例えば要素を取り出すメソッドは空リストの時は取り出せなかったということを
示すために戻り値をステータスすると、値を返すには引数でNodeオブジェクトをとって
それに取り出した値をセットして返すという方法にするということでしょうか?

ところで、Javaで連結リストをつくるときはこの方法でいいんでしょうか?
Cで作るときのをまねて作ってみたんですが、Javaでnewして作ったオブジェクトって
Cでいう(自分でfreeできない)mallocで確保した領域にあるって考えていいんですか?

実はCもあんまりだったりします。
質問多くてすいません。
0598デフォルトの名無しさんNGNG
>>597
まずはこいつを読むべし。
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/util/LinkedList.html

実装も気になるのなら、ソースも展開して読むべし。
0599デフォルトの名無しさんNGNG
なんの為に?つうのが今一わからんけど。Collectionクラス(とその派生クラス)
使えばいいことだし。
単に練習的に作るのならかまわないけど。Cと同じような実装をJavaで書くと
いびつなのが出来るかも。Collection系ってC++で言うSTLみたいな機能提供してる
けど実装の仕方が全く違うので参考になるんでは?
0600デフォルトの名無しさんNGNG
>けど実装の仕方が全く違うので参考になるんでは?
まったく違う??
0601599NGNG
C++は天プレ使ってるつう意味だったんだけど(´д`;)
Javaの方が素直な実装に感じる。
0602593NGNG
>>598
すいません。ソースはどうやってみるんですか?

>>599
>なんの為に?
練習です。アルゴリズムを勉強しようと思って。
Cもまだまだ勉強中なんですが、Javaも面白そうだなと。
ちなみに、C++はぜんぜんやったことありません。
0603デフォルトの名無しさんNGNG
>>602
JDKダウンロードしてインストールしたらsrc.jarとかいうファイルがあるから

>jar xvf src.jar だ

zipとおなじだから
zipとしてむりやりその辺のアーカイバでも展開できるかもね。
0604デフォルトの名無しさんNGNG
gcc 3.0がでて、ついでにgcjなるものも出たらしいのですが
詳しいことがわかりません。
これがJavaのネイティブコンパイラだということはわかったのですが
だれか、もっと詳しい話知りませんか?
0605デフォルトの名無しさんNGNG
>>604
検索してみるとか検索してみるとか検索してみるとか思いつかなかったの?
適当に一つ。
http://www.hakusan.tsg.ne.jp/~tjkawa/diary/mini/gcjbench.rhtml
0606デフォルトの名無しさんNGNG
604じゃないけど知らんかったので見てみた
まだまだかな(´д`;)
しかしこれSunから文句でないんかな
0607デフォルトの名無しさんNGNG
うえーん、JakartaプロジェクトのRegExp使ってみたけどエラーが頻発

使わないほうがいいのかこれ?
0608デフォルトの名無しさんNGNG
ボタンが押されたら、
そのボタンのある画面を表示しているブラウザ自体を閉じることってできます?
0609デフォルトの名無しさんNGNG
>>608
JavaScriptと連動できるのなら…。
0610デフォルトの名無しさんNGNG
>> 609
即レス、有難うございます。

う〜ん
難しそうだな〜
0611デフォルトの名無しさんNGNG
>>610
import netscape.javascript.JSObject;

 JSObject js = JSObject..getWindow(this);
 js..call("close", new Object[0]);

みたいな感じだったかな?thisはAppletね。
あと、Netscape4.xにはいってる"java40.jar"(だっけ?)にclasspath通しておいてね。

全部うろ覚え。どこにドキュメントあるかも忘れちゃったし。

# Java Plug-InからLiveConnect使えるようなブラウザって無いのかな?
0612デフォルトの名無しさんNGNG
WindowsにJ2SEをインストールすると、
SDKのフォルダとProgram Files\JavaSoft\JRE\1.3.1のフォルダに
ランタイムとクラスライブラリが入りますけど、
この2つの関係とか役割とかってどーなってるんでしょうか?

というか、そもそもなんで2ヶ所に入るんでしょう?
中身も微妙に違うみたいだし。
0613デフォルトの名無しさんNGNG
Windowsにjavaが搭載されなくなるって聞いたんですけど、
これはWindowsでjavaが出来なくなるっていう意味ではないですよね?
JDKのようなソフトをインストールすれば、Javaでプログラミングしたり
Javaを実行したりすることが出来るんですよね?
これからも。
0614デフォルトの名無しさんNGNG
そりゃランタイム(VMっていうの?)インストールすればうごくでしょ。
まあ、標準になりえなかったわけで、期待するのはよしたほうがいいと思う。
0615デフォルトの名無しさんNGNG
>>613
SUNしだい。
0616デフォルトの名無しさんNGNG
JavaSoftにあるのがRuntime、ここにはコンパイラは入ってない
コンパイラはSDKフォルダにある

>613
MSのVMってすごーく古いから今でもSUNからRuntime取ってきといた方がいい
0617paraoNGNG
i-アプリ作成中なんですが、例えばサーバーには認証用のcgiとして
1か0の文字を返してくるものとします。
アプリ側ではそれをInputStreamReaderで読み込んで
変数に代入します
InputStream reader=new
InputStreamReader(connect.openInputStream());
char[] buf=new char[50];
int ch;
int i=0;
while(-1!=(ch=reader.read()) buf[i++]=(char)ch;

Stream flag=new Stream(buf,0,i);

String success=new String("1");
Stream failed=new Stream("0");

if(flag==success){
処理A
}
if(flag==failed){
処理B
}

}chatch{IOException・・・・・・
といような感じなのですが
1ないし0の文字はたしかに返ってくるのですが
この場合どうしてif文でどちらにもマッチしません
これだけの情報でご教授できましたらよろしくおねがいします
0618paraoNGNG
訂正
×Stream failed=new Stream("0");
○String failed=new String("0");
0619デフォルトの名無しさんNGNG
>>617
==はインスタンス参照(CやC++でいうところのアドレス)自身の比較。
直前にNEWしたインスタンスと==比較しても絶対に真にはならないです。

インスタンスの中身の値の比較には Object#equals(Object)のオーバー
ライドメソッドを使いましょう。(ユーザ作成クラスで、クラスの内容
比較をしたいなら、必ずこのメソッドのオーバーライドをしておきま
しょうね)
String#equals(String)は、Stringインスタンスが持っている文字列
同士を比較して、同じならtrue、異なるならfalseを返します。
0620デフォルトの名無しさんNGNG
byte b = in.readByte();
char c = (char)b
ってやると、ASCIIはちゃんと読めるですが、SJISの漢字がうまく読めません。
(signed→unsigned?)
Socketのサンプルで、localhostの80ポートでGETした内容を、g.drawString
したいだけなのですが、どうすればうまくいくでしょうか。
0621デフォルトの名無しさんNGNG
>>620
漢字とかの2バイト文字は1バイトではそもそも読めないですよ。

あと、InputStream直読みは文字コード変換などで問題があるので、
Readerを使いましょう。
たとえば、
socket socket = new Socket(/*接続先*/);
Reader in = new InputStreamReader(socket.getInputStream());
などとして、Readerを使いましょう。行単位で欲しいならBuffered
Reader等で更にラップするのもありです。
(Readerは、バイト列→文字コード変換を内部で勝手にやって
くれるストリーム読みクラスです)
0622paraoNGNG
早速ためしてみました
3日も悩んでたのでまじ感動っす
ありがとうございます
0623デフォルトの名無しさんNGNG
Java/CollectionFramework
↓
RougeWave/Tools.h++
↓
C++/STL

という順序でSTLを理解したおいらはアホでしょうか?
0624デフォルトの名無しさんNGNG
>>623
JAVAから始めたなら別にいいんじゃないの。
0625デフォルトの名無しさんNGNG
>622
CからJavaに移ってきたって感じだね(´ー`)y-~~
0626デフォルトの名無しさんNGNG
>>624
最初はC→C++→Javaでした。
C++の時の仕事で、みんなはTools.h++&Threads.h++を使っていた
のだけど、おいらは何がなんだか(そもそもこいつらがなんなのか)
分からんかった。

今はすぐわかる。Javaマンセー。
0627デフォルトの名無しさんNGNG
なぜか外のクラスを読む事ができなくなった。
aaa.javaからbbb b=new bbb();という文が読めなくなった。
心当たりと言えば・・昨日tomcat,apache,mysql,j2ee,などを入れた事。
うわーどこまで大丈夫だったかも知らん。また苦労してダウンロードして
インストールするのもいやだー。誰か助けてクレー
0628デフォルトの名無しさんNGNG
助けてほしいならどういう状況に陥ったか詳しく教えてクレー

# 多分クラスパスの関係だと思うが上の情報だけじゃちょっと...
0629デフォルトの名無しさんNGNG
>>628
オーサンキュー
上の文だとbbb b=new bbb();の文がシンボル解釈できませんです
確かにクラスパス訳分からず書いたり消したりしてたからなあ
とりあえずautoexec.batは以下。
SET PATH=C:\jdk1.3\bin;%PATH%;
SET PATH=C:\j2ee\bin;%PATH%;
SET JAVA_HOME=C:\jdk1.3
SET J2EE_HOME=C:\j2ee
SET TOMCAT_HOME=C:\tomcat
SET CLASSPATH=C:\jdk1.3\bin;%CLASSPATH%
SET CLASSPATH=C:\jdk1.3\lib\tools.jar;%CLASSPATH%
SET CLASSPATH=C:\jdk1.3\lib\mm.mysql-2.0.4-bin.jar;%CLASSPATH%
SET CLASSPATH=C:\jdk1.3\lib\j2ee.jar;%CLASSPATH%
SET CLASSPATH=C:\jdk1.3\jre\bin;%CLASSPATH%
SET CLASSPATH=C:\tomcat\lib\servlet.jar;%CLASSPATH%
なんか足りないのありますか?
0630デフォルトの名無しさんNGNG
class A {
〜
String flag=new String("abc");
〜
}

class B {
〜
TextBox testbox=new TextBox(A.flag,16,1,TextBox.DISPLAY_ANY);
〜
}

この場合class Bで使用されてるテキストボックスはなぜ空になるのか
皆目検討がつきません。

代入と参照をメインクラスのメソッドなどにしてもうまくいきません
というより、もっと簡単に普通参照できますよね?
まじ頭いたいっす!
0631デフォルトの名無しさんNGNG
classpathに.が入ってないに1票
0632デフォルトの名無しさんNGNG
630の者なんですが

class A{
public static String flag=new String();
flag=new String("abc");
}

でした
訂正です
0633デフォルトの名無しさんNGNG
>>631
穴があったら入りたいです・・
大騒ぎしてた・・
バグじゃないですかとか書いてたら死ぬしかないとこだった・・
0634デフォルトの名無しさんNGNG
>>632
A.flagはnew String()だったってことなんでしょ?
flag = new String("abc")はいつやってるの?
どこかのメソッドの中だとしたら、そのメソッドコールしないと
"abc"に変わらないよ。
0635デフォルトの名無しさんNGNG
>632
省略しすぎでよくわからん
class A{
 public static String flag = String("abc");
}
でいいんじゃないの。あと怖いからfinalもつけとけ。
0636デフォルトの名無しさんNGNG
失礼しました
その場合
AというクラスのとあるメソッドからInputStreamReaderから変数に確保した文字列を、別のBというクラスのメソッドで参照したいというこです。
0637デフォルトの名無しさんNGNG
>>636
じゃあ決まりだ。Bのクラスメソッドで参照した時点では
まだ初期値のままなだけだよ。ちゃんと同期取れてるか?
0638デフォルトの名無しさんNGNG
age
0639デフォルトの名無しさんNGNG
なるほど同期っすね。わかりました。ちょっくら
がんばってみます
またお世話になりにこないようにがんばる次第であります
0640名無しさん@LV2001NGNG
プログラムの1部分なんですけど、

     setMes(a.name+'はb?',3000);
を表示させて、2秒後に
setMes(a.name+'はcかな?',3000);
を表示させて、さらに3秒後に
setMes(a.name+'はそれともD',3000);
を表示させるには
 どうすればいいでしょうか??
0641名無しさんNGNG
どうすればいいのかな?
0642デフォルトの名無しさんNGNG
>>640
java.lang.Thread#sleep(int millisec);
0643デフォルトの名無しさんNGNG
教エテ君の大量生産にならないよう気をつけてね・・・
0644デフォルトの名無しさんNGNG
>>643
夏休みの宿命ですな。参考書買う金も意欲もない、他人の血と汗の
結晶を剽窃する事に何の罪悪感も感じないアホ学生に限って、ネット
サーフィンする余裕はあるんだよね。逝ってよし。
0645デフォルトの名無しさんNGNG
ネット環境恵まれてるんだからJavaSDKでも検索すればすむことなのにね。
0646デフォルトの名無しさんNGNG
すみません。初心者なんですが、Java(やC)でプログラムを書く場合、
COBOLでは

COMPUTE A = B / 156.3 * 1.25 * 4.2

のようにおこなっていた計算を

double  a;
double  b;
  :
a =  b / 156.3 * 1.25 * 4.2;

のようにそのままおこなって宜しいのでしょうか?
ある本によると、「COBOLは十進数での計算をしてくれるが、Java
、C言語などは2進数での計算をしているので、計算誤差がでる」
等と書いてあったのですが。
0647WILLNGNG
>>646
2進数で小数点をどう取り扱ってるか勉強しなされ。
そーすれば自ずと解答が見えてくるだろう。

つーか、Javaに限った問題じゃないだろ・・・。
0648デフォルトの名無しさんNGNG
>>646
浮動小数点計算の誤差が嫌なら、
例えば100倍しといてintで計算して、10^-2を別途保存しときなされ。
0649ナナシNGNG
SDKのドキュメント見たのですが、わからないので教えてください。
(探し方が悪いと思うのですが)
スレッドを待機させるのは
スレッドオブジェクト.sleep(秒数)
だっと思うのですが、スレッド使っていないときの待機って
どうすればよいのでしょうか?
waitだとちょっと違うようですし・・・
教えてください。
0650デフォルトの名無しさんNGNG
Thread.sleep(int millisec)

staticメソッドってしってますか?
0651ナナシNGNG
>650
ありがとうございました。
もっと勉強します。
では!
0652デフォルトの名無しさんNGNG
>646
10進で計算ってBCDなのか?勝手に四捨五入してくれるのか?
有効桁数がどれくらい必要なのか調べて普通のdoubleでいいのか
もっと桁数が必要なのか判断すれ。
0653俺も厨房NGNG
>>649
>スレッド使っていないときの待機って

スレッドを使ってないって何?

インスタンス生成
↓ run()呼び出し
スレッド開始
↓ waitやsleep
スレッド待機
↓ notifyや時間切れ
スレッド再開
↓ run()抜け
スレッド終了

このどこなのかサパーリワカラン。
0654ナナシNGNG
>653
たとえば、単純に一秒おきに数値を増やしていく処理を
for分で100回まわすとか・・・です。
0655デフォルトの名無しさんNGNG
>637
やはりだめでした。いろいろ調べたんですが
ちなみに同期がとれてるかというところの意味をちょっと
詳しく教えてほしいのですが
0656デフォルトの名無しさんNGNG
>654
for(100回){
 Thread.sleep(1000);
 count++;
}
じゃだめなのか?バックグラウンドでやりたいならこの処理を
別Threadで回すこと。ただしcountの同期が必要。

>655
もうちょっと詳しく書かないと何がしたいのかわからんって。
637じゃないので637の言ってる意味は不明。
0657デフォルトの名無しさんNGNG
すいませんでした
えっとですね、
class A {
//HttpConectionで接続
   while(-1!=(ch=reader.read()))buf[i++]=(char)ch;
String data=new String(buf,0,i);

//新しいパネルクラスを呼び出す
}

class NewPanel extends Panel{
Label label=new Label(data);
add(label);

//この場合の(data)が参照できないんです
}

という感じなのですが
0658デフォルトの名無しさんNGNG
追加
//新しいパネルクラスというのが下のNewPanelクラスの呼び出しっす
そこには書いてませんが
メインクラスからDisplay.setCurrentでそのパネルを呼び出しています
そこまでは大丈夫です
0659デフォルトの名無しさんNGNG
なんか説明下手な奴だなー
String data=new String(buf,0,i);
の後に
NewPanel np = new NewPanel();
が続くのか?
class NewPanelのdataはどこから取ってきた?
コンパイルさえ通らないと思うけど。
素直にNewPanelのコンストラクタにその文字列渡せばいいんじゃないの?
0660デフォルトの名無しさんNGNG
すんません、初心者を盾にするつもりはないのですが
(それ以前の問題っすね。)
NewPanelのコンストラクタに文字列を渡すということは
class Aからclass NewPanelで宣言した変数に文字列を渡すってことですか?
0661デフォルトの名無しさんNGNG
あのー、
パネルやラベルの中身を枠で囲んで表示させるってできますか?

あと、例えばGridLayout(5,5)を
表にして表示させることってできます?

よろしくお願いします。
0662デフォルトの名無しさんNGNG
>>660
変数のスコープ(有効範囲)を意識して自分のソースのその<data>って変数を
よく追いかけてみ

あらかたNewPanelにあるdataっていう変数は
classAのdataって言う変数と名前は同じだけどスコープが異なる
別の変数なんだろ
0663デフォルトの名無しさんNGNG
了解、もうちょい気合いれて精進します!
0664デフォルトの名無しさんNGNG
>660
NewPanel np = new NewPanel(data);
ってコンストラクタを作る。

>661
border使う、つうか根本的にTable(or JTable)使え。
0665661NGNG
すみません。
Table とはどんなものなんでしょうか?

手元にある参考書には何も載ってなくて・・・。
どこかいいサイトご存知なら、教えてください。
0666デフォルトの名無しさんNGNG
>>665
夏厨が、Tableとは、タブレットという意味だ
おもにお絵かきする道具じゃ
0667デフォルトの名無しさんNGNG
>665
http://java.sun.com/j2se/1.3/ja/docs/ja/index.html
>666
おめーん
0668ナナシNGNG
sleepの件はどうもありがとうございました。
repaint()についてなのですが、ドキュメントだと
「このコンポーネントを再描画します。
このメソッドは、このコンポーネントの update メソッドを可能な限り速やかに呼び出します。」
としか書いてないので悩んでいます。
以下のクラス(数字が増えていくアプレット)を実行すると、スレッドでup()を呼び出しているときは、
再描画してくれるのですが、止めたあと(止めてから5数字があがる)は、
カウントアップされずにいきなり5あがった数字が出てきます。
repaint()が効いていないということですよね??
原因がわかる方教えてください。
よろしくお願いします。
0669ナナシNGNG
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class test extends Applet implements Runnable,ActionListener{
Thread MyThread;
int count;
Graphics offGraphics;
Label lb;

public void init(){
String c = new String();
count = 0;
Panel p = new Panel();
Button b = new Button("OK");
b.addActionListener(this);
p.add(b);
setLayout(new BorderLayout());
add("South",p);
lb = new Label("0");
lb.setAlignment(Label.RIGHT);
add("North",lb);
}

public void paint(Graphics g){
String c = new String();
lb.setText(c.valueOf(count));
}

public void run(){
Thread thisThread = Thread.currentThread();
while(MyThread == thisThread){
up();
try{
MyThread.sleep(1000);
}catch(InterruptedException e){
break;
}

}
}
0670ナナシNGNG
public void up(){
count++;
if(count > 1000){
count = 0;
}
repaint();
}

public void actionPerformed(ActionEvent e){
String arg = e.getActionCommand();
String c = new String();
if(arg.equals("OK")){
if(MyThread == null){
MyThread = new Thread(this);
MyThread.start();
count = 0;
}else{
MyThread = null;
for(int i = 0;i < 5;i++){
up();
try{
Thread.sleep(1000);
}catch(InterruptedException e1){
break;
}
}
lb.setText(c.valueOf(count));
}
}
}

public void update(Graphics g){
paint(g);
}
}
0671デフォルトの名無しさんNGNG
>>668-669
ぜんぜんソースが足りねえぞゴラ
つーかスレッド止めたらup()ひいてはrepaint()を呼ぶのはどこなんだゴラ
つーか質問の仕方へたすぎだゴラ
つーかおまえもう少し頭整理してから質問しろゴラ
0672671NGNG
ごめんよ669までしかあぷされてない状態で
書き込んじまったよ
0673671NGNG
JDKドキュメントのThread#sleepの説明には

「現在実行中のスレッドを、指定されたミリ秒数の間、スリープ (一時的に実行を停止) させます。」
~~~~~~~~~~~~~~~~~~~~~~~
ってあるだろ。

65行目のsleepは58行目で起動したスレッドをスリープするんじゃなくて
もとから動いていたデフォルトのスレッド(正確にはAWTのイベント用スレッド)を
一時停止してるだけだよ。
0674671NGNG
ついでに言うと

actionPerformedみたいに画面のイベントで呼び出される処理は
sleepしたり時間のかかる処理はしてはいけない。

そうしないとその処理が終了するまでは画面が固まってしまって
ウントモスントモ言わなくなる(処理系が多い)。
そのあいだrepaintの処理も後回しにされる。

だから5秒間画面が固まった後突然5カウントあがったように見える。
0675デフォルトの名無しさんNGNG
>>669-970
なんと言うか何をやりたいのかソースからさっぱり見えてこない
何やりたいのか先書いた方がいいんじゃないかい?
根本的に変なつくりに見える。
labelを別スレッドから更新してるがスレッドセーブだっけ?
スレッド使うならもうちょっとマルチスレッドの勉強すれ。
0676デフォルトの名無しさんNGNG
間違い
>>669-670
0677デフォルトの名無しさんNGNG
バカ厨増えたなあ。
0678デフォルトの名無しさんNGNG
バカ厨しか居ませんが?
0679デフォルトの名無しさんNGNG

韓国のヤフーチャットでハングルが表示されなくて困っています。
他のページは表示されます。javaページの場合は、どうしたら表示されるのでしょうか。
よろしくお願いします。
0680679NGNG
リンクを書き忘れました。
http://kr.chat.yahoo.com/
0681七菜詩讃NGNG
実行するとあらかじめ登録しておいたサイト群へ
ウィンドウを開きアクセスしてくれるプログラム作りたいのですが
Javaアプリケーションだとほぼ無理みたいです。
アプレットなら可能ですが、アプレットの場合って
やっぱり、他のファイル(テキストファイル)に対して
読み書きってできないのでしょうか?
0682デフォルトの名無しさんNGNG
<強迫性人格障害の診断基準>
アメリカ精神医学界 DMS-IV
秩序、完全主義、精神面および対人関係の統制にとらわれ、柔軟性、開放性、効率性が犠牲にされる。 成人早期に始まり、種々の状況で明らかになる。
以下のうち4つ(またはそれ以上)で示される。

1.活動の主要点が見失われるまでに、細目、規制、一覧表、順序、構成、予定表にしばられる。
2.課題の達成を妨げるような完全主義を示す。
(例:自分自身の過度に厳密な基準が満たされない という理由で1つの計画を完成させることができない。)
3.娯楽や友人関係を犠牲にしてまで仕事と生産性に過剰にのめりこむ。
(明白な経済的必要性はない。)
4.道徳、倫理、価値観についての事柄に、過度に誠実で良心的かつ融通がきかない。
5.感傷的な意味のない物の場合でも、使い古した、または価値のないものを捨てることができない。
6.他人が自分のやるやり方に従わない限り、仕事をまかせることができない。また一緒に仕事をすることができない。
7.自分のためにも他人のためにも、ケチなお金の使い方をする。お金は将来の破局に備えて貯めるべきだという歪んだ信念を持っている。
8.堅さと頑固さを示す。
0683デフォルトの名無しさんNGNG
>>682
全部当てはまるよ。まいったな〜コリャ
0684デフォルトの名無しさんNGNG
>>682
漏れも結構あてはまるなぁ、トホホ

これに全部当てはまる人は、車輪の開発が好きそうだね、なんとなく
0685679NGNG
どなたか教えてください。
0686デフォルトの名無しさんNGNG
ふふふ。車輪の再発明とは言えども、
吾輩はF1カー向けのニュータイヤの開発のつもりだ。
0687デフォルトの名無しさんNGNG
セ酩マシシソゥ
0688デフォルトの名無しさんNGNG
>>679
ロケール変えてみれば?
Windowsだったらコントロールパネルの地域のオプションってとこ。
ていうか板違いのような。。
0689デフォルトの名無しさんNGNG
>>681
Javaアプリじゃほぼ無理ですって結論はなぜ出てきた?
HttpURLRequestとか便利なクラスもあるし
HTML表示もサポートされてるのに
0690デフォルトの名無しさんNGNG
 RIFF MP3のタグ情報(SIフィールド?)をJavaで読みたいんですが、だれか
教えてくれませんか。
 ていうか、作ってみたんだけどうまくLISTチャンクの場所が見つからない
んですよね。ソースつけてみましたんで添削をお願いします。引数にRIFF mp3
ファイルを指定して"LIST"と出力されればいいんですけど。

 #Javaでこんなことしてる方が変なのか・・・

import java.io.*;

class Riff {
 public Riff(String fileName) { loadFile(fileName); }

 public void loadFile(String fileName) {
  byte[] riffChunk = new byte[12];
  byte[] dataChunk = new byte[8];
  byte[] buf = new byte[4];

  try {
   FileInputStream fis = new FileInputStream(fileName);
   fis.read(riffChunk);
   fis.read(dataChunk);

   System.arraycopy(dataChunk, 4, buf, 0, 4);
   dataSize = l2b(buf);

   fis.skip(dataSize);
   fis.read(buf);
   System.out.println(new String(buf));

   fis.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 public int l2b(byte[] b) {
  return ((b[3] & 0xff) << 24) | ((b[2] & 0xff) << 16) | ((b[1] & 0xff) << 8) | (b[0] & 0xff);
 }

 public static void main(String args[]) {
  Riff riff = new Riff(args[0]);
 }
}
0691デフォルトの名無しさんNGNG
>>690
これJavaの質問じゃねーだろ
RIFFの仕様書と
バイナリエディタで自分でなんとかシロ!
0692690NGNG
↑言われると思ったよ。Javaの問題じゃねーなと思ったんで、
JHBに投稿しなかったわけで(w

 言われずとも仕様も勉強したし、mp3infpのソースなんかも
読んだよ。それでできないから聞いたんだけどダメかねぇ。
682よりはJavaの話題ってことで勘弁してくれ。

 #ところでRIFF MP3の正式な仕様書ってどこだ?

 それはそれとして、こういうソフトを作るときには構造体が
ないのは痛いね。あとエンディアンの違いとか。

 ま、力業でどうにでもなることなんだが、スマートな解決方法
があったら知りたいわけだ。次はもうちょっとためになるレスが
ほしいね。>691
0693高校生NGNG
フレーム分割したページで1つ目のページ内をクリックした時に
2つ目のページにしくんだJAVAがクリックを監視するJAVAプログラム
は作ることが出来ますか?もし出来るならソースを教えてください
0694デフォルトの名無しさんNGNG
>>693
まず主のいっているフレームがブラウザのフレームのことを言っているならすれ違いだ。
http://natto.2ch.net/test/read.cgi?bbs=hp&key=994168119
で聞け。

Java言語の標準ライブラリの
java.awt.Frameクラスやjavax.swing.JFrameの事を言っているなら
説明不足でやりたいことが良く分からん。
0695デフォルトの名無しさんNGNG
>>693
勤勉学生だね? がんばって勉強してください。
http://www.ipcs.chuo-u.ac.jp/~hagizawa/WWW/oshietekun.html
0696デフォルトの名無しさんNGNG
次のスレ立てる時はJavaScriptは板違いと1に書いてください。
0697デフォルトの名無しさんNGNG
JavaとJavaScriptの違いもわかってないだろうから無駄でしょう
0698デフォルトの名無しさんNGNG
何故JavaScriptはJavaScriptという名前になったのでしょうか?
0699高校生NGNG
すいません、今までいろいろネットや図書館で調べたのですが
わかりませんです。JAVASCRIPTではできないような気がするのですが、
HTMLを2つに分けて1つにアプレットをおいてもう1つのページの
クリック状況をを監視したい(ここにはアプレットもスクリプトも無しで)という内容なのですが
できる、できないかどうかわかりますか?くれくれ君で申し訳ないですが
せめて役に立つ書籍などありましたらお願いします。
0700デフォルトの名無しさんNGNG
WM_RBUTTONDOWNおよびWM_LBUTTONDOWNを拾ってください。
否応なしに監視できます。ただし、動的接続機構にしないとだめです。
0701デフォルトの名無しさんNGNG
条件はあるけど無理ではないかも
実装したことは無いので嘘があるかもしれんけど
1)Frame1にFormボタンを付ける、ハイパーリンクでもいけるかも
2)サーバー側にGET,POST,PUTに応答できるプログラムを用意する
3)Frame2のAppletにその情報を送る
1)のハイパーリンクにサーバースクリプトの位置+実際のリンク先URLに
すりゃいいような。
0702デフォルトの名無しさんNGNG
>>699
もうちょっと具体的にどんな感じの物を作りたいのか書いたら?
0703高校生 NGNG
>>701 さんありがとうございます、やってみます。本当の目的は
パワーポイントをオンラインブロードキャストじゃなくて
JAVAを使いクリック情報をサーバーに送ってクライアント側の
IEでフレーム分割内で開かれたPPTのスライドショウに同期したい
のです。だから2つに分ける必要があると思いました。

とにかく何か手がかりが見つかると思うのでやってみます。
ありがとうございました
0704デフォルトの名無しさんNGNG
しつもんなんですが、
テキストフィールドとボタンがあったとして、
テキストフィールドにFocusListener、ボタンには
ActionListenerをaddしてあるとします。

この時、フォーカスがテキストフィールドにある状態で
ボタンを押下した場合、FocusListenerのfocusLost()と
ActionListenerのactionPerformed()が動作しますが、
この2つの順番は保証されますか?

実際に動かしてみると常にfocusLost()が先に呼ばれている
ようには見えるのだけど・・。
0705705NGNG
はじめまして。
JDKのことをおききします。
http://www.ecs.cst.nihon-u.ac.jp/~mizocchi/b_java/jdkmeth.html
に書いてあるとおりに設定したつもりですが、
コマンドプロンプトで、
javac ***.java
とすると、
コマンドまたはファイル名が正しくありません.
と出ます。

やはり環境設定が間違っているのでしょうか。ちなみに、
AUTOEXEC.BAT
は

SET windir=C:\WINDOWS
SET winbootdir=C:\WINDOWS
SET COMSPEC=C:\WINDOWS\COMMAND.COM
SET PROMPT=$p$g
SET TEMP=C:\WINDOWS\TEMP
SET TMP=C:\WINDOWS\TEMP
SET PATH=C:\perl\bin;C:\WINDOWS;C:\WINDOWS\COMMAND;C:\Perl\bin;;C:\latex\bin;C:\JOK\bin
SET TEXMFMAIN=c:/latex/share/texmf
SET TEXMFCNF=c:/latex/share/texmf/web2c
SET CLASSPATH =.
になっています・・・。
0706デフォルトの名無しさんNGNG
>C:\JOK\bin
  ↑
 C:\JDK\bin じゃねーの?
0707705NGNG
いえ、JOKというフォルダを作ったのでC:\JOK\binで合ってると思うんですが。
0708デフォルトの名無しさんNGNG
Javaの質問じゃないとおもんだけど・・・・
0709705NGNG
すっ、すいません。
逝ってきます。
0710デフォルトの名無しさんNGNG
>>703
・・・PPT?って、もしかしてOffice?
ブロードキャストなんたらって、もしかしてofficeが自分で
投げてるの?それって、転送データのフォーマットって公開
されてるの?あるいは、自分で調べるか?

Javaでやるのは遠い道のりのような気がするが、最近変なものを
Sunが作ったので、使って見ると良いかもしれない。

なんとその名もCOM-Javaブリッジ。(・・・あのSunがそんなもの
を作るようになったのね。と思わないか?)

Sunのディベロッパーズコミュニティかどこだかにおちてるはずだ
から使ってみそ。
0711679NGNG
>>679 です。

>>688 さん、そこでは、韓国を選択することは出来ません。
どうしたら表示されますでしょうか。
困っています。よろしくお願いします。
0712デフォルトの名無しさんNGNG
>>710
PPTはPowerPointの拡張子
0713デフォルトの名無しさんNGNG
>>707
dir C:\JOK\bin\javac.exe
で確かめれ
つーかパスを通し方くらい理解しろ
0714デフォルトの名無しさんNGNG
Javaでクッキーを扱うことは出来るのですか?
もしあるならば参考サイトを教えてくれるとうれしいです。
0715デフォルトの名無しさんNGNG
>>714 JavaScript経由で可能
JavaとJavaScriptの連携方法(LiveConnect)は下記参照。
ttp://lance.harvey.co.jp/javascript/js20.html

もともとネスケの機能だけどIEもある程度使える。
互換性が怪しいけど単純にJavaScriptを呼び出すくらいなら動く。

JavaScriptからクッキーを扱う方法はWeb板で聞け
0716デフォルトの名無しさんNGNG
ありがとうございました。
早速試してみます。
0717デフォルトの名無しさんNGNG
変数の型を知るほうほうってないんですか?
0718デフォルトの名無しさんNGNG
>>717
"変数"の型なら宣言文を見るべし。
"変数に代入されているインスタンス"の型なら、"変数名.getClass()"だ。
0719717NGNG
>>718
class Kata{
   public static void main(String args[]){
のargs[0]ってstring型ですよね
0720デフォルトの名無しさんNGNG
>>719
違う。(java.lang.)String
0721デフォルトの名無しさんNGNG
>>717
リフレクションで可能な事は可能です。
Class.forName("クラス名").getField("フィールド名").getType().getName()
とか。
0722デフォルトの名無しさんNGNG
http://www.megabbs.com/program/index.html
0723デフォルトの名無しさんNGNG
import java.util.*;

class ThreadX extends Thread {
Calendar d;
int h,m,s;

public void run(){
while(true){
try{
Thread.sleep(1000);
}
catch(InterruptedException ex){
ex.printStackTrace();
}

h = d.get(Calendar.HOUR_OF_DAY);
m = d.get(Calendar.MINUTE);
s = d.get(Calendar.SECOND);

System.out.println(h + ":" + m + ":" + s);
}
}
}

class clock {
public static void main(String args[]){
ThreadX tx = new ThreadX();
tx.start();
}
}
一秒ごとに時刻を表示させたいんですけど、何がいけないんでしょうか?
0724デフォルトの名無しさんNGNG
>>723 とりあえずどういう状況なのか書け、
例外ならスタックトレースをコピペしろ。
0725デフォルトの名無しさんNGNG
>>723
publicなクラスが必要。
Calendar dがnull。
0726723NGNG
Calendar d がnull
なるほど。

d = Calendar.getInstance();
を加えたら、うまくいきました。
お騒がせいたしました。
0727725NGNG
ごめんpublicなクラスはいらなかった。
ちっと勘違い。鬱。
0728704NGNG
ちなみにJDKは1.18の話です。
0729デフォルトの名無しさんNGNG
バックグラウンドでプログラム走らせておいて、
windowsの終了時にプログラムも終了するようにしたいんですけど
JavaからWindowsの終了を検出する方法ってあります?
なにもしなくてもwindowsが終了させてくれるかと思ったんですが、
win98では「プログラムからの応答がありません」っていうダイアログがでて、終了してくれません。
0730ジャバーバリアンNGNG
透過Gifを読み込みそれを各々のイメージにコピーすると
透過が失われてしまいますが、どのようにしたら透過を保てますか?
よろしくおねがいします。

ダブルバッファも待ちもしてませんが・・・
import java.applet.*;
import java.awt.*;

public class test extends Applet{
int MONA_IMAGE_COUNT = 9;
Image loadImage;
Image kaniImage[] = new Image[MONA_IMAGE_COUNT];
Image wki;
Graphics wkg;
public void init() {
loadImage = getImage(getDocumentBase(), "mona.gif");
for (int cc = 0; cc < MONA_IMAGE_COUNT; cc++) {
wki = createImage(20, 20);
wkg = wki.getGraphics();
wkg.drawImage(loadImage, 0, 0, 20, 20, cc*20, 0, (cc+1)*20, 20, this);
kaniImage[cc] = wki;
}

}
public void paint(Graphics g){
g.fillRect(0, 0, 480, 360);
for (int cc = 0; cc < 9; cc++) {
g.drawImage(kaniImage[cc], cc*25 + 5, 35*cc, this);
}
}

}
0731デフォルトの名無しさんNGNG
Javaではそんな事はできないage
0732デフォルトの名無しさんNGNG
>>729
JNI使ってWin32APIでも呼び出せば?
0733デフォルトの名無しさんNGNG
>>730
とりあえずjava.awt.CropImageFilterつかって
Image image = createImage(new FilteredImageSource(loadImage.getSource(), new CropImageFilter(x, y, w, h));
かな。

Component.createImage(int, int)で返るImageってアルファチャンネル持ってないんだよね。
透過色も使えないみたいだし。
結局みんなBufferedImageのTYPE_INT_ARGB使ってるのかな?
誰かもっといい方法教えてくだされ。
0734デフォルトの名無しさんNGNG
>>729
javaw とか使えば?
0735730NGNG
>>733 さま
ありがとうございます。
ImageFilterは難しくなるので、分割しないでそのまま、
範囲絞って描画することにしました。
というか、アフォな質問すみませんでした。
0736デフォルトの名無しさんNGNG
透過画像と不透過画像で場合分けしてやがるし>Imageクラス
なんて前時代的な。
0737729NGNG
>>734
jviewでやってたんで、wjviewにしたら終了するようになりました。
ただ、wjviewってwin98に標準でついてないみたいですね。
wjview.exeも一緒に渡せばいいんだけど。
0738MRJ 野郎NGNG
誰か MRJ 使ってる人いますか?
その人に質問したいのですが、スクロールバーを作って表示させ
て、ずっと矢印を押してると落ちません?
前からずっと思ってたんですけど。
みなさんどうですか?
0739717NGNG
717 名前:デフォルトの名無しさん 投稿日:2001/08/01(水) 22:30
変数の型を知るほうほうってないんですか?


718 名前:デフォルトの名無しさん 投稿日:2001/08/01(水) 22:57
>>717
"変数"の型なら宣言文を見るべし。
"変数に代入されているインスタンス"の型なら、"変数名.getClass()"だ。


719 名前:717 投稿日:2001/08/02(木) 00:06
>>718
class Kata{
   public static void main(String args[]){
のargs[0]ってstring型ですよね


720 名前:デフォルトの名無しさん 投稿日:2001/08/02(木) 00:08
>>719
違う。(java.lang.)String


721 名前:デフォルトの名無しさん 投稿日:2001/08/02(木) 01:01
>>717
リフレクションで可能な事は可能です。
Class.forName("クラス名").getField("フィールド名").getType().getName()
とか。

>>718,720,721
どうも有り難うございました。
0740デフォルトの名無しさんNGNG
すいません。どなたかCocoon2って使っておりますか?
Cocoonで勉強しようと思ったら2なんてものがあったんで。
1と2って結構違うんですかね
新鮮情報お願いします
0741デフォルトの名無しさんNGNG
質問です。分かる人がいたら教えてください・・・。

コンソールに出力する文字を必ず決められた位置から表示させるメソッドみたいなの
ありますか?

例えば

abc 12345 5
dd 11 6

みたいな感じで、それぞれ変数の値がどんな桁でも左そろえ、右そろえを
したいんです。
お願いします。
0742デフォルトの名無しさんNGNG
↑ すみません、ずれちゃいました・・・。
間を空白で埋めてたんですが。
0743デフォルトの名無しさんNGNG
>>742
  で空白一個になるよ。
0744デフォルトの名無しさんNGNG
って失敗。&nbsp; を半角で。
0745デフォルトの名無しさんNGNG
C言語で言うところのprintf()よね?
http://www.braju.com/
この辺はどう?
0746デフォルトの名無しさんNGNG
エスケープシーケンスを駆使すればうまく動くだろう。って
本当に出来るかは分からんが。
0747デフォルトの名無しさんNGNG
java.text.MessageFormat

sprintfに似たようなことがある程度できるよ。
コレじゃだめっすか?
0748デフォルトの名無しさんNGNG
だれかdnsjavaの使い方知らない?
0749デフォルトの名無しさんNGNG
http://www.muvc.net/kpgy/man.html
0750デフォルトの名無しさんNGNG
テキストファイルから一行読み込んで文字列変数に取得したいんだけど。
FileInputStreamじゃできないよねえ?
0751デフォルトの名無しさんNGNG
Reader系使い賜え
0752デフォルトの名無しさんNGNG
フォルダを作成する方法教えて!
0753デフォルトの名無しさんNGNG
>>752
無理なんです。Javaでは。VCに乗り換えましょう。
0754デフォルトの名無しさんNGNG
File#mkdir()
File#mkdirs()
0755デフォルトの名無しさんNGNG
>>753 な、なんだこいつ
0756デフォルトの名無しさんNGNG
>>752
フォルダは作れないがディレクトリなら作れる。

java.io.File#mkdir()
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/io/File.html#mkdir()
0757デフォルトの名無しさんNGNG
Directory = Folder
Are you Okey?
0758デフォルトの名無しさんNGNG
>>757
マイコンピュータやコントロールパネルやゴミ箱がディレクトリだと?
0759デフォルトの名無しさんNGNG
>>758
揚げ足君発見
0760デフォルトの名無しさんNGNG
え゛、あれフォルダって呼ぶの?
0761デフォルトの名無しさんNGNG
JAVA Appletを使って画像処理を行いたいのですが
特定のピクセルの色を取得する方法がわかりません。
というよりそもそもどうやって画像を扱えばいいのかわかりません。
GraphicsクラスとImageクラスを使って円なんかを表示させる方法はわかったのですが…
0762デフォルトの名無しさんNGNG
java.awt.image.BufferedImage
0763デフォルトの名無しさんNGNG
>>761
http://www.wakhok.ac.jp/~tatsuo/kougi98/7shuu/kougi.html
http://www.mars.dti.ne.jp/~torao/program/graphics/filter.html
0764デフォルトの名無しさんNGNG
ファイルを行単位でコピーしたいんだけど?
BufferedReaderで読んでBufferedWriterで書くの?
なんか途中でデータが失われる(謎
0765デフォルトの名無しさんNGNG
>>764 多分君のバグ。
ファイルクローズしないで main() 抜けてんじゃない?
0766761NGNG
>>762
>>763
ありがとうございます
よくわかりました
0767デフォルトの名無しさんNGNG
もう遅いかもしれないけど
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/awt/image/PixelGrabber.html
0768デフォルトの名無しさんNGNG
ウィンドウのサイズをマウスでちょっといじってやらないと、
表示されるはずのパネルが表示されないって
どういうことなんでしょうか?
0769デフォルトの名無しさんNGNG
>>768
Frame.show()した後でパネルをaddしてるとそうなると思う。

部品を動的に貼り付けたときは表示させるにはinvalidate(), validate()が必要 [j-h-b:26377]
http://java-house.etl.go.jp/ml/topics/topics.html#core-awt-container
0770デフォルトの名無しさんNGNG
>>769

お!!
出た!!!

サンクスです。
0771デフォルトの名無しさんNGNG
Labelで表示させる文字の色だけを設定したいんですけど、
そんなことできますか?
0772デフォルトの名無しさんNGNG
コンポーネントに描画される文字の色は
Component.setForeground(Color c)
で設定できる。
LabelはComponentのサブクラス。
0773デフォルトの名無しさんNGNG
>>772

遅くなってすみません。
色、変わりました。

ありがとうございました。
0774デフォルトの名無しさんNGNG
VM(Virtual Machine)のバイトコードを勉強したいんですけど.
やっぱ「JAVAバーチャルマシン」よ「JAVA仮想マシン仕様」っすか?
0775774NGNG
>「JAVAバーチャルマシン」よ「JAVA仮想マシン仕様」っすか?

「JAVAバーチャルマシン」と「JAVA仮想マシン仕様」っすか?
です.
0776デフォルトの名無しさんNGNG
>>774
とりあえず"The JavaTM Virtual Machine Specification"。タダだから。
ftp://ftp.javasoft.com/docs/specs/vmspec.2nded.html.zip

これ見ながらjavapの出力コード追っかけてみるのがよろしいかと。
0777デフォルトの名無しさんNGNG
JDK1.4(β)のnioを使って、Selectorでselectしてみたのですが、
socketを相手側から閉じてもOP_READでひっかかりません(selectから戻ってこない)。
例外も起こりません。どうやって検出するのが正しいんでしょう?
0778デフォルトの名無しさんNGNG
>>777
他のビット試してみた?
0779デフォルトの名無しさんNGNG
>>778
試してみます。

ただ、OP_READには以下のように説明があるので、正しいはずなんですが・・・
If the selector detects that the corresponding channel is ready for
reading, has reached end-of-stream, has been remotely shut down for
further reading, or has an error pending, then ...
0780デフォルトの名無しさんNGNG
Windows98ではprintln()の出力がJava consoleに出たけど
Windows2000だと出てこないんだよね。なんでなんだろう?
Windows2000でJava consoleに出す方法ってありませんか?
0781デフォルトの名無しさんNGNG
?
出るよ?
0782780NGNG
>>781
えー?なんでウチは出ないんだろう・・・
ie5.01,JavaSDK1.2.2なんだけど...
0783780NGNG
他の機械にJava2SDK1.3.1を入れてie5.5の上で実行したら出ました...
ieより新しいバージョンのJavaSDKを入れればいいということなのだろうか?
0784デフォルトの名無しさんNGNG
abstract class A
class B extends A
class C extedns C
というクラスがあります
クラスAのメソッド m1 をクラスBでオーバライドしています。
クラスCでも必ずm1を実装させたいです。

実装を強制させるインターフェースを作って、それを
クラスAとクラスBとクラスCにimplementsするのってアイデアはどうでしょうか?
あまり美しいやり方じゃない気がするんですが・・
0785デフォルトの名無しさんNGNG
>>784
んなことで悩むようなら、面倒だからm1のロジックを実装している
小さなクラス作ってコンポジションにしろよ。
0786779NGNG
OP_READ/OP_WRITE/OP_CONNECTが有効なのですが(validOps()で取得)、
どのビットを立てても select から戻りませんでした。

β版とはいえ、こんな単純なので動作しないとは思えないんだけど・・・
0787デフォルトの名無しさんNGNG
DATEクラスのgetTimeメソッドがなんだかちょうど20msくらいおきの値しか
返してくれないのですが、もっと細かく刻ませることはできないでしょうか?
0788俺も厨房NGNG
>>787
System.currentTimeMillis()
は、どうでしょう?
0789787NGNG
ダメでした・・・。内部は同じ実装みたいです。
ちなみにこんな感じ。

997371459566
997371459586
997371459616
997371459626
997371459646
997371459666
997371459686
997371459707
997371459727
997371459747
997371459767
0790デフォルトの名無しさんNGNG
>>787 Windows だろ? AT 互換機の仕様で内部クロックの最大精度は
たしか 10〜20[m sec] くらいまでだよ。嫌なら Sun か HP, RS/6000
でも買いなはれ。
0791デフォルトの名無しさんNGNG
>>790
そうなの?
AT互換機で10nsec単位で計測してるんだけど、(RTLinux使用)
これってどうやってうのかな?
0792デフォルトの名無しさんNGNG
Win2k+J2SE1.4Betaなんだけど、
Thread.sleep(int)はやたらと精度が高い気がする。
誤差がほとんど1ms以下におさまってるっぽい。

ちなみにcurrentTimeMillisの誤差はこちらでも最大約10ms。
0793787NGNG
>>790
あれ? AT互換機ってRTC積んでて1ms単位で時間取得できると
思うんですが・・・。
Javaの実装の問題じゃないんですかね?

やりたいのはフレームレートの固定化です。10ms単位でしかとれない
なら50フレーム/secにすればいいんですが・・・。
0794デフォルトの名無しさんNGNG
>>790 確かじゃないな。保証される精度は 50msec くらいだ。
大学時代の計測でぶち当たった。

# だったはずだが、ネットも MSDN も見つからない...
0795デフォルトの名無しさんNGNG
JNIで...
0796794NGNG
これだけしか見つからなかったよ...
だれか英語ページの検索求む。

http://plaza4.mbn.or.jp/~chan_home/win32/mmtimer.html
> 環境にもよりますが100ミリ秒以下くらいになると、イン
> ターバルをどれだけ短く設定してもほとんど変わりません。
>(通常、どんなに高性能なマシンであっても1/18秒(約55
> ミリ秒)が限界だとされています。)

http://hp.vector.co.jp/authors/VA016164/P-Mon/VB5/ReadMe.Txt
> 更新間隔は500〜30000ミリ秒の範囲で設定可能です。
> ※システムタイマーの精度(55ミリ秒)に依存します。
0797787NGNG
AT互換機はDOSでもint 18hだったか13hだったかで1msec単位で
計測できた記憶があります。
WinでもOKなはずです。API使っても計測できますし。

参考リンク
http://www1.odn.ne.jp/synsyr/prog_t1.html
0798794NGNG
あーと、すまん、確かに 1msec 単位で値が取れるが、その値の
保証される精度が 50msec くらいで限界という意味です。
0799794NGNG
そして、ただいまハード板の初心者スレにお伺いを立ててます (藁
0800デフォルトの名無しさんNGNG
>>787
sleepしてnotifyするだけの別スレッド作って
メインのスレッドを定期的に起こさせるってのはどう?
sleepの精度が高ければの話だけど。
0801デフォルトの名無しさんNGNG
>>800
OSのスケジューラーに依存する
98/Meだと10ms単位だったと思う
0802OS素人NGNG
クロックチックが100Hzで無いマシンってあるの?
高精度クロックとやらはどうやって時間を測ってるの?
0803デフォルトの名無しさんNGNG
ペンティアムタイマー
0804デフォルトの名無しさんNGNG
WM_TIMERよりはマシ、って程度>800
0805デフォルトの名無しさんNGNG
根本的にJavaでそんな精度必要なプログラム作るな
ほとんど実行環境依存になるし
0806こんなの初めてだNGNG
win2000sp2環境で、デフラグをしたらその後から、
ダイアログやテキストボックスのアルファベットが、
斜体に成ってしまうという現象に困っています(SDK1.3,SDK1.3.1環境共に)

とりあえず、SDKの両方を再インストールしたのですが、
やっぱり斜体のままでした。

どなたかこんな現象を聞いたことのある方いませんか?
これ、一体何だろう???
0807806NGNG
聞いてるのにage忘れてました、スマンです。
0808806NGNG
今度こそ、age
0809デフォルトの名無しさんNGNG
っていうか言ってることがわからない。
何の何がどうなった?
0810806NGNG
>>809
すみません。詳しく書くとこんな感じです。

win2000(sp2)上でJBuilder4を使っています。

今日JBuilderを立ち上げた時に、画面のエディター部分・メニューバー部分を除いた画面各所で、
アルファベットなどのASCII文字が全て斜体(イタリック)で表示されるようになってしまいました。
(設定の各ダイアログにまでこうなっています。)
※漢字・ひらがななど全角文字は斜体にはなっていません。

最初は、JBuilderの設定だと思っていたのですが、
JBuilderからJavaプログラム(swingを使ったJavaアプリケーション)を動かすと、
そこでも同様に、swingコンポーネント上のテキストのうち、
アルファベットなどのASCII文字が全て斜体(イタリック)で表示されるようになっていました。

JBuilder4に付属のJava1.3.0のSwing周りがおかしくなってるのか?と思って、
JDK1.3.1を使う設定にしているForteなどを立ち上げ、Swingを用いるJavaアプリケーションを見ると、
そこでも何故か同様の現象が起きていました。

そこで、JBuilder4・JDK1.3.1共に、再インストールしましたが、
状況は変わりませんでした。

「このパソコンに何か自分はしただろうか?」と思い浮かべると、
この現象が起きるようになった直前に、JDKのあるドライブにデフラグをかけています。
タイミング的に、原因になりそうな操作がこれくらいしか思いつきません。
(デフラグが原因でJavaがおかしくなるとは考えにくいのですが)

しかし、他のWindowsアプリケーション(IEやEXCELなどなど)に、
ASCII文字が斜体になるようなことは起きていません。

ネットで調べてみたのですが、このようなSwing上のASCII文字が斜体になってしまう
という現象についての記述が見つかりませんでした。

で、困ってしまって、こちらに書き込んだ次第です。
(長文スミマセン、、、、、、)
0811ポンコツNGNG
iアプリでMSNのメッセンジャーみたいな常時接続の
チャットのサンプルどこかにありませんか?
0812デフォルトの名無しさんNGNG
Safeモードで起動してから再起動するっつーのは?
0813デフォルトの名無しさんNGNG
formのプロパティはどうなってんのよ
0814デフォルトの名無しさんNGNG
ant1.3+JDK1.3.1って相性悪い?

JDK1.3は問題ないが1.3.1はclassic(1.2以前)って判断されるけど。
0815デフォルトの名無しさんNGNG
しまったage
0816デフォルトの名無しさんNGNG
javacってどうやってバージョン調べるんだ?
0817名無しさんNGNG
2進数→10進数の変換で聞きたいのですが

System.out.println(Integer.parseInt("1010101111000101", 2));
System.out.println(Integer.parseInt("101010111100010111000100000101", 2));
System.out.println(Integer.parseInt("1010100111100010111000100000101", 2));
System.out.println(Integer.parseInt("10101011101100010111000100000101", 2));

上記3つはうまくいったが最後のがうまく行きません・・・。
32桁を越える2進数の変換はどうしたら良いのやら。
0818名無しさんNGNG
>>817

自己レス

・・・Long型つかって解決。アホか俺。
0819774NGNG
>>776さん,
レスありがとうございます
0820デフォルトの名無しさんNGNG
javacのエラーメッセージって英語にできないんでしょうか?
0821デフォルトの名無しさんNGNG
>>820
英語版使ったら?
0822名無しさんNGNG
>>821
英語版も日本語版も同じでねーの?
0823初心者1号NGNG
例えば、
/A/B/C.class というファイルがあって、
/A/B/D.jar を実行して、
その C を Class.forName (String) で読み込める様にしたい、
例えば、Class cls = Class.forName ("C"); の様にしたい
のですが、どうすれば良いでしょうか?
単純にやってもダメみたいなので・・・・。
パスを追加する手続きが必要かなと思うのですがどうも分かりません。
よろしくお願いします。
0824823NGNG
あ、ちなみに、開発時には C.class の存在は分からないとして、考えて
下さい。つまり、"C.class" の部分は変わると考えて下さい。
ですから、コンパイル時に決定はできないんです・・・・。
0825デフォルトの名無しさんNGNG
>>824
マニフェストファイルにC.classファイルへのクラスパス
を記述して、JAR作る時に取り込む。
0826823NGNG
>>825
レスありがとうございます。
ええとですね、アプリケーションが動作している時にいわば「動的」に
生成したいので、そういった方法が欲しいのですが・・・・。
可能なんでしょうか?Jar ファイルに含めちゃうと簡単なんですが、
外にあるとやり方が分からなくって・・・・。
0827823NGNG
補足です。分かりにくくてすみません。

C.class のファイルの場所は分からないものとして下さい。
ですから、C.class のファイルの場所を渡して、その Class を作成
するという事がしたいのです。
0828夏厨NGNG
デバックとコンパイルの意味を教えてください。

デバック=機械語になおす
コンパイル=実行する
でいいんですか?
0829gt;gt;828NGNG
de・bug[di:b] 害虫を駆除する
com・pile[kmpil] 資料を集める
0830デフォルトの名無しさんNGNG
デマンコパイル>>828
0831なる厨NGNG
逆アセンブルの意味も教えてくらはい。
0832デフォルトの名無しさんNGNG
ケケケケケケケケケケケケケッケケケ
0833デフォルトの名無しさんNGNG
>>827
んでわ、java.net.URLClassLoaderを作って、
loadClass("クラス名")でロードですな。
0834デフォルトの名無しさんNGNG
ええと、今、Java 1.1.8 なんで、それに応じたクラスでお願いいたいのですが・・・・。
面倒ですみません。
0835デフォルトの名無しさんNGNG
>>834
じゃあ、自分でjava.lang.ClassLoaderのサブクラス作る
しかないぞ。というか、いい加減自分で調べろ。
0836夏厨NGNG
デバックとコンパイルの意味を教えてください。

教えてくださいm(__)m
0837デフォルトの名無しさんNGNG
>>836
そのくらい自分で調べなよ。
http://yougo.ascii24.com/gh/
0838デフォルトの名無しさんNGNG
デバッグ
バグをとること

コンパイル
実行可能にすること

大雑把にこんな感じ。大雑把過ぎるけど。
0839デフォルトの名無しさんNGNG
>>837=838
System.out.print("教えてくれて有り難う。");
0840デフォルトの名無しさんNGNG
>>839
改行してほしいなぁ
0841デフォルトの名無しさんNGNG
ttp://www.amazon.co.jp/exec/obidos/tg/detail/glance/-/books/4062606100/qid=997659805/ref=sr_sp_re_1_6/249-2431184-5725918
ttp://www.amazon.co.jp/exec/obidos/tg/detail/glance/-/books/4062606119/qid=997659805/ref=sr_sp_re_1_7/249-2431184-5725918

アマゾンでコンパイラって調べたら出てきた。
まじで目を疑った。
(゚Д゚)ハア? って感じ

スレ違いだけど・・・
0842デフォルトの名無しさんNGNG
>>841
アセンブラもあるから心配するな。目も疑わなくていいぞ。
オレも最初は幻覚かと思ったけどな。
0843ほれNGNG
>>841
http://www.amazon.co.jp/exec/obidos/tg/detail/glance/-/books/4062606186/qid=997660355/ref=sr_sp_re_1_9/249-2004238-8961116
0844デフォルトの名無しさんNGNG
>>841
ワラタ

スーダラって何よ?(ワラ
0845841NGNG
>>843
・・・・・・


逝ってきます・・・・・
0846ほれNGNG
>>845
他にも逝けそうなネタいくつかあるよ。
もし戻ってきたら検索してみな。
0847839NGNG
>>840
System.out.print("\n教えてくれて有り難う\n");
0848デフォルトの名無しさんNGNG
独習javaでいま、ビット演算子(117ページ)のところにきたのだが
2進が16進いまいち理解できないっす。
いちおうヤフーで検索してみたけど、意味不明な説明のHPばっかでたんですが
なんとか16進は理解できたんですが
2進はさっぱりです。
どうかぼくにおせーてください。
0849デフォルトの名無しさんNGNG
>>848
これで何とかならない?

2進数、10進数、16進数
http://www.asahi-net.or.jp/~ax2s-kmtn/bdh.html
0850848NGNG
>>849
URLセンキュウです
なんとなく、理解できました。
理解できたかどうか試すために
2進と16進の問題を出してくださいm(__)m
0851ほれNGNG
>>850
http://www.asahi-net.or.jp/~rc4t-ishr/kensiro.html

2進数を勉強するにはここから入るのが一番わかりやすい。
頑張れ。
0852Java厨房NGNG
ガイシュツだったらスマソ。
Javaウィザードの皆様、どうかご教示くださいませ。

<<sizeof演算子がないJavaでレコードの読み書きはどうされてますか?>>

CとかC++だったら

class(もしくは typedef struct ) BankRecord{

 public:
    int No;            //個人番号
    char [14] KanjiName;   //氏名

    double Kingaku;       //口座金額
};
            ・
void hogeccho::hogehoge()
{
            ・
            ・
    BankRecord *p;
    p = new BankRecord();
    fread(p,sizeof(BankRecord),1,fp);
        ↑
で、↑のところでpにデータが読み込まれるでしょ。でわJavaだったらどうするのでしょうか?
Vectorクラスのsize()メソッドもレコードサイズを指定せにゃならんし。

ファイルをseekさせるには、クラスメンバのサイズ合計を全て「肉眼で確認して」増分をseekせよ!
という事なんでしょっか?(メンバが100ぐらいあるclassだったらどうするんでしょうか?)
0853デフォルトの名無しさんNGNG
>>852
C++でもそういう書き方は怖くてできない。
すこしコンパイルオプションを変更したり、コードを書き換えたり
しただけで動かなくなる可能性がある。
0854デフォルトの名無しさんNGNG
>>852
シリアライズについて勉強してはどうか。
0855デフォルトの名無しさんNGNG
>>852
ObjectOutputStreamとObjectInputStreamではどう?
0856Java厨房NGNG
>>853>>854>>855
ありがとうございます。

自分は厨房(しかもプログラムは本業ではない)なのでファイルのread()とwrite()で
それぞれデータメンバの処理を書くと、「readでは入っているけれどwriteでは入って
いない」という事になりかねず、またデータメンバが増えたときにも対応が面倒なの
でC/C++ではクラスへのポインタを直接読むことをし続けています。

シリアライズ、ObjectOutputStream・・・・ですか・・・。
しばらく修行してみます。( ;´Д`)
0857デフォルトの名無しさんNGNG
>>856
修行なんかいらん。オブジェクト指向万歳。

import java.io.*;

public class Hoge implements Serializable{

 public int val = 10000;
 public String name = "hoge";

 public static void main(String args[]){

  ObjectOutputStream out = new ObjectOutputStream(
   new FileOutputStream(new File("hoge.dat"));
  out.writeObject(new Hoge());
  out.close();

  ObjectInputStream in = new ObjectInputStream(
   new FileInputStream(new File("hoge.dat"));
  Hoge obj = (Hoge)in.readObject();
  in.close();

  System.out.println(obj.name +" "+obj.val);
 }
}
0858Java厨房NGNG
ありがとうございます。ありがとうございます。
ありがとうございます。ありがとうございます。
ありがとうございます。ありがとうございます。
ありがとうございます。ありがとうございます。
ありがとうございます。ありがとうございます。
ありがとうございます。ありがとうございます。
ありがとうございます。ありがとうございます。
ありがとうございます。ありがとうございます。
ありがとうございます。ありがとうございます。
ありがとうございます。ありがとうございます。
ありがとうございます。ありがとうございます。
ありがとうございます。ありがとうございます。


new FileOutputStream(new File("hoge.dat"));
out.writeObject(new Hoge());
out.close();

ここらへんに感動!やったぁー!!
ついに我々は神の技術を手に入れたよー!BorlandC++5.0で戦いつづける
俺に、救世主が現れた。
明日から俺の新しい戦いが始まります。有り難うございました!!
0859+--+NGNG
横槍ですけど、BufferedOutputStream かませないと出力が極端に遅く
なりますよ。
0860デフォルトの名無しさんNGNG
>>858
Serializeは便利だけど、その代わり読み書き時には、
全てのインスタンス変数の内容とともに、内部で動的な型情報を
残らず読み書きするので、非常に冗長なデータになるぞ。

また、インスタンス変数にSerializableなオブジェクト参照が
あった場合、その中まで全部Serialzeしていく(ディープコピー
のようなもの)ので、気をつけないと大量のメモリコストと、
マーシャリングコストを払う事になる。

まあ、最近はXMLなどという冗長この上ないデータフォーマットが
流行るくらいだから、ストレージやメモリの節約なんか考えなくて
いいってことなんだろうけど。
0861デフォルトの名無しさんNGNG
javaを使う上で、重宝なテキストエディタを教えてください。
なるべくフリーだとうれしい!
0862Java厨房NGNG
>>860
うおぉー。とりあえず有り難うございます。
今、俺の頭の中には熱いものが煮えたぎっているのでしばらく立ってから
考えようと思ってます。

で、try{}catch(){}を付け加えてコンソールに
hoge 10000
と出すことができました!!
万歳!!万歳!!万歳!!万歳!!万歳!!万歳!!万歳!!万歳!!万歳!!
0863デフォルトの名無しさんNGNG
notepad.exe
0864ネタシンシャNGNG
xyzzy
0865ほれNGNG
>>861
JBuilder5
補完もしてくれるしプロジェクトも管理してくれる。
コンパイルまでしてくれるしなんとデバッグ機能つき。
0866デフォルトの名無しさんNGNG
ObjectStream→ByteArrayStream変換と、RandomAccessFile
(又はJDK1.4のMemoryMappedFile)を併用すれば、高速な
永続化オブジェクトI/Oの仕組みが単純なものなら簡単に書ける。

ファイルI/Oを自前では使いこなせない、なんでもかんでもDB使って、
DB毎の導入コストと特殊な仕様に振り回されつづけるうちの会社の
基地外アホ親父ドモも、流石にここまでファイル操作が簡単になれば、
自分でファイル入出力するようになって…くれないかなあ…
0867デフォルトの名無しさんNGNG
edit.exe
0868名無しさんNGNG
前にやった仕事は、秀丸とSDKでやってた。
0869名無しNGNG
>>861
とりあえず自分で探そう。
でも>>865に賛成。
http://www.borland.co.jp/
0870デフォルトの名無しさんNGNG
超初心者質問です。

ファイル操作をするプログラムで、*.closeの文を挿入しないとファイルに文字を書くことができませんが、これは具体的にどういう操作を行っているからそうなるのでしょうか?
0871デフォルトの名無しさんNGNG
>>870
closeする直前までは、I/Oバッファのメモリ上に書きこんだだけ。

沢山書き込んでバッファがあふれるか、closeが呼び出されること
で実行されるバッファフラッシュという動作によって初めて、I/O
バッファに書き込んであったデータがストレージデバイスに書き
込まれる。

ディスクに書くという操作は、メモリ操作より遥かに遅いうえに、
書き込み準備のディスクのシークとかも物凄く遅いので、書き込み
はなるべくまとめてやって、見かけの処理性能をあげましょうという
発想。
0872デフォルトの名無しさんNGNG
>>871さん

なるほど〜〜すごくよくわかりました!!これからも御ひいきに。
0873デフォルトの名無しさんNGNG
>862くらい素直に喜ぶ人がいると、何かほほえましいくてイイなぁ
0874デフォルトの名無しさんNGNG
>>873
でも、彼、モンゴル人だから、、、
0875デフォルトの名無しさんNGNG
>>874
モンゴル?
0876デフォルトの名無しさんNGNG
> はなるべくまとめてやって、見かけの処理性能をあげましょうという

「見かけの」は外すべきだと思うなぁ。
0877デフォルトの名無しさんNGNG
JNDIってまだよく分かってないんだけどODBCにシステムDSN登録するような
もの?プログラム内ではハードコーティングじゃなく登録してある名前を使えば
いいってそういうことだよね?
EJBってさらによく分かってないんだけどMTSにCOM登録するようなもの?
進んでる人アンサーよろしく
0878デフォルトの名無しさんNGNG
SwingのUndoに関して、どっかいいチュートリアルページってない?
0879デフォルトの名無しさんNGNG
英語でよければ、
http://manning.spindoczine.com/sbe/files/uts2/Chapter11html/Chapter11.htm
何かは役立つかも
0880ぐはNGNG
beansわけワカメじゃ
0881878NGNG
>879
ありがとう
さっそくみてみます。
0882ざこNGNG
すみません。下のプログラムでaとbを足してなぜ答が195になるのか
(何故21にならないのか)さっぱり分かりません。どなたか教えてちょ。

public class Sample2
{
public static void main(String args[])
{
char a = 'a';
char b = 'b';
int c;

c = a + b;
System.out.println(c);
System.out.println(Character.getNumericValue(a));
System.out.println(Character.getNumericValue(b));
}
}

実行結果
195
10
11
0883デフォルトの名無しさんNGNG
System.out.println( a );
System.out.println( b );
でどうなる?
0884みんながんばれ!NGNG
>>882
getNumericValue()で返されるのは、Unicode数値
代入の際の型変換(char→int)では、ASCII文字コードの数値になるラシーヨ
http://www.e-words.ne.jp/page.asp?p=r-ascii
0885横レスNGNG
System.out.println((int)a);
System.out.println((int)b);

で97、98のはず。
0886ざこNGNG
>883
え?実行結果ですか?

実行結果
195
a
b

と、相変わらずcは195ですが・・・
0887ざこNGNG
もたもたタイプしてる間にレスが2つも(あせ
>882、883
ASCII文字コード(97と98)での計算結果が195と
言う事だったのですね
みなさん、ご親切にありがとうございました
0888ざこNGNG
げ、間違えた
上は884と885です
08891NGNG
■■■■■Java相談室 Part4へ移動願います!■■■■■■

Java相談室 Part4
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=997791189
0890蛇足NGNG
>887
>ASCII文字コード(97と98)での計算結果が195
これがUNICODEの計算結果で、
Character.getNumericValue()が返すUNICODE数値は、
UNICODEとは別もの
半角数字やローマ字は、ASCIIとUNICODEでは同じにな
っているんだって
882がやりたかったのは、多分
int c = Character.getNumericValue('a')+
Character.getNumericValue('b');
System.out.println(c);
ではない?
■ このスレッドは過去ログ倉庫に格納されています