トップページ⇒tech
982コメント338KB

ネタ心者歓迎!今更ながらにJava相談室 その4

■ このスレッドは過去ログ倉庫に格納されています
00011NGNG
                        
 || ̄ ̄|   ∧_∧
 ||Java|  (     )   ∧∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ||__|  ( ○  )  (   ) < 俺達の旅はここから始まる。
   ||    │ |  │   /  |    \___________
((二二)) .(_(__)〜(___ノ

( ゚Д゚) < カキコする前に>>2-10をチェックしとけゴルァ!!
>>2 過去スレの一覧
>>3 Javaの基礎と よくある質問 (初心者はここをチェック!)
>>4 Java関連スレいろいろ
>>5 Javaを撲滅させたい方、死滅を心配してる方、Cとの違いを知りたい方はこちらへ
* 諸般の事情により、リンクがずれる事もあります。
0196 NGNG
>>195
>呼ばれないかもしれない

絶対に呼ばれるよ。
0197189NGNG
漏れは186じゃないんだけど、ありがとう。
Propertiesって自分は全然使ってないんで、はっきり覚えてませんでした。

>言語仕様で保証されていても、それを知らないボケプログラマに揚げ足取られて
それはあるかも。
ただ、ローカル変数と混同している人もいそうですね。
コンパイラに怒られた経験から変数はすべて明に初期化してるとか。
0198デフォルトの名無しさんNGNG
clone()メソッドってどうやって実装したらええの?
おせぇ〜て
0199184NGNG
>>196
ちゃうちゃう。サブクラスが、親クラスの複数のコンストラクタの中の
どのコンストラクタを呼ぶかはサブクラス実装者の責任になるという話っすよ。

どれか(明示しなければデフォルトコンストラクタ)が呼ばれるのは
確かに絶対間違いないけど。
0200デフォルトの名無しさんNGNG
>>198
implements Cloneable
0201184NGNG
>>197
それから、日本語が含まれるプロパティをつかうのなら、
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のソースでも眺めてみた方がはやいかもよ。
0202184NGNG
implements Cloneable忘れてた。スマソ。
0203161NGNG
えーと、とりあえずコード読んだら?と言った者ですが。

>166で指摘されているように、もちろん1万行あればいいってわけじゃなくて、
当然「まともな」アプリケーションを探すべきだと思いますが、
「1万行」と言った意味は、
アプリケーションがそれなりの規模であり、通常力技だけでコーディングしていると
破綻しかねない量だと思うので、「破綻せずに」メンテナンスされているコードなら、
きちんと中身も整理されているんじゃないかと思ったわけです。

もちろん個別に例示されて「破綻してるじゃねぇかゴルァ!!」ってのはあるとは思いますけど。

で、そうでなければ、JDKのソースとか見てみるのもいいかもよ、と言ったわけです。

>>181
とりあえず、Windowsの小さなフリーソフトとかを移植してみれば?
そうすると、いろいろ煮詰まると思うし、クラスがボコボコでき始めると、
パッケージ化したくなるし、実践的なことはやっぱ手を動かして覚えるしかないと思う。

ちなみに、オイラは

app.core.*;
app.core.event.*;
app.gui.*;
app.gui.event.*;
app.test.*;

みたいにパッケージ化してたりする。我流なので汚いとは思うけど。やってみないと分からんし。
0204 NGNG
>>199
呼ばれて困るコンストラクタなんて、そもそも有り得ないよ。

呼ばれたコンストラクタでフィールドを初期化してなくても、それはその
コンストラクタを書いた人が希望しての事だから、特に問題は無いはず。

だから「コンストラクタは呼ばれない事も有る」と言うのは、根本的にオカシイと思う。
それは「呼ばれて困るコンストラクタを書くなよ」とアドバイスするのと同じだと思う。

>>183の話に戻すと、フィールドをその定義時に初期化するのは、
「この値はコンストラクタで動的に初期化することはないですよ。
 どのコンストラクタが呼ばれようとも、最初は必ずこの値ですよ。」

という意思表明であるべきではないかな。
0205 NGNG
204の続きだけど、
だから、必要も無いのにフィールドにnullを入れるのも良くないと思う。

それが絶対にnullで初期化され、コンストラクタで変更される場合が無い場合なら問題ないけれど、
nullを代入しているにも関わらずコンストラクタや初期化節で別な値を入れるのは、
これはプログラマとしての信義を問われるのではないか。
0206デフォルトの名無しさんNGNG
>>205
こいつ、分って言ってのか?
0207デフォルトの名無しさんNGNG
サードパーティー製のJavaVMってるの?
MS意外で、Lunixなもんで、
0208デフォルトの名無しさんNGNG
>>207
IBMの奴とか?
0209デフォルトの名無しさんNGNG
caffeってどうなったのかな
0210デフォルトの名無しさんNGNG
まつがった

>サードパーティー製のJavaVMってあるの?

>>208
URL知らん?
0211デフォルトの名無しさんNGNG
HPの奴はどういう扱いになるよ。
0212209NGNG
"Kaffe"だった
なんかPS2Linuxでも動くようだ。ふーん

>210
http://www-106.ibm.com/developerworks/java/jdk/linux130/?dwzone=java
0213 NGNG
>>206
>こいつ、分って言ってのか?
お前、日本語が分かって言ってるのか?(w
0214デフォルトの名無しさんNGNG
ちょっとね、アレな初心なんで、アレだが、

ストリングが空かどうか調べるときがかったるいんで、アレなんだけど

if ( str != null && str.length() != 0 )
{
 空みたいな、アレ
}
else
{
 詰まってそうな、アレ
}

みんなどう、アレしてんの?

if ( str =="" )
っていうふうにしてくれや

漏れは、Stringにnullは入れないで””を入れるように、アレしてみようかと、
思ったり、思わなかったり。。。
0215デフォルトの名無しさんNGNG
>>213
すっこんでろな。
0216デフォルトの名無しさんNGNG
>>212
速いんだべか?
0217 NGNG
やばい、基地外を相手にしちゃったのかも・・。
0218デフォルトの名無しさんNGNG
>>216
人に聞く前に自分で試せ
0219デフォルトの名無しさんNGNG
つまりSUNにお金をたーんと払って認定されたもの以外は
ここでは対象外と言うことで。
0220デフォルトの名無しさんNGNG
>>217
いいから、もう、しゃべんなって。
0221デフォルトの名無しさんNGNG
>>216
そうでもない。
0222デフォルトの名無しさんNGNG
>>214
なんで、誰もこの人に突っ込まないの?
0223デフォルトの名無しさんNGNG
>>222
じゃ、おまえがつっこんで下さい。
0224デフォルトの名無しさんNGNG
>>222
みんなが放置しているのに、一人で騒いでいる自作自演野郎発見
0225 NGNG
>>214
とりあえず、文字列の比較に"=="を使うなよな。

と教えてあげる優しい人は俺だけですか!?
0226デフォルトの名無しさんNGNG
>>214
空かどうかのみで分けるなら
if ("".equals(str)) {
// 空文字だけどどうよ
}
0227デフォルトの名無しさんNGNG
"".equals(str)
0228227NGNG
かぶった、すまそそ
0229デフォルトの名無しさんNGNG
javaはもう消えたんじゃなかったの?
0230デフォルトの名無しさんNGNG
>>229
私はアイアプリのjava機能を最新機能だと思っていますが、何か?
0231デフォルトの名無しさんNGNG
どうでも良いけど独自仕様つうかカテゴリがうじゃうじゃ増えるね。
write onceはどこへやら。
全てのJVMで共通に使えるのって文字列に関するクラスぐらいじゃないの?
0232デフォルトの名無しさんNGNG
>>227
トリッキーな・・・。つうか動くのか?
0233デフォルトの名無しさんNGNG
いや、トリッキーかと思ったけど、比較文字列が複数有る時は
そっちの方が綺麗だな・・。
0234 NGNG
iアプリ最高!
iアプリ>>>>>>>>>>>>>>デスクトップアプリ
0235デフォルトの名無しさんNGNG
>>232
トリッキーなのか、あれ?
0236 NGNG
str.equals(null)
が標準。
0237 NGNG
比較元と比較先が逆っつうのはいただけない。
0238デフォルトの名無しさんNGNG
>236
常にfalseになるよ
0239デフォルトの名無しさんNGNG
そーいや 某所でも Object.equals() の
話題があったっけなぁ…
傍観してる分には面白かったけど。
0240 NGNG
>>238
んなこたあない。
0241 NGNG
あ、そうかnullと空文字列""は違うのか。も?
0242デフォルトの名無しさんNGNG
>>241
違うだろ!
ネタ
0243214NGNG
戻り値がStringのメソッドで、エラーを返したい場合、
どうアレしたらいいかね、
""かnullって感じになると思うんだけど、
あ、例外無しって事で、

ところでさ、
if ( str == "" )
ってやると、何を比較してんの?
で、その結果は何かに役立つアレなわけ?
0244 NGNG
>>238
既知外ですか?
0245238じゃないけどNGNG
>>244
str.equals(null)が true返す
ケースがあるなら、俺も知りたいぞ。
0246デフォルトの名無しさんNGNG
NullPointerException か false が返るんと違う?
例外は「返る」とは言わんか。
0247 NGNG
>>245
バカ!
NullPointerExceptionがあるだろ!
0248デフォルトの名無しさんNGNG
例外は raise する/上がるというな。
0249238じゃないけどNGNG
>>247
str.equals(null) は
NullPointerException投げるか、falseを返す。
で、この比較には何か意味があるのか?
0250 NGNG
そういえば
if( str==null ){
ダタヨ
逝ってきます
0251デフォルトの名無しさんNGNG
>>243
参照の同一性を検査していることになる。
同値性の検査にはならない点に注意。
0252デフォルトの名無しさんNGNG
>>249
いや、ないと思うけど。多分。
0253デフォルトの名無しさんNGNG
ていうか、想定内のエラーを例外処理に任せるのはよくないって、
Effective Javaに書いてあたヨ。
つか、読まなくても分かってると思うけど。

ArrayOutOfRangeException(だっけ?)でループから抜ける処理って
初めて見たヨ。
0254デフォルトの名無しさんNGNG
java.lang.ArrayIndexOutOfBoundsException かな?
0255デフォルトの名無しさんNGNG
ArrayIndexOutOfBoundsExceptionでループを抜ける処理、俺もなにかで見た覚えがある。
やっぱ、普通は例外処理には頼らないよね。
0256デフォルトの名無しさんNGNG
懺悔します。
write(byte[],int,int) とかで
範囲チェックしなかったのは俺です。
0257デフォルトの名無しさんNGNG
Σ(゚д゚lll)ガーン

0x100逃した‥‥。
0258214NGNG
>>251
結局何にも使えないって事?
0259デフォルトの名無しさんNGNG
>>258
まあ、ぶっちゃけ そういうことになるね
0260デフォルトの名無しさんNGNG
あの〜
Linuxで作業してる人います?

$ java [RETURN]

ってすると、日本語でusageでます?
0261260NGNG
Lunxで実行
hoge@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
とりあえず、どのlinuxか、ヴァージョンとかもつけてかけや。
あと、telnetかXtermかとかの情報モナ。
0263デフォルトの名無しさんNGNG
JTableについて教えてください

テーブルヘッダーのカラム名を変更する時

>> myJTable.getColumn(myJTable.getColumnName(index)).setHeaderValue(str)

・・としているのですが、myJTable.getColumn()のパラメータはidentifiter、
一方、myJTable.getColumnName()のリターン値はStringで、、
最初両者の値は一致しているが、一度setHeaderValue()すると値が変わって
(identifiterの値はこれでは変わらない) 2度目の書き換えで失敗しています。

どのようにすればよいのでしょうか?
0264デフォルトの名無しさんNGNG
すいません、自己レス・・
myJTable.getColumnModel().getColumn(index).setHeaderValue(str)
でいけました。
OOP難しい・・・
0265 NGNG
ネタ心者です。
JavaとJavaリングの関係の必然性が判りません。
教えてください。
0266デフォルトの名無しさんNGNG
結構知らない人多いのね…。string.length() == 0
0267デフォルトの名無しさんNGNG
>>266
ハァ?
0268デフォルトの名無しさんNGNG
>>266

>>214 に書いてあるんですけど。
0269デフォルトの名無しさんNGNG
>>261
そういうのはPropertiesのリソースファイルに定義されていると思われ。
日本語用Windows版なんかは、既に日本語用のリソースファイルが含まれてるけど
Linux版にはそれがないんじゃないかな。
JREのjar解凍してja_JP用リソースファイル追加するかなんかするしかないんじゃ
ないの?
0270デフォルトの名無しさんNGNG
>>261
% 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
visual cafeを今使っているのですが、ペン4にインストールできません.
開発ソフトを乗り換えるか迷っているのですが、何がお勧めですか?
0272 NGNG
http://www.vector.co.jp/soft/win95/prog/se153698.html
0273デフォルトの名無しさんNGNG
平仮名->カタカナ
カタカナ->カタカナ
対応のtoUpper、lowerってないすか?
oroのperlutil試したら。
tr/[A-Z]/[a-z]/対応してないのね、
がつかりぃ〜
0274SJCDNGNG
俺も愛用しています。
かなり使いやすいツールです。
JDeveloperとかVisualAge、JBuilderとか使ってても、多くの人は「自動生成されるコードが気に入らない」、「融通が利かない」、「即席JAVA開発者育成ツールにしか思えない」、「Radツール重い」と言った理由から
(いろいろ理由があるけど)ノートパッド型開発ツールに先祖帰りしている人が多いのです。
この「CPad」かなりいけてます。
1.「F9」でコンパイル後、即実行←JBuilderよりコンパイル早い気がする(リソースの関係かな?)
2.登録したキーワードの色を自在に変えられる。←最初は予約語がカラフルな色で登録されています。追加として自分の良く使うキーワードを色付きで登録できるから、かなり見やすいよ。
3.なんと「grep検索」機能付き。
4.複数のソースを一度に扱える。←TabPaneでいくつものソースを開いても一つのウインドウで管理できる。
5.インクリメンタルサーチ付き。←かなり便利な検索機能。
つうか、テキストエディターとしてもかなり使えるので、簡単な報告書もサクサクかけるよ!
0275デフォルトの名無しさんNGNG
うちの会社、みんなCPAD使ってる。なぜかJDeveloperは使わなくなった。
上司は、統一化したいから統合開発環境使いたがるけど、部下の方はCPad中心で。
まぁ、使い安さはぴか一なのでね。

つうか、JAVA使いの皆さん、あなたはRADツール派ですか、ノートパッド派ですか?
0276デフォルトの名無しさんNGNG
頑なにteikade
0277デフォルトの名無しさんNGNG
Linuxでもつかえる?
0278デフォルトの名無しさんNGNG
使える(はず)。何度か使ったことあるし。
ただ、オイラは今は故あってWin2K。
0279初NGNG
いまさらながら、 ネタ って無理があるような気が・・・

ネ刀心者 はどう?
0280デフォルトの名無しさんNGNG
次スレはシンプルに「Java相談室」に回帰しません?
ネタ心者も、初心者を免罪符に課題丸投げしてくるドキュソもイヤン。
0281デフォルトの名無しさんNGNG
賛成
0282デフォルトの名無しさんNGNG
丸投げしてくるゼネコンもイヤン。
0283デフォルトの名無しさん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
0284組長NGNG
こんにちは。アプレットでゲームを作っているものです。
質問です!あるキーを押しているときに他のキーを受け付けないようにする基本的な
コードが書けずに何日も悩んでいます。
また、キーを押してから数秒後にキーを受け付けるようなコードも是非知りたいので
何方かアドバイスいただけないでしょうか?
よろしくです
0285デフォルトの名無しさんNGNG
>>284
「あるキー」が押されたらKeyUpするまで「他のキー」のKeyイベント無視すればいいじゃん。

「キーを押し」たときの時刻をDate.getTime()で取得しておいて
あとから押したキーはその時刻から「数秒」たっていなければ無視するようにすればいいじゃん。
0286組長NGNG
>>285
ありがとうございます。KeyUpの関数がないような気がしましたが・・・・・
気のせいでしょうか?

あとは了解です。
0287デフォルトの名無しさんNGNG
はぁ、こんなんもご存知ないような43歳のSEが入社希望でいらっしゃいました。
うちのJAVAテスト。
コンパイルが通る宣言はどれか。複数解答せよ。
1.String[] test[] = new String[3][3];
2.String [][]test= new String[1][2];
3.int[] test= new int[]{1,2,3};
4.String[] testr= new String[];
5.String Integer[] = new String[2];
0288デフォルトの名無しさんNGNG
ごめん>>286
KeyListener#keyReleased(KeyEvent e)だった
0289デフォルトの名無しさんNGNG
>>287
オレ、1とか2とかは見た事すらないけど、
そんなのを分からなくとも永遠に問題は無いだろうなぁ。
どうでも良い知識をひけらかしてるだけの嫌味な問題に見える。

Sunの認定試験ですら、こんな問題は出ないんじゃ無いかな。
一応Developerまでは持ってるけど・・。
0290デフォルトの名無しさんNGNG
>>287
おめでてぇ〜会社だなぁ〜
これが出来る事にどれだけ意味があるよ、
それとも、お前んとこじゃ、この書式が標準なのか?
0291デフォルトの名無しさんNGNG
>>274
漏れは、エディターとコンソールでjavacだが、
そんなええの?
274の言う程度の便利さなら、
必要に感じないんだけど、
ほかに、もっと便利な事あんの?

てか、皆どうなの?
コンソールでjavacってもう普通じゃないの?
0292デフォルトの名無しさんNGNG
>>291

274じゃないけど、良いところもあるよ。
JBuilder使っているけど、パッケージやクラスの内容を
理解しやすいと思う。
ただ、普通のエディターが良いという人に無理に薦める
ほどじゃない。
0293デフォルトの名無しさんNGNG
>>287
Javaで業務アプリ関係で配列はあんまり使わないと思う。
0294デフォルトの名無しさんNGNG
>JBuilder使っているけど、パッケージやクラスの内容を
>理解しやすいと思う。

コレが必要な人っていうのは、javadocドキュメントを読むのが嫌いな人?
マルチディスプレイで片方でドキュメント開きながら秀丸でも、おいらは
十分だなあ。強調表示カラーリングのファイルとかはいろんな言語用のが
いっぱい出回ってるし。
0295デフォルトの名無しさんNGNG
>>294

292です。
だから、普通のエディターで満足している人には薦める
ほどじゃないんです。
■ このスレッドは過去ログ倉庫に格納されています