【初心者】Java質問・相談スレッド112【大歓迎】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/02/08(金) 19:48:24JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc10.2ch.net/hp/
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
【初心者】Java質問・相談スレッド111【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1200151522/
/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝のう存じます。
次スレは>>980あたりで。
0002デフォルトの名無しさん
2008/02/08(金) 19:49:30■ AWT と Swing は --
Java標準低速GUI 6 AWT/Swing
ttp://pc11.2ch.net/test/read.cgi/tech/1190807478/l50
■ SWT は --
Java 高速GUI SWT 3
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50
■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part16
ttp://pc11.2ch.net/test/read.cgi/tech/1198816379/l50
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 7
ttp://pc11.2ch.net/test/read.cgi/tech/1180010672/l50
■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 64 ★★
ttp://pc11.2ch.net/test/read.cgi/tech/1196543694/l50
0003デフォルトの名無しさん
2008/02/08(金) 20:57:15javaの入門書のようなものありませんか?
0004デフォルトの名無しさん
2008/02/08(金) 21:14:42動画で見るJava入門、みたいなのを。
どこかの大学のサイト
0005デフォルトの名無しさん
2008/02/08(金) 22:58:31ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/index.html
■ J2SE 5.0 (1.5.0)
ttp://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
ttp://java.sun.com/javase/ja/6/
0006デフォルトの名無しさん
2008/02/08(金) 23:30:09クラスをオブジェクトするときに使いやすいだけ?
0007デフォルトの名無しさん
2008/02/09(土) 00:11:24newしなくても呼び出せるメソッドみたいな感じ?
0008デフォルトの名無しさん
2008/02/09(土) 00:11:560009デフォルトの名無しさん
2008/02/09(土) 00:29:00以下の2つは分かりませんでした。
System.out.println(String.codePointAt((int)s.charAt(0)));
System.out.println(s.getBytes(s.charAt(0)));
0010デフォルトの名無しさん
2008/02/09(土) 00:37:520011デフォルトの名無しさん
2008/02/09(土) 00:51:44Windows x64 executable
jdk-6u4-windows-x64.exe 38.88 MB
Windows Online Installation
jdk-6u4-windows-i586-p-iftw.exe 0.36 MB
Windows Offline Installation
jdk-6u4-windows-i586-p.exe 71.28 MB
のように3つ選択肢があるんですが何が違うのでしょうか?
2番目はインストーラーをダウンロードせずにネットから直接インストール?
3番目はインストーラーをダウンロード?ってことですかね
1番上は何でしょうか…
0012デフォルトの名無しさん
2008/02/09(土) 00:51:500013デフォルトの名無しさん
2008/02/09(土) 01:22:25またどのような関数を使えばいいのかわかりません><
ググってみるとjava以外ではいろいろ書いてあるのに、javaになるとヒットしないので。。
よろしくおねがいします!
0014デフォルトの名無しさん
2008/02/09(土) 01:26:360015デフォルトの名無しさん
2008/02/09(土) 01:27:35InetAddress.getLocalHost().getAllByName()
0016デフォルトの名無しさん
2008/02/09(土) 01:38:46ありがとうございます!!
無事できましたー!
0017デフォルトの名無しさん
2008/02/09(土) 08:30:29調べてもプログラミング言語がウンヌンで、javaとは何なのか必要なのかわかりません
PCでインターネットや、画像や動画視聴しかしない僕には必要なのかどうか教えてください
0018デフォルトの名無しさん
2008/02/09(土) 10:29:36気にしないでおk
0019デフォルトの名無しさん
2008/02/09(土) 10:33:361番上のは64ビットWindows用
2番目と3番目は32ビットWindows用
オンラインインストールはインストーラの皮だけ、実際にインストール開始したときに必要な中身を都度ダウンロードしてくる
オフラインインストールは中身全部込みのインストーラ、インストール時にネット接続不要
どっちでも好きなほうをどうぞ
002017
2008/02/09(土) 12:31:56わかりました ありがとう
削除します
0021デフォルトの名無しさん
2008/02/09(土) 14:03:12stringの解説がされています
認識として両方変数の型でchar=1文字変数 string=文字列と理解しているんですが、理解が間違っているんでしょうか?
0022デフォルトの名無しさん
2008/02/09(土) 14:08:02大文字小文字の区別は重要
charは1文字、Stringは文字列、ってのは合ってる
0023デフォルトの名無しさん
2008/02/09(土) 14:18:06Stringは文字列。
String str = "a";
char c = 'a';
人間にとっては同じだけど、プログラム上は違うので注意。
0024デフォルトの名無しさん
2008/02/09(土) 14:30:17ありがとう、つまり同じような認識で使ってもいいわけですね。
もう一つ聞きたいのですが
class a1{
public static void main(String args[]){
if(args.length>=1) 〜以下命令文
〜以下略
上のプログラムのargs.length ここの部分がいまいちよくわからないのですが、
argsはただの配列なのにクラス名の部分に書かれています。
length関数が特殊なんでしょうか?それともargsがクラス名?
お願いします
0025デフォルトの名無しさん
2008/02/09(土) 14:46:49入門書1冊やってからこい
0026デフォルトの名無しさん
2008/02/09(土) 14:56:38lengthは配列オブジェクトのフィールド
argsオブジェクトのlengthフィールドが1以上かどうかを判定している
ってかクラス名の部分ってなんだよ
0027デフォルトの名無しさん
2008/02/09(土) 15:01:32この場合、args は配列型の変数で、length は、配列型の public final なフィールド。
0028デフォルトの名無しさん
2008/02/09(土) 15:22:220029デフォルトの名無しさん
2008/02/09(土) 15:23:470030デフォルトの名無しさん
2008/02/09(土) 15:25:27ありがとう
インスタンス化したメソッド.メソッド名();
の形式だと理解していた。
よくわからないから読み返してきます。
0031デフォルトの名無しさん
2008/02/09(土) 15:26:30前のユーザーはバカよけいれといてねとか言ってたけどw
0032デフォルトの名無しさん
2008/02/09(土) 15:30:43変数名.メソッド;
でも問題ないんですか?
0033デフォルトの名無しさん
2008/02/09(土) 15:31:22すみませんでした
0034デフォルトの名無しさん
2008/02/09(土) 15:34:09問題って何がだ
何がわからんのかわからん
0035デフォルトの名無しさん
2008/02/09(土) 15:35:05ここは初心者スレだが、初心者に一から言語仕様を教えるスレじゃねーんだよ
この本一冊読んでから来い
http://www.amazon.co.jp/dp/4798107972/
0036デフォルトの名無しさん
2008/02/09(土) 15:38:13安全そうな燃料ですね。
0037デフォルトの名無しさん
2008/02/09(土) 15:54:12>>35
?
0038デフォルトの名無しさん
2008/02/09(土) 16:15:32住人も然り
プログラマって10聞いて1しか返ってこないやついるから困る
出世できないのもよくわかるよな
0039デフォルトの名無しさん
2008/02/09(土) 16:17:550040デフォルトの名無しさん
2008/02/09(土) 16:23:360041デフォルトの名無しさん
2008/02/09(土) 16:32:22特にプログラマは酷いなwww
何年もがんばった自分の知識を基準にして話し出す
文系の女の子が可哀相だ
0042デフォルトの名無しさん
2008/02/09(土) 16:34:380043デフォルトの名無しさん
2008/02/09(土) 16:36:14野郎どもは死ぬ気でがんばれ
0044デフォルトの名無しさん
2008/02/09(土) 17:04:33フィードル初期化は宣言時にするのとコンストラクタ内でするのとでは、タイミングなどの違いがあるそうですが
どんな感じで使い分けるものなんでしょうか?
0045デフォルトの名無しさん
2008/02/09(土) 17:09:45スーパークラスのコンストラクタが終了した後に初期化するのと変わらない。
0046デフォルトの名無しさん
2008/02/09(土) 17:10:12フィールドの初期化のコードはバイトコードレベルで見るとコンストラクタの中に入っている
見た目とか気分の問題
004744
2008/02/09(土) 17:19:47どうもありがとうございました。
0048デフォルトの名無しさん
2008/02/09(土) 18:26:15public static *** getInstance(){return instance;}
private $$$ data;
public ***(){data = $$$.getInstance()}
public $$$ get$$$(){return data;}
$$$も同様にシングルトン
と言う感じで、シングルトンのフィールドにコンストラクタで
シングルトンを植え付ける連鎖を何回か行うと
get$$$()でnullが返ることがあります。何故なんでしょうか?
クラスが参照されると同時にinstanceにインスタンスが入るはずなのに…
public get$$$(){return $$$.getInstance();}
だとそう言う事は起こりません
004948
2008/02/09(土) 18:27:16コンストラクタはprivateです
private ***(){data = $$$.getInstance()}
0050デフォルトの名無しさん
2008/02/09(土) 18:33:14UMLより機能的なツールなんか使ってますか
参考までにお願いします
0051デフォルトの名無しさん
2008/02/09(土) 19:26:44紙とペンかな・・・・
自由度が高いので使い手の能力に左右されがちだがな。
0052デフォルトの名無しさん
2008/02/09(土) 19:27:12ソースのa,b,c,d,e,f(文字列)からAという配列を作りたいです。
A[a] == b
A[c] == d
A[E] == f
0053デフォルトの名無しさん
2008/02/09(土) 19:32:060054デフォルトの名無しさん
2008/02/09(土) 19:56:271種類のString配列では表せない情報を与えたい時はどうすればいいのでしょうか?
例えば、複数の文字列とオプションを実行時に指定させたい場合、
プログラム側では文字列とオプションの区別が付けられません。
0055デフォルトの名無しさん
2008/02/09(土) 20:07:39順番で区別するとか、
先頭に '-' や '@' や '/' がついてたらオプションとか、
文字列は "文字列" みたいに引用符で括るとか、
やり方はいろいろある。好きな方法を使え。
0056デフォルトの名無しさん
2008/02/09(土) 20:17:550057デフォルトの名無しさん
2008/02/09(土) 20:24:07argsをパースするのは自力で作る
0058デフォルトの名無しさん
2008/02/09(土) 20:25:24HashMap はJDK1.2に対応していますか?
0059デフォルトの名無しさん
2008/02/09(土) 22:01:26ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/util/HashMap.html
> 導入されたバージョン:
> 1.2
同期云々の話も上のリンク先の記述からだと思うのだが、文章そのまま。
逆に、Hashtable の方は同期がとられて、null の場合はない。
> HashMap クラスは Hashtable と同じと見なしてもかまいませんが、
> HashMap の方は同期がとられず、null の場合もあります。
何故同期が取られないのか、については、設計上の方針。
Collections.synchronizedMap(Map) を使う。
更に、iteratorを使う場合には、更に同期処理が必要。詳しくは API 仕様に。
0060デフォルトの名無しさん
2008/02/09(土) 22:20:53HashMap が同期(synchronized)されない、というのは、簡単に言うと、
複数のスレッドから同時にアクセスすると壊れるよ、という意味です
0061デフォルトの名無しさん
2008/02/09(土) 22:30:36ありがとう
でも一挙動でコーディングできれば最適なんですがねえ
0062デフォルトの名無しさん
2008/02/09(土) 22:32:42なんだろうねぇ。
とりあえず、遅延初期化をする必要が無ければ、instance を
public static final *** INSTANCE にするのはどうだろう。
0063デフォルトの名無しさん
2008/02/09(土) 22:32:550064デフォルトの名無しさん
2008/02/09(土) 22:36:06UML は確かに機能的な面も強調される表記法でもあると思うが、
そもそもの目的は、数ある表記法を名の通り"統一"したものだしなぁ
0065デフォルトの名無しさん
2008/02/09(土) 22:40:120066デフォルトの名無しさん
2008/02/09(土) 23:15:05ありがとうございます。やってみましたがダメでした
うまくいかないソースを削ってサンプルを作ってみました
class A {
final static A INS = new A();
private B b;
private A(){b = B.INS;}
B getB(){return b;}
public static void main(String[] args) {
System.out.println(A.INS.getB().getC().getA().toString());
}
}
class B {
final static B INS = new B();
private C c;
private B(){c = C.INS;}
C getC(){return c;}
}
class C {
final static C INS = new C();
private A a;
private C(){a = A.INS;}
A getA(){return a;}
}
0067デフォルトの名無しさん
2008/02/09(土) 23:16:15class D {
public static void main(String[] args) {
System.out.println(A.INS.getB().getC().getA().toString());
}
}
としてもやはりjava.lang.NullPointerExceptionでした
0068デフォルトの名無しさん
2008/02/09(土) 23:21:02そりゃ無理だ
new A();
をやってる途中にB.INSが必要で、
B.INS = new B();
には C.INS が必要で、
C.INS = new C();
の中では A.INS が必要だがまだ new A() やってる途中なので A.INS は代入されてないから null
0069デフォルトの名無しさん
2008/02/09(土) 23:40:00単に循環参照
コレだけみると設計再検討だが、なんか理由があるとして…
ま、getAやらの部分で、a を遅延初期化すれば問題ない。
if (a == null) { a = A.INS; } return a;
仮にマルチスレッドでまわしても、A.INS は確定した後で、常に一つだから
null チェックで二度三度上書きしたところで得られる値は変わりはしない。
0070デフォルトの名無しさん
2008/02/09(土) 23:42:19なるほどエラーが発生する原因は分かりました
>>69
ありがとうございます
staticフィールドにインスタンスを作るシングルトンという事で気軽に使いすぎてました。反省
0071デフォルトの名無しさん
2008/02/09(土) 23:45:35StringBuffer使えってのはなしで。
0072デフォルトの名無しさん
2008/02/09(土) 23:47:50http://www.ibm.com/developerworks/jp/java/library/j-jtp02183/
0073デフォルトの名無しさん
2008/02/09(土) 23:54:04クラスは、インスタンス化によりオブジェクト(実体)となって
はじめて使用できると思うのですが、
main()を持つクラスは、コンパイルされた時点で
インスタンス化されるのでしょうか?
0074デフォルトの名無しさん
2008/02/09(土) 23:56:02staticメソッドとstaticフィールドはインスタンスではなくクラスに属するのでインスタンスがなくても使える
0075デフォルトの名無しさん
2008/02/10(日) 00:19:54コンストラクタ以外で data に値を設定するコードを書いてないのに発生するなら
コンストラクタが完了してない状態で呼んでんじゃねーのか。final 付けてないのに
その部分だけ出されてもどっかで設定してんじゃねーのとしか言えないが。
0076デフォルトの名無しさん
2008/02/10(日) 01:16:43早速のご回答ありがとうございます。
新しい考え方をゲットできました。
「インスタンスに属する」と「クラスに属する」
0077デフォルトの名無しさん
2008/02/10(日) 01:43:33s = "aa//a/aa"; から3を取得するものです。
0078デフォルトの名無しさん
2008/02/10(日) 01:52:430079デフォルトの名無しさん
2008/02/10(日) 02:20:26横着。先頭と尻尾に "/" を追加して確かめてください。
何にもマッチしないときは、長さ1の配列が返るので、負数にはならない、はず。
System.out.println(s.split("/", -1).length - 1);
// 一応、何が起きてるかを表示
System.out.println(java.util.Arrays.toString(s.split("/", -1)));
0080デフォルトの名無しさん
2008/02/10(日) 02:52:07int i = (int)s;
数値にするにはどうしたらよいですか?
0081デフォルトの名無しさん
2008/02/10(日) 02:54:37int i = Integer.parseInt(s) でおk
0082デフォルトの名無しさん
2008/02/10(日) 03:09:09一般的ですか?
0083デフォルトの名無しさん
2008/02/10(日) 03:12:370084デフォルトの名無しさん
2008/02/10(日) 03:53:37のページにあるプログラムをEclipseで実行するとエラーが出てしまいます
ちなみにエラーの文章は
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.apache.commons.httpclient.HttpClient.<clinit>(HttpClient.java:66)
at Logintest.main(Logintest.java:20)
とでて、
Logintest.java:20の内容は
HttpClient client = new HttpClient();
です。
java素人なので全然わかりません。。。よろしくおねがいします!
0085デフォルトの名無しさん
2008/02/10(日) 03:54:450086デフォルトの名無しさん
2008/02/10(日) 03:59:16このテストコードをマウスを使わずに
キーボードだけで素早く実行するにはどうしたらいいのでしょうか?
008784
2008/02/10(日) 04:07:18お返事ありがとうございます
外部jarの追加でしっかり追加したはずなんですが
できてなかったのですかね。。。
0088デフォルトの名無しさん
2008/02/10(日) 04:46:10OROが足りないんだろ。
追加しろ
0089デフォルトの名無しさん
2008/02/10(日) 05:11:250090デフォルトの名無しさん
2008/02/10(日) 06:37:26oro追加してみましたけどインポートされた org.apache.oro は一度も使用されていません。と出てしまいます。
コンパイルエラーの文章も依然変わりません...('A`)ウムム
0091デフォルトの名無しさん
2008/02/10(日) 08:33:24初心者向けということなのでNetbeansをインストールしましたが
使い方がさっぱり分かりません。
最初は普通のエディタの方が良いでしょうか?
0092デフォルトの名無しさん
2008/02/10(日) 10:49:56commons.logging パッケージのクラスが見つからないというエラー。
ということで、そやつを取ってきてパスに入れれば…進展があるはず
0093デフォルトの名無しさん
2008/02/10(日) 11:08:39JAVAから外部のアプリケーションに対して操作を行うにはどのようにすればよいでしょうか。
例えばWindows標準のメモ帳に対して文字列"abc"を入力する、といったものです。
よろしくお願いします。
0094デフォルトの名無しさん
2008/02/10(日) 11:15:450095デフォルトの名無しさん
2008/02/10(日) 11:18:270096デフォルトの名無しさん
2008/02/10(日) 11:25:42もっと上手い方法があるのかねぇ。
// 例外はうまく処理してちょ
Runtime.getRuntime().exec("notepad.exe");
Robot robot = new Robot();
Thread.sleep(2000);
robot.keyPress(KeyEvent.VK_A);
robot.keyPress(KeyEvent.VK_B);
robot.keyPress(KeyEvent.VK_C);
0097デフォルトの名無しさん
2008/02/10(日) 11:28:11!! こんなクラスあったんだ。しかも1.4から標準で。知らんかった……。
0098デフォルトの名無しさん
2008/02/10(日) 11:30:51私は始めたばかりですが、もっとリファとか読まないといけませんね。
ありがとうございました。
0099デフォルトの名無しさん
2008/02/10(日) 13:28:12コールバックされるオブジェクトの参照を、する方に渡す。
メソッドのアドレスを渡すような考え方はしない。
コールバックされるクラスがいろいろあるなら、
目的のメソッドを定義した interface を作って、
それらのクラス全員に implements させる。
0100デフォルトの名無しさん
2008/02/10(日) 13:35:19あっているでしょうか?
0101デフォルトの名無しさん
2008/02/10(日) 13:37:44構造体のような使い方もできるがもっと色々できる。
PCはゲーム機の本体のようなものですか?のような質問。
0102デフォルトの名無しさん
2008/02/10(日) 13:42:270103デフォルトの名無しさん
2008/02/10(日) 14:50:59エラーが表示するライブラリを順に追加していったら動くようになりました!
ありがとうございます。
0104デフォルトの名無しさん
2008/02/10(日) 19:40:54Linuxコマンド(diff)を実行し、その結果を出力するだけのプログラムなのですが、
なぜかその実行結果がNULLになります。
ソースは以下の通りです。宜しくお願いします。
fileA,fileBは共にテキストファイルで、コマンドの誤りは何度も試したのでないと思います。
public class b {
public static void main(String[] args) {
try {
// プロセスオブジェクトを生成
String str ="diff fileA fileB";
// System.out.println("command:"+str);
Process process = Runtime.getRuntime().exec(str);
// process.waitFor();
// 外部コマンドの標準出力を取得するための入力ストリームを取得
InputStream is = process.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
// 標準出力を1行づつ取り出します
String line = br.readLine();
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
0105104
2008/02/10(日) 19:57:29原因は、もしかすると、fileAとfileBの場所が遠かった(コマンドが長すぎた)せいだと思います。
ご迷惑をおかけしました。
0106デフォルトの名無しさん
2008/02/10(日) 20:34:380107デフォルトの名無しさん
2008/02/10(日) 21:16:060108デフォルトの名無しさん
2008/02/11(月) 01:05:222.0 とかの開発今どうなってんの?
0109デフォルトの名無しさん
2008/02/11(月) 01:22:170110デフォルトの名無しさん
2008/02/11(月) 01:32:180111デフォルトの名無しさん
2008/02/11(月) 02:08:30かね出さずに?
0112デフォルトの名無しさん
2008/02/11(月) 09:40:34windows vista
0113デフォルトの名無しさん
2008/02/11(月) 10:18:26windows vista
0114デフォルトの名無しさん
2008/02/11(月) 10:25:580115デフォルトの名無しさん
2008/02/11(月) 11:59:33仕様的に。
0116デフォルトの名無しさん
2008/02/11(月) 13:21:470117デフォルトの名無しさん
2008/02/11(月) 14:02:08プラシーボで良ければ、int型の値を確保し、それをインクリメントするだけのプログラムを。
でなければ、実行されるプログラムが使用するメモリ以外の部分に、実行時の値を保存する。
レジストリやらHDDなど外部記憶装置やら。
参考
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/util/Properties.html
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/util/prefs/Preferences.html
0118デフォルトの名無しさん
2008/02/11(月) 14:09:32ありがとうございます!
今からちょっと用事があるので帰ってきてから実装してみたいと思います。
0119デフォルトの名無しさん
2008/02/11(月) 15:03:200120デフォルトの名無しさん
2008/02/11(月) 15:05:47Calendar.SUNDAY == 1
Calendar.MONDAY == 2
(略)
Calendar.SATURDAY == 7
みたいですが、これを前提にコード書いたらやっぱまずいですか?
SUNDAYからMONDAYまでがこの順に連続した整数であることも
全く保証されて……ないんですよね、やっぱり。
SUNDAY→0, MONDAY→1, ..., SATURDAY→6 を得たいんですけど、
いちいち走査するしかないのかなあ。
0121デフォルトの名無しさん
2008/02/11(月) 15:05:51s.equals("a")にするための?の部分を教えてください。
0122デフォルトの名無しさん
2008/02/11(月) 15:09:44どの環境でも使えるフォント名ってことなら"Serif"、"SansSerif"、"Monospaced"、"Dialog"、"DialogInput"
0123デフォルトの名無しさん
2008/02/11(月) 15:13:23Character.toString( (char)97 )
0124デフォルトの名無しさん
2008/02/11(月) 15:16:57作法としてまずいかどうかは知らないが
将来バージョンアップで値が変わったりとかはしないはずなので大丈夫かと
(そんなことしたら既存のプログラムが動かなくなるし)
0125デフォルトの名無しさん
2008/02/11(月) 15:39:470126デフォルトの名無しさん
2008/02/11(月) 16:52:34JNIで呼び出すCのライブラリの中でファイルを参照するのですが、
ファイルの読み込みは一度だけにして常にメモリ中に展開しておき、
2度目以降は読み込み処理をやらなくてすむようにはできるでしょうか?
0127デフォルトの名無しさん
2008/02/11(月) 17:34:06APIドキュメントで対応する数値が明記されていない以上、
変更されて機能しなくなる可能性がないとはいえないが、
まあたぶん変えられることはなさそうだし前提にしてもいいんじゃないかな。
Calendar.SUNDAYとかはpublic static final intで宣言された定数なので、
使用側のコードに直接値が埋め込まれるため、
変更されるような事態になったら全部コンパイルし直しになるので。
0128デフォルトの名無しさん
2008/02/11(月) 18:05:38okwaveとのマルチか
0129デフォルトの名無しさん
2008/02/11(月) 18:17:05どこかがつぶれてもいいような分散技術を使った高度な質問技。
しかし技を使ったことがバレると回答されにくくなる諸刃の剣。
0130デフォルトの名無しさん
2008/02/11(月) 19:02:290131デフォルトの名無しさん
2008/02/11(月) 20:29:06必要が無ければやるべきではない印象を持つが、必要として考えると…
定数の値は公開されて確認ができるので、クラスの使用条件を
「Calendar.SUNDAY から Calendar.SATURDAY が連続した整数値を取ること」
としていれば、Java のバージョンが変わったときも、それを確認するだけで使えると思う。
もしくは、static の初期化子などでそれらが連続することを確認し、
そうでは無い場合には何らかの処置をする、とか
0132120
2008/02/11(月) 22:28:27書いた直後に出かけていて返事が書けませんでした、ごめんなさい。
>>124
いくら public とはいえ、SUNDAY と "1" という値とは本来何の繋がりもない、
Calendar クラスの中だけの約束事でしかないので、
定数をこういう風に使っていいのかなぁという疑問がずっと消えなくて。
>>127
やっぱり明記はされてないんですよね。
ただ、「使用側のコードに直接埋め込まれる」には思わず手を打ちました。
定数が変わるときにはどのみちコンパイルし直しになるんだから
そのときにチェックが入るだろう、という考え方ですね。
建国記念の日とか春分とかの「日本の休日」を扱うクラスは
(どうせあと数十年中に休日が増減するから)とりあえず21世紀中だけ
使えることにしておけばいいよ、ってのと似たような話でしょうか。
ちょっと違うかもですが。
>>131
その発想はなかったっ。
どうせ将来にわたっても定数が変更されることはないだろうけど、
もし万が一……というところで悩んでいたので、
その注意書きを選ぶことにします。
お三方ともありがとうございました。
0133デフォルトの名無しさん
2008/02/11(月) 23:03:36>建国記念の日とか春分とかの「日本の休日」を扱うクラスは・・・
祝日ってDBかファイル持ちだち思うんだ
0134デフォルトの名無しさん
2008/02/11(月) 23:06:09それなら自分でMap持てば済む話じゃないの?
0135デフォルトの名無しさん
2008/02/12(火) 00:59:23String a_1 = null;
というフィールドがあった場合、仕様として正しい
geterは
getA_1なのでしょうか?
0136デフォルトの名無しさん
2008/02/12(火) 01:09:58「get,set,isに続くものをプロパティ名とする」と
フィールド名は関係ない
0137デフォルトの名無しさん
2008/02/12(火) 01:27:58クラス名や変数名に「hoge」という文字が頻繁に使われていますが、
なぜ「hoge」なんですか?
0138デフォルトの名無しさん
2008/02/12(火) 01:32:23ほげを考えるページ
ttp://kmaebashi.com/programmer/hoge.html
0139デフォルトの名無しさん
2008/02/12(火) 01:34:19テレビのイの字と同じようなものだよ
0140デフォルトの名無しさん
2008/02/12(火) 01:44:56送信先をXMLデータベースから抜き出してループさせたいのですが,
internetaddressクラスの配列使用の場合と
SAXとの組み合わせ方が今ひとつわかりませんのでどなたか解説お願いします。
0141デフォルトの名無しさん
2008/02/12(火) 02:19:43つまり、名前をつけるのが面倒なときにつけるんですね?
ありがとうございました
0142デフォルトの名無しさん
2008/02/12(火) 03:48:51javaプログラムから新たなテキストファイルを作成するにはどうすればいいのでしょうか?
ファイル作成のためのクラスとかありますか?
0143デフォルトの名無しさん
2008/02/12(火) 03:50:550144142
2008/02/12(火) 04:19:25FileWriterで書き込んだりReaderで読み込んだりすることは出来るのですが、ファイルを作成することが出来ないんです。
具体的には、絶対パスではなく自分より二つ上の階層に新しいテキストファイルを作成したいのですが、
ネットで調べてもファイルへの読み書きの仕方しか出てきません。
0145デフォルトの名無しさん
2008/02/12(火) 04:25:32例外が発生するって言うならその例外の意味を調べろ。
0147デフォルトの名無しさん
2008/02/12(火) 09:41:05getterですよ
0148デフォルトの名無しさん
2008/02/12(火) 14:05:33してるんだがコンパイラは通るんだがappletviewerが起動しない・・・。
コンパイラが通る時にMenuFrame2.classと同時に
MenuFrame2$1.class(プログラム中に記載はされてない)
という謎物ができるんだがこれが原因なのか?
↓とりあえずサンプルプログラム
ttp://www.dotup.org/uploda/www.dotup.org2840.java.html
Passはjava
0149デフォルトの名無しさん
2008/02/12(火) 14:15:07それアプレットじゃないじゃん
普通に java MenuFrame2 で起動してみ
0150デフォルトの名無しさん
2008/02/12(火) 14:21:45とりあえずIP抜かせてもらいました(^^v
0151デフォルトの名無しさん
2008/02/12(火) 14:23:37小さいかまくらを作った。入れなかった。
アプレットだと思ってた俺がバカでした。回答thx。
0152デフォルトの名無しさん
2008/02/12(火) 14:53:19厨房( ´,_ゝ`)プッ
0153デフォルトの名無しさん
2008/02/12(火) 15:08:43sample.classには、package tes03; の宣言がされています。
コマンドプロンプトから実行するとき、
tes02ディレクトリからでは java tes03/sample で実行出来るのですが、
tes01ディレクトリとtes03ディレクトリから実行出来ません。
例えばtes01ディレクトリから、java tes02/tes03/sample としてもエラーが出ます。
どうすればいいのでしょうか
0154デフォルトの名無しさん
2008/02/12(火) 15:22:02つjava -cp test02 test03/sample
0156デフォルトの名無しさん
2008/02/12(火) 17:28:24どうやったらいいのでしょうか?
0157デフォルトの名無しさん
2008/02/12(火) 18:00:540158デフォルトの名無しさん
2008/02/12(火) 18:23:28返した場合、JNI でそのオブジェクト参照してても GC の対象になるよね?
public byte[] foo(){ new byte[1024]; }
jobject value = env->CallObjectMethod(clazz, method);
0159デフォルトの名無しさん
2008/02/12(火) 19:02:54ネイティブメソッドから返るまでは掴んだまま
返れば GC の対象になる
明示的に放したい場合は DeleteLocalRef を呼ぶ
0160デフォルトの名無しさん
2008/02/12(火) 19:26:36職場の上司もこんな優しく教えてくれたらなぁー
0161デフォルトの名無しさん
2008/02/12(火) 20:37:22スレッドを複数作成してそれぞれのスレッドに異なる情報を渡して違った処理を実行させたいのですが。
0162デフォルトの名無しさん
2008/02/12(火) 20:54:410163デフォルトの名無しさん
2008/02/12(火) 21:46:47そうなんですか。Java VM が参照見失うかと思ったんですがそうではないんですね。
ひょっとして env->NewByteArray() とかもちょあんt
0164デフォルトの名無しさん
2008/02/12(火) 22:00:560165デフォルトの名無しさん
2008/02/12(火) 22:26:02そう考える 164 であった。
0166デフォルトの名無しさん
2008/02/12(火) 22:46:48インスタンス変数はよくprivateにするのに
クラス変数はどうしてpublicばっかなの?
private static 〜 なんてのはあまり見ない気がする
0167デフォルトの名無しさん
2008/02/12(火) 23:29:050168デフォルトの名無しさん
2008/02/12(火) 23:31:36プロとしての自覚を持て
先輩の何十分の1程度の生産性しか出せないくせに
給料は同じくらいもらってんだろ?
0169デフォルトの名無しさん
2008/02/12(火) 23:36:060170デフォルトの名無しさん
2008/02/12(火) 23:38:560171デフォルトの名無しさん
2008/02/12(火) 23:40:45>>168の書き込みなんて気にすんなw
0172デフォルトの名無しさん
2008/02/12(火) 23:44:240173デフォルトの名無しさん
2008/02/12(火) 23:46:37おまいも経験積んだら、高い生産性出せるようになるさ
0174デフォルトの名無しさん
2008/02/12(火) 23:48:260175デフォルトの名無しさん
2008/02/12(火) 23:55:030176デフォルトの名無しさん
2008/02/12(火) 23:59:00それはありそうだな
生産性が低ければそれだけ残業するしな
0177デフォルトの名無しさん
2008/02/13(水) 00:12:030178デフォルトの名無しさん
2008/02/13(水) 00:39:150179デフォルトの名無しさん
2008/02/13(水) 00:56:10贅沢言ってんじゃねえよカス
0180デフォルトの名無しさん
2008/02/13(水) 00:57:54public class ComServer{
private ServerSocket sock; private Socket client;
public final static int portNo = 10500; private BufferedWriter writer;
private BufferedReader reader; private String msg = null;
ComServer() init();
void init(){
if(sock == null){
sock = new ServerSocket(ComServer.portNo,1);
client = sock.accept();
client.setKeepAlive(false);
System.out.println("Client connected");
}
if(reader == null) reader = new BufferedReader( new InputStreamReader(client.getInputStream()));}
String receive(){
if(reader == null)init();
String msg = null;
msg = reader.readLine();
return msg;
}
class s extends Thread {
private BufferedWriter writer;
private String msg;
s(String masg)this.msg = masg;
if(writer == null) writer = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
public void run(){
writer.write(msg,0,msg.length());
writer.flush();
}}}
すいません。たぶん根本的な間違いとおもいますがエラーがでてコンパイルできないです
申し訳ないですがバグを見つけてもらえないでしょうか?おねがいします. 環境はeclipse3.3.1.1 jre1.6.0_03です
0181デフォルトの名無しさん
2008/02/13(水) 01:11:430182デフォルトの名無しさん
2008/02/13(水) 01:13:59エラーどこ、main どこ。クラスの先頭は大文字で。
eclipse ならエラーの対処方法も出るでしょうに。
0183デフォルトの名無しさん
2008/02/13(水) 01:14:28問題点の候補はコンパイラが見つけて教えてくれてるだろ
エラーメッセージを読んで理解しろ
0184デフォルトの名無しさん
2008/02/13(水) 02:23:07で実行ファイルと同じディレクトリのファイルを読み込むGUIアプリを作っているのですが、
実行ファイルが置いてあるディレクトリとは別のディレクトリのファイル(例えばデスクトップ)を引数に
そのアプリを立ち上げると
カレントディレクトリが
C:\Program Files\Common Files\System\MAPI\1041\nt\
と、よくわからないディレクトリになります。
何ででしょうか?
改善するためには、実行ファイルが置いてあるディレクトリを基点に
ファイルを読み込むようにすればいいと思うのですが
そのディレクトリを取得する方法がわかりません。
どうすればよいでしょうか?
0185デフォルトの名無しさん
2008/02/13(水) 02:31:52固定ファイルならリソース使え。設定ファイルなら Preferences 使え。
0186デフォルトの名無しさん
2008/02/13(水) 10:35:030187デフォルトの名無しさん
2008/02/13(水) 11:28:43さらっと見ただけだが、
>ComServer() init();
こんな構文ないだろう
0188デフォルトの名無しさん
2008/02/13(水) 11:40:54コンパイル出来ないのはバグじゃない。
なんでもバグで片付けようとするなよ馬鹿。
0189デフォルトの名無しさん
2008/02/13(水) 12:05:05Mainクラスにmain()があるとして、
URL url = (new Main()).getClass().getResource("Main.class");
String dir = url.toString();
みたいなかんじでどう?
jarから起動のときはそこからちょっと処理しないといけないけど
0190デフォルトの名無しさん
2008/02/13(水) 12:27:21GraphicsオブジェクトからImageオブジェクトに変換できますか?
0191デフォルトの名無しさん
2008/02/13(水) 13:20:15BufferedImageに描画するようにして、それを保存したらどうよ?
0192デフォルトの名無しさん
2008/02/13(水) 13:20:21BufferedImage image = new BufferedImage(1000, 1000, BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
好きなように g に描く
g.dispose();
image げっと!
0193デフォルトの名無しさん
2008/02/13(水) 20:09:53前半はいいとして後半がめちゃくちゃ
結城さんのプログラミングレッスンのほうがはるかに信頼できるわ
0194デフォルトの名無しさん
2008/02/13(水) 20:12:100195デフォルトの名無しさん
2008/02/13(水) 20:59:440196デフォルトの名無しさん
2008/02/13(水) 21:00:30持ってないから解らんがw
0197デフォルトの名無しさん
2008/02/13(水) 21:09:19つーかネットの連載とかで十分だし
本を糞と評価する奴が頭悪いだけって方が多いよな
0198デフォルトの名無しさん
2008/02/13(水) 21:10:380199デフォルトの名無しさん
2008/02/13(水) 21:11:39英語版はつらいから日本語版待ってOrz..
0200デフォルトの名無しさん
2008/02/13(水) 22:11:160201デフォルトの名無しさん
2008/02/14(木) 00:20:11my jesus
I pleded my heart
0202デフォルトの名無しさん
2008/02/14(木) 00:20:46おまえ生意気だな
口の利き方に気をつけろよ
誰に話してると思ってんだ?
知らぬが仏とはいうがたいがいにしとけよ
0203デフォルトの名無しさん
2008/02/14(木) 01:40:52int i;
//DoJa5.1がコンパイルエラー
try {
byte[] b = new byte[1000];
i = b.length;
} catch(Exception e) {
System.out.println("" + i + e);
}
//DoJa5.1がコンパイル成功
try {
byte[] b = new byte[1000];
i = b.length;
i = 5; //なぜこれを書くとコンパイルが成功するんですか?
} catch(Exception e) {
System.out.println("" + i + e);
}
0204デフォルトの名無しさん
2008/02/14(木) 01:55:040205デフォルトの名無しさん
2008/02/14(木) 02:10:55検索で大体意味はつかめると思うのだが…
まぁ、言語規定によると「オブジェクトは、クラスのインスタンス又は配列」とある。
当てはめると、「例外クラスのインスタンス又は例外配列」ということになる。
そもそも、オブジェクトを配列の意味で使ってる文は少ないし、
例外は配列としないことが普通だろう。として限定すると、前者の意だろう。
>>203
エラー詳細も張らずに質問とな?
0206デフォルトの名無しさん
2008/02/14(木) 02:17:23try節の中でbを二重定義しているのはおいておいて、
i=5;をそこに書いてもコンパイルに成功しない気が。
上が失敗するのはi=b.length;を評価する前に例外が発生して、
catch節に飛んでしまう可能性があるから、
その場合はiが初期化されていないのでコンパイルエラーを起こす。
int i;の段階でint i=0;とかで初期化すればエラーは出ないはず。
動作として正しいかどうかは別として。
0207デフォルトの名無しさん
2008/02/14(木) 03:40:302重定義でした。ありがとうございました。
0208デフォルトの名無しさん
2008/02/14(木) 03:44:59でもiの未初期化でもエラーが起こらなかった?
0209 ◆xkgLgN/H4.
2008/02/14(木) 10:24:06質問させてください。
----------
問:アサーションの使用方法として適切なものを選びなさい。
【A】
public void method(int data) {
assert data < 0: "dataが負数";
}
【B】文法間違いなので割愛
【C】
public void method(int data) {
assert check(data): "checkメソッドがfalseを返した";
}
private boolean check(int data) {
if (data < 0) {return false;}
return true;
}
続く...
0210209 ◆xkgLgN/H4.
2008/02/14(木) 10:25:50【D】
public void method(int data) {
boolean checked = check(data);
assert checked: "checkメソッドがfalseを返した"
}
private boolean check(int data) {
if (data < 0) {return false;}
return true;
}
正解は【D】なのですが、その解説が
【A】publicなメソッドの引数チェックをアサーションで行うのは不適切
【C】デバッグ時のみ使用し本番では使用しなくなるアサーションで
メソッドの呼び出しを行うのは不適切
【D】内容は【C】と同じだが、メソッドの戻り値を変数へ格納し、その変数を
アサーションでチェックしているので適切
というものでした。
【C】も【D】も「publicなメソッドの引数チェックをアサーションで行うのは不適切」に
該当する感じがして納得できないのですが、どう考えるべきですか?
また、【C】の解説が言わんとすることは、
アサーション有効時と無効時で呼び出されるメソッドが違う等の条件の違いがあっては
デバッグ作業として良くない
ということでOKですか?
よろしくお願いします。
0211209 ◆xkgLgN/H4.
2008/02/14(木) 10:31:18【D】のassert行の末尾にセミコロンが抜けてました。
本来はセミコロンは付いています。
0212デフォルトの名無しさん
2008/02/14(木) 10:44:59ImgaIconに使った画像や、プラグインとして使用したjarファイルが
含まれずに生成されてしまいます。どうすればよいでしょうか?
0213デフォルトの名無しさん
2008/02/14(木) 10:50:09しょせん試験なんてそんなもの。
問題作ったやつがアホだったんだろう。
0214デフォルトの名無しさん
2008/02/14(木) 10:54:36あら、俺は【C】で書いてるよ・・・。
0215デフォルトの名無しさん
2008/02/14(木) 10:54:40aとbを比較したいのですが、a<bではダメなのですか??
0216デフォルトの名無しさん
2008/02/14(木) 10:55:33jarにエクスポートするとき、含めるファイルと含めないファイルを選択できると思うが
含めたい画像ファイルやjarファイルにチェックマークを付ければいいんでないか
0217デフォルトの名無しさん
2008/02/14(木) 10:56:05a<bでいいよ
0218デフォルトの名無しさん
2008/02/14(木) 11:00:01その際、srcフォルダの.javaにはチェックボックスが現れるのですが、
画像やプラグインには現れませんでした
別に設定すべき箇所があるのでしょうか?
0219デフォルトの名無しさん
2008/02/14(木) 11:00:32それですると
Exception in thread "main" java.io.IOException: Bad file descriptor
でてくるんですけど・・・。
0220デフォルトの名無しさん
2008/02/14(木) 11:05:23long値a,bの比較は a < b の形式で問題ない。
その周辺のコードが悪いんだろうよ。
0221デフォルトの名無しさん
2008/02/14(木) 11:06:37longの比較でIOExceptionが出るわけないだろうと思うが・・・
スタックトレースは?
0222デフォルトの名無しさん
2008/02/14(木) 11:13:12すいません、正確には
RandomAccessFile bin1 = new RandomAccessFile(new File(FileName1),"r");
RandomAccessFile bin2 = new RandomAccessFile(new File(FileName2),"r");
if(bin1.length()>=bin2.length())
c=bin2.length();
if(bin1.length()<bin2.length())
c=bin1.length();
としており、long型のcに短い方のファイルサイズをいれたいのです。。
この部分に問題があるのは確かなのですが・・。
0223デフォルトの名無しさん
2008/02/14(木) 11:32:53ビルドパスに入ってるjarファイルは出ないみたいだけど、画像はなんだろう・・?
ところで、jarにjarを含めても読み込めないよ
そういう場合はFatJarプラグインを使うといいかもしんない
0224デフォルトの名無しさん
2008/02/14(木) 12:01:55接続対象の環境は
Windows2003
Java HotSpot(TM) Server VM バージョン 10.0-b19
VM引数として
-Dcom.sun.management.jmxremote.port=8888
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
を設定しています。
接続元からportqryコマンドで8888がLISTENING状態になっているのは確認済みです。
0225デフォルトの名無しさん
2008/02/14(木) 12:49:51CとDとの違いは、Assertionを有効にしない実行時にcheckメソッドが通るか否かという点は理解できているな?
これは試験用のサンプルだからわかりにくいけど、
int result = dao.update(entity);
assert result == 1;
というサンプルならばCはNGでDがOKと解るだろう。
わざわざcheckというメソッドで引数をチェックさせているのは意地悪な引っ掛けだね。
0226デフォルトの名無しさん
2008/02/14(木) 12:55:32俺は、A を却下してる時点で、C や D も却下されるべきだと思うな。
assertion 使わずに、変な引数にもちゃんと対応しろって言ってるように見えるのに、
C と D のどちらもそのガイドラインに沿っていない。
0227225
2008/02/14(木) 12:56:28>213
アホはお前。
「アサーションの使用方法として適切なもの」であるから、CDは「publicメソッドで引数チェックのやり方は不適切」だがアサーションの使用方法に関してはDが正しい。
0228デフォルトの名無しさん
2008/02/14(木) 12:58:14その先何をやるのかわからないけど、必要なければ RandomAccessFile を使わない方が無難。
native なメソッドで追跡不能。例えば、ファイル長なら File.length でも可。
0229デフォルトの名無しさん
2008/02/14(木) 13:10:200230デフォルトの名無しさん
2008/02/14(木) 13:21:33言語規定によると…
> 配列は,int値によってインデクス付けしなくてはならない。
で、int型の最大値 (Integer.MAX_VALUE) は 2,147,483,647 なので、要素数はその -1 まで。
0231230
2008/02/14(木) 13:27:25要素数が最大値でインデクス値が最大値-1。かな…
まぁ、確保した時点で普通は OutOfMemoryError かと。
0232デフォルトの名無しさん
2008/02/14(木) 13:32:03ありがとうございます。十分な量です。
0233デフォルトの名無しさん
2008/02/14(木) 14:24:53Apache Jakarta Project関連統合【Java】
http://pc11.2ch.net/test/read.cgi/tech/1202966638/
0234デフォルトの名無しさん
2008/02/14(木) 16:12:12現在、mainクラスのガベージコレクションを、
多重継承されたインスタンスからコントロールしています。
ただ、Heap領域にアクセスする場合について、
そのコレクションフレームワークからマルチスレッド化させると、
ローカルにremoveしようとしても同期的な排他制御が取れません。
やはりラッパークラスのプリミティブ型は、エレメントのイテレータもhasNext()メソッドもどきで
volatile修飾子のシリアライゼーションをさせるのが絶対条件なのでしょうか。
ちなみに、もしコマンドライン引数によってJava.langのStringBufferまでimportしたとしても、
SetインターフェースのisEmptyメソッドにするとなぜかStackOverflowErrorの例外が発生します。
staticなyield()メソッドを汎用させるため、
throwsで例外ハンドラをコンストラクタなアサーションをしているのですが・・・。
C言語が腐るほど考えたのですが、
バイナリでのファイル操作がなかなかまとまらないため質問した次第ですので、
どうかお答えお願いします。
0235デフォルトの名無しさん
2008/02/14(木) 16:15:02プログラミングを何も知らない初心者が見たら、
めちゃくちゃ高度なことに見えるんだろうなぁ
0236デフォルトの名無しさん
2008/02/14(木) 16:22:04やりたいことを自分の言葉やコードで示せば回答もあると思うよ。
0237デフォルトの名無しさん
2008/02/14(木) 16:32:420238デフォルトの名無しさん
2008/02/14(木) 16:33:08まず、「てにをは」だけでも見直してみたらどうか?
0239デフォルトの名無しさん
2008/02/14(木) 16:36:310240デフォルトの名無しさん
2008/02/14(木) 16:38:26多重継承 :無理
GCのコントロール:原則としてできない
Heap領域にアクセス:??
ローカルにremove:??
ダメだ、突っ込みようもないわ
0241デフォルトの名無しさん
2008/02/14(木) 18:22:37中でg.draw(new Line2D.Double(x, y))
とやると直線が引けました。
この直線を半透明にグラデーションさせたいのですが、どのようにするのがよいでしょうか?
0242デフォルトの名無しさん
2008/02/14(木) 18:29:490243デフォルトの名無しさん
2008/02/14(木) 19:22:35小さいほうの値を選ぶだけなら static long Math.min(long, long) を。(if文を消せる。
0244デフォルトの名無しさん
2008/02/14(木) 19:56:19GradientPaint と AlphaComposite を調べろ
0245241
2008/02/14(木) 20:19:12とりあえず直線はおいておくことにして、任意のShapeについて半透明グラデーション
させられるかを考えることにしました。
AlphaCompositeを利用すると一様にアルファ値が適用されてしまうようです(当たり前ですね)。
これを徐々に変化させるような処理というのはどういうプロセスになるのでしょうか・・・
かなり考えたのですが、すみません、ヒントいただけませんか?
0246デフォルトの名無しさん
2008/02/14(木) 20:30:350247デフォルトの名無しさん
2008/02/14(木) 20:48:02このY座標までは0.6fで、次からはもっと薄く・・・とか。
ありがとうございます。
しかし、タイミングって関係あるんでしょうか?
ひょっとして「徐々に」というのが時間的に捉えられてたとか・・・
すみません。これは距離的にということでした。
0248デフォルトの名無しさん
2008/02/14(木) 21:12:250249デフォルトの名無しさん
2008/02/14(木) 22:41:53中学生レベルの理科か算数の話じゃねーか
0250デフォルトの名無しさん
2008/02/14(木) 23:09:02あきらめたほうがいい
0251デフォルトの名無しさん
2008/02/14(木) 23:31:23要するに図形を半透明にグラデーションさせたいわけだろ?
領域の面積で考えれば済む話じゃないか。しかももう判りかけてるみたいだし。
>>249,250はもうちょっと考えた方がいい。
0252デフォルトの名無しさん
2008/02/15(金) 00:14:390253デフォルトの名無しさん
2008/02/15(金) 00:25:57ゲームを作っているのですが、方向キーを押したときに画像が
切り替わるようにするにはどうしたら良いでしょうか。
歩いているように見せたいんです。
現在、方向キーを押すと画像が動くようにはできています。
分かりにくかったらすいません。
0254デフォルトの名無しさん
2008/02/15(金) 00:29:460255デフォルトの名無しさん
2008/02/15(金) 00:33:10普通に描画するだけなんじゃ?
ていうか質問の件よりは動かすほうが難しいと思うんだが
0256デフォルトの名無しさん
2008/02/15(金) 00:33:24やっぱり、strutsよりJSFの方が良くないか?
0257デフォルトの名無しさん
2008/02/15(金) 00:34:110258デフォルトの名無しさん
2008/02/15(金) 01:14:43キャラが左右に滑るだけでまだ手足が動かないということなんじゃ?
0259253
2008/02/15(金) 01:23:33そういうことです。いいクラスライブラリがあるのでしょうか?
0260デフォルトの名無しさん
2008/02/15(金) 01:36:050261デフォルトの名無しさん
2008/02/15(金) 01:36:47座標を適当な数で割った余りによってキャラを切り替えていくというのは?
0262デフォルトの名無しさん
2008/02/15(金) 01:37:17ちょっと考えたほうがいいのは241だろ
アルファ値込みでグラデーション設定したGradientPaintをsetPaintで設定したグラフィックコンテクストを使って
drawなりdrawLineなりで直線引けば終わりじゃないか
>>244でGradientPaintってヒントが与えられてるのに
AlphaCompositeで一様にしかアルファを設定できないって言ってるやつが変
0263デフォルトの名無しさん
2008/02/15(金) 01:44:130264195
2008/02/15(金) 01:47:42激しく遅レスでごめんなさい。
言葉足らずだった、というか話が長くなる予定だったので最初は簡単に意向と思ったというか。
Java(というかJVM?)でも、普通にメソッドを呼び出すと引数とかリターンアドレスとか
ローカル変数とかをスタックに積んでいくんだと思うんですよ。
でも呼び出し先で「例外」投げると呼んだメソッドへのリターンではなくって、
メソッド呼び出しを含むtry節に対応したcatchのところに(しかも例外の種類にあったcatchのところ)へ
一足飛びに戻ってくるわけですね。
そしてそこでキャッチした例外のインスタンスには、
そこから上のスタックがごそっと詰まっているように見えるわけです。
そんなこんなで、tryを実行するとJVMがどっかにcatchのアドレスと例外の型を保存していて、
呼び出し先のどこかで「例外を投げる」を行うと、スタックをこれまたどこかに保存したうえで、
もともと保存してあったcatchのアドレスにまで一足飛びにジャンプして、というのを考えると、
それというのはGotoなんかよりよっぽどたち悪くないか、なんて思ったりするんですけど、
それでも例外は使うな、なんて話は別に聞かないですし、そんなもんかとも思うんですが、
例外処理書くときにもやもやするのは確かなのです。
そういう例外処理機構がくわしくわかるようなWebとかないでしょうか。
0265デフォルトの名無しさん
2008/02/15(金) 01:49:02<foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://foo-uri"
xsi:schemaLocation="http://foo-uri foo.xsd">
<bar>...</bar>
…
XPath でノードを参照してみたんですけどノードと一致しません。
NodeList nl = (NodeList)xpath.evaluate("/foo/bar", doc, XPathConstants.NODESET);
// nl.getLength() == 0 になる
XML から名前空間の指定を取り除くと一致するため、検索時にパスの名前空間が考慮されてない
動きだと思うのですが、XPath に名前空間を意識させるにはどうすれば良いでしょうか?
DOM を構築するときにファクトリへ setNamespaceAware(true) は行っています。
0266デフォルトの名無しさん
2008/02/15(金) 01:49:30Feedaのほうがいい
0267デフォルトの名無しさん
2008/02/15(金) 02:01:33こちらで再度質問させてくださいまし。
一昨日からずっとこの問題を考えているのですが、基礎知識があまりに不足していて全くわからないで困っています。
プログラムに詳しい方いましたら長いですが完全解答を導き出していただけませんでしょうか?
以下に掲げたおこずかい帳プログラムの説明を書きなさい。ただし、書き方は次の例
を参考にすること。<form name=f><input type=text name=i value=""><input type=button value="偶奇判定" onClick="check()"></form><script>function chech()
{var a=Number(document.f.i.value);a=a+1;if(evenp(a)) alert("偶数");else alert("奇数");}function evenp(a){return a%2==0}</script>
【説明例】formタグとinputタグによって、画面にテキスト文字表示窓と偶奇判定用のボタンを表示。この際、ボタンをクリックした時、関数check()を呼び出すように設定する。
関数checkは、テキスト文字窓から入力された値(document.f.i.value)を関数Numberによって数値に変換し、これを変数aに代入する。ついで、aの値を1増やし、関数evenpによって変数aの
値が偶数か、奇数か判別し、偶数の時は"偶数"、奇数の時は"奇数"とalertウィンドウに表示する。関数evenpは、与えられた値(a)が偶数かどうか判別(aを2で割った余りが0かどうかで判定)し、結果(trueかfalse)を返す。
0268デフォルトの名無しさん
2008/02/15(金) 02:12:47読む気しねえ
0269デフォルトの名無しさん
2008/02/15(金) 02:13:55板違い
Web 作成板池
0270265
2008/02/15(金) 02:40:39NamespaceContext サブクラス作らなきゃいけないみたいですね。
0271デフォルトの名無しさん
2008/02/15(金) 03:14:39板違いって言われてなお同じ板の別スレに投げるとは
web制作板へ行ってもそのままじゃ誰も読んでくれんぞ
あっちの板で質問するときはせめて改行を入れろ
長くなるようならうpろだにあげろ
0272デフォルトの名無しさん
2008/02/15(金) 03:42:55お察しの通り、例外が発生した際の手順は見かけ以上に多く、議論の的になります。
例外を使う場面に関する検索キーワードとしては「java 例外 コスト」などでしょうか。
条件分岐目的で例外を発生させる書き方は、好まれていないように思えます。
instanceof とキャストと例外の話も面白い。
0273デフォルトの名無しさん
2008/02/15(金) 05:59:57リダイレクトされて、html情報を取得できません。。。
ググってもリダイレクト先のURLを取得する方法がわかりませんー!
どなたかご存じありませんか><
0274デフォルトの名無しさん
2008/02/15(金) 06:04:52つかリダイレクトを自動処理する設定くらいないのか。
0275209 ◆xkgLgN/H4.
2008/02/15(金) 09:06:24レスありがとうございました。
メソッドの事後条件チェックにアサーションを使用した例と
考えることにします。
引数チェックに見えるのが腑に落ちないですが、
そこは問題作成者の思いやりが足りなかったと思うことにします。
0276デフォルトの名無しさん
2008/02/15(金) 11:39:42処理の重さが気になるって話なら、実際に例外が発生しない限りほとんどノーコストなんだし、
実際に例外が発生した場合にコストが高いのは、まぁエラー発生時のみだからと割り切る。
gotoっぽくてイヤって話なら、returnでエラーコード返す処理を連ねてくのに比べればマシかと。
0277デフォルトの名無しさん
2008/02/15(金) 12:30:20今はエラーを表示するだけなのに、
paint(Graphics g){
test(g);
}
test(Graphics g){
………
tset_error(g);
}
test_error(Graphics g){
g..drawString("エラーがでたよ",0,0);
}
こんな感じの入れ子が数段連なってます。
なんだかガベージコレクトも頻発してるみたいなのでGraphics gを無くしたいのです。
0278デフォルトの名無しさん
2008/02/15(金) 12:33:260279デフォルトの名無しさん
2008/02/15(金) 12:38:47なんとかしたいでつ(>_<)
0280デフォルトの名無しさん
2008/02/15(金) 12:52:030281デフォルトの名無しさん
2008/02/15(金) 12:57:06設計を見直すべきかと
paintの中で描画以外の処理をやってないか?
paintでは描画に集中し、ほかの事はやらない
設計に問題がないのなら、gを渡すのは仕方ない
あとガベージコレクションはgを渡してるのとはおそらく関係ない
0282デフォルトの名無しさん
2008/02/15(金) 13:11:25Graphicsの入れ子はガベージコレクト的に問題ないと言うことですね。それを聞いて安心しました。
ということはImageや整数配列の入れ子が問題なのかな。
Cみたいな参照変数になってるのか、なってないのかがよく分からなくて。
0283デフォルトの名無しさん
2008/02/15(金) 13:22:230284デフォルトの名無しさん
2008/02/15(金) 13:22:26dは配列です。1次元目が開始位置、2次元目が終端です。
1次元目、2次元目がそれぞれx,yの座標を持っているので、
int d[][]型です。
int d[][] = new int[2][2];
配列dのメモリ確保はこれでよいですか?
C言語のようにd = new int[2]を実行してから、2次元目はforで回しながら
newしなくてはならないのでしょうか?
0285デフォルトの名無しさん
2008/02/15(金) 13:23:32Javaの変数は、オブジェクトについてはすべて参照。
引数はすべて値渡しだが、オブジェクト自身を渡すことはできない。
0286デフォルトの名無しさん
2008/02/15(金) 13:26:540287デフォルトの名無しさん
2008/02/15(金) 13:52:34試してみたら、Imageはコピーでした。Graphicsは参照。
全部試してみればよかったんだね。
0288デフォルトの名無しさん
2008/02/15(金) 15:39:040289デフォルトの名無しさん
2008/02/15(金) 15:46:370290デフォルトの名無しさん
2008/02/15(金) 16:12:360291デフォルトの名無しさん
2008/02/15(金) 17:14:19firstname = taro
lastname = yamada
fullname = ${lastname} ${firstname}
みたいなことって無理ですか?
0292デフォルトの名無しさん
2008/02/15(金) 17:44:10なんか、完ぺき主義者みたいだな。
ところどころで主語や目的語が抜けて凄いな。
何を多重継承したのかわからんし、何をどのようにコントロールしているのかもわからない。
5W1Hがなっていないというか。
0293デフォルトの名無しさん
2008/02/15(金) 18:17:48無理
0294デフォルトの名無しさん
2008/02/15(金) 20:22:43anko2;;あんこ2
このような形式の辞書ファイル(100MB)を
ランダムアクセスファイルで分割してメモリに読み込み
検索する辞書検索プログラムを作っているのですが
検索はできるのですが、かなり時間がかかり困っております
ハッシュ系のコレクションフレームワークを使えとヒントをもらったのですが
100MBのデータをハッシュ化すると当然メモリがたりなくなりました
大量のデータをハッシュで高速に検索する方法をおしえていただけないでしょうか
0295デフォルトの名無しさん
2008/02/15(金) 20:28:00KY
0296デフォルトの名無しさん
2008/02/15(金) 20:31:16メモリ増設
てか、ヒープを256MBくらいにすればいいだろ
0297デフォルトの名無しさん
2008/02/15(金) 20:34:56普通にデータベース使え。
それが嫌ならその辞書ファイルにインデックスでも付けろよ。
0298デフォルトの名無しさん
2008/02/15(金) 20:49:22解析しながら ヴァリデーション ができるようには作れないんでしょうか。
0299デフォルトの名無しさん
2008/02/15(金) 21:29:55他の人も書いてるけど、
普通にJavaDBでEmbeddedでやれば何も考えずに楽勝だと思うんだけど。
辞書ファイルがテキスト形式絶対でも
nioだったらヒープ外にバッファが取られるから
それほど遅くならんと思うがなぁ。
コマンドライン引数指定はしないとまずいし、今やってないかもしれないしなぁ、
どの程度のレスポンスで遅いって言ってるか解らないし。
0300デフォルトの名無しさん
2008/02/15(金) 23:46:17Label l = new Label("");
l.setFont(f);
をいちいちインスタンスごとにやるのではなくて、main()が始まったらすぐに
デフォルトフォントを設定して、Label l = new Label("");した時点で
そのフォントが適用されているようにはできませんか?
0301デフォルトの名無しさん
2008/02/15(金) 23:49:50自前の俺Label作ったらええやん
0302デフォルトの名無しさん
2008/02/15(金) 23:52:16Javadocには親のフォントを継承するかのように書いてあるから、
FrameにsetFontすればいいんじゃなかろうか
0303デフォルトの名無しさん
2008/02/15(金) 23:52:59たとえば
a = max(b,c/2);
だったら
=
/ \
a max
/ \
b /
/ \
c 2
のような木を得たいです。出力のフォーマットはどのようなものでも構いません。
何かご存知の方いらっしゃいましたらよろしくお願いします。
0304デフォルトの名無しさん
2008/02/15(金) 23:56:01BNFが有るのが前提だったら楽。
0305デフォルトの名無しさん
2008/02/16(土) 00:34:55Label.setFont()がありましたが、setDefaultFont()で解決しました。
0306デフォルトの名無しさん
2008/02/16(土) 00:50:02ありがとうございます。あきらめました。
public class OrigApp extends IApplication {
public OrigPanel oPanel;
public void start() {
oPanel = new OrigPanel();
oPanel.setFont(Font.getFont(Font.FACE_SYSTEM | Font.SIZE_SMALL | Font.STYLE_PLAIN));
Display.setCurrent(oPanel);
0307デフォルトの名無しさん
2008/02/16(土) 00:52:49が無いとFontのシンボルが解決でないというコンパイルエラーです。
Fontというクラス名が衝突しているのですか?
0308デフォルトの名無しさん
2008/02/16(土) 00:55:39>>307
いみがわからん。
インポートしちゃいかんの???
0309デフォルトの名無しさん
2008/02/16(土) 00:59:36import com.nttdocomo.ui.*
こう書けばFontが使えると思っていましたが、
>>306のソースでは
import com.nttdocomo.ui.Font;
でなくてはコンパイルできない理由が分かりません。
0310デフォルトの名無しさん
2008/02/16(土) 01:09:57じゃぁ、Fontというクラス名の衝突という認識で正しい。
import java.awt.*;
とかやってないかい?
そこのFontクラスがある。
つーか普通Fontっていうとjava.awt.Fontだとおもうんだが。
まぁ、ソースに明示的に
oPanel.setFont(com.nttdocomo.ui.Font.getFont(com.nttdocomo.ui.Font.FACE_SYSTEM | com.nttdocomo.ui.Font.SIZE_SMALL | com.nttdocomo.ui.Font.STYLE_PLAIN));
って書いてもいいけどなw
ま、Eclipseとか使えってことだ。
0311デフォルトの名無しさん
2008/02/16(土) 01:17:23Cだとif文で〜のときは変数○に値□を入れて
ーのときは変数○に値△をいれる
ってのができるのにjavaはスコープの関係上それができません><
一体どうやってやるんですか??
0312デフォルトの名無しさん
2008/02/16(土) 01:18:04import java.awt.Font;は、携帯用のコンパイラだからエラーでしたが
クラス名の衝突なんでしょうね。?
Eclipse使ってないことまでバレちゃうんだな。
Eclipse使えと言われているんだが。
0313デフォルトの名無しさん
2008/02/16(土) 01:20:36何を言っているんだ C のスコープも同じだろ (最近の ANSI C/C++ は違うのか?)。
String ○ = null;
if(〜){
○ = "□";
} else if(ー){
○ = "△";
}
0314デフォルトの名無しさん
2008/02/16(土) 01:21:09おそらくキャストが間違っている
0315デフォルトの名無しさん
2008/02/16(土) 01:22:04おそらく再起動したら直る
0316デフォルトの名無しさん
2008/02/16(土) 01:23:22おそらく激しく勘違い
0317デフォルトの名無しさん
2008/02/16(土) 01:25:15あーごめん。
おれiアプリとか書いたこと無いから「クラス名の衝突」に関してはウソかもシレン。
IDE使ってないのが解るのは
import java.awt.*;
とかでアスタリスクを使ってるから。
Eclipseだったら使ってるクラスのみをインポートするし
作法的にも衝突が起きないように省略するとかしない。
スタティックインポートとかつかえんよね?iアプリだと。
コンパイルする前からエラー教えてくれるし、俺は初心者であっても使うべきだと思う。
今ならEclipseじゃなくてNetBeansでもいいとおもう。
0318デフォルトの名無しさん
2008/02/16(土) 01:26:58まだ会社なんだ・・・・・許してくれ。
0319311
2008/02/16(土) 01:28:520320デフォルトの名無しさん
2008/02/16(土) 01:37:47スタティックインポートって聞いたことがありません。
まだインポがうまく使いこなせていませんが、
「Java謎+落とし穴徹底解明」を読んで、クラス名の衝突なのでは、と思いました。
0321デフォルトの名無しさん
2008/02/16(土) 01:45:24クラス名から書かなくてもメンバを参照できるってだけ。
この場合だと
import static com.nttdocomo.ui.Font.FACE_SYSTEM
って宣言しておけば
Font.getFont(FACE_SYSTEM ・・・
って書けるってだけ。
あんまり便利でもないし、積極的に使う場面でもないな。
0322デフォルトの名無しさん
2008/02/16(土) 03:18:280323デフォルトの名無しさん
2008/02/16(土) 03:20:570324デフォルトの名無しさん
2008/02/16(土) 03:23:09<? super T> Tのスーパクラスだったらなんでもいい
0325デフォルトの名無しさん
2008/02/16(土) 03:58:46class B extends A{}
class C extends B{}
とした場合、
List<? extends B> には B, C が入れられ
List<? super B> には A, B (Object も) が入れられる
って事で良いの? スーパークラスに限定が必要性ってどういう状況で出るんだろ。
0326デフォルトの名無しさん
2008/02/16(土) 04:04:25状況的にはあるとおもうが。
0327デフォルトの名無しさん
2008/02/16(土) 04:08:26<? super B> としても A にキャストした C のオブジェクトは OK になっちゃうんじゃないの?
0328デフォルトの名無しさん
2008/02/16(土) 04:15:07たとえば、java.util.Collections#copyとか。
<? extends T>なListの要素を<? super T>なListにコピーするメソッド。
Tのサブクラスが入ったListはTのスーパークラスを入れられるListにコピー可能。
0329デフォルトの名無しさん
2008/02/16(土) 04:35:17List<? extends B> bext2 = new ArrayList<B>();
List<? extends B> bext3 = new ArrayList<C>();
List<? super B> bsup1 = new ArrayList<A>();
List<? super B> bsup2 = new ArrayList<B>();
List<? super B> bsup3 = new ArrayList<C>(); // エラー
↑これはまぁ分かりますと。
List<? extends B> bext = new ArrayList<C>();
bext.add(new A()); // エラー
bext.add(new B()); // エラー
bext.add(new C()); // エラー
↑何で全滅やねん!
List<? super B> bsup = new ArrayList<A>();
bsup.add(new A()); // エラー
bsup.add(new B());
bsup.add(new C());
↑B のスーパークラスってのは代入の時のみで、
実際に適用するオブジェクトの型を上位に限定するんじゃないのか。
0330デフォルトの名無しさん
2008/02/16(土) 04:47:20>List<? extends B> bext
List<? extends B> ってことは、たとえば List<D> だったら
add の引数は D でなければならないわけで、
その場合は A も B も C も add 出来ないことになる。
? が確定しない限り、安易に add 出来ない。
>List<? super B> bsup = new ArrayList<A>();
こっちは、? が D ではありえない。List<Object> か List<A> か List<B> しかない。
List<B> かもしれないことを考えると、A は add できない。
B だったら、List<Object> でも List<A> でも List<B> でも OK だ。
0331デフォルトの名無しさん
2008/02/16(土) 05:06:04前半、全て NG なら何のためにそういった書き方が出来るんでしょうか?
さらに別に参照を受け渡すためか class D extends C{} を作って
List<D> dlist = bext; とかしてみましたがエラーでした。
後半、言語設計する側の理屈で言えばそうですね。使う側の立場で宣言だけ見ると
B のスーパークラスだけ add できるリストなのかと思ってしまいそうですが。
何でこうゲネリックウsって消化悪いんでしょうか。誰ですか設計したのは。
0332デフォルトの名無しさん
2008/02/16(土) 06:07:25なるほど。ありがとうございます。(質問者じゃないけれど)
かなり理解が進みました。
// 代入文を見ると、ついつい右辺の型で考えてしまうのよね…
0333デフォルトの名無しさん
2008/02/16(土) 10:25:49本が厚すぎてコードを打っているうちにパタンと閉じてしまいます。
何かいい方法はありませんか?
0334デフォルトの名無しさん
2008/02/16(土) 10:33:370335デフォルトの名無しさん
2008/02/16(土) 10:55:080336デフォルトの名無しさん
2008/02/16(土) 10:57:36独習Javaをやらない。
0337デフォルトの名無しさん
2008/02/16(土) 11:01:09お買い上げありがとうございます。
ttp://www.amazon.co.jp/dp/B0001CQAAQ
ワニクリップか洗濯バサミか何かでもいいけど。
0338デフォルトの名無しさん
2008/02/16(土) 11:25:58J2SE5.0対応を謳ってるくせに、
実際は1.3以前の内容しか載ってない。
例えば、キーワードにassertやenumが無かったり。
よくあんな本が売れるもんだ。
0340333
2008/02/16(土) 11:34:57それを聞くとモチベーション下がるなぁ。まだ第2章だっていうのに。
このスレには独習にお世話になった人はどのくらいいるのだろうか。
0341デフォルトの名無しさん
2008/02/16(土) 11:48:09お世話になったよ。
5.0は対応しているだけで、5.0用ってわけじゃないからなぁ。
1.4系を独習するという事で割り切れば今でも良本。
そもそも5.0系でまともな入門本ってあるかい?
0342デフォルトの名無しさん
2008/02/16(土) 12:09:23Java言語仕様一通り読んだけど、Genericsまわりははっきり言ってわけわからん。
つか、理解を完全に放棄したw
何らかの数学的背景があって、その範疇で整合性を取っているような感じだったが……。
0343デフォルトの名無しさん
2008/02/16(土) 12:18:37assertが載ってないから1.3系だよ。
1.4系の独習なら、他にもっといい本があるだろう。
5.0系の入門書は知らないけど、
1.4系なら結城さんの本とかいいんじゃないの?
5.0に対応してたかも知れないし。
0344デフォルトの名無しさん
2008/02/16(土) 12:22:00XP IE7 導入
JAVAの再インストール
すべてやってもエラーでみれません
対処方法教えていただけませんか?
0345デフォルトの名無しさん
2008/02/16(土) 12:31:02>前半、全て NG なら何のためにそういった書き方が出来るんでしょうか?
それは、get の方を考えてみればわかる。
List<? extends B> の場合、保持してる要素は少なくとも B か
そのサブクラスであることがわかってるから、get は B を返すことができる。
List<? super B> の場合、List<Object> という可能性があるから、
get は Object でしか返せない。
>List<D> dlist = bext;
それは無理。
bext は List<A> かもしれないし。
List<D> の get は D を返すわけだから、A とか入ってたら困るだろう。
0346デフォルトの名無しさん
2008/02/16(土) 12:39:20バージョンをチェックして振り分けてもMSjava1.1だとランタイムエラーになってしまいます。
SUNjava1.1はキチンと振り分けられて動いています。
これって対処できますか?
0347デフォルトの名無しさん
2008/02/16(土) 12:39:26まぁ誰の声が一番でかいかを争ってたんだろうというのは想像に難くないけど。
0348346
2008/02/16(土) 12:55:07if文で1.1以下の時だけそのクラスを使わない処理にしたら、
sun-java1.1はエラーを吐かなくなりましたが、
ms-java1.1はエラーで止まってしまいます。
0349hage
2008/02/16(土) 12:57:37キャンバス上に JComboBox を混ぜたプログラムを作ってるのですが、
マウスドラッグ中に JComboBox がちらついてしまうのが嫌なのですが、
なんとかなりませんでしょうか?
import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class Test extends JFrame{
private Image offs; private JComboBox cb; private Point mp;
public Test(){ init(); }
private void init(){
Container c = getContentPane();
c.setPreferredSize(new Dimension(300, 300));
c.setLayout(null); // レイアウト無し
// JComboBox の設定
String[] ss = {"hage", "hige", "huge", "hege", "hoge"};
cb = new JComboBox(ss); c.add(cb); cb.setBounds(30, 30, 100, 20);
pack(); repaint(); setResizable(false); setVisible(true);
// ドラッグで再描画
this.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent me){
offs = null; mp = me.getPoint(); repaint();
}
});
}
0350hage
2008/02/16(土) 13:00:11if (offs == null){
offs = createImage(getWidth(), getHeight());
Graphics g2 = offs.getGraphics();
g2.setColor(Color.BLUE);
g2.fillRect(0, 0, getWidth(), getHeight());
g2.setColor(Color.RED);
if (mp != null) g2.fillOval(mp.x - 2, mp.y - 2, 4, 4);
cb.repaint();
}
g.drawImage(offs, 0, 0, null);
}
public static void main(String[] args){ new Test(); }
}
0351デフォルトの名無しさん
2008/02/16(土) 13:01:23Graphics2D を使う部分だけ別のクラスに分けておいて、通常のクラス名で new する代わりに
Class#forName でロードして Class#newInstance でインスタンス化すれば大丈夫かと思うが、、、
(Graphics2D を使うクラスの名前は Class#forName の引数以外には一切書かない)
そんな昔の、切り捨てたら?
0352デフォルトの名無しさん
2008/02/16(土) 13:12:32とりあえず、JFrameに直接描くな。
JComponentを派生して自前のキャンバスクラスを作り、そのpaintComponentで描け。
0353hage
2008/02/16(土) 13:19:04(以下、連投)
import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class Test extends JFrame{
public static void main(String[] args){ new Test(); }
public Test(){ init(); }
private void init(){
MyCanvas canvas = new MyCanvas();
getContentPane().add(canvas);
pack(); repaint(); setResizable(false); setVisible(true);
}
}
0354hage
2008/02/16(土) 13:22:11private Image offs; private JComboBox cb; private Point mp;
public MyCanvas(){ init(); }
private void init(){
this.setPreferredSize(new Dimension(300, 300));
this.setLayout(null); // レイアウト無し
String[] ss = {"hage", "hige", "huge", "hege", "hoge"}; // JComboBox の設定
cb = new JComboBox(ss); this.add(cb); cb.setBounds(30, 30, 100, 20);
// ドラッグで再描画
this.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent me){
offs = null; mp = me.getPoint(); repaint();}});
}
public void paint(Graphics g){
if (offs == null){
offs = createImage(getWidth(), getHeight()); Graphics g2 = offs.getGraphics();
g2.setColor(Color.BLUE); g2.fillRect(0, 0, getWidth(), getHeight());
g2.setColor(Color.RED);
if (mp != null) g2.fillOval(mp.x - 2, mp.y - 2, 4, 4);
}
g.drawImage(offs, 0, 0, null);
cb.repaint();
}
}
と、途中で気づいたのですが、 paint を paintComponent にすると治りました・・・
paintComponent というのをはじめて知りました orz
勉強になりました。ありがとうございました
0355デフォルトの名無しさん
2008/02/16(土) 13:22:14Java 系のグループじゃそう言われてるけどなぁ、先日ニュース系の板から秘密で誘導して
統計とって見たら一番多かった Java 6 に続いて 5.0 と MS JVM 1.1 がほぼ同じだったよ。
もっとも、入れてもない奴がダントツだったけど。
0356デフォルトの名無しさん
2008/02/16(土) 14:52:42ありがとうございました。でもさっぱりわかりません。
>>355
ライバルが1.1サポートなんですよ(^^;
どうやらクラスローダーの挙動が違うのが原因なのかな。
0357デフォルトの名無しさん
2008/02/16(土) 15:03:360358デフォルトの名無しさん
2008/02/16(土) 15:56:33Iteratorとかvectorに<E>みたいなのをつけろって
eclipseでやると注意されるのですが
そこにIteretorでStringをあつかうとき<String>みたいに
やったら動きました。
本には書いてないので<>がなにかわかりません。
本だとIteratorでObjectにして好きなクラスを返すみたいになってるけど、
それはできないんですか?
0359デフォルトの名無しさん
2008/02/16(土) 16:06:35本に従ってやるならば、Eclipseでコンパイラレベルを1.4に汁
0360デフォルトの名無しさん
2008/02/16(土) 16:37:08hoge[0]=○○
という文字列を検索したいのですが
半角[]をどうやって表現すればいいのかわかりません><
0361デフォルトの名無しさん
2008/02/16(土) 16:45:53http://www.adobe.com/products/player_census/flashplayer/
Flashのアドビの発表でjavaの普及率が84.6%ってなってるけど?
これだけあれば個人的には十分。
2ちゃんねらは過去にFlashのリンクを何度も踏まされてるから
インストール率が高いとかかも。
0362デフォルトの名無しさん
2008/02/16(土) 16:57:59正規表現としては\でエスケープすればOK
Javaの文字列としては・・・
\\[で[にマッチするということになるな
0363デフォルトの名無しさん
2008/02/16(土) 17:33:57ClassNotFoundが出たら1.1だと判断すれば?
で、>>351が言うように、1.1に存在しないクラスを直接参照しないようにする。
0364デフォルトの名無しさん
2008/02/16(土) 17:40:55ありがとうございます!
てっきり\ひとつだけだと思ってました><;
0365デフォルトの名無しさん
2008/02/16(土) 17:59:340366デフォルトの名無しさん
2008/02/16(土) 18:23:57このスレでDerbyの使い方講座を開講しろっていうのか?
Apacheのページへ行ってDerbyのドキュメントを読め。webで検索しろ。
ここで質問するならもっと質問を具体的にして絞り込め。
0367デフォルトの名無しさん
2008/02/16(土) 18:35:23(1) derby.jarファイルにクラスパスを通す
(2) Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); を呼ぶ
(3) DriverManager.getConnection("jdbc:derby:test;create=true") で Connection を取得する
(4) 好きなSQL文を実行する
(5) Connection を閉じる
(6) DriverManager.getConnection("jdbc:derby:;shutdown=true"); を呼んでシャットダウンする
0368デフォルトの名無しさん
2008/02/16(土) 20:40:35T な変数には、<? extends T> なものを代入できるし、
<? super T> な変数には、Tはものを代入できるので、
返値に対してコバリアント的にしたい場合は、extends にして
引数に対してコバリアント的にしたい場合は、super にする
0369デフォルトの名無しさん
2008/02/16(土) 21:27:43if(a||b||c&&d)というのはaもしくはbまたはcかつdがtrueの時if文を実行ですよね?
ではif(a||b&&c||d)というのはaもしくはbがtrueかつcまたはdがtrueの時if文を実行。
ということで良いんですか?この仮定が合ってるとすると条件式の順番にも気をつけなくてはいけませんよね?
0370デフォルトの名無しさん
2008/02/16(土) 21:28:43ClassNotFoundException は、それを実行しようとしているかどうかに関わらず
それが分かったらいつVMが投げても構わないって仕様じゃなかったっけ。
それぞれの実装を別のクラスローダで読み込むのがいいんじゃまいか
0371デフォルトの名無しさん
2008/02/16(土) 21:35:42日本語でおk
0372デフォルトの名無しさん
2008/02/16(土) 21:47:12Java とは関係なさそうだけど。
* と + に優先順位があるのと同じ。
a || b || c && d => a || b || (c && d)
a || b && c || d => a || (b && c) || d
0373369
2008/02/16(土) 21:51:17ありがとうございました。
0374デフォルトの名無しさん
2008/02/16(土) 22:34:42もう少し解りやすく、他人に伝わるよう書く努力が欲しい。
if(a||b||c&&d)というのは、『a』もしくは『b』または『cかつd』のいずれかがtrueの時にif文を実行ですよね?
ではif(a||b&&c||d)というのは、『aもしくはbがtrue』かつ『cまたはdがtrue』の時if文を実行。
ということで良いんですか?
質問はこういう意味? なら>>372
ググるときは、『Java』、『演算子』、『優先順位』でOK。
0375デフォルトの名無しさん
2008/02/16(土) 22:45:04データを取得してテキスト形式で保存→新たに取得して比較→二日以上たったデータは削除
という感じなのですが、二日たったことを判断するのはどういう風にすればいいのか悩みます。。
ちなみにデータ取得時の日時は年/月/日/時/分まで保存してます
簡単に日にちで比較すると31日とか30日の判断もあるし、うるう年とかもあるので悩んでます><
いいアイディアはないでしょうか?
0376375
2008/02/16(土) 22:50:32どうもすいませんでした><;
0377デフォルトの名無しさん
2008/02/16(土) 23:15:140378デフォルトの名無しさん
2008/02/17(日) 00:07:31そんないつの時期に取ったか分からん統計出されても知らんがな。 Win に MSJVM が
デフォルトインストールだった時代や JavaScript のアプレット enable フラグだけ見てたら
それくらい行くだろうね。少なくとも 30 秒以上滞在してアプレットが起動しない環境は
倍以上居る。
0379デフォルトの名無しさん
2008/02/17(日) 00:35:10上記の方法で次々に値を代入していくにはどうすればいいですか?
0380デフォルトの名無しさん
2008/02/17(日) 00:41:28HashMapにaddするときに使ってる変数を変に使いまわしていないか?
HashMapに代入されるのは結局の所は参照なので参照先を書き換えると変わるぞ
0381デフォルトの名無しさん
2008/02/17(日) 00:55:40ありがとうございます
参照先が変わってるのかなあ
やろうとしていることは HTMLで入力した値を
サーブレットに渡してintにランダム変数を入れて
それをhashmapのkeyにして値も代入
一回目はうまくいくんですけど二回目以降に値が
リセットされてしまいます
0382デフォルトの名無しさん
2008/02/17(日) 01:04:26…?
HashMap のインスタンスが毎回生成されてる、なんてオチは無いデスヨね
0383デフォルトの名無しさん
2008/02/17(日) 01:12:22た、たぶんそれです
ありがとうございますOrz
もう少しがんばってみます
0384デフォルトの名無しさん
2008/02/17(日) 01:15:160385デフォルトの名無しさん
2008/02/17(日) 01:18:070386デフォルトの名無しさん
2008/02/17(日) 11:15:50いかんせん組み込みっぽいのはやったことがなくて。MIDP 2.0? とやらに対応させれば
良いんでしょうか? それとも専用の SDK でも買わなければけいないんでしょうか?
携帯の開発情報はそこそこありますがそれと同じと思って良いんでしょうか。
0387デフォルトの名無しさん
2008/02/17(日) 11:21:17操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
PATHの設定がどうしても出来ないためこれが出てしまっていると思うんですが、
>>1に書かれているURLが消えているのか飛べないです。
他に本も色々なサイトも見ましたが分かりません。
どこか分かりやすく説明しているところは無いでしょうか?
0388デフォルトの名無しさん
2008/02/17(日) 11:28:480389デフォルトの名無しさん
2008/02/17(日) 11:44:22しかしやはりどうも落としたバージョン(jdk-6-doc-ja)
だと上手くいかないようなので、申し訳ないのですが、質問を変えます。
改めてj2sdkを落としたいんですが、場所がどこなのか分かりません。
Javaの公式サイトから探しましたが、日本語に変換しても
別のページに飛ぶとまたすぐ英語になってしまうので、読めませんし訳が分かりません。
具体的なURLを直接教えて下さると大変助かります
0390デフォルトの名無しさん
2008/02/17(日) 11:45:34コーヒー返せwww
0391デフォルトの名無しさん
2008/02/17(日) 11:47:56やたら重いんで何かおかしいと思ったんですが。
でも英語だらけで分からないんですよ、ほんと。
国際派じゃないとこれから生きていけそうもないな
0392デフォルトの名無しさん
2008/02/17(日) 11:54:44document
0393デフォルトの名無しさん
2008/02/17(日) 11:55:53ググれカス
0394387
2008/02/17(日) 11:56:23ほんとに日本語でおkという感じなんですが…読めない。
やさしいJAVA2版に書かれていたURLも消えているようですし、
今の主流はもうj2sdkじゃないんでしょうか?
0395デフォルトの名無しさん
2008/02/17(日) 11:58:13確かにJDKとは書いてありますが、ドキュメントの方を取得されたようで。
Java SE Downloads
ttp://java.sun.com/javase/ja/6/download.html
リンク先には、JDK, J2EE, NetBeans, JRE と並んでいますが、
それぞれの説明を読む等で適切なものを選んでインストールしてください。
>>391
ま、ゆっくりやってくださいな。好きこそ物の上手なれとも言いますし。
アルファベットが読めないとか辞書を触ると目が見えなくなるとか言う人なら
更に教育を受けるか、病院に行った方が良いと思いますが。
0396387
2008/02/17(日) 11:58:16お騒がせしました
0398デフォルトの名無しさん
2008/02/17(日) 12:01:480399デフォルトの名無しさん
2008/02/17(日) 12:06:24あんなに懇切丁寧なレスを嫌味だなんて。
というか、有用な情報を見いだす目が著しく欠如しているってことか。
JDK落とすだけでこれだから、この先は想像を絶するいばらの道が待っていることだろう。
0400デフォルトの名無しさん
2008/02/17(日) 12:13:340401デフォルトの名無しさん
2008/02/17(日) 12:43:040402デフォルトの名無しさん
2008/02/17(日) 12:47:280403デフォルトの名無しさん
2008/02/17(日) 12:57:40>>387本人乙。
0404デフォルトの名無しさん
2008/02/17(日) 13:14:000405デフォルトの名無しさん
2008/02/17(日) 13:36:390406デフォルトの名無しさん
2008/02/17(日) 13:37:240407デフォルトの名無しさん
2008/02/17(日) 13:48:170408デフォルトの名無しさん
2008/02/17(日) 13:53:490409デフォルトの名無しさん
2008/02/17(日) 15:16:040410デフォルトの名無しさん
2008/02/17(日) 15:17:250411デフォルトの名無しさん
2008/02/17(日) 15:39:490412デフォルトの名無しさん
2008/02/17(日) 15:46:13母さんにあそこから最新の JRE 落として入れろとはとても言えない。
0413デフォルトの名無しさん
2008/02/17(日) 16:01:35まずはインストールをもっと簡単にして。
0414デフォルトの名無しさん
2008/02/17(日) 16:50:000415デフォルトの名無しさん
2008/02/17(日) 17:55:48もっともです。テンプレっぽいのに追加で。
**** 開発環境が必要の場合は ****
>>5
**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
ttp://www.java.com/ja/
0416デフォルトの名無しさん
2008/02/17(日) 17:59:58かえって混乱すると思う。
0417369
2008/02/17(日) 18:54:290418デフォルトの名無しさん
2008/02/17(日) 18:59:59ところがEclipseを使うのにJDKは不要だ罠
新人研修等ではじめからEclipseでスタートする場合、
JDKを入れたことがないという人も出てきそうなご時世だね。
0419デフォルトの名無しさん
2008/02/17(日) 20:16:41これってソート後の配列の添え字情報とかも取得できないんですか??
たとえば
ソート前
a[0]= 2
a[1]= 1
a[2]= 3
↓ ソート
ソート後
a[1]= 1
a[0]= 2
a[2]= 3
の[1],[0],[2]の情報を取得したいですー!何か方法ありませんかー!
0420デフォルトの名無しさん
2008/02/17(日) 20:25:55ただ単に安定なソートがしたい、ってだけなら、
List<Integer> lst = Arrays.asList(2, 1, 3);
Collections.sort(lst);
でOKじゃない?
0421デフォルトの名無しさん
2008/02/17(日) 20:35:50こういうラッパーをかぶせてからソートすればいいんじゃね
0422デフォルトの名無しさん
2008/02/17(日) 21:09:07一番高速なのは、quicksortのコードを自分でいじって実装することかな。
値をスワップするところで、添え字もスワップすればいい
0423419
2008/02/17(日) 21:09:52返答ありがとうございます
hoge[0] = 3423
hoge[1] = 4123
hoge[2] = 4142
a[0]= 2
a[1]= 1
a[2]= 3
みたいにhogeにID、aに値を保存していて、それぞれ添え字で=を確認してたんです
(つまり添え字が0ならID;3423→2みたいにです)
あとaには同じ値がたくさんはいっているのでソート後に値で確認もできないんです。。。
もしかして他にいい保存方法あったりしますかね^^;
0424デフォルトの名無しさん
2008/02/17(日) 21:10:48やっぱ自分で実装するのが一番早いですかね?。。
0425デフォルトの名無しさん
2008/02/17(日) 21:16:03class IDAndValue { int id; int value; }
ソートはComparatorを自分で実装すればいいだけ
0426デフォルトの名無しさん
2008/02/17(日) 21:21:10ありがとうございます
やってみます!
0427デフォルトの名無しさん
2008/02/17(日) 21:27:250428デフォルトの名無しさん
2008/02/17(日) 22:31:34BufferedReaderのreadLineのように一行ずつ読み込めるものがあると良いのですが、、、
0429デフォルトの名無しさん
2008/02/17(日) 22:45:340430デフォルトの名無しさん
2008/02/17(日) 22:45:43よりハッピーになると思う
0431デフォルトの名無しさん
2008/02/17(日) 23:05:38>>361のページに↓のようにいつ統計を採ったのかを書いてある
Millward Brown survey, conducted December 2007.
See Methodology Section for details on the Millward Brown study.
0432デフォルトの名無しさん
2008/02/17(日) 23:24:14t.start();
これでタイマーが開始しましたが、再びここで
t.start();
すると実行時エラーになります。
そこで t が t.start(); されているかを知る方法を教えてください。
0433デフォルトの名無しさん
2008/02/18(月) 00:01:19>>2 Good Luck!
0434デフォルトの名無しさん
2008/02/18(月) 01:07:55後ろに行くほど新しい情報が書いてあるログファイルなので後ろから読み込めたらいいなと。
容量はそれほど大きくもないのですが、、、
0435デフォルトの名無しさん
2008/02/18(月) 02:22:54それは tail コマンドと同じ機能っぽい印象を受けました。
そして、あまりに便利なコマンドだから、かっこいいことをしてるハズだ
と、そう思って検索してみました。すると…
勘違いしていました。tail.c
ttp://programamemo2.blogspot.com/2008/02/tailc.html
バッファサイズ決めて、(最初はファイル長を割って余った分だけ)ファイルから読み込んで
改行文字数を数えて、必要数たまったら、そのバイトから最後まで出力っぽい感じ。
ファイルが更新された時の処理も、そのブログ記事にあるとおりで、なんともはや…
0436デフォルトの名無しさん
2008/02/18(月) 02:36:16ファイルのケツから数kB〜数十kB ごとに読み込んで行数カウント、必要行数に
達したらそこから開始位置まで出力、達しなければその前のブロックを評価が定番。
0437デフォルトの名無しさん
2008/02/18(月) 08:34:15int sum(int[] date){
int r=0;
int i;
for(i=0; i<date.length; i++)
r += date[i];
return r;
}
}
public class sample34{
public static void main(String[] args) {
Test test =new Test();
int[] date1 = new int[]{1,2,3,4,5};
int result;
result=test.sum(date1);
System.out.println(result);
}
}
これで15が返ってくる理由教えてください。
私の考えはsum(int[] date)ここに{1,2,3,4,5}を入れるわけですよね?
でdate.lengthとなっているから、その個数5だと思うんですけど
すいません意味不明で・・・
0438デフォルトの名無しさん
2008/02/18(月) 08:54:320439デフォルトの名無しさん
2008/02/18(月) 09:21:12配列型の変数 date の length は int型で、この場合の値は 5 です。よって
L5: i が 5 未満の場合、L6 へ進む。そうでなければL7へ進む。
L6: r と date[i] を加算し、r にその結果を入れる。(i に 1 加える。L5へ進む。)
L7: r を返す。
// 何をしてるかと言えば、配列の各要素の値を加算した値を返してるだけ。
よって、Test のインスタンスメソッド sum(int[]) に
date1 を入れて実行すると 15 が返される。
// 各要素の値、1 から 5 までを加算した値
後は手元の本などで for文の仕組みを調べ直してください。
蛇足。制御文 if, else, for, while, do-while の "{ }" を省略した場合、
直後の1文が制御対象になりますが、見易さや事故防止等の為、
省略しないことをお勧めします。
0440デフォルトの名無しさん
2008/02/18(月) 09:26:03Σ data[i]
i=0
0441デフォルトの名無しさん
2008/02/18(月) 09:36:09これからも勉強頑張っていきます!
0442デフォルトの名無しさん
2008/02/18(月) 13:40:38Entryで得たvalueとkeyをStringにキャストしてInteger.parseIntをつかってから
int型にしてint型変数に格納しようとするとkeyだけキャストできないというエラーが出てしまいます
原因がわかりませんー・・・
0443デフォルトの名無しさん
2008/02/18(月) 14:01:46JavaのデフォルトタイムゾーンがGMTになっています。
デフォルトのタイムゾーンってどこをいじれば変更できるのでしょうか?
環境はJava1.6.0_04 Windows 2003 です。
0444デフォルトの名無しさん
2008/02/18(月) 14:06:03コードを見せてみれ
エラーメッセージも正確に
0445デフォルトの名無しさん
2008/02/18(月) 14:07:15キャストできないエラーというのは、「Stringにキャストして」の部分なのでしょうか?
1.5以降ならジェネリクスをお勧めします。
原因としては TreeMap に格納する際に何型を使ったのか、が怪しいところです。
0446442
2008/02/18(月) 14:14:34public Sortdata sort(Difference dif){
int i = 0;
String change_sm = null;
String change_play = null;
Sortdata data = new Sortdata();
NumericComparator c = new NumericComparator();
TreeMap map = new TreeMap(c);
while(i < dif.number){
change_sm = Integer.toString(dif.sm[i]);
map.put(new Integer(dif.replay[i]), change_sm);
i++;
}
Set s = map.entrySet();
i = 0;
Iterator it=s.iterator();
while(it.hasNext()){
Map.Entry e = (Map.Entry) it.next();
change_sm = (String) e.getValue();
change_play =(String) e.getKey(); //getKeyだけキャストがおかしいというエラーがでる
data.sm[i] = Integer.parseInt(change_sm);
data.replay[i] = Integer.parseInt(change_play);
System.out.println(data.sm[i]+":"+data.replay[i]);
i++;
}
return data; }
class NumericComparator implements Comparator {
public int compare(Object o1, Object o2) {
int result=((Integer)o1).compareTo((Integer)o2);
if(result==0) result=1;
return result;
} } }
0447442
2008/02/18(月) 14:16:22エラーは
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at Sort.sort(Sort.java:34)
行は書き込むときに編集してしまったので違うかもです
change_play =(String) e.getKey(); //getKeyだけキャストがおかしいというエラーがでる
とりあえず↑を指してます
0448デフォルトの名無しさん
2008/02/18(月) 14:21:41Integerで格納したんだから、Stringにはキャスト出来ない。
0449デフォルトの名無しさん
2008/02/18(月) 14:24:24Mapにputするときはkeyの部分をInteger型で入れている。
Integer型なのにString型へキャストしようとするからエラーになる。
0450デフォルトの名無しさん
2008/02/18(月) 14:31:02重ねてJ2SE1.5(5.0)以降ならジェネリクスをお勧めします。
ついでに autoboxing も機能するので更に見やすくなります。
> map.put(new Integer(dif.replay[i]), change_sm);
key が Integer, value が String。そりゃ key でキャストエラーになります。
以下蛇足。
・変数は使う直前で宣言すること。
・元が int型なら Integer だけにしておけば良いのに。
・初期化、比較、更新があるなら while ではなく for を使うように。
・ついでに初期化部で int i = 0; で宣言すること。(添え字の使いまわしは厳禁)
0451デフォルトの名無しさん
2008/02/18(月) 14:36:27ジェネリスクも試してみようと思います><
0452デフォルトの名無しさん
2008/02/18(月) 14:37:10set | find "TZ"
結果はカラ?
0454デフォルトの名無しさん
2008/02/18(月) 15:37:480455デフォルトの名無しさん
2008/02/18(月) 15:42:34JNIのこと?
0456デフォルトの名無しさん
2008/02/18(月) 15:55:040457デフォルトの名無しさん
2008/02/18(月) 15:59:29これでも読んどけ
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/jni/spec/jniTOC.html
0458デフォルトの名無しさん
2008/02/18(月) 16:05:550459デフォルトの名無しさん
2008/02/18(月) 16:10:420460デフォルトの名無しさん
2008/02/18(月) 16:11:22public class Test extends Thread{
private int i, j;
public synchronized void run(){
for(int count = 0; count < 2; count++){
i++; j++;
System.out.print("i=" + i + " : j=" + j + " ");
}
}
public static void main(String[] args){
new Test().start();
new Test().start();
}
}
A. i=1:j=1 i=1:j=1 i=2:j=2 i=2:j=2
B. i=1:j=1 i=2:j=2 i=1:j=1 i=2:j=2
C. iとjの値は出力されるが表示順は一意ではない
Testクラスは二つでき、runメソッドはそれぞれで動くため
AにもBにもなりえる(実際は何回やってもBになるが)と思ってCにしたんですけど答えはBでした
Aにはならないんでしょうか?
解説には「run()メソッドをsynchronized指定しているためrun()メソッド実行中は
他に制御が移ることなく処理されます」とあります
0461デフォルトの名無しさん
2008/02/18(月) 16:20:05printの後ろに、
try { Thread.sleep(1000); } catch (InterruptedException e) {}
を追加して実行してみてください。
0462デフォルトの名無しさん
2008/02/18(月) 16:29:21どっちのスレッドかわからんよな、これ。
Aは間違い。でも、結果的に出力は必ずBになるなw
0463デフォルトの名無しさん
2008/02/18(月) 16:31:400464デフォルトの名無しさん
2008/02/18(月) 16:33:05ありがとうございます
安心しました
0465デフォルトの名無しさん
2008/02/18(月) 16:51:26教えてください。
WinAPIのGetFullPathName()のようなやつがあれば・・・
0466デフォルトの名無しさん
2008/02/18(月) 16:53:020467デフォルトの名無しさん
2008/02/18(月) 16:54:52快速的回答謝謝。
0468デフォルトの名無しさん
2008/02/18(月) 16:58:18だれか原因わかる人います?
0469デフォルトの名無しさん
2008/02/18(月) 17:05:24最近落ちまくり & ほったらかし & メール送っても無応答状態らしい。
0470デフォルトの名無しさん
2008/02/18(月) 17:07:32まじか…javacの設定方法探そうと思ったのに…
0471デフォルトの名無しさん
2008/02/18(月) 18:15:45int m;
int n;
Test(int i,int j) {
m=i;
n=j;
}
Test(Test testC) {
m= testC.m;
n= testC.n;
}
int sum(int i,int j){
return m + n + i + j;
}
}
public class sample38{
public static void main(String[] args);
Test test = new Test(10, 5);
test.m++;
test.n++;
Test test2 = new Test(test);
System.out.println(test2.sum(2, 3));
}
}
このプログラムの中の
Test(Test testC) {
m= testC.m;
n= testC.n;
がある意味がよくわかりません。テキストを読んでいてもよく分からないので教えてください。
0472デフォルトの名無しさん
2008/02/18(月) 18:20:340473デフォルトの名無しさん
2008/02/18(月) 18:25:060474デフォルトの名無しさん
2008/02/18(月) 18:27:440475デフォルトの名無しさん
2008/02/18(月) 18:33:510476デフォルトの名無しさん
2008/02/18(月) 18:35:420477デフォルトの名無しさん
2008/02/18(月) 18:58:350478デフォルトの名無しさん
2008/02/18(月) 19:08:06それとも状態を持つのはフィールドだけなのでメモリにはフィールドのみを生成するのでしょうか?
0479デフォルトの名無しさん
2008/02/18(月) 19:13:440480デフォルトの名無しさん
2008/02/18(月) 19:13:48されたフィールドとメソッドを持つ。非 static フィールドはインスタンスごとに作成される。
0481デフォルトの名無しさん
2008/02/18(月) 19:16:33素早く分かりやすい回答ありがとうございました。
ずっと気になっていたことだったので本当にすっきりしました。
0482デフォルトの名無しさん
2008/02/18(月) 19:23:08Test test = new Test(10,5);
これを上の
Test(int i,int j) {
m=i;
n=j;
に入れて、つぎにmとnに1を足すまでは分かる。
Test(Test testC) {
m= testC.m;
n= testC.n;
これどんな処理してるん?
0483デフォルトの名無しさん
2008/02/18(月) 19:28:09新しく作ろうとしてるTestオブジェクトにコピーしてる
0484デフォルトの名無しさん
2008/02/18(月) 19:35:35どこにもなくて困ってる
0485デフォルトの名無しさん
2008/02/18(月) 19:36:350486デフォルトの名無しさん
2008/02/18(月) 19:37:480487デフォルトの名無しさん
2008/02/18(月) 20:09:370488デフォルトの名無しさん
2008/02/18(月) 20:14:13自分が書いたソースのクラスファイルを格納してるフォルダに全て突っ込んじゃえばいいと思うんですが、
この考え方は間違ってますか?
例えばDBのJDBCドライバを使うにはCLASSPASSに追加するかtomcatのcommon/binに入れたりするけど
前者の場合、無関係なプログラムにも影響を及ぼすし、後者の場合はコンテナを変えたらまた作業が増える。
自分が作ってるサーブレットのクラスファイルを保存してる場所にJDBCドライバを入れちゃえば全て解決な気がする。
0489デフォルトの名無しさん
2008/02/18(月) 20:23:030490デフォルトの名無しさん
2008/02/18(月) 21:36:42間違ってる
クラスが増えれば増えるほどクラスパスの設定の方が、クラスの競合とかの考慮より楽になる
そんなことよりIDE使っているなら面倒な作業にはならんだろ
0491デフォルトの名無しさん
2008/02/18(月) 21:41:45判別のために例外的に形だけあるってことかな
int.classやらがあって驚いたわ。
0492デフォルトの名無しさん
2008/02/18(月) 21:47:160493デフォルトの名無しさん
2008/02/18(月) 23:14:44b=true;
?ここを教えてください。
(b==false)が新になる。
bolean b;
b=false;
?ここを教えてください。
(b==true)が新になる。
0494デフォルトの名無しさん
2008/02/18(月) 23:17:060495デフォルトの名無しさん
2008/02/18(月) 23:24:170496デフォルトの名無しさん
2008/02/19(火) 03:06:22プリミティブ型はあくまでプリミティブ型で、そのクラスといったものはない。
あるのは、プリミティブ型を表すClassクラスのインスタンスで、各ラッパークラスで定義されている。
例えば、リフレクションAPIでメソッドの引数の型を指定する時などに使ったりする。
0497デフォルトの名無しさん
2008/02/19(火) 03:18:57答える気すら起きん
0498デフォルトの名無しさん
2008/02/19(火) 08:17:12表示して、設定してあるフォルダに振り分けるだけの簡単なソフトだ。
とりあえず、予定の作業は出来るようになった。
だが、アニメーションGIFの再生がおかしいことに気づいた。
「透過色」というのが上手く扱えていないようだ。
Toolkit.getDefaultToolkit().getImage("hoge.gif");で入手したImageを
JPanelから導出したクラスのpaint(Graphics g)でdrawImageにかけているだけなのだが、
何か足りないようだ。
足りない部分は簡単に補える?
それとも、意外に面倒?
0499デフォルトの名無しさん
2008/02/19(火) 08:29:490500デフォルトの名無しさん
2008/02/19(火) 12:26:350501デフォルトの名無しさん
2008/02/19(火) 13:44:08http://ja.wikipedia.org/wiki/F-35_(%E6%88%A6%E9%97%98%E6%A9%9F)
0502デフォルトの名無しさん
2008/02/19(火) 15:50:00クラス継承についてですが、親クラス、子クラスに共通して、同名のパブリッ
クなインスタンス変数があり、その初期値は親と子で違うとします。
子クラスのインスタンスを作り、それを親クラスの型の変数に代入した場合、
その変数のインスタンス変数には、親の価が入っています。
public class Parent {
public String hoge = "親";
}
public class Child extends Parent {
public String hoge = "子";
}
Parent x = new Child();
System.out.println(x.hoge); // => 親
System.out.println((new Child()).hoge); // => 子
要するに、パブリックなインスタンス変数は、子によってオーバライドできな
いのです。メソッドと違って。
どうしてこれは、こういう言語仕様になっているのでしょうか?
メソッドのようにオーバライドできてもいいと私は思うのですが。
0503デフォルトの名無しさん
2008/02/19(火) 16:18:57Parent[] xArray = { new Child01(), new Child02(), new Child03()}
for( Parent x : xArray ) System.out.println(x.hoge);
みたいに同じ変数名にアクセスして子独自の値が取れたら便利そうだよね。
0504デフォルトの名無しさん
2008/02/19(火) 16:21:48何より、変数をそんなに便利(に見える)にしてしまったら、
マルチスレッドとか大変になる。
オブジェクト指向の原則も何もあったもんじゃなくなるだろうが。
0505デフォルトの名無しさん
2008/02/19(火) 16:24:14子の方に新しいhogeを定義しなきゃいいんじゃ?
public class Parent {
public String hoge = "親";
}
public class Child extends Parent {
public Child(){ hoge ="子"; }
}
Parent x = new Child();
System.out.println(x.hoge); // => 子
0506デフォルトの名無しさん
2008/02/19(火) 16:24:370507デフォルトの名無しさん
2008/02/19(火) 16:25:24以上
0508デフォルトの名無しさん
2008/02/19(火) 16:28:02言語規定には、「フィールドアクセスのために動的に表検索する必要がないので
Javaは素直な実装でも効率が良い。遅延束縛と上書きはインスタンスメソッドが
使用されるときだけJavaで利用可能となる。」とある。
ttp://www.y-adagio.com/public/standards/tr_javalang/15.doc.htm#37055
0509デフォルトの名無しさん
2008/02/19(火) 16:29:50馬鹿にも分かるように誰か説明してくれよ
0510デフォルトの名無しさん
2008/02/19(火) 16:31:04>>506は何か勘違いしているから無視してOK
0511デフォルトの名無しさん
2008/02/19(火) 16:32:280512デフォルトの名無しさん
2008/02/19(火) 16:34:330513デフォルトの名無しさん
2008/02/19(火) 16:36:19動的にすれば柔軟性は上がるが実行時の効率が落ちる
そこでバランス取ってメソッドだけ動的にしたってこと?
0514デフォルトの名無しさん
2008/02/19(火) 16:37:230515デフォルトの名無しさん
2008/02/19(火) 16:38:390516デフォルトの名無しさん
2008/02/19(火) 16:38:57答:全部メソッドでできるので不要
0517デフォルトの名無しさん
2008/02/19(火) 16:40:31「フィールドアクセス」 は行為であって主体じゃないから synchronized でモニタ取れるわけないだろ。
this かそれに順ずるインスタンスに synchronized かけろよ。
0518デフォルトの名無しさん
2008/02/19(火) 16:44:34synchronized (hoge) {
hoge.x = "";
}
いちいちクライアントサイドでこんなことしたく無いだろ?ってことが言いたかったんだが
0519デフォルトの名無しさん
2008/02/19(火) 16:47:53それ hoge.x が Piyo のフィールドかスーパークラスのフィールドかは全く関係なくね? って事。
synchronized(hoge.x) とした時にどっちのモニター取ってるか分からなくなるというならともかく。
0520デフォルトの名無しさん
2008/02/19(火) 16:50:39悪いことの方は、以下の場合コンパイルエラーを出さないといけなくなる。
class S { int x = 0; int z() { return x; } }
class T extends S { String x = "1"; }
0521デフォルトの名無しさん
2008/02/19(火) 16:52:26何も考えずに使ってしまうようなやつが絶対いるだろ?
で、518のように書くやつなんているのか、と考えたときに、
いないだろうな、と。
0522デフォルトの名無しさん
2008/02/19(火) 16:58:11単純に、フィールドはなるべく隠蔽されるべきって考え方からだと思ってたけど違うの?
0523デフォルトの名無しさん
2008/02/19(火) 17:00:490524デフォルトの名無しさん
2008/02/19(火) 17:02:020525デフォルトの名無しさん
2008/02/19(火) 17:04:110526デフォルトの名無しさん
2008/02/19(火) 17:10:17それは新しい話題? カプセル化の話?
上書き(override, オーバーライド)は動的処理。
仮にフィールドの動的処理が可能なら、カプセル化は簡単に崩壊する。
// メソッドを上書きせずに、フィールドだけ上書きすればよい。
0527デフォルトの名無しさん
2008/02/19(火) 17:13:37privateフィールドもオーバーライドできなければ、別にカプセル化は壊れない
オーバーライドしたいのはprotectedとかpublicだけだろ?
隠蔽だかカプセル化だかとは別問題かと
0528デフォルトの名無しさん
2008/02/19(火) 17:24:14言語規定を貼る作業に戻りますm(_ _)m
0529デフォルトの名無しさん
2008/02/19(火) 17:32:47誰かねんどろいどに例えてくれ
0530デフォルトの名無しさん
2008/02/19(火) 17:34:36決めの問題的な話題なんてどうでも良いんじゃないのか。
0531502
2008/02/19(火) 18:38:57とうございました。
意外に思うかもしれませんが、自分は最初の質問以外、一件も書き込んでいま
せん。自分の分からない点は全部、他の人がツッコんでくれました。このスレ
は時々利用させていただいてますが、こんなのは初めてです。
レスの全部が理解できたとは言えませんが、大変勉強になりました。
0532デフォルトの名無しさん
2008/02/19(火) 19:06:45Javaによるアルゴリズム事典
おすすめ
0533デフォルトの名無しさん
2008/02/19(火) 21:35:53わざわざeclipse立ち上げるまでもないちょっとしたファイルを作ったり編集したりするためのエディタが欲しいです。
具体的には、html、java、jsp、ビルドxml、単なるテキスト文…こういったファイルを編集します。
メモ帳ではあまりにも使いづらいので他を探してるのですがオススメのものは無いでしょうか
0534デフォルトの名無しさん
2008/02/19(火) 21:53:560535デフォルトの名無しさん
2008/02/19(火) 22:00:010536デフォルトの名無しさん
2008/02/19(火) 22:14:30eclipseを立ち上げっぱなしにしておけばいいのでは?
0537デフォルトの名無しさん
2008/02/19(火) 22:14:580538デフォルトの名無しさん
2008/02/19(火) 22:33:13馴れれば結構使える(と思う)けど馴れるまでが大変(だろうな)
0539デフォルトの名無しさん
2008/02/19(火) 22:34:12わざわざプロジェクトとか作らないで
0540デフォルトの名無しさん
2008/02/19(火) 22:38:44× Mule
○ Meadow
0541デフォルトの名無しさん
2008/02/19(火) 22:40:44史上最悪のエディタだとか
0542デフォルトの名無しさん
2008/02/19(火) 22:42:030543デフォルトの名無しさん
2008/02/19(火) 22:42:55エディタとしては中毒性が高い。
0544デフォルトの名無しさん
2008/02/19(火) 23:08:380545デフォルトの名無しさん
2008/02/19(火) 23:13:260546デフォルトの名無しさん
2008/02/19(火) 23:22:550547デフォルトの名無しさん
2008/02/19(火) 23:29:55SortedSetを使い、ソートさせ、表示にはtoStingを使っているのですが、"[""]"の表示が出てしまいます。このカッコを表示させない方法はありますか?
もしくは、違った方法でソートの結果を出力させられるのでしょうか?
教えていただける方、よろしくお願いします。
0548デフォルトの名無しさん
2008/02/19(火) 23:32:430549デフォルトの名無しさん
2008/02/19(火) 23:44:12最後にもう1つだけ質問ですが、2つの結果を出す際に、1つ目の結果と2つ目の結果の間の","を消す方法はあるのでしょうか?
たびたび申し訳ありませんがよろしくお願いします。
0550デフォルトの名無しさん
2008/02/19(火) 23:45:140551デフォルトの名無しさん
2008/02/20(水) 01:52:59Remote System Explorerプラグイン入れれば、ローカルや、Telnet、FTP、SSH経由で
ファイルシステムにアクセスできる。
>>547
toStringはデバッグ出力などで使うものであって、
特定の書式にしたいのなら、自力で出力すべき。
0553デフォルトの名無しさん
2008/02/20(水) 13:12:04現在linuxにtomcatを入れて開発を行っているのですが自動起動に失敗してしまいます。OS起動後に直接起動スクリプトを実行すると正常に起動します。
環境とバージョン
CentOS5.1 32bit/jdk6/tomcat6
ログには以下のような出力があります。
文字制限に引っかかるため一部省略します。
--
2008/02/20 11:47:00 org.apache.catalina.connector.Connector pause
致命的: プロトコルハンドラの一時停止に失敗しました
java.net.SocketException: Network is unreachable
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:209)
at org.apache.jk.common.ChannelSocket.unLockSocket(ChannelSocket.java:486)
at org.apache.jk.common.ChannelSocket.pause(ChannelSocket.java:283)
at org.apache.jk.server.JkMain.pause(JkMain.java:681)
at org.apache.jk.server.JkCoyoteHandler.pause(JkCoyoteHandler.java:153)
2008/02/20 11:47:01 org.apache.catalina.core.StandardService stop
情報: サービス Catalina を停止します
以下試したこと。
・自動起動を一番最後に持って行った(rc3.d/S99tomcat)
・F/Wの自動起動を停止
どなたか解決策をご存じの方がいたら教えてください。
0554デフォルトの名無しさん
2008/02/20(水) 13:14:380555デフォルトの名無しさん
2008/02/20(水) 13:31:36eth0にグローバル、eth1にローカルを設定しています。
また、iptablesにてグローバルは25番のみIN/OUTを許可、ローカルは全て許可に設定しています。
iptablesの自動起動も止めてみたのですが、解決しませんでした。
0556デフォルトの名無しさん
2008/02/20(水) 19:00:05アプレットを使って画像を表示させたいのですが、
アプレットビューアを起動するコマンドを打つと上手く表示されるのですが
html形式のファイルを直接開くと画像が切れて表示されてしまいます。
htmlファイルを直接開いたときに画像が切れないように表示させるには
どうすればいいでしょうか?
よろしくお願いします。
0557553
2008/02/20(水) 19:11:40環境変数がちゃんと読めていなかったようです。
0558デフォルトの名無しさん
2008/02/20(水) 20:17:04例えば-5を5にしたいです。
どなたかおたすけを・・・
0559デフォルトの名無しさん
2008/02/20(水) 20:18:130560デフォルトの名無しさん
2008/02/20(水) 21:17:13lock();
func();
unlock();
みたいな
0561デフォルトの名無しさん
2008/02/20(水) 21:44:070562デフォルトの名無しさん
2008/02/20(水) 21:45:15http://java.sun.com/javase/ja/6/docs/ja/api/java/util/concurrent/Semaphore.html
0563デフォルトの名無しさん
2008/02/20(水) 21:49:58それだ。サンクス
0564デフォルトの名無しさん
2008/02/20(水) 22:17:07Tが一つのクラスだけだったらスーパークラスは一つだけですよ。
スーパーインターフェースなら妥当でしょうか
0565デフォルトの名無しさん
2008/02/20(水) 22:42:05superclassとdirect superclassの違いも知らないのか?
0566デフォルトの名無しさん
2008/02/20(水) 22:43:080567556
2008/02/20(水) 23:10:18アプレットを作るにはxxx.javaとxxx.htmlという2つのファイルを作りますよね
xxx.javaをコンパイルしてxxx.htmlというファイルに対してAppletviewerの
コマンドを実行してやるとその際に表示されるアプレットは画像が切れずに
キレイに表示されるのですが、xxx.htmlというファイルをクリックして
直接表示しようとすると画像が切れてしまいます。
画像が切れないように表示するためにはどうすればいいのでしょうか?
よろしくお願いします。
0568デフォルトの名無しさん
2008/02/20(水) 23:13:130569デフォルトの名無しさん
2008/02/20(水) 23:13:400570デフォルトの名無しさん
2008/02/21(木) 00:19:41↑見たいな感じで"<="を使いたいんですけどどうしたらいいですか?
0571デフォルトの名無しさん
2008/02/21(木) 00:32:130572デフォルトの名無しさん
2008/02/21(木) 00:32:32xは1〜18のいずれかで、かつ
yは0
ってこと?
if( (x >= 1 && x <= 18) && y==0 )
0573デフォルトの名無しさん
2008/02/21(木) 01:36:17ああ画像が切れるってそういう意味なのか。
0574デフォルトの名無しさん
2008/02/21(木) 10:26:40HashMap<Integer,String>[] map = new HashMap<Integer,String>[3];
という配列を作ろうとしたときに、コンパイルしようとしたら
汎用配列を作成します。
というエラーが出てしまいます。調べてみてもさっぱり理解できません。
よろしければご教授お願いします。
0575デフォルトの名無しさん
2008/02/21(木) 10:39:29ジェネリクスはコンパイル時のチェック機能。
コンパイルした後は HashMap という型情報しか存在しない。
よって、その型の配列が作成される。
0576デフォルトの名無しさん
2008/02/21(木) 11:48:490577デフォルトの名無しさん
2008/02/21(木) 15:47:43contextA/auth/AuthServlet
contextA/noauth/NoAuthServlet
web.xmlで/auth/*を認証ゾーンとして指定。
NoAuthServlet内から、プログラマーが自前でユーザIDとパスワードを使って/auth/*ゾーンの認証を済ませたいのですが
どうすればできるでしょうか?
認証を済ませる=HttpServletRequest#getUserPrincipal() != nullという意味です。
0578デフォルトの名無しさん
2008/02/21(木) 16:00:26初心者丸出しの質問ですみません。
同じパッケージ内のクラスを使うにはどうしたらいいのでしょうか?
よろしければご教授お願いします。
0579デフォルトの名無しさん
2008/02/21(木) 16:15:59それらのパッケージ名とクラス名は何でしょう?
それと、何を何処までやって出来なかったのか。
0580デフォルトの名無しさん
2008/02/21(木) 16:37:00ところでマルチポストって知ってる?
0581デフォルトの名無しさん
2008/02/21(木) 17:15:41正三角形の中点を中心に1回転させるにはどうすればいいですか?
マルチスレッドとアフィン変換を利用して回転させたいんですが、角度を細くするほど誤差?で変形してしまいます。今のとこ30゜ぐらいが限界です!
下手文ですみません
0582デフォルトの名無しさん
2008/02/21(木) 18:03:50JDBC、EJB、Hibernate、これらはどういう関係にあるんでしょうか?
例えばEJBを実装すればJDBCやHibernateは要らないのでしょうか?
自分が調べた限りでは、
実際の開発ではEJBが普通だが、小規模な開発ではHibernateを使い、もっと単純なものならJDBCで済ます
って印象なんですがこんな感じで当たってますか?
0583デフォルトの名無しさん
2008/02/21(木) 18:07:280584デフォルトの名無しさん
2008/02/21(木) 18:26:46abstract void calc(int i);
void printNum(int i) {
System.out.println(i);
}
}
class ExTest extends Test {
void calc(int i) {
int j=i*i;
printNum(j);
class ExTest2 extends Test {
void calc(int i) {
int j=i+i;
printNum(j);
public class sample46x {
public static void main(String[] args) {
int i =5;
int j;
Test[] ex_test = new Test[2];
ex_test[0]=new ExTest();
ex_test[1]=new ExTest2();
for(j=0; j<2; j++);
ex_test[j].calc(i);
これなんですけどコンパイルはできるんですけど、実行するとこんなの出ます。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at sample46x.main(sample46x.java:28)
どこが原因なんでしょうか?
0585デフォルトの名無しさん
2008/02/21(木) 18:36:370586デフォルトの名無しさん
2008/02/21(木) 18:38:24>for(j=0; j<2; j++);
これだな
0587デフォルトの名無しさん
2008/02/21(木) 18:51:20渇っ!
0588デフォルトの名無しさん
2008/02/21(木) 19:23:00どういう方法があるでしょうか。
0589デフォルトの名無しさん
2008/02/21(木) 19:24:440590デフォルトの名無しさん
2008/02/21(木) 19:30:03java.lang.Runtime#exec
>>589
http://java.sun.com/javase/ja/6/docs/ja/platform/rmi/spec/rmiTOC.html
0591デフォルトの名無しさん
2008/02/21(木) 19:33:26Runtime#execはEJBからは使えないはず
0592デフォルトの名無しさん
2008/02/21(木) 19:40:43なんで?使えるよ、ふつーに
0593デフォルトの名無しさん
2008/02/21(木) 20:52:38DB関連のAPIが林立しているのは、APIの進化変遷の跡。
最初から使い分けを意図して作られた物じゃない。
初期のEJBは詰め込みすぎで設計がクソで生産性が低いので、
小さくない規模の開発でも、Hibernateなどの他のマッピングフレームワークは使ってたよ。
0594デフォルトの名無しさん
2008/02/21(木) 21:38:57FileInputStream fis = new FileInputStream(file);
FileChannel srcChannel = fis.getChannel();
// 一つのデータは 2 byte (16 bit)
ByteBuffer buffer = ByteBuffer.allocateDirect(length * 16);
buffer.order(ByteOrder.LITTLE_ENDIAN);
// 読み込み
srcChannel.read(buffer);
srcChannel.close();
fis.close();
buffer.clear();
int ch1, ch2;
for(int i = 0; i < 1000; i++){
ch1 = buffer.get() & 0xff;
ch2 = buffer.get() & 0xff;
data[i] = (ch1 | (ch2 << 8)) & 0xffff;
}
buffer.clear();
int[] data という配列に
バイナリファイル中の符号なし short を読み込みたいのですが、
getShort() をつかったら、符号ありで読まれてしまったので、上のようなコード
でやっています。
処理が遅い(無駄計算が多い)気がするのですが、もっと良い方法はありますでしょうか
0595デフォルトの名無しさん
2008/02/21(木) 22:10:42上記のような文字列が部分的に含まれているファイルを
SQLに入れる作業をしているのですが、
これを読み込むとunrecognized tokenエラーが出ます
このような文字の扱いはどのようにすればよいでしょうか
0596デフォルトの名無しさん
2008/02/21(木) 22:12:11data[i] = buffer.getShort() & 0xffff
でダメかね?
0597デフォルトの名無しさん
2008/02/21(木) 22:33:16ファイル読み込むときのエンコーディング正しく指定してる?
0598デフォルトの名無しさん
2008/02/21(木) 22:33:39どっちも変わらない?
0599デフォルトの名無しさん
2008/02/21(木) 22:46:140600デフォルトの名無しさん
2008/02/21(木) 22:47:40それともやられにくいって意味か?
基本的にJavaはネイティブにしない限りソースへ復元は簡単な方
C#はどんだけネイティブ系使っているか次第
0601デフォルトの名無しさん
2008/02/21(木) 22:53:410602582
2008/02/21(木) 23:00:01ありがとうございます。
色んなベンダから別々に色んな技術が生まれてカオスな状態という感じでしょうか
デフォになってるものも無いようなので自分で色々試してみます。
0603594
2008/02/21(木) 23:02:25ああ、なるほどー。と思って実装してみたら、逆に少し遅くなりました。(データは正しく読めてました)
以下のようなコードを書いてベンチマークしても、やっぱり遅くなってましたorz
public class ReadTest {
public static final int length = 3800 * 2600;
public static int[] data = new int[length];
public static ByteBuffer buffer;
public static void main(String[] args){
try{
buffer = ByteBuffer.allocateDirect(length * 16);
buffer.order(ByteOrder.LITTLE_ENDIAN);
for(int i = 0; i < 20; i++){ read1(); read2(); read2(); read1(); System.out.print(".");}
long t = System.currentTimeMillis();
for(int i = 0; i < 10; i++){ read1(); }
System.out.println("\r\n" + (System.currentTimeMillis() - t) + " ms");
t = System.currentTimeMillis();
for(int i = 0; i < 10; i++){ read2(); }
System.out.println((System.currentTimeMillis() - t) + " ms");
} catch (Exception e){}
}
public static void read1() throws Exception{
FileInputStream fis = new FileInputStream(new File("hoge"));
FileChannel srcChannel = fis.getChannel();
for(int i = 0; i < 4; i++) fis.read(); // ヘッダ
buffer.rewind();
srcChannel.read(buffer); srcChannel.close(); fis.close(); // 読み込み
buffer.clear();
for(int i = 0; i < length; i++){ data[i++] = buffer.getShort() & 0xffff;}
}
/* read2 は読み込み部分が古いほう(省略) */
うーん、不思議ですねえ。 getShort() は遅いんでしょうか。。。
でかい画像を大量に処理していて、読み込みが25%くらい閉めているので、短くしたい・・
0604594
2008/02/21(木) 23:04:310605デフォルトの名無しさん
2008/02/21(木) 23:05:21やられにくいって意味でとらえてください
>>601
そうですか、使いやすくて良い言語だけど自分が作ったソフトが逆コンパイル
されるのは困るな
企業で開発するときは何か対策しているのでしょうか?
0606デフォルトの名無しさん
2008/02/21(木) 23:17:500607デフォルトの名無しさん
2008/02/21(木) 23:28:14ありがとうございます
UTF-8で読み込んでいます
System.out.println("แอมเพอร์แซนด์");
これでエラーになるのはなんででしょうか
0608デフォルトの名無しさん
2008/02/21(木) 23:29:100609デフォルトの名無しさん
2008/02/21(木) 23:57:00CDを管理するプログラムを作っているのですが、mainクラスとCDクラスがあります。
管理する数は、5つでその分のCDインスタンスをつくり、価格と名前のを入力しコレクションで管理すると言うプログラムです。(重複可で名前でソートさせます)
このプログラムを作ってみたのですが、Collections.sort(list);としたのですが、下線のびっくりマークのエラーが出てしまいます。
内容は、『型の安全性:型Collectionの総称メソッドsort(List<T>の未検査の呼び出しsort(List)がありました』と表示されてしまいます。
このようなエラー表示にはどのような対処をしたら良いのでしょうか?
アドバイスお願いします。
0610デフォルトの名無しさん
2008/02/21(木) 23:59:26-source 1.4
をコンパイルオプションに付ける
0611デフォルトの名無しさん
2008/02/22(金) 00:01:32JDKレベルを1.4にする
0612デフォルトの名無しさん
2008/02/22(金) 00:06:39Eclipse 3.1を使ってます。5.0から1.4にするという感じでよいのでしょうか?
コンパイルオプションの変え方がわからないので調べてみます。
0613デフォルトの名無しさん
2008/02/22(金) 00:42:51JDK5以降で言語仕様に入れられたジェネリクスというものに関わるエラー。
「java ジェネリクス」で調べてみて。
eclipseならリファクタリング機能の中に、
ジェネリクスを使用していないソースを使用するように変更してくれる機能もあるけど、
とりあえず、ジェネリクスを理解してからにしたほうがいい。
0614デフォルトの名無しさん
2008/02/22(金) 00:45:18アドバイス、ありがとうございます。
ひとまず、1.4に変更したところちゃんと動作しました。ジェネリクスの勉強もしてみます。
0615デフォルトの名無しさん
2008/02/22(金) 01:30:47真剣な質問です
また、女性関係に強い言語は何でしょうか?
0616デフォルトの名無しさん
2008/02/22(金) 02:04:39他でやれ
0617デフォルトの名無しさん
2008/02/22(金) 03:18:36今コードを書くためのエディタを探しています。
よいエディタを紹介していただけませんか?
0618デフォルトの名無しさん
2008/02/22(金) 05:53:510619デフォルトの名無しさん
2008/02/22(金) 09:05:49Javaと.NETどちらとも、逆コンパイラはある。
どっちも中間言語を使うタイプなので、逆コンパイラを作りやすいらしい。
そしてその対策として、obfuscator(難読化ツール)がどちらにもある。
単に、シンボル名(クラス名、メソッド名、変数名)をランダムな文字列に
置き換えて、逆コンパイラが出力したソースを読みにくくする、
ってだけだけど。
0620デフォルトの名無しさん
2008/02/22(金) 10:00:34初心者には難しいので入門書の段階では取り扱わないからか
それとも基本1.4で5.0要素は申し訳程度にしか書いてない本が
未だに主流だからか
0621デフォルトの名無しさん
2008/02/22(金) 10:21:520622デフォルトの名無しさん
2008/02/22(金) 11:27:58このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか?
もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが
0623デフォルトの名無しさん
2008/02/22(金) 11:38:09俺のとこでは依頼される仕事も未だに1.4全盛なんだよなー。他の会社の人に聞いてもそうだという。5.0に移行するのはいつになることやら。。
0624デフォルトの名無しさん
2008/02/22(金) 11:43:56Javaをネイティブ化したいだけならGCJもあるよ
速くなるとは限らないが
Javaが見た感じ重いのはSwingとかライブラリのせいもあるから…
0625デフォルトの名無しさん
2008/02/22(金) 11:48:02お前らに朗報
http://pc11.2ch.net/tech/
この板の適当なスレに
http://www.xlsoft.com/jp/products/jet/index.html
このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか?
もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが
と書き込んだらデブスがデブゲバうpするってよお
0626デフォルトの名無しさん
2008/02/22(金) 11:50:08お前らに朗報
http://pc11.2ch.net/tech/
この板の適当なスレに
http://www.xlsoft.com/jp/products/jet/index.html
このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか?
もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが
こう書き込まないとお前らがキーボード打ってる指があさって腐るそうだ
腐って死ぬぞ??
0627デフォルトの名無しさん
2008/02/22(金) 12:37:40Foo[] と ArrayList<Foo> が初心者的には理解しやすくなると思うんだけど
単なる入門書の怠慢だと思う
0628デフォルトの名無しさん
2008/02/22(金) 14:03:270629デフォルトの名無しさん
2008/02/22(金) 15:01:06import java.util.Scanner;
public class tes
{
public static void main(String[] args)
{
char stuname;
Scanner kb = new Scanner(System.in);
stuname = getStuN("Please enter the student name: ", kb);
}
//get studnt name
public static char getStuN(String str, Scanner kb)
{
System.out.print(str);
char sname = kb.nextLine();
System.out.print(sname);
return sname;
}
}
---------
tes.java:15: 互換性のない型
検出値 : java.lang.String
期待値 : char
char sname = kb.nextLine();
^
0630デフォルトの名無しさん
2008/02/22(金) 15:08:50ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Scanner.html
nextLine の戻り値型は String です。
よって sname の型宣言を String にして、それ以降の記述を適切に修正してください。
0631デフォルトの名無しさん
2008/02/22(金) 15:26:12できました! ありがとうございましたm(_ _)m
0632デフォルトの名無しさん
2008/02/22(金) 15:42:51165 名前: 以下、名無しにかわりましてVIPがお送りします。 [sage] 投稿日: 2008/02/22(金) 11:45:46.56 ID:Q0PQrlKw0
お前らに朗報
http://pc11.2ch.net/tech/
この板の適当なスレに
http://www.xlsoft.com/jp/products/jet/index.html
このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか?
もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが
と書き込んだらデブスがデブゲバうpするってよお
626 名前:デフォルトの名無しさん[] 投稿日:2008/02/22(金) 11:50:08
170 名前:以下、名無しにかわりましてVIPがお送りします。[sage] 投稿日:2008/02/22(金) 11:47:31.63 ID:Q0PQrlKw0
お前らに朗報
http://pc11.2ch.net/tech/
この板の適当なスレに
http://www.xlsoft.com/jp/products/jet/index.html
このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか?
もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが
こう書き込まないとお前らがキーボード打ってる指があさって腐るそうだ
腐って死ぬぞ??
0633デフォルトの名無しさん
2008/02/22(金) 18:03:04JAVAからpostgresのでーたをバックアップする方法を知りたいのですが、
JDBCを利用して、postgreSQLのpg_dumpを操作する方法はあるのでしょうか。
また、pg_dump以外にも、JDBCにてデータのバックアップを出来る方法があれば、
ご教授お願いいたします。
0634デフォルトの名無しさん
2008/02/22(金) 18:19:27DatabaseMetaData#getTablesで全テーブルを取得して全行クエリしてファイルに書き出すとか・・・
それですべて復元できるかわからないけど
Runtime#execでpg_dump呼び出す方が簡単な気がする
0635デフォルトの名無しさん
2008/02/22(金) 18:33:59>DatabaseMetaData#getTablesで全テーブルを取得して全行クエリしてファイルに書き出すとか・・・
それは遅そうだw
>Runtime#execでpg_dump呼び出す方が簡単な気がする
わしもそう思う。
何かの操作が必要だったら、シェルかバッチの中でJavaプログラムで操作したのちに
バックアップを走らせた方が効率が良さそうだが。
0636633
2008/02/22(金) 18:44:15どうもありがとうございます。
早速、試してみます。
0637デフォルトの名無しさん
2008/02/22(金) 19:07:300638デフォルトの名無しさん
2008/02/22(金) 21:32:33環境:Oracle JDBC
PreparedStatementとResultSetを使用し、
SELECTを実行しています。
通常問題ないのですが、バインド変数(?)が11個以上あるSQLを実行した場合、
かつ、レコードのヒット件数が11件以上を超えている場合、
11件目のデータ取得時に「配列の範囲」を超えた、という例外が発生します。
バインド変数はsetStringで1から順に設定し、
設定内容についても問題ないです。
※デバッガで確認済み
SQL自身は問題なく、SQLExceptionが発生しているわけでもありません。
何か回避策はあるのでしょうか?
0639デフォルトの名無しさん
2008/02/22(金) 22:03:150640デフォルトの名無しさん
2008/02/22(金) 22:09:44内部変数はInt型が2つ、Boolean型が1つの小さなクラスです。
クラスの2次元配列として2000x2000のインスタンスを生成するコードを書いたら
インスタンスを生成する箇所(以下)で
for(int j=0;j<2000;j++){
for(int i=0;i<2000;i++){
box[i][j] = new Box();
}
}
java.lang.OutOfMemoryError: Java heap space
というエラーが出てしまいました。
メモリの使い方が下手なんだと思うのですが、
よい対処法が思いつきません。
何か手はあるでしょうか?
0641デフォルトの名無しさん
2008/02/22(金) 22:32:58簡単に計算。integer型として。
4byte * 2 * 2000 * 2000 => 32byte * k * k => 32Mbyte
boolean型はどれだけ食うのか分からないが、さらに4-16Mbyte
ということで、先の値を目安にし、ヒープを明示的に確保します。
以下ページから java のページ、-Xmx や -Xms オプションを参照のこと。
ttp://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/tools.html
他の方法もあるとは思いますが、安易な解決法として。
0642デフォルトの名無しさん
2008/02/22(金) 23:23:53ありがとうございます。
そういうやり方もありそうですが、
もう少しコードの書き方について考えてみます。
0643デフォルトの名無しさん
2008/02/22(金) 23:24:12tomcatをインストールする場面ではjdkではなくjreのパスを指定しますよね
その後もtomcatの設定でjdkの場所を教えたつもりは無いのですが
jspをちゃんとコンパイルしてくれてるみたいです。
tomcatはどうやってjdkを認識してるんでしょうか?
0644デフォルトの名無しさん
2008/02/23(土) 00:47:22JSPのコンパイル用にIBMのJDK積むようになった。
昔はJDKの指定が必須だった。4までだったっけ?
0646デフォルトの名無しさん
2008/02/23(土) 02:17:56Int型というのは存在しない
Booleanの代わりにbooleanを使ったらどうか?
0647デフォルトの名無しさん
2008/02/23(土) 03:40:02試してみた
Sun JRE 1.6.0_04
Box[2000][2000] の場合 107MB
int[2000][2000][2] + boolean[2000][2000] の場合 110 MB
0648デフォルトの名無しさん
2008/02/23(土) 03:59:500649デフォルトの名無しさん
2008/02/23(土) 04:06:06意味が分からん
どういう状況を想定しているのか擬似コードでもいいからシンプルな例で示せ
0650デフォルトの名無しさん
2008/02/23(土) 04:06:21まあなんですか、[2000][2000][2] ではなく、[2][2000][2000] をお勧めします。
ついでに用途が合えば boolean[][] ではなく、java.util.BitSet を。
0651デフォルトの名無しさん
2008/02/23(土) 04:10:57コンストラクタはスレッドセーフかって意味なら答えは一般的にはノー
0652648
2008/02/23(土) 04:16:48コンストラクタ
java.lang.AbstractStringBuilder.AbstractStringBuilder(int capacity)内の
value = new char[capacity];
↑のところでブロックしてたので、非同期でnewは呼べないのかなと思ったんですが
ひょっとするとcapacityが大きいときだけ同期呼び出しだったりします?
0654デフォルトの名無しさん
2008/02/23(土) 04:40:170655デフォルトの名無しさん
2008/02/23(土) 04:46:29ヒープに配列を生成する過程でロックされてそうだ。
仮に非同期に実行できたとしても体感時間は変わらないと思う。
仮にヒープの拡張に時間が掛かってるなら、
最初からヒープを必要な分大きくしておけば少しは早くなる。
あとは初期にやたら時間が掛かるなら、確保するサイズを小さくして、
最大確保を遅延させるのはどうか。
確保するたびに前のゴミが出るのと時間が掛かるけど。
0656デフォルトの名無しさん
2008/02/23(土) 09:57:09確保するサイズが大きいとスレッドごとのプールから取れなくなるから同期が必要になる
というかそんな大きなStringBuilderをそんな頻繁に確保するってことがまずい気がする
GC起きまくってないか?一度 -verbose:gc で見てみ
確保したのを使いまわすと改善するんじゃないかな
0657お
2008/02/23(土) 11:14:43javacが使えず、環境変数の設定をすると、一度できたんですが、
2回目からできなくなりました。
しかも変数の設定を変えていたので元のがどんなのだったかがわかりません…。
環境変数の、Pathを教えて下さい。
0658デフォルトの名無しさん
2008/02/23(土) 11:16:24>>1
0659お
2008/02/23(土) 11:29:590660デフォルトの名無しさん
2008/02/23(土) 11:51:13本当に読んだか?具体的にどの手順がわからないんだ
http://java.sun.com/javase/ja/6/webnotes/install/jdk/install-windows.html#path
0661デフォルトの名無しさん
2008/02/23(土) 14:00:48>>656
なるほど!スレッドごとのプールから取れなくなるからってことですか。
このStringBuffer自体はデバッグのための文字列だったのでここの部分を取り払ったら
ロック争奪がなくなってスムーズに動きました。
ありがとうございました!
0662デフォルトの名無しさん
2008/02/23(土) 14:05:43>>650
いろいろありがとうございます
Intのうち一つはflagで3種類の値しかとらないのでboolean2つで頑張って
もう一つのIntをshort型にするとだいぶ減りそうな気がしました。
後で実装してみようと思います
boolean2つのところはBitSet?を使えばいいのですかね。。
後でjavadoc読んでみます。
0663デフォルトの名無しさん
2008/02/23(土) 16:05:39test.jar
+-dir1
+-test.class
+-templ.properties
これで、
> java -jar test.jar
と実行すると
ResourceManager : unable to find resource 'templ.properties' in any resource loader.
というエラーが出ています。
test.jarのおかれているディレクトリにtempl.propertiesがあるか?を探しているようで、
test.jarの中を探していないみたいです。
Main-Class:はdir1.testと指定してあるのでmainはコールできてます。
なにか指定し忘れてることあるんでしょうか。。。お願いします。
0664デフォルトの名無しさん
2008/02/23(土) 16:25:090665デフォルトの名無しさん
2008/02/23(土) 16:30:430666デフォルトの名無しさん
2008/02/23(土) 17:04:50J2SEのクラスの、Exceptionをthrowするメソッドで、
一番基本的で分かりやすいものって何だと思いますか?
コンストラクタじゃない普通のメソッドでお願いします。
0667デフォルトの名無しさん
2008/02/23(土) 17:11:090668デフォルトの名無しさん
2008/02/23(土) 17:11:270669デフォルトの名無しさん
2008/02/23(土) 17:19:51Exceptionをスローするメソッドです。
例えば、FileOutputStream#write(byte[] b)とか。
0670デフォルトの名無しさん
2008/02/23(土) 17:24:40// Exception 自体は throw も catch もするな。を教える
実行時例外なら、Integer.parseInt(String) で NumberFormat
普通のヤツは意図的に起こすだけなら ClassNotFound とか IO とか
NumberFormat は良い例ではないのよね。
実行時例外の割りに、catchされるように組み込まれてるし。
まあ、別に無理に教える必要は無いんじゃないかな
それよりも知らないメソッドは API doc で調べるように仕込むべし。
0671デフォルトの名無しさん
2008/02/23(土) 17:38:36実行時例外じゃなくて、
IOExceptionとか、メソッド呼び出すと絶対try catchしないといけないヤツです。
0672デフォルトの名無しさん
2008/02/23(土) 17:42:38ファイルがなければFileNotFoundExceptionを投げる
0673デフォルトの名無しさん
2008/02/23(土) 17:45:47じゃあ Socket#connect
接続できなければ IOException
0674デフォルトの名無しさん
2008/02/23(土) 17:55:35ImageIO#read(File) とか?
0675デフォルトの名無しさん
2008/02/23(土) 18:50:51try-catch-finally と合わせて覚えるのがセオリーかと
0676デフォルトの名無しさん
2008/02/23(土) 19:40:42finnalyも合わせて、Stream系で説明してみようと思います。
0677デフォルトの名無しさん
2008/02/23(土) 20:55:380678デフォルトの名無しさん
2008/02/23(土) 23:54:30HTMLも簡単だったし仕事では何やってるんですか?
0679デフォルトの名無しさん
2008/02/23(土) 23:58:400680デフォルトの名無しさん
2008/02/24(日) 00:00:51ひとつだけいえることはつまらないと思う人は
これを仕事にしてはいけませんよ。
0681デフォルトの名無しさん
2008/02/24(日) 00:01:05なにせ「単純労働」っていう言葉もあるくらいだ
0682デフォルトの名無しさん
2008/02/24(日) 00:01:060683デフォルトの名無しさん
2008/02/24(日) 00:40:01今までの業務開発経験は、COBOL3年あとはVBAぐらいですかね・・。
4年程前にSUNJAVA1.4の資格は取得したんで基礎的な事は大丈夫と思います。
実際に業務で役に立つ為に、他にどんな勉強しておけばいいですかね?
とりあえずTOMCATとMYSQL入れて、なんか作ってみようかなと思ってますが、
業務レベルでは全く無意味なんでしょうね・・
0684デフォルトの名無しさん
2008/02/24(日) 00:52:48とりあえずeclipseで簡単なwebアプリでも作ってみたら?
0685683
2008/02/24(日) 01:06:18いや、簡単な事やっても業務レベルでは通じないかなぁと。
でも基本的な事分かってると大分入りやすいですよね。
適当にDB構築してWEBアプリ作ってみます。
0686デフォルトの名無しさん
2008/02/24(日) 01:32:010687デフォルトの名無しさん
2008/02/24(日) 08:34:52}
public class sample53 {
public static void main(String[] args) {
try {
calc(2,2);
}catch (calcException e) {
System.out.println("calcExceptionが"+"throwされました");
}
}
static void calc (int i,int j) throws calcException {
if(i == j) {
calcException ce = new
calcException();
throw ce;
}
System.out.println(i*j);
}
}
これなんですけど、
if(i == j) {
calcException ce = new
calcException();
throw ce;
この部分でどういう処理を行っているのですか?
0688デフォルトの名無しさん
2008/02/24(日) 08:50:070689デフォルトの名無しさん
2008/02/24(日) 09:23:16もしiとJの値が同じなら、オブジェクトを作成して、その後はなんですか?
0690デフォルトの名無しさん
2008/02/24(日) 09:30:370691デフォルトの名無しさん
2008/02/24(日) 10:10:44static void calc (int i,int j) throws calcException
この部分はこの式は例外を投げる式ですよってこと?
0692デフォルトの名無しさん
2008/02/24(日) 10:14:300693お
2008/02/24(日) 10:27:48[追加します]とありますが全部変えてしまいました。全部どう記述するのか聞きたいです。
0694デフォルトの名無しさん
2008/02/24(日) 10:33:26つ ttp://okwave.jp/qa2940675.html
0695デフォルトの名無しさん
2008/02/24(日) 11:13:000696お
2008/02/24(日) 11:30:480697お
2008/02/24(日) 11:36:330698デフォルトの名無しさん
2008/02/24(日) 11:57:29�Bこの処理を500回ループした後
�AF7押す→1秒待機→F8押す→1秒待機
�C処理�Aを30回繰り返し�@に戻る
こういうプログラムはjavaだったら可能でしょうか?
ゲームに使うのでVBみたいにF8押したことにしますってのではなくて
実際に押すことが重要なんです
0699デフォルトの名無しさん
2008/02/24(日) 12:09:13>>96
VB が何をやってるのか知らんが、
人がキーを押したときと同じような結果をシミュレートすることは可能。
// 自動演奏みたいにキーボードが動く……誰かそういうヤツを作ってください。
0700デフォルトの名無しさん
2008/02/24(日) 12:16:39それを使うとたとえば
F8押した時、1+1の処理をするというプロシージャがあった場合
SENDKEYによって1+1を呼び出すことはできますが
実際にF8を押すという動作がウィンドウズ内で行われている
というわけではないようです
(押した時のようにキーをへこませるといわけではありません。念のため)
ようするに、キーを押した後の処理ではなく、キーそのものを押したことを
キーを押さずにウィンドウズに認識させたい
0701お
2008/02/24(日) 12:22:460702デフォルトの名無しさん
2008/02/24(日) 12:25:25なるほど。イベントのトリガーとして登録させてるようなものですかね。
ということで、96 を実行することで少しは感動してもらえそうな予感。
0703デフォルトの名無しさん
2008/02/24(日) 12:31:18勉強します
070411
2008/02/24(日) 12:31:27さっぱりわかりません。どなたかご教授願います。
/*ソースここから*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Gamen extends JFrame implements ActionListener{
private JButton b1 = new JButton("B画面表示");
private JButton b2 = new JButton("終了");
private JButton b3 = new JButton("C画面表示");
private JButton b4 = new JButton("B画面終了");
public void GamenA() {
getContentPane().setLayout(new FlowLayout());
getContentPane().add(b1);
getContentPane().add(b2);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("A画面");
setSize(200, 100);
setVisible(true);
b1.addActionListener(this);
b2.addActionListener(this);}
public void GamenB() {
getContentPane().setLayout(new FlowLayout());
getContentPane().add(b3);
getContentPane().add(b2);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("B画面");
setSize(200, 100);
setVisible(true);
b3.addActionListener(this);
b2.addActionListener(this);} //続きます
0705704
2008/02/24(日) 12:33:21public void GamenC() {
getContentPane().setLayout(new FlowLayout());
getContentPane().add(b4);
getContentPane().add(b2);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("C画面");
setSize(200, 100);
setVisible(true);
b4.addActionListener(this);
b2.addActionListener(this);}
public void actionPerformed(ActionEvent e){
if(e.getSource() == b1){
Gamen bb = new Gamen();
bb.GamenB();
}else if(e.getSource() == b2){
System.exit(0);
}else if(e.getSource() == b3){
Gamen cc = new Gamen();
cc.GamenC();
}else if(e.getSource() == b4){
//B画面終了ボタンを押してBのみ画面を終了させたい。
}
}
public static void main(String[] args) {
Gamen aa = new Gamen();
aa.GamenA();
}
}
/*ソースここまで*/
よろしくお願いします。
0706デフォルトの名無しさん
2008/02/24(日) 12:34:45Javaはある程度のことしかできないし、そういうものであれば既存のソフトで腐るほどありますよ。
自分でやりたいなら何らかのスクリプトを使うことをおすすめしておきます。
0707デフォルトの名無しさん
2008/02/24(日) 12:43:52閉じさせるフレームのインスタンスを持たせて、それでactionPerformedでdisposeしてやれば実現できるけど・・・継承とかそこらへんの意味を見直した方がいいと思うよ。
0708705
2008/02/24(日) 12:53:30ありがとうございました。
勉強しなおしてきます。
0709638
2008/02/24(日) 13:30:03業務なのでスタックとレースはちょっと貼れません・・・
実際に発生している問題は
パターン1
setStringでパラメータを19個設定
検索ヒット件数が10件以下
→問題なし
パターン2
setStringでパラメータを19個設定
検索ヒット件数が11件以上
→ResultSetでlastや、11件目のnextで例外発生
スタックとレースに配列の範囲外を指定(詳細19)というエラーが出力される。
※パラメータを15や11にした場合も同様に(詳細15)のように出力される。
パターン1と2で使用しているSQLは全く同一。
パターン1と2の違いはパラメータの1つの日付の範囲を数ヶ月広げているだけ。
パラメータを全て直接SQLに埋め込んだ場合、データが件数分正しく取得できます。
パラメータに上限とかあるのでしょうか?
SQLはそれなりに大きいです。100行程度。
0710お
2008/02/24(日) 14:16:010711デフォルトの名無しさん
2008/02/24(日) 14:16:23Oracle なら、詳細19とか詳細15とかマニュアル嫁
それの何処に配列が出てくるのか謎
0712デフォルトの名無しさん
2008/02/24(日) 14:18:34例外は本当にOJDBCで出てるのか?
0713638
2008/02/24(日) 14:29:54設定したパラメータが正しい内容で格納されているのは確認しています。
出力される例外はArrayIndexOutOfBoundsExceptionです。
ここでパラメータの数が「詳細 パラメータ数」と表示されます。
>>711
まず、SQLExceptionじゃないです。
上記通り、19とか15はパラメータの総数が出力されます。
謎ですが。
>>712
そもそも業務で外部接続できないので貼れません・・・
例外は、ResultSetのnextが11回目に呼び出されたタイミングで発生します。
ResultSetの処理の中でArrayIndexOutOfBoundsExceptionで死亡します・・・
0714デフォルトの名無しさん
2008/02/24(日) 17:02:570715ちんこ ◆GbXlaaQNk.
2008/02/24(日) 17:05:15(i方向が固定でj方向が可変、初期は空)
import java.util.*;
public class Test2{
public static void main(String[] args){
ArrayList<Integer>[] a = new ArrayList<Integer>[10];
for(int i=0; i<a.length; i++){
a[i] = new ArrayList<Integer>();
}
a[0].add(3);
System.out.println(a[0]);
}
}
こう書きましたがエラーが出ます。
どこがおかしいのでしょうか?
0716ちんこ ◆GbXlaaQNk.
2008/02/24(日) 17:05:450717デフォルトの名無しさん
2008/02/24(日) 17:07:300718デフォルトの名無しさん
2008/02/24(日) 17:09:04もっと簡単にやる方法とかここはこうしたらいいとかあったらアドバイスお願いします
import java.util.*;
class PermutationTest {
public static void main(String[] args) {
Permutation perm1 = new Permutation(4);
perm1.PrintPermutation();
return;
}
}
class Permutation {
private int N;
private int[] ans;
Permutation(int N){
this.N = N;
this.ans = new int[N];
}
void PrintPermutation() {
int[] a = new int[N];
for (int i = 0; i < N; i++) {
a[i] = i+1;
}
this.subPrintPerm(a,0);
}
続く
0719ちんこ ◆GbXlaaQNk.
2008/02/24(日) 17:09:27なんでエラーが出るのかさっぱり分からなくてね。
0720デフォルトの名無しさん
2008/02/24(日) 17:09:46private void subPrintPerm(int[] a, int idx) { // 配列a[]から1つ取り出して残りで再帰呼び出し
if (a.length == 1) {
ans[idx] = a[0];
ansを表示;
return;
}
for (int i = 0; i < a.length; i++) {
int[] b = new int[a.length-1];
ans[idx] = a[i];
int j=0;
while (j < b.length) {
if (j < i) {
b[j] = a[j];
} else {
b[j] = a[j+1];
}
j++;
}
this.subPrintPerm(b,idx+1);
}
}
}
0721デフォルトの名無しさん
2008/02/24(日) 17:10:15>>574-576
0722ちんこ ◆GbXlaaQNk.
2008/02/24(日) 17:16:06既出でしたね。
でもそのレスを読んでも分かったよな分からんようなです。
具体的にどうすればいいか示してもらえませんか?
0723デフォルトの名無しさん
2008/02/24(日) 17:46:20そして二度とブラウザを開かない
0725ちんこ ◆GbXlaaQNk.
2008/02/24(日) 17:58:50おれが書いた>>715のコードはどこがミスがあるのか
指摘出来る人はいませんか?
0726デフォルトの名無しさん
2008/02/24(日) 18:17:40ジェネリックスを使用したList<E>の配列は作れない、言語仕様的に。
したがって、int[][]のように2次元配列にするか、List<List<Integer>>のようにListにListを入れるべし
0727デフォルトの名無しさん
2008/02/24(日) 18:21:320728デフォルトの名無しさん
2008/02/24(日) 18:23:550729デフォルトの名無しさん
2008/02/24(日) 18:49:14でいいんじゃね?
0730ちんこ ◆GbXlaaQNk.
2008/02/24(日) 18:54:02ダイクストラ法による最短経路探索プログラムです。
http://www.uploda.org/uporg1268729.zip.html
うpしました。
これでListを使えると便利なので使いたいと思ったのですが、
具体的に今findShortestPath @ MainPanel
というのを実装しています。
ここで、toArray周辺でエラーが出て、どういう事だかさっぱり分かりません。
エラーの原因が分かる人は教えてください。
0731デフォルトの名無しさん
2008/02/24(日) 19:06:160732ちんこ ◆GbXlaaQNk.
2008/02/24(日) 19:08:570733デフォルトの名無しさん
2008/02/24(日) 19:34:33どう書けばよろしいでしょうか?
Runtime.getRuntime().exce(new String[]{"cmd.exe","/C","cd C:\hoge","hoge.exe"})
hoge.exeが自分のルートにファイルを出力する為、カレントディレクトリを移動しなければならず
この処理を含む実行ファイルをhoge.exeのフォルダに置くのは避けたいです。
0734デフォルトの名無しさん
2008/02/24(日) 19:37:520735デフォルトの名無しさん
2008/02/24(日) 20:04:50同じ名前のJMenuItem、同じActionListenerをセットした場合、
それぞれのMenuItemが選択された際の処理を変えることは可能でしょうか
ネットや書籍を調べてみたところ、JMenuItemが選択されたイベントが発生した場合、
そのイベントの名前をgetActionCommandで取得し、条件分岐を行っていましたが
同じ名前のItemが存在する場合の条件分岐方法を見付けることができませんでした
諦めてそれぞれのItemに別々のActionListenerクラスをセットするしかないのでしょうか
0736デフォルトの名無しさん
2008/02/24(日) 20:07:510737デフォルトの名無しさん
2008/02/24(日) 20:21:18見た目が同じだとしても場所とか違う識別子にはなるだろ
0738デフォルトの名無しさん
2008/02/24(日) 20:22:28ようなものを作成しているのですが、現在接続中のユーザーを
表示させる部分がうまくいきません。
IPで表示させるのですが、取得の方法が悪いのでしょうか?
ユーザー表示部分だけなので、宿題スレでなくこちらで質問させて
いただきました。よろしくおねがいします。
http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/217.java
0739デフォルトの名無しさん
2008/02/24(日) 20:30:45例外が発生するのか、処理がそこを通らないのか、ちゃんと情報を出せ。
あと、直リンできねーぞ
0740デフォルトの名無しさん
2008/02/24(日) 20:50:37レスありがとうございます。
できればRuntime.getRuntime().execでやりたいと思うのですが、無理でしょうか?
やはりjdk1.5ならProcssBuilderを使った方が良いのかな・・・。
0741デフォルトの名無しさん
2008/02/24(日) 21:02:36失礼しました。
特にエラーが出て処理が停止するというこはなく、
表示ボタンを押してもnullが返ってくるため
ユーザーのIPが上手く取得できていないのでは
ないかと思っています。
ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/main.htm
の217番にUPしてあります。
0742デフォルトの名無しさん
2008/02/24(日) 21:09:58System.out.println( "ユーザー表示ボタンが押されました" );
って行は通っているのでOK?
あとメッセージの表示は問題ない?
System.out.println( "アドレスを新規登録しました" );
って行は通ってないのか?
0743デフォルトの名無しさん
2008/02/24(日) 21:24:27eclipse
を使用してwebアプリを作ろうと思っています。
一つのプロジェクトで複数のTomcatを動かそうと思っています。
この場合、ルートディレクトリが複数で
ソースの出力先フォルダ一つしか設定できません。
ということは片方のルートディレクトリにしか
サーブレットのクラスは置けないため、
片方のtomcatからしかソースを参照できません。
こういった場合どうすればよいでしょうか。
0744デフォルトの名無しさん
2008/02/24(日) 21:38:05>>742
>System.out.println( "ユーザー表示ボタンが押されました" );
の部分はシステムコンソールに表示されているため
通っているものと思われます。また、メッセージも
""で囲まれている部分はきちんと表示されています。
>System.out.println( "アドレスを新規登録しました" );
この行もシステムコンソールでは表示されているので
通っていると思うのですが・・。
0745デフォルトの名無しさん
2008/02/24(日) 21:39:48何となく解る気もするが、
なんで、エクスポートしたwarファイルをもう一つのTomcatに置くのではダメなのかが解らない。
0746デフォルトの名無しさん
2008/02/24(日) 21:43:33何のためにそれをするのか知らないがeclispeはtomcatのラウンチャーじゃない
tomcatは別途立てて、そこにDeployするべき
あとeclipseの1プロジェクトで複数のWebアプリケーションを動作させようというのも間違い
プロジェクトを分けなさない
0747デフォルトの名無しさん
2008/02/24(日) 21:50:47"現在の接続ユーザーは " + userlist + "\n"
の部分だが、JTextAreaにまったく反映されないのか?
中身だけが空なのか、どっちだ?
0748デフォルトの名無しさん
2008/02/24(日) 21:53:00エラーは承認することができないという内容で、いくつかの環境で試しましたが同様です。
0749デフォルトの名無しさん
2008/02/24(日) 21:53:30userlistの中身がからで
現在の接続ユーザーはnullです という表示になっています。
0750デフォルトの名無しさん
2008/02/24(日) 21:56:26Chatroom#userlistに何も代入していない
0751デフォルトの名無しさん
2008/02/24(日) 22:02:11回答ありがとうございます。
userlist.add(clientAddr);
上記の文でアドレスが代入されるものと思っていたのですが、
この文の書き方では代入されていないということでしょうか?
0752デフォルトの名無しさん
2008/02/24(日) 22:03:120753デフォルトの名無しさん
2008/02/24(日) 22:28:32ありがとうございます。入ってると思ってたものが
別のものだったのですね。
助かりました、ありがとうございました。
0754デフォルトの名無しさん
2008/02/24(日) 23:29:39private int val;
public getVal() { return val; }
public setVal(int val) { this.val = val; }
public Parent clone() {...}
}
みたいに、clone() を実装したクラスParentがあったとして、
これを継承した子クラス Child を作ります。
で、この Child でも clone() を実装したいのですが、
その Child#clone() はどうやって実装するのが普通ですか?
public Child clone() {
Child c = new Child();
c.setVal ( this.getVal() );
...
return c;
}
と、親クラスの Parent#clone() の存在を完全に無視してもいいもんですか?
これだとどうもスマートじゃないような気がして、protected なコンストラクタを
親クラスに追加する、なんて方法も考えたんですけど、
典型的な手法があるのならばご教示ください。
0755デフォルトの名無しさん
2008/02/24(日) 23:35:47class Parent implements Cloneable {
private int val;
public getVal() { return val; }
public setVal(int val) { this.val = val; }
public Parent clone() {
try{
return (Parent)super.clone();
} catch(CloneNotSupportedException e){
throw new RuntimeException(e);
}
}
}
class Child extends Parent {
public Child clone() {
return (Child)super.clone();
}
}
0756デフォルトの名無しさん
2008/02/24(日) 23:40:36アクセス就職子protectedについて理解が足りないので教えてください。
protectedつけることで、
『自分のクラス内のメソッド 又は 継承されたサブクラス内のメソッドからしかアクセスできない』
そのように直感的に感じたのですが、
間違っているようで。
public class Purotekuto {
public static void main(String[] args) {
Test21 hogehoge = new Test21();
System.out.println( "値を出力:" + hogehoge.protectedInteger );
}}
public class Test21 {
protected int protectedInteger;
Test21() {
this.protectedInteger = 0;
}
public void setValue( int value ) {
this.protectedInteger = value;
}
public int getValue( int value ) {
return this.protectedInteger;
}}
このコードでは、main()から、クラスTest21のメンバ、protectedIntegerにアクセスできずに、
エラーか何かになると思ったのですが、普通に動きました。
自分の考えの何がまずいのでしょうか。。。
0757デフォルトの名無しさん
2008/02/24(日) 23:45:28super.clone() を使うかどうかは状況次第じゃね?
というか、普通はsuper.clone()は使えない方が多いと思う。
帰ってくるのはParentクラスのインスタンスだから、結局は値をコピーしなければならなくなるから。
0758デフォルトの名無しさん
2008/02/24(日) 23:46:09何のための継承、何のためのオーバーライド。
何がスマートじゃないんだ。感覚的に言われてもな。
ちなみに、cloneを使うなら、Cloneable を implements すること。
// 詳しくは Clonable, Object.clone 参照。
>>756
同じパッケージからもアクセスできるから。以上。
0759デフォルトの名無しさん
2008/02/24(日) 23:47:23もう1つ条件があって、「同一パッケージ内からのアクセス」もOK
0760756
2008/02/25(月) 00:01:54指摘を受けて調べました。
パッケージ化しないことには、ソースはばらばらのパッケージ的な扱いと、勝手に勘違いしていました。
デフォルトのパッケージ、という扱いになるのですね。
勉強になりました。
0761デフォルトの名無しさん
2008/02/25(月) 00:09:470762デフォルトの名無しさん
2008/02/25(月) 00:11:27ありがとうございます。
ちょっと理解できてきました。
0763756,760
2008/02/25(月) 00:18:14というと、必ず特定のパッケージに入れることを明示することが望ましいということでしょうか。
自分今回痛い目にあったので、761の指示に従って付いてまいりますが。
0764デフォルトの名無しさん
2008/02/25(月) 00:48:09デフォルトパッケージ以外のパッケージに属するクラスから
一切呼び出しが出来ない。(JDK 1.4 以降)
プログラミングの一般論としても
何らかの名前空間に所属させるのは
良い習慣だと思う。
0765デフォルトの名無しさん
2008/02/25(月) 01:00:16普通はコピーコンストラクタを作る
Cloneable は Java の失敗作とジョシュアっちが言ってました
0766デフォルトの名無しさん
2008/02/25(月) 04:11:37JAVAのSDK沢山種類があるようですが、
どれを使用すれば良いでしょうか?
0767デフォルトの名無しさん
2008/02/25(月) 04:28:17多分新しいのを使っとけばいいんじゃないだろうか
0768デフォルトの名無しさん
2008/02/25(月) 04:54:250769デフォルトの名無しさん
2008/02/25(月) 04:55:330770デフォルトの名無しさん
2008/02/25(月) 07:44:100771デフォルトの名無しさん
2008/02/25(月) 08:40:00\→\\
それと、カレントドライブの変更まではcdで出来ないけど、
その辺は大丈夫かな?
0772デフォルトの名無しさん
2008/02/25(月) 09:14:34値を取り出すにはどうしたらよいでしょうか?
0773デフォルトの名無しさん
2008/02/25(月) 09:34:570774デフォルトの名無しさん
2008/02/25(月) 09:37:02SimpleDateFormat("yyyy/MM/dd")でformatすれば?
0775デフォルトの名無しさん
2008/02/25(月) 09:44:18シングルトンを多数作りたいんですが、
private static Singleton instance = new Singleton();
public Singleton getInstance(){return instance;}
private Singleton(){}
といったおきまりパターンを各クラスに書かないと行けませんが面倒です
AbstractSingletonを継承したらgetInstance()で各シングルトンのインスタンスが取れるようになる
みたいな事ができれば便利ですけど、staticフィールドなのでそれもママなりません。
なんか旨い方法はありませんか?
0776デフォルトの名無しさん
2008/02/25(月) 09:49:44テキストフィールドに入力された文字列を
ボタンが押されたときに変数com_defに入力する
プログラムを作りたいのですが、
下のようにやるとローカル変数 i は内部クラスからアクセスされます。final で宣言される必要があります。
とエラーが出ます。
対処法を教えてください。よろしくお願いします。
text[i] = new JTextField("",2);
button1[i] = new JButton("変更");
button1[i].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
int com_def = Integer.parseInt(text[i].getText());
System.out.println(""+com_def);
}
});
0777デフォルトの名無しさん
2008/02/25(月) 10:01:15ありがとうございます。
できました。
0778デフォルトの名無しさん
2008/02/25(月) 10:11:39eclipse ならテンプレートを使って、少し楽が出来る。下のほうに例がある。
ttp://www.eclipsewiki.net/eclipse/index.php?%A5%C6%A5%F3%A5%D7%A5%EC%A1%BC%A5%C8
>>776
メソッドとその内部クラスとで共用で使う変数は、メソッド内 final として、コンパイルを通す。
他にも方法はあると思うけど、それ以上なら、クラス内クラスにしてちゃんと定義しましょ。
0779デフォルトの名無しさん
2008/02/25(月) 16:41:22正しく直してください。
0780デフォルトの名無しさん
2008/02/25(月) 16:43:38直しました。
0781デフォルトの名無しさん
2008/02/25(月) 16:43:540782781
2008/02/25(月) 16:44:300783デフォルトの名無しさん
2008/02/25(月) 16:46:120784デフォルトの名無しさん
2008/02/25(月) 16:47:230785デフォルトの名無しさん
2008/02/25(月) 17:24:320786デフォルトの名無しさん
2008/02/25(月) 17:47:04まず操作を1->5の順で行った結果を書きます。
1.http://hostname:port/jsp-examples/security/protected/index.jspにアクセスするとFORM認証機能が働きlogin.jspが表示される。
2.login.jsp -> Username/Passwordを間違えて入力->error.jspが表示される。
3.error.jsp -> "try again"をクリック -> login.jspが表示される。
4.login.jsp -> Username/Passwordを正しく入力 -> login.jspが再表示される。
5.login.jsp -> Username/Passwordを正しく入力 -> HTTPステータス 404 - /jsp-examples/security/protected/j_security_check
4でUsername/Passwordを正しく入力しているので1のindex.jspに飛ぶことを期待したのですが、login.jspが再表示されました。
login.jspの出力内容がブラウザに表示された時に、ソースを表示してみると
□2のlogin.jsp
<form method="POST" action='j_security_check;jsessionid=74394043647C95BAC48CC67ECDFFEFB7' >
□4のlogin.jsp
<form method="POST" action='j_security_check' >
比較してみると、4のソースではセッションIDが付加されていない為に、本来の遷移先のURLを見失ってしまっている、ということでしょうか?
jspソースファイルを見ると、login.jspもerror.jspもresponse.encodeURL()の結果をセットしていました。
login.jspのリクエスト箇所
<form method="POST" action='<%= response.encodeURL("j_security_check") %>' >
error.jspからlogin.jspを表示するリンク箇所
<a href='<%= response.encodeURL("login.jsp") %>'>again</a>.
今のままだとerror.jspからブラウザの戻るボタンで前画面(login.jsp)に戻らないと、認証後に期待したURLへ遷移してくれません。
error.jspにあるアンカータグでlogin.jspに戻った時も同じ動きにさせたいのですが、どのように修正すれば対応できるでしょうか?
0787786
2008/02/25(月) 17:51:390788デフォルトの名無しさん
2008/02/25(月) 18:37:01その圧縮形式はライブラリを持っており、InflaterInputStreamを利用すると比較的に楽に実現できると考えたのですが、
read()やread(byte[],int,int)など、いずれにせよユーザーが決めるバッファのサイズで解凍を行う必要があるため、今回のような解凍する側で単一バイト読み込み時に出力されるデータを決めるライブラリを持った圧縮形式ではどのように行うべきなのか分かりません。
解凍したデータもバッファリングして、ユーザーのサイズに合わせて出力すれば実現はできると思うのですが、何か他にいい方法はないものかと思い質問しました。
Inflaterのソースも読んでみたのですが、肝心の部分はnativeメソッドになっており結局どのような実装なのか分かりませんでした。良い方法がございましたら教えてください。
0789デフォルトの名無しさん
2008/02/25(月) 19:24:42>解凍したデータもバッファリングして、ユーザーのサイズに合わせて出力すれば実現はできると思うのですが
それしかないのでは・・・
1バイトだけ返すread()を実装すればあとはデフォルトの実装があるので、
class MyInputStream extends InputStream {
private byte[] buf;
private int pos, size;
public int read() throws IOException {
if (pos == size) {
// 解凍データをbufに詰めてsizeをセット
pos = 0;
}
return buf[pos++];
}
}
これだけでも一応動くよ
InflaterInputStreamをどう利用しようとしてるのかよくわからんが、あれはzlibストリーム専用
0790789
2008/02/25(月) 19:27:03○return buf[pos++] & 255;
でした・・・
0791デフォルトの名無しさん
2008/02/25(月) 20:59:08邪道かもしれんが。 なんか旨い方法、ということなら。
Enum の中に書く定数は1つ1つがシングルトンだ。
全定数に共通のメソッドも振る舞いが異なるメソッドも実装できるぞ。
0792ちんこ ◆GbXlaaQNk.
2008/02/25(月) 21:04:53Listなどを使う時には参照型しか使えないのですが、
いっそすべてのintをIntegerに書き換えた方がいいでしょうか?
プリミティブ型の扱いをみなさんどうしていますか?
おれはRubyからJavaに来たので数字が参照型じゃないというのに
すごく違和感を感じます。ましてや混在しているというのは非常事態です。
今すごく悩んでいます。
みなさんがどうしているかを知りたいです。
0793デフォルトの名無しさん
2008/02/25(月) 21:09:13ネットに繋がらなくて返事が遅くなってしまいました。
聞いていた立場で申し訳ないです。
Inflaterを利用しようと思ったのは、形式に共通点が多く、いくつかをオーバーライドすればできそうな気がしたためです。
確かに本来の用途から外れますので使用すべきではありませんね。
やはりバッファかますことにします。
親切にどうもありがとうございました。
0794デフォルトの名無しさん
2008/02/25(月) 21:10:35せっかくプリミティブ型があるのにわざわざオブジェクトにする必要はないと思います。
コストの問題ももちろんですが、何より扱いにくいです。
0795デフォルトの名無しさん
2008/02/25(月) 21:18:04Integer って、オブジェクトだとは言っても、中のデータを書き換えられないから不便だよ。
List などには int を入れても auto boxing されるんだから、int のままでいいんじゃないかなあ。
みなさんがどうしているか、に関しては、「気にしていない」だと思う。
0796デフォルトの名無しさん
2008/02/25(月) 21:18:13そういう言語だから受け入れるしかない
Rubyは理想を重視した分遅くなってるし
C#はプリミティブ型の扱いを変えて両立させてるけどその分複雑になってたりする
0797デフォルトの名無しさん
2008/02/25(月) 21:42:46aの要素数を1にするtruncateみたいなものはありませんか?
0798デフォルトの名無しさん
2008/02/25(月) 21:54:320799デフォルトの名無しさん
2008/02/25(月) 22:01:35Strint[] a; という配列でやりたいです。
Strint[] a = {"A","B"};
ここで処理して"A"が不要だと分かって、
a = {"B"};
とすればよいのでしょうか?
以前のaはa = {"B"};する直前にガベコされるのでしょうか?
それとも内部でtruncateみたいなことされて、aのアドレスは変わらないのでしょうか?
0800ちんこ ◆GbXlaaQNk.
2008/02/25(月) 22:04:44配列のautoBoxingがないです。
例えば
void methodA(int a)
にInteger型を放り込んだらこれはBoxingされますが、
void methodB(int[] a)
にInteger[]型を放り込むのはエラーになります。
配列からListを作る時にも参照型が強制されるので不利かと思いました。
(例えばArrayList<int>はエラーになる)
>>796
JRubyもダメでしょうか?(速度に関して)
0801デフォルトの名無しさん
2008/02/25(月) 22:05:33a = {"B"};
でよい。{"A","B"}はGCまかせ。
ちなみにGCは、不要になったら即実行される訳じゃないよ。
0802デフォルトの名無しさん
2008/02/25(月) 22:09:09ありがとうございます。ガベコに任せます。
0803デフォルトの名無しさん
2008/02/25(月) 22:09:22それ、初期代入でしかできないんじゃね?
0804デフォルトの名無しさん
2008/02/25(月) 22:12:12そうでした。
Strint[] a; という配列でやりたいです。
Strint[] a = {"A","B"};
ここで処理して"A"が不要だと分かって、
Strint[] aTemp = {"B"};
のように、もう1つ変数が必要ですか?
0805デフォルトの名無しさん
2008/02/25(月) 22:16:45ArrayListを作って必要な要素だけ追加していって後で配列に変換したほうが早い
配列でやるにしてもどうせ同じようなことを自分でやることになる
0806デフォルトの名無しさん
2008/02/25(月) 22:17:13a = new String[1];
a[0] = "B";
でよくね?
0807798, 803, 806
2008/02/25(月) 22:18:52んだなぁ。
ArrayList<String> a = new ArrayList<String>();
a.add("A"); a.add("B");
a.remove(0);
とかでいいと思った。
0808デフォルトの名無しさん
2008/02/25(月) 22:25:09そうできるんですね。ありがとうございます。
>>807
STLってまだよく分からないんです。でもありがとうございました。
0809デフォルトの名無しさん
2008/02/25(月) 22:27:18それはおいといて,>>806でいいんだったら
String[] a = { "B" };
と全く変わらないよ
0810798, 803, 806
2008/02/25(月) 22:28:13ちなみに配列への変換は
String[] array = a.toArray(new String[a.size()]);
でいいと思う
0811デフォルトの名無しさん
2008/02/25(月) 22:51:19配列モドキとコレクション
List<String> list = Arrays.asList("A", "B");
System.out.println(list);
list = ArrayList<String>(list); // 編集可能化
list.remove(0);
System.out.println(list);
0812デフォルトの名無しさん
2008/02/25(月) 22:57:41おまいは勘違いしてる。Javaの配列はサイズを変更(Cで言うところのrealloc)出来ない。
配列限定で長さを変えるには、新しい別の配列を作ってコピーするしかない。
今まで挙がってた例は全て新しい別の配列を作っているだけ。
長さが変わる場合、通常はArrayList等のList系のコレクションを使い、
どうしても配列が必要な場面でだけtoArray()で変換する。
0813デフォルトの名無しさん
2008/02/25(月) 23:07:52配列は既にオブジェクト(変数には参照が収められる)だから、auto Boxing はいらないし、
List にも add できる。
int[] を要求している所に Integer[] を放り込むとエラーになるのは型が違うから。
放り込めることを期待するのは
int に対応するのが Integer、int[] に対応するのが Integer[] という感覚があるからだろうが、
この4つの中で、int だけがプリミティブ、Integer だけが値変更が不便なので、
Integer は int をオブジェクトにするためだけにある特別な存在で、
対称性はあまり無い、と考えた方がいい。
0814デフォルトの名無しさん
2008/02/25(月) 23:30:24変更不可なgetterで結構toArray使わんか?
0815デフォルトの名無しさん
2008/02/25(月) 23:32:42main()の中で記述していた処理を、
ほかのファイルの関数に移動したいのですが、どのようにすればよいかわからず、教えてほしいです。
(サブルーチンで処理をするような考え方で。)
c言語で言えば、
main(){
一連の処理のまとまり1
一連の処理のまとまり2
}
となっていたものを
main(){
func1(渡す必要のある変数)
一連の処理のまとまり2
}
func1(引数){
一連の処理のまとまり1の代替
必要があればreturn文
}
といった感じ(型とか細かいことは別として。)に分割したいのですが。
今の自分の知識では、クラスを作って、メソッドを作って、
メソッドをインスタンス化して、
仮にインスタンスが設定された変数の名前がaaaとしたら、
aaa.メソッド(引数) とするくらいしか、頭が回りません。
メソッドを利用したいだけで、インスタンス化が必要なのか疑問で、やりかたがあるような気がしまして。
よろしくお願いします。
0816デフォルトの名無しさん
2008/02/25(月) 23:39:52別クラスにする必要がないのなら、別クラスにしなくていいんじゃない?
mainのほかにクラスメソッド書けばよい。
他からも使いたいけど、インスタンスを作る意味がないのなら、ユーティリティクラスという手もある。
java.lang.Mathみたいなクラス。メソッドは全て、クラスメソッドとして定義する。
0817デフォルトの名無しさん
2008/02/25(月) 23:45:00>メソッドを利用したいだけで、インスタンス化が必要なのか
オブジェクト指向の世界では必要だという前提なんだよ
原則としてすべてのメソッドはどっかのクラスに属していて、インスタンスを介して使用する事が基本
逆に言えばクラスに属するけど、インスタンスを介さないmainメソッドの方が特殊
慣れるまで、メリットを感じるまでは解らんと思うが、最初はそういう世界と思うしかない
0818デフォルトの名無しさん
2008/02/25(月) 23:47:04メソッドはいくら分割してもメソッドだ。
その例だとオブジェクトになるのは (渡す必要のある変数) ってやつだけだな。
main() で
渡す必要のある変数の型 obj = new 渡す必要のある変数の型();
して、
obj.func1()
0819デフォルトの名無しさん
2008/02/25(月) 23:47:46Strint[] a = {"A","B"};
ここで処理して"A"が不要だと分かって、
Strint[] a = {"B"};
↑aが2重定義になるので>>806の方法にしました。
0820デフォルトの名無しさん
2008/02/25(月) 23:49:18// メインクラス(Main.java)
public class Main {
public static void main(String[] args){
Sample.func();
}
}
// サブルーチンクラス(Sample.java)
public class Sample {
public static void func(){
// ↑staticでメソッドを宣言すれば<クラス名>.<メソッド名>でアクセスできる。
System.out.println("Hello, world!");
}
}
0821815
2008/02/25(月) 23:49:35レスありがとうございます、816,817。
>クラスメソッド(816)
クラスメソッドの概念を知りませんでした。ありがとうございます。
>オブジェクト指向の世界では必要だという前提なんだよ(817)
その考えを理解できるように努力していきます。
指摘ありがとうございます。
0822815
2008/02/25(月) 23:51:52レスポンス記述している最中に更新されたようで、失礼しました。
816のおっしゃる、クラスメソッドの具体例ですね。
わかりやすい説明ありがとうございます。
0823デフォルトの名無しさん
2008/02/25(月) 23:51:53>ほかのファイルの関数に移動したい
>サブルーチンで処理をするような考え方で
>メソッドを利用したいだけで
インスタンス化したくないなら当然インスタンス化は不要だ。
0824デフォルトの名無しさん
2008/02/25(月) 23:58:44他の方が指摘してらっしゃるように、
メソッドは、必ずしもオブジェクトに関連付ける必要はありません。
蛇足。Javaでは「他のファイルに記述する」という概念はありません。
あくまでも、クラスを分けるかどうか、です。
それゆえか、クラス内クラスである内部クラスが4種類あります。
0825ちんこ ◆GbXlaaQNk.
2008/02/26(火) 00:30:070826815
2008/02/26(火) 00:32:49821内の『>818』は『>820』の間違いですね。失礼しました。
>818
今コーディングして確認しました。
クラスメソッドを直接呼び出すか、
通常に、通常のメソッドをインスタンス化して呼び出すかですね。
>823
>インスタンス化したくないなら当然インスタンス化は不要だ。
いま確認とりたいと思いコーディングしてみたのですが、
ほかの方が示された用にstaticにするほかに方法あるのでしょうか。
staticなメソッドにするか、インスタンス化するか以外で試せませんでした。
staticにすることをおっしゃっているのでしょうか。(私の821,822のように時間差?)
>824
内部クラス。理解できるよう精進します。Tipありがとうございます。
自分の質問に対して、
816の考え方、817の考え方、の二種類の意見を持つ方に分かれるように感じました。
オブジェクト化するべきとの考えと、ユーティリティメソッドでいいのではという考えと、です。
このどちらを選ぶかは、個人やGrの考え方次第ということなのでしょうか?
それとも、オブジェクト指向的には後者の方が、望ましいが、面倒な手続きは好まれないので、前者が使われるということなのでしょうか。
0827デフォルトの名無しさん
2008/02/26(火) 00:42:12おおざっぱには、
・データが主体ならオブジェクトにする。
・ロジックが主体ならクラスメソッドにする。
くらいで良いのではないかと思ってる。(無論例外は山ほどある)
0828デフォルトの名無しさん
2008/02/26(火) 00:50:08eclipse使いはじめたのですが、eclipseに指摘されるエラーの意味がわからないので教えてください。
たとえば、まさに820のコードを、
eclipseでひとつのファイルに記述すると、
クラスSampleを別のファイルに書けといわれます。
Javaのルールなのでしょうか。
どういった原因なのか教えてください。
eclipse特有で指摘されるものなのでしょうか?
0829デフォルトの名無しさん
2008/02/26(火) 00:51:19何を作っているのかによる。
なんらかの概念(伝票・取引みたいな業務概念や、ファイル・ウィンドウのようなシステム概念)の、
特定のひとつに対する操作であれば、インスタンスメソッドとすることが望ましい。
逆に、概念に属する全ての対象に対する操作や、そもそもその対象を作り出す操作などはクラスメソッドになる。
ただし、実際にはクラスという概念とは関連づかない操作もあり、
Javaの場合は全てのメソッドがクラスに定義されなければならないため、便宜的にクラスメソッドとする。
0830デフォルトの名無しさん
2008/02/26(火) 00:52:53Javaのルール。
publicのクラスはファイル名=クラス名としなければならない。
なので、自動的にひとつのファイルにはpublicクラスは一つまでしか定義できない。
0831デフォルトの名無しさん
2008/02/26(火) 00:58:39830 の通り、Javaの仕様です。
public を外すか、クラス内クラスにするか、
一応、一つのファイルに複数のクラスを記述する方法はあります。
0832デフォルトの名無しさん
2008/02/26(火) 01:03:07830氏、831氏、すばやい回答ありがとうございます。
勉強になりました。
publicがキーワードでしたか。
0833デフォルトの名無しさん
2008/02/26(火) 01:21:48アクセス修飾子には、public, protected, privateがあり、
アクセス制御の範囲としては、上記3つのほかに、修飾なしを含めた4つがあるようです。
で、最後の修飾なしなのですが、
実際に仕事でのプログラミングや、アプリケーションの作成で、使用されるのでしょうか。
範囲が修飾ありの3つと異なるのですが、何も記述しないというのが、どうにも好きになれないみたいな。
基本的に、何らかの修飾をしましょうということは無いですか?
0834デフォルトの名無しさん
2008/02/26(火) 01:31:30たしかに気持ち悪いが、そう決まってる以上、そういうもんだと思うしかない。
使う場面はときどきあるよ。
トップレベルクラスは、publicにしたくなければ、他に選択肢もないし・・・
0835デフォルトの名無しさん
2008/02/26(火) 01:40:22クラスは良くパッケージデフォルトにするなぁ。
パッケージをコンポーネントと見立てて、publicがインタフェースでパッケージデフォルトが実装の詳細。
メソッドやフィールドではあまり使ったことないや。
0836デフォルトの名無しさん
2008/02/26(火) 01:55:23GUIなアプリケーションがさくさく書けてJavaマンセーな状態なのですが、
そろそろ他の言語ってかC++で同等の事ができるようになりたいと思い始めてます。
そんなぼくにお勧めのC++用のIDEを教えてくれませんか?
eclipseみたいにCtrl+spaceなどでガンガン補完できるようなやつで、
リファクタリングが強力なやつがよいです。
(若干スレ違い?)
0837デフォルトの名無しさん
2008/02/26(火) 02:09:29全くスレ違い
CDT
0838デフォルトの名無しさん
2008/02/26(火) 02:46:20派生先からだけ見えて欲しい時は多数あるけど
パッケージ内からだけ見えて欲しい時がないので
デフォルトスコープを使う機会がない。
継承・実装の階層とパッケージ階層とは全く別個のものなのに
1系統の修飾子で片付けようとしたのに無理がある。
パッケージ階層は無視するか2系統用意して組み合わせ可能にしたら良かったのに。
C#(.NET?) だと名前空間は無視するかわりに、
アセンブリ境界に対して internal で制限するかどうかを選べる。
0839デフォルトの名無しさん
2008/02/26(火) 03:20:53そこそこ可視性があるが、言語的に最後の砦であるパッケージの境界でカプセル化してセーフ
というのがパッケージプライベートなので、とりあえず書いてみる的に使うのは、ちょうどよいのかと。
そして、とりあえず書いてみるレベルだったら、
何も修飾子を書かなくてもええじゃないか、のような乗りかと。
なお継承はカプセル化を壊すので、protected を使うのはその一線を越えます。
0840833
2008/02/26(火) 03:45:25返信にただいた内容を元に、学習します。
>839
>なお継承はカプセル化を壊すので、protected を使うのはその一線を越えます。
この点について、初心者向けの説明をいただけませんか。
時間かけると理解が進む資料の場所もみつかるのでしょうが。
0841デフォルトの名無しさん
2008/02/26(火) 07:01:30a = new String[]{"B"};
0842デフォルトの名無しさん
2008/02/26(火) 08:12:42JDK7になったらスーパーパッケージが出来るんだけどねぇ。
JDK7は本当に完成するんだろうか。
0843デフォルトの名無しさん
2008/02/26(火) 10:47:38ありがとうございます。それにしました。
0844デフォルトの名無しさん
2008/02/26(火) 17:19:58テキストでこの章に入るまではこれを使わなくても出力できていたわけ
ですから。
0845デフォルトの名無しさん
2008/02/26(火) 17:22:420846デフォルトの名無しさん
2008/02/26(火) 17:25:510847デフォルトの名無しさん
2008/02/26(火) 18:24:48ベルトコンベアみたいなものを思い浮かべろ
そこに物(データ)を置くと、それはどこかに流れていく
それが出力ストリームのイメージ (streamは流れという意味)
どこに流れていくかは、それがどんなストリームかによる
例えば FileOutputStream だったら、ファイルに書き込まれる
System.out だったら、標準出力に行く
ソケットだったらネットワーク上に送信されていく
出力先が何であるにせよ、そこにデータを書き込むというのは同じ
そういった、何かしらのデータの書き込み口というものを抽象化したのが、出力ストリーム
>>844
別にOutputStreamWriterを使わなければならないことはない
出力を行う方法は他にもいくつかあるが、
そのテキストでは単にそのうちのひとつを紹介してるだけだろう
0848デフォルトの名無しさん
2008/02/26(火) 18:42:430849デフォルトの名無しさん
2008/02/26(火) 18:51:52それ買ってやったほうがいいかな?
てか、なんかJAVAの勉強しても何か実感わかないな〜
やっぱ実際にもの作らんとそういうのは分からないものなのか?
0850デフォルトの名無しさん
2008/02/26(火) 18:59:39どんなテキストか知らないけど
ウィンドウ開いたりボタン押したり絵を出したりといったGUIをやると
実感をわかせるのに効果的だと思う
0851デフォルトの名無しさん
2008/02/26(火) 19:07:460852デフォルトの名無しさん
2008/02/26(火) 19:13:33何か自分で作ってみたいものはないの?
目標を決めるといいかもよ
0853デフォルトの名無しさん
2008/02/26(火) 20:41:10javaでどんなの作れる?とりあえず簡単なものを作ってみたい。
0854デフォルトの名無しさん
2008/02/26(火) 20:42:270855デフォルトの名無しさん
2008/02/26(火) 20:44:020856ibj
2008/02/26(火) 20:55:19alice1 == alice2:true
alice1 == alice3:false
Chapter5.Employee[name = null, salary = 75000.0, hireDay = Tue Dec 15 00:00:00 JST 1987]
Exception in thread "main" java.lang.NullPointerException
at Chapter5.Employee.equals(Employee.java:48)
at Chapter5.EqualsTest.main(EqualsTest.java:17)
と ぬるぽが出てしまいます。
2時間ほど考えたのですが原因がわかりません・・・。super(name)の部分で
どうにかなっていると思うのですがロジック的に正しいと思うのですが・・・。
教えていただけたら幸いです。
0857ibj
2008/02/26(火) 20:56:07public class EqualsTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Employee alice1 = new Employee("Alice Adams", 75000, 1987, 12, 15);
Employee alice2 = alice1;
Employee alice3 = new Employee("Alice Adams", 75000, 1987, 12, 15);
Employee bob = new Employee("Bob Brandson", 50000, 1989, 10, 1);
System.out.println("alice1 == alice2:" + (alice1 == alice2));
System.out.println("alice1 == alice3:" + (alice1 == alice3));
System.out.println("alice1.equals(alice3):" + alice1.equals(alice3));
System.out.println("alice1.equals(bob):" + alice1.equals(bob));
Manager carl = new Manager("Carl Cracker", 80000, 1987, 12, 25);
Manager boss = new Manager("Carl Cracker", 80000, 1987, 12, 25);
boss.setBonus(5000);
System.out.println("boss.toString():" + boss.toString());
System.out.println("carl.equals(boss):" + carl.equals(boss));
}
}
0858ibj
2008/02/26(火) 20:56:36abstract class Person{
private String name;
public Person(String name){
this.name = name;
}
public abstract String getDescription();
public String getName(){
return this.name;
}
}
0859デフォルトの名無しさん
2008/02/26(火) 20:56:49情報系の大学いった方がまし
0860ibj
2008/02/26(火) 21:00:130861デフォルトの名無しさん
2008/02/26(火) 21:44:23Employee にも何故か name があって、equals で、
other.name.equals(name)で比較してるんじゃないかと。
0862デフォルトの名無しさん
2008/02/27(水) 00:58:27ttp://www.nextindex.net/java/thread/sleep.html
に記述のあるソースの中で、
main()がthrows InterruptExceptionとしてある理由がわからないのですが、
どういう意味なのでしょうか。
教えてください。
今回実行してみた感じ、定義をしなくとも実行には問題がありませんでした。
どの部分が、InterruptExceptionを投げるといっているのでしょうか?
少なくともtry-catchの外しか考えられないのですが、どこかわかりませんでした。
0863デフォルトの名無しさん
2008/02/27(水) 01:06:39javadocに書いてあるから読むと良いよ。
0864デフォルトの名無しさん
2008/02/27(水) 01:16:59String s="あ";
2を取得する方法を教えてください。
0865デフォルトの名無しさん
2008/02/27(水) 01:18:110866デフォルトの名無しさん
2008/02/27(水) 01:28:190867デフォルトの名無しさん
2008/02/27(水) 01:36:09レスありがとうございます、853。
自分もThread.sleep(...);
がInterruptedExceptionを投げる可能性があることはなんとなく覚えたのですが、
今回の場合は、try{}catch(InterruptedEception e){}、の記述によって、
メソッドがthrowsを設定する必要は内容に感じたのです。
うーん…。
0868デフォルトの名無しさん
2008/02/27(水) 01:37:350869デフォルトの名無しさん
2008/02/27(水) 02:06:260870デフォルトの名無しさん
2008/02/27(水) 02:17:57GJ!
0871デフォルトの名無しさん
2008/02/27(水) 02:40:21>>なお継承はカプセル化を壊すので、protected を使うのはその一線を越えます。
>この点について、初心者向けの説明をいただけませんか。
なんてことはない、メソッドをオーバライドすると、親クラスがそのメソッドを呼び出している場合
その挙動にも影響を与えるため、どのような影響があるか(どのように呼び出されているか)を
知る必要があるという意味で、実装が漏れてるという見方ができる。
継承よりも委譲の方が強固だが、継承のほうがお手軽なので
最初は継承を使って、事が複雑になってきたら、委譲にリファクタリングするのがアジャイル的
0872デフォルトの名無しさん
2008/02/27(水) 02:44:060873デフォルトの名無しさん
2008/02/27(水) 02:59:17InterruptedException を飲み込んでいいのは、
実行中のタスクのキャンセレーションポリシーと
実行しているスレッドのインタラクションポリシーが明記してあり
(あるいはそのスレッドのライフサイクルの制御権があり)、
ちょうど両者とも、InterruptedException を飲み込んでOKな場合だけ。
インタラプトを遅延させて処理を継続したい場合は
Thread.currentThread().interupt()を
処理が継続できない・放棄する場合は
InterruptedException を再投げするのが定石
0874デフォルトの名無しさん
2008/02/27(水) 03:00:53そうだね必要ないな
たぶんどこかからコピペしてきた消し忘れかなんかだろう
ちなみに、InterruptedExceptionを揉み消すのは良くない習慣だ
0875873
2008/02/27(水) 03:13:132つのポリシーが上手い具合にOKなときにやっていいのは、インタラプトの発行だった。
タスクが InterruptedExceptionを飲み込んでいいのは、
そのタスクが IntteruptedException を飲み込んでOKなポリシーを持つスレッドからしか
呼び出されないことが保証されている場合だけだな、たぶん
main() は、どこからともなくやって来たスレッドで実行されるから、
基本的に飲み込んではいけないはず
0876873
2008/02/27(水) 03:50:52「インタラプトすると不正な挙動をします」というポリシーを明記したタスクとして
InterruptExceptionを飲み込むならば、単に、
「インタラプトしてはいけないタスク」
+「インタラプトするとエラーメッセージを吐いて終了するっぽいメインスレッド」
=「このスレッド/タスクにインタラプトしてはいけない」
となるだけだった。さあ、どんどん飲み込みましょうねぇ
0877デフォルトの名無しさん
2008/02/27(水) 05:38:33s.getBytes("Windows-31J").length
など。
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/lang/String.html#getBytes(java.lang.String)
0878デフォルトの名無しさん
2008/02/27(水) 08:04:00たとえばbeautifulというプロパティとしたら規則に従いますと
単純にisBeautiful(),setBeautiful(boolean)となります。
しかし、別の例で「上書き確認を表示する」など動詞的なbooleanプロパティ、confirmOverwriteを考える場合
isConfirmOverwrite(),setConfirmOverwrite(boolean)と、とても気持ちが悪いです。
このような場合は変数名を考え直す必要があるのでしょうか?
それともこういうもの、ということで割り切ったほうがいいのでしょうか?
0879デフォルトの名無しさん
2008/02/27(水) 09:13:57マルチするのが流行りなのか
0880デフォルトの名無しさん
2008/02/27(水) 09:19:46isConfirmOverwritable()
setConfirmOverwritable(boolean)
0881デフォルトの名無しさん
2008/02/27(水) 09:23:420882デフォルトの名無しさん
2008/02/27(水) 09:52:15ありがとうございます!!
0883デフォルトの名無しさん
2008/02/27(水) 11:17:58どうしたらいいですか?
iReoprtで
rectangle、backcolorを変更するというのはわかるんですが、
毎回違うとどうしたらいいのでしょうか?
0884デフォルトの名無しさん
2008/02/27(水) 12:00:12毎ページなのか、毎項なのか、毎行なのか、毎カラムなのか。
まずは日本語でおk
0885デフォルトの名無しさん
2008/02/27(水) 12:20:01だから日本語がおかしいし、説明されても理解できない。
0886デフォルトの名無しさん
2008/02/27(水) 12:41:34>> >>>
0887883
2008/02/27(水) 13:01:04コンパイルしちゃった後でも変更できるんですか?
0888デフォルトの名無しさん
2008/02/27(水) 13:26:210889デフォルトの名無しさん
2008/02/27(水) 14:26:24このへんが参考になるかも
http://www.ibm.com/developerworks/jp/java/library/j-jtp05236/
0890デフォルトの名無しさん
2008/02/27(水) 19:00:220891デフォルトの名無しさん
2008/02/27(水) 19:06:52http://pc11.2ch.net/test/read.cgi/tech/1201346803/l50
0892デフォルトの名無しさん
2008/02/27(水) 21:56:31http://www.ibm.com/developerworks/jp/java/library/j-jtp11234/
このページにある、リスト3: SimulatedCAS クラスの compareAndSwap について質問です。
SimulatedCAS のコードのすぐ下にある説明書きに、
「CASベースの並行アルゴリズムは、スレッドがロックを待つ必要が全くないので、lock-freeと呼ばれます」
という記述があります。
しかし SimulatedCAS の compareAndSwap メソッドは synchronized メソッドに
なっています。Simulated って書いてあるから実際使うときは違うやつ使うのか
なと思いきや、 リスト4 のコードで思いっきり使ってあります。
compare-and-swap アルゴリズムを真似たプログラムは、 synchronized であっても
ロックされないように最適化されるということでしょうか?
0893デフォルトの名無しさん
2008/02/27(水) 22:05:06毎日一回株価を取得してDBに放り込むプログラムを作ろうと思ってるんだけど
JAVAで時間がきたらサーバー上で実行するってことかのう?
どんな仕組みでできる?
それだけわかればDBにも移せるしダウンロードもできそうなだんだが
0894デフォルトの名無しさん
2008/02/27(水) 22:17:240895デフォルトの名無しさん
2008/02/27(水) 23:33:28バージョンに応じて違うクラスファイルを読み込むようにするには
どうしたらよいでしょうか?
JARアーカイブとMANIFESTファイルを利用しており、クラスライブラリが
たくさんあるのでバージョンごとに違うJARを作成するのは避けたいのですが・・・
0896デフォルトの名無しさん
2008/02/27(水) 23:43:070897867
2008/02/28(木) 00:01:48申し訳ないんですが、ぜんぜんわからないです。
1時間くらいgoogleしてみたのですが、
そこから派生するキーワードや、
似たような単語が、同様の意味を成しているのかもわかりませんでした。
せっかく手を差し伸べていただいたところ申し訳ありません。
飲み込む、もみ消す、握りつぶす、
非チェック例外、チェック例外、チェック済み例外、チェックされる例外…
飲み込むというのは、InterruptedExceptionを投げずに処理してしまうということなのでしょうか…
0898デフォルトの名無しさん
2008/02/28(木) 00:11:59調べるの面倒です。教えてください。
このスレッドを読んでいて、初めて 委譲 を知ったのですが、
クラスの外部から、インスタンスのフィールドにアクセスできる仕様というのは、
オブジェクト指向的に、思い切り間違えなのでしょうか。
委譲 の概念が普通に使われるためには、
フィールドへのアクセスは、
クラスに所属するメソッド経由で、アクセスされる仕様である場合でないと、
アクセス方法に統一性がもたせられませんよね。
そもそも、このような質問をする原因が、
なぜフィールドの値をpublicにするなど、
所属クラス内のメソッド以外からの、フィールド変数(?)へのアクセスが許可される必要があるのか
が、わからないためです。
質問の仕方が、気に入らなければ、無視してください。
たぶん調べてもまともな回答にたどり着くに、長い時間がかかりそうだと思い、怠けています。
0899デフォルトの名無しさん
2008/02/28(木) 00:19:180900デフォルトの名無しさん
2008/02/28(木) 00:21:29interface AnythingExecutor{
public void doAnything();
}
public class AnythingExecutor14 implements AnythingExecutor{
public void doAnything(){
// JRE 1.4 用の処理
}
}
public class AnythingExecutorFactory{
public static AnythingExecutor create(){
// JRE のバージョンを取得する
if( 1.4 だった){
return new AnythingExecutor14 ();
}
else if( 1.5 だった){
return new AnythingExecutor15 ();
}
...
}
}
// 実際の処理
AnythingExecutor executor = AnythingExecutorFactory.create();
executor.doAnything();
0901デフォルトの名無しさん
2008/02/28(木) 00:23:16それは Java に対する質問ではない。
適当なスレを探すよろし。
0902デフォルトの名無しさん
2008/02/28(木) 00:29:32問題ないんじゃないか。setter/getter があるってことは、すなわち
public フィールドとほとんど等値なんだし。
ただ、フィールドへのアクセスと同時に何かしたい、外部からは
read のみに変えたい、みたいなことってことが結構ある。
そこで、フィールドは private にして隠す。アクセスは public な
getter/setter からのみ。というよくある構成に統一することで、
機能追加に対応しやすくなるからこうしましょう、という寸法。
中には「フィールドへのアクセスもオブジェクトに対する"操作"で
あるから、メソッドであるべき」なんていう人もいると思う。
まぁその辺をどう割り切るかは個人個人によるのでは。
あと委譲の話と何が関係あるのかが分からなかった。
0903デフォルトの名無しさん
2008/02/28(木) 01:11:04> 問題ないんじゃないか。setter/getter があるってことは、すなわち
> public フィールドとほとんど等値なんだし。
1つ大きな違いがあるぞ。setter/getterの場合、本来は違うものを同じものに見せ掛けるのが簡単にできる。
後付けで振舞いを変えるとか、透過的に処理を割り込ませたりするとか、実体をリモートに持たせるとか。
0904デフォルトの名無しさん
2008/02/28(木) 01:33:31publicフィールドにガンガンアクセスするコードを書いてるのですが、ひょっとして一般的じゃないんですか?
>>903さんがどういう処理を指してるのかいまいちつかめません。。
0905デフォルトの名無しさん
2008/02/28(木) 01:38:00うわー、ありがとうございます!
早速試してみます。
0906デフォルトの名無しさん
2008/02/28(木) 01:38:32やさしいなー
0907デフォルトの名無しさん
2008/02/28(木) 01:54:20意味が分からなければ今のスタイルを続けていけばいい。
そのうち面倒ごとが起こったときにアクセッサの意義が分かるよ。
0908デフォルトの名無しさん
2008/02/28(木) 07:09:55値を一つ変えるのに、払うコストをどれだけ小さく出来るか、という話。
この例はシミュレートだけど、ハードウェアでサポートしている CPU もあるよ、と言うこと。
「スレッドがロックを待つ必要が全くない」というのは、
リスト2で行われてるような処理をする必要がない、ということ。
リスト4で注目するべき点は、increment メソッド内の get と CAS の間で、
継続したロックが保持されていないこと。
そして、increment 自体が呼ばれてから値を戻すまでに
value の get 値が 1 "以上"変わること。
0909デフォルトの名無しさん
2008/02/28(木) 09:16:220910Hoge
2008/02/28(木) 11:32:12DJUnitを使って単体テストを行っているのですが、
テスト結果の確認方法として、
○○クラスの△△メソッドが何回呼ばれたか?
を確認したいのですが、方法がわかりません。
assertCalled(String, String);
を使えば、メソッドが呼ばれたかどうかは確認できますが、
何回呼ばれたかは確認できません。
なにか良い方法はないでしょうか?
0911デフォルトの名無しさん
2008/02/28(木) 12:30:140912デフォルトの名無しさん
2008/02/28(木) 12:44:49それらは 「振る舞いを示すコード」 というタイトルや Simulated というクラス名からわかるように、
単に動作を説明するための例にすぎない。 真似ても別に最適化されない。
実際にアトミック操作したい場合は java.util.concurrent.atomic.AtomicInteger を使う。
リスト5では AtomicInteger 使ってるだろ。
0913デフォルトの名無しさん
2008/02/28(木) 13:46:340914Hoge
2008/02/28(木) 13:47:56すいません。自己解決しました。
調査不足でした。
getCallCount(String, String)
という便利なメソッドがありました。
ありがとうございました。
0915デフォルトの名無しさん
2008/02/28(木) 16:33:08fis.read();
....
fis.getChannel().position(0);
fis.read();
...
fis.close();
今までFileChannelを知らず、一方通行なInputStreamでランダムにアクセスできるのは気持ちが悪いのですが、こんな感じでポインター移動するのって安全ですか?
0916デフォルトの名無しさん
2008/02/28(木) 16:36:040917デフォルトの名無しさん
2008/02/28(木) 17:20:24ありがとうございました。
0918デフォルトの名無しさん
2008/02/28(木) 22:11:27PaneとPanelの違いがよくわからないのですが、
JComponentを継承しているコンテナに関して、
付加機能が一番小さいものがJPanelで、
JPanel以上の何らかの機能が付け加わったものがPaneなのでしょうか?
コンテナの中でPanelだけ、PaneでなくてPanelと呼ばれる理由は何なのでしょうか?
あと、もうひとつ。
Containerクラスのオブジェクト(というかJFrame.setContentPane())をJPanelにキャストして、
コンテナとしている参考コードがあったのですが、
サブクラスの変数にキャストさせ(て代入する)理由がわかりませんでした。
なぜなのでしょうか?
0919918
2008/02/28(木) 22:13:40918で記述ミスしました。
>JFrame.setContentPane()
JFrame.getContentPane()
でした。
(JFrame#getContentPane() と記述するとどういう意味なのでしょうか…。)
よろしく御願い致します。
0920デフォルトの名無しさん
2008/02/28(木) 22:29:34さぁ?
名前なんて付ける人の趣味みたいなもんだし、深く考えても仕方ないような
ちなみに、JComponentを継承してるコンテナ、というが
JComponentはContainerのサブクラスだから、JComponent自体がコンテナだよ
まぁJButtonの中に他のコンポーネント入れたりはあんまりしないけれど・・・
ContainerになくてJPanelにあるメソッドを何か使いたかったんじゃないかね
コード見てわからなければ書いた人に聞くしかない
JFrame#getContentPane()はJFrameクラスのgetContentPane()メソッドのこと
JFrame.getContentPane()と書くと、staticメソッドを呼んだ戻り値について言ってるようにも見えるので、区別のために
0921918
2008/02/28(木) 22:38:34!!!え?
そうか、継承しているから継承もとの機能はあるのか…。
無効になっていて然り、とか、どこかで思っていたのか、気がつきませんでした。
ContainerのオブジェクトをContainerのサブクラスにすると、サブクラスのメソッドが使えるということで?
これは、例外が発生しそうで危ない予感もするのですが、
そういうコードを意識して使うような設計もあるのですか?
>JFrame#getContentPane()
ありがとうございます。自力だとどれだけ時間かかったかわかりません。
これをgoogleにはどうすればいいんだろう…。記号が…。スレ違いですね、失礼。
0922デフォルトの名無しさん
2008/02/28(木) 22:49:18>ContainerのオブジェクトをContainerのサブクラスにすると、サブクラスのメソッドが使えるということで?
いや、まさか。
JFrame#getContentPane()が返すContainerが実際にはJPanelだとわかっている場合だけ出来る。
実際にJPanelを返すからといっても、ドキュメントにそんなことは書かれていないので、良い習慣とは言えない。
0923918=921
2008/02/28(木) 22:50:58>まぁJButtonの中に他のコンポーネント入れたりはあんまりしないけれど・・・
感動した。
感動しました。
変な方言を覚える前に、920の指示の元Javaを学びたい!
自分に本か、Web資料の推薦を!
0924デフォルトの名無しさん
2008/02/28(木) 22:59:41これ読めばSwingの仕組みは大抵わかるよ。
AWTから読むと上下*2の四冊だけどかなり勉強になる。
0925デフォルトの名無しさん
2008/02/28(木) 23:07:27> 例外が発生しそうで危ない予感
どうしてもやりたければ、instanceof でJPanel だと確認してからキャストを行う。
というより、キャストの前には必ず instanceof で対象を確認すること。
0926デフォルトの名無しさん
2008/02/29(金) 08:02:24javaはビッグエンディアンという記述をよく見かけますが、
その根拠がよくわかりません。
例)ttp://www.geocities.jp/flame_freezing_charm/Works/Memo/JAVA/prog.htm
ご存知の方いましたら教えてもらえないでしょうか?
0927デフォルトの名無しさん
2008/02/29(金) 08:06:33System.out.printf("%x%n", x & 0xFF);
これが 78 と出ればビッグエンディアン、12 と出ればリトルエンディアン。
0928デフォルトの名無しさん
2008/02/29(金) 08:10:58そのコードを実行しても、実行したプラットフォームのみでしか
エンディアンは確定しないのではないですか?
0929デフォルトの名無しさん
2008/02/29(金) 08:49:18java.io.DataInput#readInt() とか java.io.DataOutput#writeInt(int) みたいに、
標準APIの一部のクラスがビッグエンディアン使ってて、
さらに、1.3までは標準APIにリトルエンディアンで入出力できるクラスが無かったから。
0930デフォルトの名無しさん
2008/02/29(金) 08:53:43というか、>>927のコードを(System.out.printfをprintfに置き換えたものを)
C言語でやっても、エンディアンなんかわからないけどね。
0931デフォルトの名無しさん
2008/02/29(金) 10:44:36Javaアプレットを使ってブラウザ画面の自動撮影を行いたいんですが、どういう組み方をすれば良いんでしょうか!
訪問者が来る度にスクリーンをキャプチャしてサーバーに保存、
自分の環境では確認できない動的なサイトの動作チェックに使いたいと思います!
0932デフォルトの名無しさん
2008/02/29(金) 11:13:12セキュリティ上の問題があるので無理。
0933デフォルトの名無しさん
2008/02/29(金) 11:52:57http://www.techscore.com/tech/J2SE/Thread/5-2.html
上記のソースにて、queue.size() == 1の時は、put()からのqueue.addFirst(obj)呼び出しと、
get()からのqueue.removeLast()呼び出しが同時に呼び出される可能性があり、
LinkedListはスレッドセーフではないから問題あり、と思うのですが認識あってますか?
notifyAll()の使い方の解説なので、ソースにケチをつけてる訳ではないです。
0934デフォルトの名無しさん
2008/02/29(金) 12:10:26synchronized付いてるから同時には呼び出されない
0935デフォルトの名無しさん
2008/02/29(金) 15:29:18ええ、そんな!
何とかなりませんか! 先生!
0936デフォルトの名無しさん
2008/02/29(金) 15:39:42Robotを使いスクリーン画像を取得!
そのデータをURLConnectionでCGIに送り、
CGIでログを保存するみたいな形でできそうな気がするんです!
問題はRobotの自動実行が可能かどうかで!
もし不可能なら利用者にボタンを押させる方法でも構いません!
やりたいのは動的なサイトの確認であって、不正行為ではないんです!
だから利用者の確認をしっかり取らなければならないというのであれば従います!
先生お願いします!
僕に僅かでも良いので知恵をお貸し下さい!
0937デフォルトの名無しさん
2008/02/29(金) 15:50:40Robotなんてアプレットで許したらマウスも自動で動かせる!
そしてマウスで勝手に送信ボタンを押させ、
CGIで不正取得なんかもできそうな気がするんです!
問題はその動作が利用者がやったのかRobotがやったのかで!
もし不可能なら不正取得かサイトの確認か判断が付きません!
やりたいのが動的なサイトの確認であって、不正行為ではないと証明できないんです!
だからアプレットではそんなことは許されていなくて、それにみんな従います!
先生お願いします!
僅かでもいいので理解してください!
0938デフォルトの名無しさん
2008/02/29(金) 15:57:580939デフォルトの名無しさん
2008/02/29(金) 16:01:16あと、ぐぐったら
http://q.hatena.ne.jp/1138377277
こんなんがでてきたよ。
これで目的は達成できるかな?
0940デフォルトの名無しさん
2008/02/29(金) 16:03:14// CGI を設置できるのだから、問題のSSを送ってもらえば終了。
>>938
java.awt.Robot.createScreenCapture(Rectangle) で出来ますよ。
0941デフォルトの名無しさん
2008/02/29(金) 16:12:46ありがとうございます先生!
ttp://browsershots.org/
このツールでほとんどの環境が確認できました!
さすが先生です! また何かあったときよろしくお願いいたします!
0942デフォルトの名無しさん
2008/02/29(金) 16:25:28ええ! ということは先生!
アプレットではRobotの使用ができないということなんでしょうか!
0943デフォルトの名無しさん
2008/02/29(金) 16:55:31署名付ければ出来なくは無い
でもそんなアプレット誰も実行してくれないだろう
スクリーンショット自動送信なんて、機密情報もれまくり
お前が今見てるその秘密の画像も勝手に送信されてるよ
0944デフォルトの名無しさん
2008/02/29(金) 18:50:25そうなんですか!
何から何までありがとうございます!
0945デフォルトの名無しさん
2008/02/29(金) 20:28:21紛らわしい
0946デフォルトの名無しさん
2008/02/29(金) 21:12:490947デフォルトの名無しさん
2008/03/01(土) 01:39:40今のままだとファイル消したりネットワークアクセスしたりやりたい放題なんだけど。
0948デフォルトの名無しさん
2008/03/01(土) 02:05:290949デフォルトの名無しさん
2008/03/01(土) 03:28:21何とかできないでしょうか?
0950デフォルトの名無しさん
2008/03/01(土) 03:33:02javadoc コマンドの -encoding か -charset
これぐらいはマニュアル見て発見しよーぜ。
0951デフォルトの名無しさん
2008/03/01(土) 03:33:04javadoc -encoding UTF-8
0952デフォルトの名無しさん
2008/03/01(土) 03:37:38javadocだけじゃなくてコンパイルするときにも警告が出ない?
システムのデフォルトの文字エンコード以外を使うときはencodingオプションを
0953デフォルトの名無しさん
2008/03/01(土) 07:52:08フォントを変更したときに
setFontでPLAINに変更してもデフォルトのボールドのかかった
フォントが印刷に反映されません。
どこかで読んだと思い過去スレで探したのですが見つかりません。
教えていただければ幸いです。
0954デフォルトの名無しさん
2008/03/01(土) 09:02:08public static void main(String[] args) {
p_calc.Calc calc =new p_calc.Calc();
System.out.println(calc.sum(1,2));
}
}
コンパイルすると、
0955デフォルトの名無しさん
2008/03/01(土) 09:02:59.\p_calc.java:3: ')' がありません。
int sum(int i; int j){
^
.\p_calc.java:3: ';' がありません。
int sum(int i; int j){
^
.\p_calc.java:8: クラス sample68 は public であり、ファイル sample68.java で宣
しなければなりません。
public class sample68 {
^
sample69.java:3: p_calc にアクセスできません。
クラスファイル .\p_calc.java は不正です。
ファイルにクラス p_calc が含まれていません。
削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。
p_calc.Calc calc =new p_calc.Calc();
^
エラー 4 個
これが出ます。原因はなんでしょうか?
0956デフォルトの名無しさん
2008/03/01(土) 09:18:131. 2 と同じ原因。i の後のセミコロン。
3. ファイル名と public なクラス名が違う。
4. p_calc クラスがコンパイル出来ず、実行ファイルが見つからない。
0957デフォルトの名無しさん
2008/03/01(土) 09:46:260958デフォルトの名無しさん
2008/03/01(土) 10:34:17とくに変じゃないよ。
sample69 で使われている p_calc.Calc を見つけるために p_calc.java
もコンパイルしているんでしょう。
0959デフォルトの名無しさん
2008/03/01(土) 10:51:05Date date = new Date();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
String today = sdf1.format(date);
で取得して、日付2008/3/10と比較させ今の日時より前か後かという判定を
行いたいのですが、具体的にどうすればよいのでしょう?
0960デフォルトの名無しさん
2008/03/01(土) 10:57:08Calendar#afterとCalendar#beforeを読むべし
実際はGregorianCalendarになるけどな
0961デフォルトの名無しさん
2008/03/01(土) 10:59:05ちょっと調べてみます
0962デフォルトの名無しさん
2008/03/01(土) 11:21:03それともC++あたりに鞍替えした方がいいですか?
0963デフォルトの名無しさん
2008/03/01(土) 11:23:350964959
2008/03/01(土) 11:27:16SimpleDateFormat dateformat = new SimpleDateFormat("yyyy/MM/dd");
Date now = new Date(); //現在時刻を取得
String today = dateformat.format(now); //変数todayに今日の時刻をyyyy/MM/dd型でいれる
0965デフォルトの名無しさん
2008/03/01(土) 12:08:150966デフォルトの名無しさん
2008/03/01(土) 12:17:14セッションIDをSHA-1でハッシュ化するにはどうしたらよいでしょうか?
0967959
2008/03/01(土) 12:20:16//今日の日付を取得
Date now = new Date(); //今日の日付
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy/MM/dd"); //型の指定
//日付の比較
if (now.before(dateformat.parse("2005/1/1"))) {
//今日が2005/1/1より前のときの処理
}else{
//今日が2005/1/1より後のときの処理
}
ただ、これだと1番最後の行でエラーがでてしまいます・・
エラーは 「処理されない例外の型 ParseException」です
0968959
2008/03/01(土) 12:21:38if (now.before(dateformat.parse("2005/1/1"))) { のところでした
0969デフォルトの名無しさん
2008/03/01(土) 12:41:34Javaでダイジェストを生成する
ttp://www.atmarkit.co.jp/fjava/javatips/117java021.html
>>967
> 数値: フォーマットには、パターン文字の数は最小桁数になります。
二文字使ってるから最低二桁なのでは?
0970959
2008/03/01(土) 12:52:53日付の比較のところがよくないとは思うのですが;;
// 今日の日付を取得
Date now = new Date(); //今日の日付
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy/MM/dd"); //型の指定
String today = dateformat.format(now); //変数todayに今の時刻がはいる
解約予定日を取得
SimpleDateFormat kaiyaku = new SimpleDateFormat("yyyy/MM/dd");
String kaiyakuyoteibi = kaiyaku.format(2005/10/15);
// 日付の比較
if ( ) {
//System.out.println("今日は2002/06/10よりも前の日です。");
}else{
}
0971デフォルトの名無しさん
2008/03/01(土) 13:09:40日付で切り捨てたいなら、Calendarに変換してsetで時刻を0にする。
ユーティリティメソッド作ってそこで比較すべし。
あちこちで比較してたら、バグの温床。
ついでに言えば、「今日の日付を取得する」もユーティリティメソッドにして、
システムプロパティなどで、「今日の日付」を設定できるようにしておくと、
わざわざシステム日付を変更しなくとも、日付が変わったときのテストができる。
0972デフォルトの名無しさん
2008/03/01(土) 13:12:13権限の低いクラスローダでロードしたクラスを挟んでスクリプトを呼ぶといいんじゃないかな、と推測だけで言ってみる
0973デフォルトの名無しさん
2008/03/01(土) 13:39:35Commons/Net 1.4.0 のFTPClientを使っていて 昨日から原因不明のエラーが多発してました
ようやく判明した原因は、FTPClient#listFiles()が返すFTPFile[]の要素が
なんと2/29のタイムスタンプのファイルについてはnullになってしまう事でした!
とりあえずサーバの関連ファイルをtouchして急場をしのぎましたが
この件について善後策を相談するのに最適のスレなどがあれば教えて下さい
0974デフォルトの名無しさん
2008/03/01(土) 13:51:14ドキュメントにバグの報告先とかメンテナの連絡先が書いてあるはずだから、
最小の再現コード付けてレポートする。
0975デフォルトの名無しさん
2008/03/01(土) 14:50:50いまいち上手くいきません。流れとしては、
�@(送り手) FileChannel(sourceChannel)でファイルを読み込む
�A(送り手) SocketChannel(destinationChannel)で相手に送る
�B(受け手) SocketChannel(sourceChannel)で受け取る
�C(受け手) FileChannel(destinationChannel)でファイルに書き込む
送り手
while(destinationChannel.isConnected()){
buffer.clear();
if(sourceChannel.read(buffer) < 0)
break;
buffer.flip();
destinationChannel.write(buffer);
}
受け手
while(sourceChannel.isConnected()){
buffer.clear();
if(sourceChannel.read(buffer) < 0)
break;
buffer.flip();
destinationChannel.write(buffer);
}
bufferはByteBuffer型になっています。
これを実行すると、送り手はエラーもなく正常に終了しているのですが、受け手で
「java.io.IOException: 既存の接続はリモート ホストに強制的に切断されました。」というエラーが出てきます。
エラーが出た場所 => if(sourceChannel.read(buffer) < 0){
長文な上にわかりにくい文章かもしれませんが、
なぜこうなるのか教えてもらえないでしょうか?
0976デフォルトの名無しさん
2008/03/01(土) 15:02:45データの受信自体は問題ないのですか?
単にデータを送るだけだと、送り手側でソケットを閉じると、
受け手側でエラーが出るはずですが…
何らかのプロトコルで「送受信完了」をやり取りする形にすれば
問題のある状態なのかどうか判断できると思います
0977デフォルトの名無しさん
2008/03/01(土) 15:11:10Javaでやっても意味ないよ
0978デフォルトの名無しさん
2008/03/01(土) 15:27:11String str = "12345";
str += "abcde";
これで連結しようとするとrangeが足りないと出ます
すでにあるStringクラスのオブジェクトに文字列を連結するための
メジャーな方法などがあれば教えてください
0979デフォルトの名無しさん
2008/03/01(土) 15:56:12データの受信自体が出来ないみたいです。
送り手側は一通りプログラムが実行されて終了するのですが、
受け手側は if(sourceChannel.read(buffer) < 0) の部分で処理が止まっているみたいです。
受け手は、送り手が書き込むのを待っている状態になっているんでしょうか?
>>977
時間に余裕が出来ればCも勉強しようと思っています。
今は就職活動中であまり時間が無くて、息抜きでやっている状態なので...
助言ありがとうございます。
0980デフォルトの名無しさん
2008/03/01(土) 16:00:40不可能
0981978
2008/03/01(土) 16:02:28スレ汚しごめんなさい
0982デフォルトの名無しさん
2008/03/01(土) 17:44:15APIを見てみるとServletContextはインタフェースなのでオブジェクト化は出来ませんよね。
getServletContext()は、実際にはServletContextではなく、ServletContextを実装するサブクラスを作ってるんでしょうか?
0983デフォルトの名無しさん
2008/03/01(土) 17:46:00System.out.println(context.getClass().getName());
0984デフォルトの名無しさん
2008/03/01(土) 18:13:500985デフォルトの名無しさん
2008/03/01(土) 18:18:51【初心者】Java質問・相談スレッド113【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1204363011/
0986デフォルトの名無しさん
2008/03/01(土) 19:00:59乙彼Death
0987デフォルトの名無しさん
2008/03/01(土) 21:31:24送り側はちゃんと閉じてる?
0988デフォルトの名無しさん
2008/03/02(日) 02:22:230989デフォルトの名無しさん
2008/03/02(日) 02:31:140990デフォルトの名無しさん
2008/03/02(日) 02:38:080991デフォルトの名無しさん
2008/03/02(日) 02:47:56ネットワークとかGUIとか使って何か作りたいのですが、
何も思いつかないので、
パケットモニタ(?)(今どんなメッセージで通信されているか)みたいなのを作りたいのですが、
ネットワークに関しては、どの変の勉強すれば早そうでしょうか。
この辺のクラスは古いから使わないほうがいいとか、
この辺使えばすぐじゃないかとか教えていただけると助かるのですが、
助言もらえませんか。
GUIに関しては、本とWebを参考にして手をつけていたら何とかなりそうな気がしているのですが、
ネットワークは難しすぎて…。
0992デフォルトの名無しさん
2008/03/02(日) 03:16:150993デフォルトの名無しさん
2008/03/02(日) 03:18:43何をしたいのか本人すら分かってないのに他の人に聞いても分かるはずないよ
ネットワークって具体的に何?サーブレットでWebアプリ作るとかじゃ駄目なの?
0994デフォルトの名無しさん
2008/03/02(日) 03:22:47通信なら Socket 使えばいい。
0995デフォルトの名無しさん
2008/03/02(日) 03:36:45>synchronized付いてるから同時には呼び出されない
え?メソッドレベルの排他というのは、一つのメソッドに複数のスレッドが同時に入れないだけで、
アクセスするメソッドが別なら排他されないのでは?やば、今までずっと間違えてきたかも。。。
0996デフォルトの名無しさん
2008/03/02(日) 03:38:580998デフォルトの名無しさん
2008/03/02(日) 03:47:47クラスメソッドの synchronized 修飾子は synchronized(Queue.class){ } と等しい。
0999デフォルトの名無しさん
2008/03/02(日) 03:51:581000デフォルトの名無しさん
2008/03/02(日) 03:55:0610011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。