ネタ心者歓迎!今更ながらにJava相談室 その4
■ このスレッドは過去ログ倉庫に格納されています
00011
NGNG|| ̄ ̄| ∧_∧
||Java| ( ) ∧∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
||__| ( ○ ) ( ) < 俺達の旅はここから始まる。
|| │ | │ / | \___________
((二二)) .(_(__)〜(___ノ
( ゚Д゚) < カキコする前に>>2-10をチェックしとけゴルァ!!
>>2 過去スレの一覧
>>3 Javaの基礎と よくある質問 (初心者はここをチェック!)
>>4 Java関連スレいろいろ
>>5 Javaを撲滅させたい方、死滅を心配してる方、Cとの違いを知りたい方はこちらへ
* 諸般の事情により、リンクがずれる事もあります。
0184デフォルトの名無しさん
NGNGフィールド初期化は、コンストラクタメソッド起動より前に初期化されるということ、
それからコンストラクタは、サブクラスでオーバーライドが掛かる可能性があると
いう考慮をせよ。それが望ましいことならコンストラクタで、望ましくないなら
フィールド初期化=コンストラクタメソッド起動以前の初期化にせよ。
OK?
0185183
NGNG>>いう考慮をせよ。
ああ、これは納得です。たしかにそうですね。即レスどうも。
0186デフォルトの名無しさん
NGNGいまだに使い方が判らん。というかサンプルが動かない。
コンパイルにコツがいるのか実行にコツがいるのか。
ポイントはクラスパス?
0187184
NGNGデフォルト値で必ず初期化される。
オブジェクト参照ならnull、プリミティブ値なら0(false)。
…ねえ、だからいちいちnull突っ込むのやめましょうよ、リーダ。
0188184
NGNGjava.util.Propertiesなら、newして、プロパティファイルの
フルパス名でload()すればいいだけじゃないか?
あとの使い方はMapみたいなもんでしょ。
0189デフォルトの名無しさん
NGNGわかっててインスタンスフィールドをnull等で初期化してる人も多いみたいだけど、
そういう人は敢えて代入しないと気持ち悪いんじゃないかな。
感覚的な問題だと思う。別に害はないのでほっとけばいいのでは?
>java.util.Properties
日本語通らないんだったっけ?
オーバーライドも何も、そもそもコンストラクタは継承されないし、
子クラスのコンストラクタは、親クラスのコンストラクタを
必ず呼ぶのでは??
0192184
NGNG>わかっててインスタンスフィールドをnull等で初期化してる人も多いみたいだけど、
言語仕様で保証されていても、それを知らないボケプログラマに揚げ足取られて
面倒な思いをするような隙を与えないようにするという意味があるのかもねー。
同僚や外注がどうやら口煩いだけのアホらしい時は、おいらもやるさ。
知ってるけど?
君は何かコンストラクタについて誤解をしてる気がする。
0195184
NGNG単に「サブクラスのコンストラクタから呼ばれるかもしれないし、呼ばれない
かもしれない」ということだな。
>呼ばれないかもしれない
絶対に呼ばれるよ。
0197189
NGNGPropertiesって自分は全然使ってないんで、はっきり覚えてませんでした。
>言語仕様で保証されていても、それを知らないボケプログラマに揚げ足取られて
それはあるかも。
ただ、ローカル変数と混同している人もいそうですね。
コンパイラに怒られた経験から変数はすべて明に初期化してるとか。
0198デフォルトの名無しさん
NGNGおせぇ〜て
0199184
NGNGちゃうちゃう。サブクラスが、親クラスの複数のコンストラクタの中の
どのコンストラクタを呼ぶかはサブクラス実装者の責任になるという話っすよ。
どれか(明示しなければデフォルトコンストラクタ)が呼ばれるのは
確かに絶対間違いないけど。
0200デフォルトの名無しさん
NGNGimplements Cloneable
0201184
NGNGそれから、日本語が含まれるプロパティをつかうのなら、
PropertiesよりはPropertyResouceBundleを使うべし、だな。
JVMランタイムが自身が実行されえいる環境のlocaleによって、実際
に使われるプロパティファイルのファイル名を分岐してくれるから、
国際化対応が楽。
>>198
なにが聞きたいんだか良くわかんないけど、ディープコピーがしたい
っつうなら、こんな感じでどうかね。
class Hoge{
private Hage hage;
///…
public Object clone(){
Hoge dst = super.clone();
if(this.hage!=null)
dst.hage = this.hage.clone();
return dst;
}
}
コアAPIのソースでも眺めてみた方がはやいかもよ。
0202184
NGNG0203161
NGNG>166で指摘されているように、もちろん1万行あればいいってわけじゃなくて、
当然「まともな」アプリケーションを探すべきだと思いますが、
「1万行」と言った意味は、
アプリケーションがそれなりの規模であり、通常力技だけでコーディングしていると
破綻しかねない量だと思うので、「破綻せずに」メンテナンスされているコードなら、
きちんと中身も整理されているんじゃないかと思ったわけです。
もちろん個別に例示されて「破綻してるじゃねぇかゴルァ!!」ってのはあるとは思いますけど。
で、そうでなければ、JDKのソースとか見てみるのもいいかもよ、と言ったわけです。
>>181
とりあえず、Windowsの小さなフリーソフトとかを移植してみれば?
そうすると、いろいろ煮詰まると思うし、クラスがボコボコでき始めると、
パッケージ化したくなるし、実践的なことはやっぱ手を動かして覚えるしかないと思う。
ちなみに、オイラは
app.core.*;
app.core.event.*;
app.gui.*;
app.gui.event.*;
app.test.*;
みたいにパッケージ化してたりする。我流なので汚いとは思うけど。やってみないと分からんし。
呼ばれて困るコンストラクタなんて、そもそも有り得ないよ。
呼ばれたコンストラクタでフィールドを初期化してなくても、それはその
コンストラクタを書いた人が希望しての事だから、特に問題は無いはず。
だから「コンストラクタは呼ばれない事も有る」と言うのは、根本的にオカシイと思う。
それは「呼ばれて困るコンストラクタを書くなよ」とアドバイスするのと同じだと思う。
>>183の話に戻すと、フィールドをその定義時に初期化するのは、
「この値はコンストラクタで動的に初期化することはないですよ。
どのコンストラクタが呼ばれようとも、最初は必ずこの値ですよ。」
という意思表明であるべきではないかな。
だから、必要も無いのにフィールドにnullを入れるのも良くないと思う。
それが絶対にnullで初期化され、コンストラクタで変更される場合が無い場合なら問題ないけれど、
nullを代入しているにも関わらずコンストラクタや初期化節で別な値を入れるのは、
これはプログラマとしての信義を問われるのではないか。
0206デフォルトの名無しさん
NGNGこいつ、分って言ってのか?
0207デフォルトの名無しさん
NGNGMS意外で、Lunixなもんで、
0208デフォルトの名無しさん
NGNGIBMの奴とか?
0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNG>サードパーティー製のJavaVMってあるの?
>>208
URL知らん?
0211デフォルトの名無しさん
NGNG0212209
NGNGなんかPS2Linuxでも動くようだ。ふーん
>210
http://www-106.ibm.com/developerworks/java/jdk/linux130/?dwzone=java
>こいつ、分って言ってのか?
お前、日本語が分かって言ってるのか?(w
0214デフォルトの名無しさん
NGNGストリングが空かどうか調べるときがかったるいんで、アレなんだけど
if ( str != null && str.length() != 0 )
{
空みたいな、アレ
}
else
{
詰まってそうな、アレ
}
みんなどう、アレしてんの?
if ( str =="" )
っていうふうにしてくれや
漏れは、Stringにnullは入れないで””を入れるように、アレしてみようかと、
思ったり、思わなかったり。。。
0215デフォルトの名無しさん
NGNGすっこんでろな。
0216デフォルトの名無しさん
NGNG速いんだべか?
0218デフォルトの名無しさん
NGNG人に聞く前に自分で試せ
0219デフォルトの名無しさん
NGNGここでは対象外と言うことで。
0220デフォルトの名無しさん
NGNGいいから、もう、しゃべんなって。
0221デフォルトの名無しさん
NGNGそうでもない。
0222デフォルトの名無しさん
NGNGなんで、誰もこの人に突っ込まないの?
0223デフォルトの名無しさん
NGNGじゃ、おまえがつっこんで下さい。
0224デフォルトの名無しさん
NGNGみんなが放置しているのに、一人で騒いでいる自作自演野郎発見
0225
NGNGとりあえず、文字列の比較に"=="を使うなよな。
と教えてあげる優しい人は俺だけですか!?
0226デフォルトの名無しさん
NGNG空かどうかのみで分けるなら
if ("".equals(str)) {
// 空文字だけどどうよ
}
0227デフォルトの名無しさん
NGNG0228227
NGNG0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG私はアイアプリのjava機能を最新機能だと思っていますが、何か?
0231デフォルトの名無しさん
NGNGwrite onceはどこへやら。
全てのJVMで共通に使えるのって文字列に関するクラスぐらいじゃないの?
0232デフォルトの名無しさん
NGNGトリッキーな・・・。つうか動くのか?
0233デフォルトの名無しさん
NGNGそっちの方が綺麗だな・・。
0234
NGNGiアプリ>>>>>>>>>>>>>>デスクトップアプリ
0235デフォルトの名無しさん
NGNGトリッキーなのか、あれ?
0236
NGNGが標準。
0237
NGNG0238デフォルトの名無しさん
NGNG常にfalseになるよ
0239デフォルトの名無しさん
NGNG話題があったっけなぁ…
傍観してる分には面白かったけど。
0240
NGNGんなこたあない。
0241
NGNG0242デフォルトの名無しさん
NGNG違うだろ!
ネタ
0243214
NGNGどうアレしたらいいかね、
""かnullって感じになると思うんだけど、
あ、例外無しって事で、
ところでさ、
if ( str == "" )
ってやると、何を比較してんの?
で、その結果は何かに役立つアレなわけ?
0244
NGNG既知外ですか?
0246デフォルトの名無しさん
NGNG例外は「返る」とは言わんか。
0247
NGNGバカ!
NullPointerExceptionがあるだろ!
0248デフォルトの名無しさん
NGNG0250
NGNGif( str==null ){
ダタヨ
逝ってきます
0251デフォルトの名無しさん
NGNG参照の同一性を検査していることになる。
同値性の検査にはならない点に注意。
0252デフォルトの名無しさん
NGNGいや、ないと思うけど。多分。
0253デフォルトの名無しさん
NGNGEffective Javaに書いてあたヨ。
つか、読まなくても分かってると思うけど。
ArrayOutOfRangeException(だっけ?)でループから抜ける処理って
初めて見たヨ。
0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNGやっぱ、普通は例外処理には頼らないよね。
0256デフォルトの名無しさん
NGNGwrite(byte[],int,int) とかで
範囲チェックしなかったのは俺です。
0257デフォルトの名無しさん
NGNG0x100逃した‥‥。
0258214
NGNG結局何にも使えないって事?
0259デフォルトの名無しさん
NGNGまあ、ぶっちゃけ そういうことになるね
0260デフォルトの名無しさん
NGNGLinuxで作業してる人います?
$ java [RETURN]
ってすると、日本語でusageでます?
0261260
NGNGhoge@hoge:~$ java test
????
dump(????): 30de 30f3 5316 3059
Winで実行
C:\temp999>java test
マン化す
dump(マン化す): 30de 30f3 5316 3059
結果は同じなんだけど、Linuxだと日本語出なくてこまってるんですけど、
一応、
LANG=ja_JP.sjis
LC_ALL=ja_JP.sjis
LC_CTYPE=ja_JP.sjis
LC_MESSAGES=ja_JP.sjis
とか、ujisにしたりしてんだけど、でないんですよ。
誰か情報ないですか?
0262デフォルトの名無しさん
NGNGあと、telnetかXtermかとかの情報モナ。
0263デフォルトの名無しさん
NGNGテーブルヘッダーのカラム名を変更する時
>> myJTable.getColumn(myJTable.getColumnName(index)).setHeaderValue(str)
・・としているのですが、myJTable.getColumn()のパラメータはidentifiter、
一方、myJTable.getColumnName()のリターン値はStringで、、
最初両者の値は一致しているが、一度setHeaderValue()すると値が変わって
(identifiterの値はこれでは変わらない) 2度目の書き換えで失敗しています。
どのようにすればよいのでしょうか?
0264デフォルトの名無しさん
NGNGmyJTable.getColumnModel().getColumn(index).setHeaderValue(str)
でいけました。
OOP難しい・・・
0265
NGNGJavaとJavaリングの関係の必然性が判りません。
教えてください。
0266デフォルトの名無しさん
NGNG0267デフォルトの名無しさん
NGNGハァ?
0268デフォルトの名無しさん
NGNG>>214 に書いてあるんですけど。
0269デフォルトの名無しさん
NGNGそういうのはPropertiesのリソースファイルに定義されていると思われ。
日本語用Windows版なんかは、既に日本語用のリソースファイルが含まれてるけど
Linux版にはそれがないんじゃないかな。
JREのjar解凍してja_JP用リソースファイル追加するかなんかするしかないんじゃ
ないの?
0270デフォルトの名無しさん
NGNG% cat Hello.java
public class Hello {
public static void main(String[] args) {
System.out.println("うんこ");
}
}
% javac Hello.java
% java Hello
うんこ
% java -version
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
Classic VM (build 1.3.0, J2RE 1.3.0 IBM build cx130-20010925 (JIT enabled: jitc))
% setenv |grep ja
LANG=ja_JP.eucJP
SUPPORTED=en_US:en:ja_JP.eucJP:ja_JP:ja
JLESSCHARSET=japanese
CLASSPATH=/usr/local/horb/lib/horb20.jar:.
% cat /etc/redhat-release
Red Hat Linux release 7.1.94 (Roswell)
%
JDKは入れたまんま。
0271デフォルトの名無しさん
NGNG開発ソフトを乗り換えるか迷っているのですが、何がお勧めですか?
0273デフォルトの名無しさん
NGNGカタカナ->カタカナ
対応のtoUpper、lowerってないすか?
oroのperlutil試したら。
tr/[A-Z]/[a-z]/対応してないのね、
がつかりぃ〜
0274SJCD
NGNGかなり使いやすいツールです。
JDeveloperとかVisualAge、JBuilderとか使ってても、多くの人は「自動生成されるコードが気に入らない」、「融通が利かない」、「即席JAVA開発者育成ツールにしか思えない」、「Radツール重い」と言った理由から
(いろいろ理由があるけど)ノートパッド型開発ツールに先祖帰りしている人が多いのです。
この「CPad」かなりいけてます。
1.「F9」でコンパイル後、即実行←JBuilderよりコンパイル早い気がする(リソースの関係かな?)
2.登録したキーワードの色を自在に変えられる。←最初は予約語がカラフルな色で登録されています。追加として自分の良く使うキーワードを色付きで登録できるから、かなり見やすいよ。
3.なんと「grep検索」機能付き。
4.複数のソースを一度に扱える。←TabPaneでいくつものソースを開いても一つのウインドウで管理できる。
5.インクリメンタルサーチ付き。←かなり便利な検索機能。
つうか、テキストエディターとしてもかなり使えるので、簡単な報告書もサクサクかけるよ!
0275デフォルトの名無しさん
NGNG上司は、統一化したいから統合開発環境使いたがるけど、部下の方はCPad中心で。
まぁ、使い安さはぴか一なのでね。
つうか、JAVA使いの皆さん、あなたはRADツール派ですか、ノートパッド派ですか?
0276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNG0278デフォルトの名無しさん
NGNGただ、オイラは今は故あってWin2K。
0279初
NGNGネ刀心者 はどう?
0280デフォルトの名無しさん
NGNGネタ心者も、初心者を免罪符に課題丸投げしてくるドキュソもイヤン。
0281デフォルトの名無しさん
NGNG0282デフォルトの名無しさん
NGNG0283デフォルトの名無しさん
NGNGサーバーサイドでCRegKey::QueryValueで値の参照ができない。
サーブレット/JSPでWebアプリを開発しています。
一部JNIを使用しています。
CRegkey::Openは成功しているようだが、
CRegKey::QueryValueでエラーが発生して取得できないようです。
これは使えないってことですか?
サーバー環境は以下のとおりです。
Windows2000
Apache 1.3.12
topcat 3.2.3
Java SDK 1.3.0_02
■ このスレッドは過去ログ倉庫に格納されています