★★Java質問・相談スレッド143★★
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2011/01/25(火) 03:07:32JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理 http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
(p)ttp://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
★★Java質問・相談スレッド142★★
http://hibari.2ch.net/test/read.cgi/tech/1290103530/
次スレは>>950あたりで。
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
0002デフォルトの名無しさん
2011/01/25(火) 03:12:23■ AWT と Swing は --
Java低速GUI Swing 9
http://hibari.2ch.net/test/read.cgi/tech/1261232019/
■ SWT は --
Java 高速GUI SWT 3
http://hibari.2ch.net/test/read.cgi/tech/1164877399/
■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part22
http://hibari.2ch.net/test/read.cgi/tech/1295766416/
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 9
http://hibari.2ch.net/test/read.cgi/tech/1249357352/
■ Androidアプリの作成は --
【Google】Androidアプリ作成part7
http://hibari.2ch.net/test/read.cgi/tech/1293522094/
■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 69 ★★
http://hibari.2ch.net/test/read.cgi/tech/1267796762/
0003デフォルトの名無しさん
2011/01/25(火) 03:14:16NetBeans Part6
http://hibari.2ch.net/test/read.cgi/tech/1273665879/
■ Eclipseに関する雑談は --
clipse統合M30【Java/C++/Ruby/Python/Perl】 ←検索にかからなかったので下のスレが立て直したスレッド
http://hibari.2ch.net/test/read.cgi/tech/1280027133/
Eclipse統合M31【Java/C++/Ruby/Python/Perl】
http://hibari.2ch.net/test/read.cgi/tech/1295886572/
**** 開発環境が必要の場合は ****
■ J2SE 5.0 (1.5.0)
http://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
http://java.sun.com/javase/ja/6/
**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
http://www.java.com/ja
00041
2011/01/25(火) 03:16:35dat落ちしていたスレッドは、新しいスレッドに置換した。
前スレはP2ユーザーがp2からブラウザでスレを立てた影響で余計な(p)記号があったので消した。
またサブドメインが古いpc12からhibariに変更されたのでそれに伴いURLも変更。
スレ立ては以上。
0005デフォルトの名無しさん
2011/01/25(火) 13:40:19tomcat6.0.29を、jdkを、sunの1.6.0_22を使っていました。
今回、同1.6.0_23にしたところ、tomcatの動作には問題ないのですが、jstatで情報が取れなくなりました。
jpsでも該当プロセスが出て来ません。
これはアップデートの際の何かの仕様変更による想定通りなのでしょうか?
それとも不具合なのでしょうか?
0006デフォルトの名無しさん
2011/01/25(火) 17:30:02JDKをアップデートしたら使えなくなった?
JAVA_HOMEの設定変えてないとか、ではないよな?
0007デフォルトの名無しさん
2011/01/25(火) 17:48:12シンボリックリンクの張り替えでバージョン切り替えているので、
パスにおける差異は発生してません。
0008デフォルトの名無しさん
2011/01/25(火) 18:18:300009デフォルトの名無しさん
2011/01/25(火) 18:34:18tomcat側は今まで取得していた状態から変更はしていません。
ただ、使用するjdkが置き換わっているのみです。
jsvcでの起動を疑ってjsvcを使わないようにしてみましたが結果変わらず。
jdkが_22であれば、jsvcの有無を問わずに正常にjpsもjstatも結果が返ります。
0010デフォルトの名無しさん
2011/01/25(火) 19:37:250011デフォルトの名無しさん
2011/01/25(火) 19:42:471文字ずつ、自力で変換しないとダメですか?
00125
2011/01/25(火) 22:05:125=7=9です。
>>10
すみません、jdkはハッシュを確認していません。
というか比較すべきハッシュ値がどこにあるか判ってませんでした。
※tomcatなんかは、ダウンロードするすぐ側にあるので判るのですが…。
ダウンロードしているのは jdk-6u23-linux-i586.bin です。
なお、二つの全く異なる環境で同様の事象が起きており、
片方は11/17にダウンロードしたjdk、もう片方は本日ダウンロードしたjdkです。
※どちらもバージョンは一緒で、双方のハッシュはmd5にて同値である事を確認。
0013デフォルトの名無しさん
2011/01/25(火) 23:44:401つ目はセルに分割し、各セルにボタンを配置しボタンをクリックすると各セルのボタンの色が変わりもう1度押すと元の色に戻るプログラムを入れました。
2つ目のパネルではある計算を実行し、計算結果を出力する画面を作りました。
そこでなんですが、一つ目のパネルで色が変わったセルの位置を2つめのパネルの計算結果に反映させるにはどうしたらいいのでしょうか?
0014デフォルトの名無しさん
2011/01/26(水) 00:32:52001513
2011/01/26(水) 00:42:36public void actionPerformed( ActionEvent evt ){
Cell cellx = (Cell)evt.getSource();
if( cellx.status == 0 ){
cellx.status = 1;
cellx.setBackground( new Color(85,136,136));
} else {
cellx.status = 0;
cellx.setBackground( new Color(185,236,236));
}
}
色を変えるクラスはこれなんですが、どのようにして位置情報を保存すればいいんですか?
0016デフォルトの名無しさん
2011/01/26(水) 00:53:19・通知先への参照を持つ(例えばClickcellのコンストラクタに渡す)
・evt経由
・そんだけのコードならClickcellをやめて
親クラスで、匿名クラス経由でactionPerformedを作成し、Parentclass.thisを使って処理
多分どれかで何とかなる
001713
2011/01/26(水) 00:54:59001813
2011/01/26(水) 01:28:35もしよろしければどれか1つでもいいので詳しく書いていただけないでしょうか?
0019デフォルトの名無しさん
2011/01/26(水) 08:20:53public class P extends JFrame{
/* パネルとか色々。略 */
private HashMap<Clickcell,Integer> m;
public void setpos(Integer x,int pos){
m.put(x,pos);
}
/* 略 */
}
class Clickcell implements ActionListener{
private P parent;
private int pos;
public Clickcell(P p,int pos){parent=p;this.pos=pos;}
public void actionPerformed( ActionEvent evt ){
/* 略 */
if( cellx.status == 0 ){
p.setpos(this,pos);
}else{
/* p.resetpos(this,pos); 以下略 */}}
0020デフォルトの名無しさん
2011/01/26(水) 09:55:53オブジェクト指向の説明が濃いものが良いです。
0021デフォルトの名無しさん
2011/01/26(水) 12:20:070022デフォルトの名無しさん
2011/01/26(水) 13:01:000023デフォルトの名無しさん
2011/01/26(水) 14:15:180024デフォルトの名無しさん
2011/01/26(水) 17:43:11Exception in thread "main" java.lang.NoSuchMethodError: mainと表示されました
コンパイルもきちんと出来ているのですが何が原因なのでしょうか?
下がそのサンプルです
class Counter{
int num;
void init(){
num = 0;
}
void count(){
num = num + 1;
}
void printNum(){
System.out.println(num);
}
}
0025デフォルトの名無しさん
2011/01/26(水) 18:14:45no = 無い
such = その
method = メソッド
エラーメッセージでググることもできんのかお前は
0026デフォルトの名無しさん
2011/01/26(水) 18:18:230027デフォルトの名無しさん
2011/01/26(水) 20:38:14どっちも半端じゃないサイズ(数百メガ〜ギガ単位)が必要な時
XMLパーサは何を使って実装すればいいですか。
0028デフォルトの名無しさん
2011/01/26(水) 21:29:260029デフォルトの名無しさん
2011/01/27(木) 00:00:10パーサを作りたいのか内部でパーサを使ったライブラリを作りたいのかしらんが
ひと通りの仕様を満たしてて早くてフットプリントが小さい必要があるならpiccoloあたり。
組み込みとかでそれより小さくしたいなら要件に合わせて既存のライブラリ修正か手書き。
全部入りがほしいいなら手書き一択。
標準ライブラリを使いたくないって理由以外ならJAXPで事足りるんじゃないか?
色々あるからまあググれ。
0030デフォルトの名無しさん
2011/01/27(木) 01:43:09設計的にどうするのがいいんでしょうか
いくつかの製品モデルがあったとして
製品A.create(Arg1 arg1)
製品B.create(Arg1 arg1, Arg2 arg2)
というような形になる場合、
interface 製品
にcreate()を書くにはどうすればいいのかなと
Arg1+Arg2を持った新たなクラスを作る、とか?
0031デフォルトの名無しさん
2011/01/27(木) 02:11:510032デフォルトの名無しさん
2011/01/27(木) 06:16:56public void create(Arg1 ... arg1)でどう?
ただ引数を一緒にする方がよい気がするけどね。
003332
2011/01/27(木) 06:25:47あ、すまん。よく見てなかった。
Arg1クラスとArg2クラスなのか。そしたら(Object ... arg1)か、さらに微妙。。。
public void create(ProductCreateContext context);
public ProductCreateContext getCreateContext();
static interface ProductCreateContext{
public Arg1 getArg1();
public Arg2 getArg2();
}
みたいにしといけば、
製品A.create(new ProductCreateContext(){
public Arg1(){
});
003432
2011/01/27(木) 06:29:27後半はこう書きたかった。
製品A.create(new ProductCreateContext(){
public getArg1(){
return local_arg1;
}
public getArg2(){
return local_arg2; //必要に応じて
}
});
0035デフォルトの名無しさん
2011/01/27(木) 06:34:42配列ならSystem.arraycopy()というのがありますがオブジェクト一般に行いたいです。
コピー元、コピー先は同じ型で既存のオブジェクトです。
clone()はコピー先オブジェクトを指定出来なくて新たなインスタンスを作ってしまうようなので求めているものとは違います。
0036デフォルトの名無しさん
2011/01/27(木) 06:39:10計算 f=new 計算();
で「計算」の中の関数を「描画」内でfで呼び出せると思うんですが
「描画」内の関数を「計算」で呼び出すときに同じように書くとjavaがアプレット上で空回りし続けてエラーになってしまいます。
どう対策すればよいですか?
0037デフォルトの名無しさん
2011/01/27(木) 06:44:26たぶん設計がおかしい
よくあるMVCのパターンで描画=V、計算=Mになるはずで、
計算から描画を参照するのはおかしい
0038デフォルトの名無しさん
2011/01/27(木) 06:45:590039デフォルトの名無しさん
2011/01/27(木) 06:57:12この場合描画のほうでMouseListenerから取得した値を計算に送ることはできないということですか?
0040デフォルトの名無しさん
2011/01/27(木) 07:13:18そういう場合はListenerがCになる
普通、MからVを参照するコードは一切発生しない
CがMのメソッドを呼び出す事はある
VもMのメソッドを呼び出さない
ListenerとかCのみがMを参照する
0041デフォルトの名無しさん
2011/01/27(木) 07:16:30何度もすいません。。。
つまりclassファイルとしてもうひとつリスナーファイルを作るのが正しいってことですか?
0042デフォルトの名無しさん
2011/01/27(木) 07:17:03MVC+イベント+リスナーを使って、
MのほうでPropertyChangedEventを発生させて、
Mの生成時にCをAddListener()していけば大体解決する。
たぶん、MからVのコードを呼び出したいって
Mの状態が変わったときに再描画したいとかだろ?
0043デフォルトの名無しさん
2011/01/27(木) 09:02:31PropertyChangeEventになるとちょっとわからないことだらけになりますね。。。
基本的には「描画」のMouseListenerほうで取得した座標を「計算」で初期値として扱って計算して
「描画」で再描画したいっていう形ですね。
MouseListner使えば結構あっさりできると思ったんですけど。。。^^;
0044デフォルトの名無しさん
2011/01/27(木) 09:09:08MouseListenerでV>Cの流れをやって、
C>Mでモデルにマウス座標を与えて、
Mで再計算された結果を保持しとくフィールドのsetter()でPropertyChangeEventを投げて、
それを見てVが再描画するって話
「座標受け取り」「計算」「再描画」まで手続き的にやりたいのかもしれないけど
この3つの間は全てイベントで繋ぐって話
0045デフォルトの名無しさん
2011/01/27(木) 09:53:44今までマイクロソフトの.netばかり触ってきてたのですが
ここにきてJavaの方へ移行しました。
周りにもJavaを扱った人は少なく、周りに聞いてもダメでした。
どなたか情報をいただけたら助かりますm(__)m
最終的に行いたいのはASP.NETのWebサービスをJavaから呼び出す(実行する)です。
ネットで情報を検索し、apache axisを使用してWSDLファイルからJavaファイルを作成
すればよさそうな感じだったのですが
「WSDLファイルからJavaファイルを作成」
の部分がどうやってもうまくいきません・・(WSDLファイルの作成は出来てます)
原因としてはJava環境の作成に失敗していると思うので一旦、整理をしたいと思ってます。
そこでまず、Javaの複数の開発ツールが入った状態になってしまっていると思うのでそのあたりを整理した方がよいのか
それとも現在の状況から何とかできるのか・・そのあたりから教えていただけたら助かりますm(__)m
(現在の環境をわかる範囲で↓で書きます。)
0046デフォルトの名無しさん
2011/01/27(木) 10:01:21Javaのインストール状況
ProgramFilesの下に
・Java\jdk1.6.0_23
・Java\jre1.6.0_03
・Java\jre6
・Jrail5
とフォルダが出来てます。(まずはここから問題な気がしてます・・)
環境変数には
JAVA_HOME・・ユーザー、システムともに作成されてます。値は両方Java\jre6になってます。
システム環境変数のPATHにはJava関連のものは見当たりません・・(関係ない?)
以上です。まずは環境としてはどうでしょうか?
0047デフォルトの名無しさん
2011/01/27(木) 10:01:42細かく教えていただいてありがとうございます。とりあえずPropertyChangeEventから勉強しようと思います。
004846
2011/01/27(木) 10:10:52・axis2-1.1.1-RC1
・axis-1_4
の両方を入れてみたのですがいろいろやってみて両方とも動きませんでした。
実行したときの環境はコマンドプロンプトで
C:\axis2-1.1.1-RC1\bin\wsdl2java.bat -uri "wsdlファイルのフルパス"
等をネットで調べながらやりました。
その時に大抵、Exception in thread "main" org.apache.axis2.wsdl.codegen等のエラーが出てファイルは作成されませんでした;;
0049デフォルトの名無しさん
2011/01/27(木) 10:59:270050デフォルトの名無しさん
2011/01/27(木) 11:04:14005146
2011/01/27(木) 11:21:06C:\axis2-1.1.1-RC1\bin\wsdl2java.batの実行時に
batファイルの中身を見て
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_23
set AXIS2_HOME=C:\axis2-1.1.1-RC1
を先頭に追加して実行しました。
>>50
AXIS2_CLASS_PATHはやった記憶がありません・・
0052デフォルトの名無しさん
2011/01/27(木) 11:39:28.netスレでjavaに詳しい人に聞け
0053デフォルトの名無しさん
2011/01/27(木) 11:44:220055デフォルトの名無しさん
2011/01/27(木) 13:12:420056デフォルトの名無しさん
2011/01/27(木) 13:56:12下のページの通りやるだけでファイルできたよ
http://japan.internet.com/developer/20090714/26.html
005746
2011/01/27(木) 14:14:56ほんとだ!!!!!!!!
出来ました!!!!
これで一歩進めることが出来ました。本当にありがとうございました。m(__)m
結局、何か違うとしたらaxis2-1.5.4にして、URLに書いてある通り、outオプションが付いたぐらいですね。
助かりました。ありがとうございました。
0058デフォルトの名無しさん
2011/01/27(木) 14:17:530059デフォルトの名無しさん
2011/01/27(木) 16:36:00>最大ヒープサイズ:
>物理メモリーの 1/4 か、1GB かの小さい方。J2SE 5.0 より前のデフォル
>トの最大ヒープサイズは 64MB。このデフォルトは、-Xmx コマンド行オプ
>ションを使用してオーバーライドが可能
ここに書いてあることと全然違うんだけどこれはどういうことなの?
物理メモリ8GBのMac OS Xでjavaを起動してjconsoleで見ると最大ヒープ
サイズが128MBに設定されてる。
物理メモリ2GBのWindowsXPでjavaを起動してjconsoleで見ると最大ヒープ
サイズが64MBに設定されてる。
0060デフォルトの名無しさん
2011/01/27(木) 17:03:23動く作り方は無数にあって、ただお前のがそのどれでもないだけだ。
006160
2011/01/27(木) 17:08:550062デフォルトの名無しさん
2011/01/27(木) 17:10:17まかーだから
0063デフォルトの名無しさん
2011/01/27(木) 17:30:53Linuxか。どこのディストリビューション?
もしかしてだが、Tomcatもyum経由でインストール?
もしかしてもしかしてだが、which javaってやるとどうなるよw
0064デフォルトの名無しさん
2011/01/27(木) 18:03:48文字列.replaceAll("[0123456789]", "[0123456789]");
文字列.replaceAll("[零一ニ三四五六七ハ九]", "[0123456789]");
↑な感じで描いてみたら↓な風に変換されてしまいました
1 → 0123456789
零 → 0123456789
1個ずつ地道に変換するしかないでしょうか?
0065デフォルトの名無しさん
2011/01/27(木) 21:24:52つかAXISじゃなくても、標準でついてるwsimportでもいけるよ。
wsimportの方が設定とか楽だよ。設定というかコマンドだけだし。
006665
2011/01/27(木) 21:25:46そしておめでとうございます。
0067デフォルトの名無しさん
2011/01/27(木) 21:37:32会社のPC糞すぎww
0068デフォルトの名無しさん
2011/01/27(木) 23:27:21何か違うん?
0069デフォルトの名無しさん
2011/01/27(木) 23:48:57PC部品屋のメモリーだってサポートあり、ナシの値段両方あるし。
0070デフォルトの名無しさん
2011/01/28(金) 03:36:230071デフォルトの名無しさん
2011/01/28(金) 08:19:250072デフォルトの名無しさん
2011/01/28(金) 08:46:300073デフォルトの名無しさん
2011/01/29(土) 00:12:26http://mergedoc.sourceforge.jp/
0074デフォルトの名無しさん
2011/01/29(土) 00:44:230075デフォルトの名無しさん
2011/01/29(土) 05:35:46完璧に時代の流れに取り残されてるな
ttp://www.publickey1.jp/blog/10/restsoapwebws-i.html
WSDLなんて久しぶりに聞いたわ
レガシーなシステムの保守だけやってるとそうなる
0076デフォルトの名無しさん
2011/01/29(土) 05:40:19またmiddlegenで出力しなおすと上書きされますよね?
直接O/Rマッパーを編集すべきじゃないんですか?
継承したり、委譲したクラスを作ってやるべき?
0077デフォルトの名無しさん
2011/01/29(土) 07:30:14int* test1;
char* test2 = (char*)test1;
とか配列の参照をキャストできるのに、javaでは
byte[] test1;
long[] test2 = (long[])test1;
と書けませんよね?
なぜですか?
0078デフォルトの名無しさん
2011/01/29(土) 08:40:09java.nio.ByteBuffer#asLongBuffer()使え
007912
2011/01/29(土) 15:05:21すみません、返信遅くなりました。
Linuxです。
Slackwareです。
32bit環境と64bit環境でjava及びtomcatは双方32bitです。
yumは使ってません。
tomcatは ttp://tomcat.apache.org/でtar.gzのcoreを展開して導入。
which javaをすると、シンボリックリンク経由で期待しているjdkのbin/javaを指します。
0080デフォルトの名無しさん
2011/01/29(土) 15:09:36使用しているjavaのバージョンが不明ですが、日本語資料が全然更新されていないだけです。
6以降でエルゴノミクスも大分変わっています。
0081デフォルトの名無しさん
2011/01/29(土) 19:43:320082デフォルトの名無しさん
2011/01/29(土) 21:45:20しても、エラーになってしまいます。自分では何度も確認したのですが、どこが間違っているのかわかりません。
import java.util.Scanner;
class ArithInt{
public static void main(String[] args){
Scanner stdIn = new Scanner(System.in);
System.out.println("xとyを加減乗除します。");
System.out.print("xの値:");
int x = stdIn.nextInt();
System.out.print("yの値:");
int y = stdIn.nextInt();
System.out.println("x + y =" + (x + y));
System.out.println("x - y =" + (x - y));
System.out.println("x * y =" + (x * y));
System.out.println("x / y =" + (x / y));
System.out.println("x % y =" + (x % y));
}
}
0083デフォルトの名無しさん
2011/01/29(土) 21:46:42ArithInt.java:1: シンボルを解決できません。
シンボル: クラス Scanner
場所 : util の パッケージ
import java.util.Scanner;
^
ArithInt.java:6: シンボルを解決できません。
シンボル: クラス Scanner
場所 : ArithInt の クラス
Scanner stdIn = new Scanner(System.in);
^
ArithInt.java:6: シンボルを解決できません。
シンボル: クラス Scanner
場所 : ArithInt の クラス
Scanner stdIn = new Scanner(System.in);
^
エラー 3 個
0084デフォルトの名無しさん
2011/01/29(土) 22:02:38java.util.Scanner がないって事は 1.5以降じゃないのか
javac -J-version でバージョン確認したら?
0085デフォルトの名無しさん
2011/01/29(土) 22:06:01環境設定が変とか
0086デフォルトの名無しさん
2011/01/29(土) 22:21:12モバグリやスマホ向けのソーシャルアプリ(笑)とか作ってそう
jQuery、Ajax、クラウド(爆笑
一昔前は某広告代理店に乗せられてセカンドライフ(核爆
に手を出してただろ?
0087デフォルトの名無しさん
2011/01/29(土) 22:31:020088デフォルトの名無しさん
2011/01/29(土) 22:47:04調べてみたら
java version "1.4.2_16"と表示されました
0089デフォルトの名無しさん
2011/01/29(土) 22:56:010090デフォルトの名無しさん
2011/01/29(土) 23:01:41サイトへ行ってダウンロードしたので解決しました
お騒がせしました^^
0091デフォルトの名無しさん
2011/01/29(土) 23:32:060092デフォルトの名無しさん
2011/01/29(土) 23:45:530093デフォルトの名無しさん
2011/01/29(土) 23:54:500094デフォルトの名無しさん
2011/01/30(日) 00:02:230095デフォルトの名無しさん
2011/01/30(日) 07:57:49現在JAVAを用いてMySQLを操作していて、データにSelect文をかけて
その結果の表をeclipseのコンソール画面に表示したいのですがうまくいきません。
一旦Select結果をresultsetに格納し、rs.next()で回して一件ずつ表示するという方法で
表示していたのですが、「これだとデータが膨大になった時にとても遅くなる」と怒られました。
なのでselect結果をそのまま表示する方法を探しています。
どなたか御助力いただけると嬉しいです。
0096デフォルトの名無しさん
2011/01/30(日) 10:38:09select文を見直せという意味でなければ、
その怒った奴が阿呆。
もしくは、メインの処理とは別に
コンソールにログ的に表示してるんなら、
使い方が間違っている。
0097デフォルトの名無しさん
2011/01/30(日) 10:42:14なわけないか。
0098デフォルトの名無しさん
2011/01/30(日) 10:55:49jdk6を使っているのですが
HTMLのoptionタグの様なUIを作る時は何というクラスを使えば良いのでしょうか?
ラジオボタンやチェックリスト、スクロールは見つける事が出来たんですけど
これが見つかりません
0099デフォルトの名無しさん
2011/01/30(日) 10:56:09するけどそんなのかな
0100デフォルトの名無しさん
2011/01/30(日) 11:03:31http://ash.jp/db/ora_c.htm
0101デフォルトの名無しさん
2011/01/30(日) 11:31:24http://www.tohoho-web.com/java/swing.htm#JComboBox
0102デフォルトの名無しさん
2011/01/30(日) 11:51:21核爆←昭和の人?
0103デフォルトの名無しさん
2011/01/30(日) 12:04:220104デフォルトの名無しさん
2011/01/30(日) 12:05:21>>86はコボラー、あるいはコボル風手続き型の1クラス数万行の
Javaコードを書く天災だから触れちゃ駄目だ、毒されるぞ
ttp://slashdot.jp/developers/article.pl?sid=11/01/10/0943209
0105デフォルトの名無しさん
2011/01/30(日) 12:13:43おおっ
ありがとうございました!
0106デフォルトの名無しさん
2011/01/30(日) 12:25:08一般的なWebアプリケーションもforEachループで回すんだけどな…
数が多いと遅くなるのは当たり前で、大抵はページング処理して
件数を分割して高速に表示されるように考慮する
「ページング処理しろ」って意味じゃないのか?
0107デフォルトの名無しさん
2011/01/30(日) 12:48:02その部分を示す模擬的なコードを出せ
エスパーすると、ループの中で1行1行プリントするんじゃなくて
1つのStringにまとめてから1度にプリントしろ
0108デフォルトの名無しさん
2011/01/30(日) 17:56:24このプログラム単体(接続とレコード登録のみに絞った)だと正常に動くんだけど
ソケット接続を含めたチャット機能を加えたら、JDBCドライバーが見つからないエラーになる
ソケット接続とDB接続って同時にできないのですか?
0109デフォルトの名無しさん
2011/01/30(日) 18:02:230110デフォルトの名無しさん
2011/01/30(日) 18:09:52エスパー希望
コンパイルは通るけど、発言ある度にコンソールにエラー吐き出す
発言がある度にじゃなく、起動時にDB接続するようにしてもnotfoundになります・・・
0111名無しさん
2011/01/30(日) 20:02:510112110
2011/01/30(日) 21:46:05答えてくれた方々どうもありがとうございました。
0113デフォルトの名無しさん
2011/01/30(日) 22:41:12呼び出し元の変数に代入する場合ってローカル変数は破棄されないんでしょうか?Cではstaticを使うみたいなのをみたんですが。。。
一応例を
public static void main(String args[]){
String str;
str=s();
}
public static String s(){
String t="aaa";
return t;
}
よろしくお願いします。
0115デフォルトの名無しさん
2011/01/31(月) 02:35:25URLからHTMLを解析して、正規表現などをつかって抽出する方法が一般的なのでしょうか?
現在URLからのHTML取得や、文字列の抽出はできるようになったのですが、
HTML取得→文字列抽出までを同時に実行しようとする所でどうすればよいかわからず
行き詰っています。 何か株価抽出に関してヒントや勉強したほうがいい箇所などありましたら
ご教授お願いいたします。
0116デフォルトの名無しさん
2011/01/31(月) 03:14:060117デフォルトの名無しさん
2011/01/31(月) 03:36:10プログラムとは関係ない文章中でも、全角大文字を平気で使うプログラマは信用されないぞ
あとhtmlパーサを使え Javaなら沢山あるだろ Jsoupとかがいいんじゃないか
0118デフォルトの名無しさん
2011/01/31(月) 03:57:55ttp://jsoup.org/apidocs/org/jsoup/select/Selector.html
0119デフォルトの名無しさん
2011/01/31(月) 04:59:23日経平均の更新間隔はどこのサイトも15分程度だから
最初に取得した時にmemcachedか何かに15分後の時刻と値を記録しておいて、
次回アクセス時はその時刻を確認した上で取りに行くようにしないと
自分のサイトにアクセスが集中した時にパクリ側に拒否られる可能性がある
0120デフォルトの名無しさん
2011/01/31(月) 05:04:310121デフォルトの名無しさん
2011/01/31(月) 05:20:21多いから決め打ちで書いただけだよ
0122デフォルトの名無しさん
2011/01/31(月) 05:22:16自分専用に株価のGUIアプリをつくっているので、そこで使う予定でいます。
ありがとうございました。
0123デフォルトの名無しさん
2011/01/31(月) 12:07:19何が一番処理効率が良いでしょうか?
あと、指定したページがHTMLかXMLなどを判断するには
getContentType()で判断するしかないでしょうか?
0124デフォルトの名無しさん
2011/02/01(火) 01:49:34一応ソース書いてコンパイルして、エラー無くして実行(Appletviewer)したのですが、エラーがでます。
java.lang.NoClassDefFoundError :org/opache/hadoop/fs/FSDataInputStream
...
といった感じです。FSDataInputStreamのクラスが無いと言われても・・・。
hadoopのバージョンは0.21.0です。
色々無知なので沢山指摘してもらえると助かります。よろしくお願いします
0125デフォルトの名無しさん
2011/02/01(火) 02:22:15ご迷惑おかけしました。
0126デフォルトの名無しさん
2011/02/01(火) 10:38:24main()だけでもいいんだけど
eclipseのプラグインとかでないのかな
0127デフォルトの名無しさん
2011/02/01(火) 11:26:170128デフォルトの名無しさん
2011/02/01(火) 17:58:290129デフォルトの名無しさん
2011/02/01(火) 20:03:370130デフォルトの名無しさん
2011/02/01(火) 20:27:480131デフォルトの名無しさん
2011/02/02(水) 10:46:16出来れば使うときの環境とか、
簡単なサンプルソースとかあれば教えてほしいのですが。。。
お願いします。
0132デフォルトの名無しさん
2011/02/02(水) 15:14:49.javaや.classを動かすにはどうすればいいでしょうか?
0133デフォルトの名無しさん
2011/02/02(水) 18:42:280134デフォルトの名無しさん
2011/02/02(水) 18:47:32以下の2つのケースで、1つ目は"test"は出力されず、2つ目はreturnした後に通常処理になる、
という理解で合っていますか?
try{
}catch(SomeException e){
}
System.out.println("test");
try{
}catch(SomeException e){
return;
}
0135デフォルトの名無しさん
2011/02/02(水) 18:49:300136デフォルトの名無しさん
2011/02/02(水) 21:20:540137デフォルトの名無しさん
2011/02/02(水) 21:22:450138デフォルトの名無しさん
2011/02/02(水) 23:05:14|
____.____ | |||||
| | キャッチ. .│ | _,,..,,,,_
| | ∧_∧ | | / ,' 3 `ヽーっ
| |( ・∀・) | | l ⊃ ⌒_つ
| |/.⊃━,⊃━━━━━┫ `'ー---‐'''''"┃
 ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄ | ┗━━━━━┛
|
|
|
____.____ |
| | アンド リリース . |
| | ∧_∧ | |
| |( *・∀・).| | ┏━━━━━┓
| |/.⊃━,⊃━━━━━┫ .┃
 ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄ | |||||
| _,,..,,,,_
| / ,' 3 `ヽーっ
l ⊃ ⌒_つ
`'ー---‐'''''"
0139デフォルトの名無しさん
2011/02/03(木) 00:06:04}catch(Exception e){
}
javaの定石
0140デフォルトの名無しさん
2011/02/03(木) 17:43:55String Name [][]={ {"hoge"},{"hogehoge"}};
System.out.println (Name[1]);
これだとエラーになるはずなのにコンパイルが通って
実行してみると
Ljava.lang.String;@1a758cb
と出ます。何なんでしょう
0141デフォルトの名無しさん
2011/02/03(木) 17:49:590142デフォルトの名無しさん
2011/02/03(木) 17:54:25すべての参照型には toString() ってメソッドがあってだな……
0143デフォルトの名無しさん
2011/02/03(木) 18:08:381. クライアントSocket → サーバ(固定IP)+ポートServerSocket
2. サーバ? → クライアント?+ポート
2の実装なのですが
クライアントが1を使ってサーバに対するポーリングを行う以外の方法は何かありませんか?
何が聞きたいかというと、サーバからクライアントに対してコネクションできないですよね?
ネットワーク全然わからん・・・ぼすけて
0144デフォルトの名無しさん
2011/02/03(木) 18:13:160145デフォルトの名無しさん
2011/02/03(木) 18:19:18サーバの状態変化をリアルタイムでクライアントに送信したいのです・・・
ポーリングさせると、サーバトランザクションがすごいことになりそうなのです><
0146デフォルトの名無しさん
2011/02/03(木) 18:22:570147デフォルトの名無しさん
2011/02/03(木) 18:45:151.フィードバック用ソケットをクライアントに持たせる
2.readさせ、応答があるまでブロック
こんな感じでいけそうです。ありがとうございました
0148デフォルトの名無しさん
2011/02/03(木) 22:51:31KeyEvent::getKeyChar()は文字が取れて
KeyEvent::getKeyCode()をつかうと常に0になるのですが
思い当たることはありませんか? 理解不能です><
0149デフォルトの名無しさん
2011/02/03(木) 22:53:41keyPressedやkeyReleasedだと0以外の値が取れました・・・ 心霊現象?w
0150デフォルトの名無しさん
2011/02/03(木) 22:56:27文字が入力されたタイミングとキーが押されたタイミングは別
0151デフォルトの名無しさん
2011/02/04(金) 00:13:59リファクタリングしてたらその状況になったのです・・・
keyTypedでもgetKeyCode()にキーコードは入ってたので
さらにこのメソッドにやる気が感じられません
public boolean requestFocusInWindow()
100%javaで行きたかったけどDirectInput使うことになる悪寒・・
イベントキューに突っ込む方法とかもあったけど、意外とつらいswing
0152デフォルトの名無しさん
2011/02/04(金) 00:19:050153デフォルトの名無しさん
2011/02/04(金) 00:30:41さくさく書けるよ?
ImageIconとかストリームで流すのとか1行でかけちゃうし
もう少し完成度がほしかったってのが心情
軽量クライアントでJWS使って毎度読み込ませても軽快だろうと妄想していたんだ
さっきまで・・
0154デフォルトの名無しさん
2011/02/04(金) 01:23:23後、Runnable.run()内で変更される、外から引数で渡されるList(Map)ってsynchronized必要?
0155デフォルトの名無しさん
2011/02/04(金) 02:10:08そりゃListやMapの実装によるでしょう。
0156デフォルトの名無しさん
2011/02/04(金) 08:04:28タイマータスクに持たせていじいじするなら シンクロブロック無しのコンカレントハッシュマップがおぬぬめ
コンカレントのほう使う場合はvaluにnull渡せないから注意ね
ときにpublic boolean requestFocusInWindow()なんだけど
一回ウインドウ自体からフォーカスはずすと有効になる謎動作なんだけど
どうにかならんかね・・・イベントキューに突っ込む以外に方法が見当たらん・・
0157デフォルトの名無しさん
2011/02/04(金) 10:36:44日時が、
2011-02-04T00:43:27.134501Z
形式(GMT)でくるんだけど、
SimpleDateFormat svnFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'");
svnFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
Date date = svnFormat.parse(element.getElementsByTagName("date").item(0).getTextContent());
で取得したときには、
date.getHours() → 9 ※ローカルのタイムゾーンが+9hなのはわかる
date.getMinutes() → 45 ※!?
date.getSeconds() → 41 ※!?
this.date = new SimpleDateFormat(yyyy/MM/dd HH:mm:ss).format(date) → 2011/02/04 09:45:41
になっちゃう...
なんでーーーーーーー!?
ちなみに、
TimeZone.getDefault()
の結果は、
[id="Asia/Tokyo",offset=32400000,dstSavings=0,useDaylight=false,transitions=10,lastRule=null]
でつ。
よろしく頼むぜ!!
0158デフォルトの名無しさん
2011/02/04(金) 10:38:030159デフォルトの名無しさん
2011/02/04(金) 10:38:40Date date = svnFormat.parse("2011-02-04T00:43:27.134501Z");
0160デフォルトの名無しさん
2011/02/04(金) 10:50:060161デフォルトの名無しさん
2011/02/04(金) 11:11:15マイクロ秒はどうすりゃいいんだろうね?
あきらめて正規表現で解析したら?
0162デフォルトの名無しさん
2011/02/04(金) 11:29:29getYear()
getMonth()
getDay()
などのメソッドを使おうとしたら、deprecationの警告が出ました。
これらが非奨励なら、代わりに何を使うのが適切ですか?
代わりとなるメソッドは見当たらなかったんですが
0163デフォルトの名無しさん
2011/02/04(金) 11:30:25Calendar の get を使ってください
0164デフォルトの名無しさん
2011/02/04(金) 12:34:16うおおおおおおおおおおおおお!!!!!!
あんたすげぇ!!
マジすげぇよ!!!
俺は今、>>161神のおかげで満面の笑みで華麗にコミットしたぜ!!!
ありがとう!!!
0165デフォルトの名無しさん
2011/02/04(金) 14:24:07JDKでコンパイルして作られたファイルはexeファイルのようにダブルクリックで起動するようには出来ないですか?
0166デフォルトの名無しさん
2011/02/04(金) 14:28:520167デフォルトの名無しさん
2011/02/04(金) 14:30:080168デフォルトの名無しさん
2011/02/04(金) 15:49:210169デフォルトの名無しさん
2011/02/04(金) 16:01:50それすっと汎用的でいいよね
めんどっちいからBATファイルから起動してるけど
0170デフォルトの名無しさん
2011/02/04(金) 16:02:52有償のやつしかしらんけど今なら無償でもあるのかな?
0171デフォルトの名無しさん
2011/02/04(金) 16:34:180172デフォルトの名無しさん
2011/02/04(金) 16:42:56こんなバッチファイル作れば関連付け実行とか、送るもできる
jarファイルダブルクリックで実行出来るのに、送るとか関連付け出来なくて仕方なくexe作ったけど
こんなの使うぐらいならBATでいいやと思ってしまった
0173デフォルトの名無しさん
2011/02/04(金) 18:14:06www.yahoo.co.jpでは大丈夫でした。こういう場合の適切な書き方はどのようなものなんでしょうか?
private static void httptest() {
String host = "www.google.co.jp";
int port = 80;
String path = "/";
Socket socket;
BufferedWriter writer;
BufferedReader reader;
try {
socket = new Socket(host, port);
writer = new BufferedWriter(new OutputStreamWriter(
socket.getOutputStream()));
writer.write("GET " + path + " HTTP/1.1\r\n");
writer.write("Host: " + host + ":" + port + "\r\n\r\n");
writer.flush();
reader = new BufferedReader(new InputStreamReader(
socket.getInputStream(), "UTF-8"));
while (true) {
String line = reader.readLine();
if (line == null) {
break;
}
System.out.println(line);
}
reader.close();
writer.close();
socket.close();
} catch (Exception e) {
}
System.out.println("finish.");
}
0174デフォルトの名無しさん
2011/02/04(金) 18:23:20HTTP/1.1 では Connection: close を付けていなければ persistent connection になりますので、次のリクエストを待っている状態です
次のリクエストがあればそれを送ってください
次のリクエストがなければ自分でクローズしてください
最初のレスポンスの終わりがどこかは Transfer-Encoding や Content-Length を見て判断する必要があります
面倒ならリクエストに Connection: close を付ければいいです
0175デフォルトの名無しさん
2011/02/04(金) 18:43:16なるほど!
できました。ありがとうございます。
0176デフォルトの名無しさん
2011/02/04(金) 22:09:49泥臭いコーディングしなくていいよ
0177デフォルトの名無しさん
2011/02/04(金) 22:13:52java.net.HttpURLConnection
これが正解
とってもスマートに実装できまする
0178デフォルトの名無しさん
2011/02/05(土) 00:56:55ありがとうございました
少し調べて試してみます
0179デフォルトの名無しさん
2011/02/05(土) 11:48:06jdkに付属してくるソースには含まれていないですよね?
どこから手に入れられるのでしょうか?
0180デフォルトの名無しさん
2011/02/05(土) 12:55:30解説記事とかなにか教えてください
0181デフォルトの名無しさん
2011/02/05(土) 15:43:26自分で作ったクラスのインスタンスを参照する時に
そのクラスがフィールドに持つ既存のクラスを参照の対象にする事は出来るのでしょうか?
JListの中で自分で作ったクラスのリストを文字列でソートがしたいのですが
そのままソートすると"クラス名+謎の数列"の形で参照されてしまいます
こう言った場合は大人しくString型等を継承したクラスに作り直すべきですか?
0182デフォルトの名無しさん
2011/02/05(土) 15:59:54JListに表示される"クラス名+謎の数列"は自分で作ったクラスにtoString()メソッドを書くと変えることができます。ListCellRendererを実装する方法もあります。
Stringはfinalクラスなので継承できません。
0183デフォルトの名無しさん
2011/02/05(土) 19:15:54ソートをするために確認しようとして
無理やりStringとして扱った場合でした
Stringは継承出来ないんですね・・・
試してみましたが確かに出来ませんでした
0184デフォルトの名無しさん
2011/02/05(土) 19:43:44ホストのデフォルトのコンテキストをROOTから別の名前に変更できますでしょうか?
プログラムを変更せずに設定ファイル等で変更する方法がありましたら教えていただければと思います。
よろしくお願いします。
0185デフォルトの名無しさん
2011/02/05(土) 20:49:02誰もレスしないところを見ると
それくらい自分でググれないと、やっていけないぜということなんだろうなぁ・・
0186デフォルトの名無しさん
2011/02/05(土) 21:02:260187デフォルトの名無しさん
2011/02/05(土) 21:10:08開発チームが出入りしていた喫茶店の店員のシャツにJAVAって描いてたから
とかなんとか
0188デフォルトの名無しさん
2011/02/05(土) 22:07:180189デフォルトの名無しさん
2011/02/05(土) 22:19:470190デフォルトの名無しさん
2011/02/05(土) 23:30:02調べてみましたが違うようです?勘違いでしたらすみません
初歩的なことなのかもしれませんがなかなか見つからずで
具体的には、下記のようにHOSTが設定されている時に、
<Host
name="hoge.com"
appBase="/var/www/hoge.com"
・・・>
</Host>
http://hoge.com/
というURLでアクセスしたい場合、
/var/www/hoge.com/ROOT/
配下にWEB-INFとかもろもろ置くじゃないですか
これをROOTから
/var/www/hoge.com/htdocs/
に変えたいのです
0191デフォルトの名無しさん
2011/02/06(日) 01:00:570192デフォルトの名無しさん
2011/02/06(日) 01:12:060193190
2011/02/06(日) 01:34:49TomcatのHostのAliasだと、
http://hoge.com/
http://www.hoge.com/
の両方でアクセスしたい時に書くものだと認識してます。
ApacheのAliasは、DocumentRootでは無い、配下の特定のパスに対して、別のディレクトリを指定したい場合に使うと思うんですが、
今回のケースには適用できない気がします。
よくよく調べたらROOTってTomcatのプログラムにハードコーディングされているようですね。
/var/www/hoge.com/htdocs/にコンテキストを配備して、
/var/www/hoge.com/ROOTっていうシンボリックリンクを作ればいけるのかな
0194デフォルトの名無しさん
2011/02/06(日) 01:40:01以下のように0.1を10回足しても1.0にはなりません。
double x = 0d;
for (int i = 0; i < 10; i++){
x += 0.1;
}
System.out.println(x);
調べたらコンピュータ上で浮動小数点を扱う上での制限とのことですが、
Cで同様のプログラムを書くと結果は1.0ですし、
途中結果も0.1, 0.2, 0.3...と(人間の目から見て)正しく表示されます。
なぜでしょうか。
0195190
2011/02/06(日) 02:07:31http://f29.aaa.livedoor.jp/~snaka/PukiWiki/PukiWiki.php?Java%2Fdouble%A4%CE%B8%ED%BA%B9
0196デフォルトの名無しさん
2011/02/06(日) 02:08:32Cでも誤差が見えないだけ。1000000ぐらいまでやってみ
0197110
2011/02/06(日) 20:58:53画面の右端近くに来たときに自動的に改行されるようにしたいです。
文字列には全、半英数、全かな、半カナ等々入り混じっています。
全かなの文字数で改行条件を作ると、半角文字が混じった場合右にまだ余裕がある状態で改行されてしまいます。
そこで
moji_byte = str.getBytes( "Shift_JIS").length;
を使って文字列のバイト数を割り出すという方法を知ったんですが、
1バイトを0.5文字として扱って・・・等々いろいろ試しましたがだめでした・・・。
これをどう使えば、半角と全角が混じった状態でも改行の位置が丁度よくなるでしょうか、教えてください。
0198デフォルトの名無しさん
2011/02/06(日) 20:59:49文字列はチャットから送られてくるものです
0199デフォルトの名無しさん
2011/02/06(日) 21:40:30そんな気にする必要ないと思うけどなぁ
0200デフォルトの名無しさん
2011/02/07(月) 02:51:47「300pxに収まるところで文字列を分割したい」とかそういう話だね?
java.awt.font パッケージにいろいろあるから全部目を通すのがよろし。
0201デフォルトの名無しさん
2011/02/07(月) 19:28:46org.apache.xerces.dom.DeferredDocumentImpl
回避方法はあるでしょうか?
java.lang.ClassNotFoundException: org.apache.xerces.dom.DeferredDocumentImpl
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at java.io.ObjectInputStream.resolveClass(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at org.apache.commons.lang.SerializationUtils.deserialize(SerializationUtils.java:162)
0202デフォルトの名無しさん
2011/02/07(月) 21:30:17今回の後期試験もJavaで赤点とってレポート書いてる
そのレポートについて質問だけど「float f2 = 100.0;」が有効ではない理由って何?
ここで今躓いててレポート止まってる
0203デフォルトの名無しさん
2011/02/07(月) 21:38:48つまり
100.0
と書いた時点でこれはdouble型なわけ
実際にはfloat型に収まる範囲なんだけど
Javaの決まりで小数はとりあえずdouble型だと決めてしまってるの
それを
float f2
に代入しようとしてるからそれはだめだよと
0204デフォルトの名無しさん
2011/02/07(月) 21:49:030205デフォルトの名無しさん
2011/02/07(月) 22:14:270206デフォルトの名無しさん
2011/02/07(月) 22:47:220207デフォルトの名無しさん
2011/02/08(火) 01:34:540208デフォルトの名無しさん
2011/02/08(火) 08:34:110209デフォルトの名無しさん
2011/02/08(火) 08:41:190210デフォルトの名無しさん
2011/02/08(火) 18:17:21書けるよ
2秒で書ける
その2秒すら惜しんで2chに書き込んでる時点で
お前はダメだ
今後何をやってもダメだ
という文章を1分近く使って書き込んでるおれの方がもっとダメだ
0211デフォルトの名無しさん
2011/02/08(火) 18:29:050212デフォルトの名無しさん
2011/02/08(火) 19:41:460213デフォルトの名無しさん
2011/02/08(火) 21:56:28クラス設計についてわかりやすいサイトはないですか
0214デフォルトの名無しさん
2011/02/08(火) 22:28:52何の設計?とりあえずデザインパターンやUML クラス図でググってみれば
0215デフォルトの名無しさん
2011/02/08(火) 22:34:57IDEAで、javaファイルからclassにコンパイルして実行することは出来ましたが、
これを、jarファイルにする方法が見つかりません。
Web検索しても、そもそも Intellij 使っている人少ないようだし、、。
Eclipseのときは、jarファイル作るって簡単にできたのに、Intellijではどうやるのだろう?
0216デフォルトの名無しさん
2011/02/08(火) 23:04:15自己解決
Configuring Artifacts で設定すれば jarの項目ありました。
普通にhelpにのっていた。
しかし、Intellij IDEA って軽いうえに高機能なDEで、Googleの開発者でも人気だ
というのに、日本語の情報が少ないなあ。
0217デフォルトの名無しさん
2011/02/08(火) 23:11:380218デフォルトの名無しさん
2011/02/09(水) 12:50:53ドメイン名からパッケージ名を付けられないんですけど
この場合どんな風にパッケージ名付けたらいいですか?
0219デフォルトの名無しさん
2011/02/09(水) 13:07:30一意になればいいものだし、ぶっちゃけ外部に公開するライブラリとかじゃなければかぶる機会も無いんだし
0220デフォルトの名無しさん
2011/02/09(水) 13:27:56マーケット経由でAndroidからアクセスさせる
という前提だったりします
0221デフォルトの名無しさん
2011/02/09(水) 21:17:59ttp://java.sun.com/docs/books/jls/third_edition/html/packages.html#7.7
> If any of the resulting package name components start with a digit,
> or any other character that is not allowed as an initial character of an
> identifier, have an underscore prefixed to the component.
0222デフォルトの名無しさん
2011/02/10(木) 15:57:33Tomcatで、DBとか使わずにHttpSessionで
0223デフォルトの名無しさん
2011/02/10(木) 20:18:29セキュリティ観点で考えよ
0224デフォルトの名無しさん
2011/02/10(木) 20:50:08H2DBのインメモリモードあたりで手軽にやればいいじゃん。
0225デフォルトの名無しさん
2011/02/10(木) 22:23:02javaservlet(JSP)というもので良いのでしょうか?
その勉強の為の参考書を購入したいのですが、
お薦めの参考書を教えていただけませんか?
0226デフォルトの名無しさん
2011/02/10(木) 22:50:330227デフォルトの名無しさん
2011/02/11(金) 01:28:59セッションでやれたら楽じゃない!
0228デフォルトの名無しさん
2011/02/11(金) 03:57:25int j = (int)(Math.random() * (i + 1));
num[i] = num[j];
num[j] = i + 1;
}
ってやれば空の配列に数字を入れながらランダムにできる
0229デフォルトの名無しさん
2011/02/11(金) 14:49:27sjc-wcの教科書
0230デフォルトの名無しさん
2011/02/11(金) 23:15:53charsetの値を取得したいのですが、下記の実装だとcontentの値しか取得出来ません。
どうすればcharsetの値を取得出来るのでしょうか?
<!-- metaタグ -->
<meta content="text/html" charset="utf-8" http-equiv="Content-Type"/>
//実装
URL url = new URL(任意のURL);
URLConnection urlConnection = url.openConnection();
0231デフォルトの名無しさん
2011/02/11(金) 23:16:59meta の書式が間違っているので取得は無理なのでは?
0232デフォルトの名無しさん
2011/02/11(金) 23:28:01間違ってますか?ちなみに自分が見ているサイトのURLは下記です。
Firefoxでソースの表示からmetaタグをコピペしました。
http://japanese.engadget.com/2011/02/11/q-a-android-meego/
0233デフォルトの名無しさん
2011/02/11(金) 23:56:28まあ、正式な文法がわからない以上、あとはど根性とカンと運でなんとかするしかないでしょう。
0234デフォルトの名無しさん
2011/02/11(金) 23:59:300235デフォルトの名無しさん
2011/02/12(土) 07:14:030236デフォルトの名無しさん
2011/02/12(土) 08:03:080237デフォルトの名無しさん
2011/02/12(土) 08:55:19の38Pについて質問です。
「Writeの項目で、Androidアプリケーション実行時に最初に呼び出されるonCreateメソッド
の中に次のソースを加えてみましょう。」と記述されていますが、Androidアプリケーション実行
は、どうすればいいのでしょう?
具体的にどういう操作をすればいいのか記述されていないので、困っています。
0238デフォルトの名無しさん
2011/02/12(土) 09:20:530239デフォルトの名無しさん
2011/02/12(土) 11:17:210240デフォルトの名無しさん
2011/02/12(土) 11:20:22しかし、「Androidアプリケーション実行」をどうすればいいのか
分からないのです。
ImageViewMainを宣言したいのですが。
0241デフォルトの名無しさん
2011/02/12(土) 23:57:38domで取ればいいんでない
0242デフォルトの名無しさん
2011/02/13(日) 00:05:20コピペするからにはよく調べて書いてあることを理解してからコピペした方がいい。
ネットには正しくないものもあるってことを忘れちゃいけない。
0243デフォルトの名無しさん
2011/02/13(日) 02:13:34調べてみます。
>>242
気を付けます。
0244デフォルトの名無しさん
2011/02/13(日) 02:39:49>>233にレスをもらってから「正式な文法」は調べたか?
本人じゃないが>>233のレスは「根性とカンでしか無理」って意味じゃないぞ?
正しいかどうか判断できない素人がどっかの糞サイトみて根拠もなく信じこむんじゃなくて、
お前自信が参考にした糞サイトのDOCTYPEにも書いてあるんだからまずDTDを確認することだ。
で、確認したら次に回答者に伝えるべきことがある。
間違ったソースから解析する方法を知りたいのか?
正しいソースから取得する方法がわかればよいのか?
的確な回答がほしけりゃ的確な質問を心がけろよ。
0245デフォルトの名無しさん
2011/02/13(日) 02:42:420246デフォルトの名無しさん
2011/02/13(日) 09:00:270247デフォルトの名無しさん
2011/02/13(日) 09:10:52>>264答えてあげなさい。
0248デフォルトの名無しさん
2011/02/13(日) 10:08:58すみません。文法云々を知りたいのではないので。
取得するAPIとかあればそれで済む話です。
0249デフォルトの名無しさん
2011/02/13(日) 11:00:13パソコンを軽くしたいので、コントロールパネルを見てたら
Java(TM) 6 Update 11
Java(TM) 6 Update 5
Java(TM) 6 Update 7
とあったのですが、11以外削除していいのでしょうか?
よろしくお願いいたします。
0250デフォルトの名無しさん
2011/02/13(日) 11:15:33基本的には最新の入れたら古いのは削除していい。
古いバージョンの挙動に依存してるアプリ使ってる場合は
古いの消したらそのアプリが動かなくなるってだけ。
0251デフォルトの名無しさん
2011/02/13(日) 11:25:07よくわからなかったのは読込・書込処理の部分です。
どういう流れで会話のやり取りが行われているのかよくわかりません。
例えば、Aさんが書き込んでBさんがその書き込みを見るまで、のような一連の流れです。
・読込処理
URL wi_url = new URL(p_url+"chat1.cgi");
URLConnection wi_connect = wi_url.openConnection();
wi_connect.setDoInput(true);
wi_connect.setDoOutput(true);
wi_connect.setUseCaches(false);
OutputStream wo_stream = wi_connect.getOutputStream();
BufferedWriter wo_buffer = new BufferedWriter(new OutputStreamWriter(wo_stream));
wo_buffer.write("read", 0, 4);
wo_buffer.flush();
wo_buffer.close();
InputStream wi_stream = wi_connect.getInputStream();
BufferedReader wi_buffer= new BufferedReader(new InputStreamReader(wi_stream));
書込処理はchat1.cgiの部分がchat2.cgiになっているだけで他は同じです。
0252デフォルトの名無しさん
2011/02/13(日) 13:51:410253デフォルトの名無しさん
2011/02/13(日) 17:17:22シンボル: 変数 afile
場所 : sorting の クラス
afileの中にあるs_assign_data.datはsorting.javaと同じ階層です。
afileからデータ引っ張ってきたいんですが、afileの中身がない?状態なんですかね。
一応afileの生成に関係あるところだけ抜粋します。
ご教授よろしくお願いします。
public static void main(String args[])
throws IOException,FileNotFoundException
{
try{
BufferedReader afile=new BufferedReader(new FileReader("s_assign_data.dat"));
}catch(FileNotFoundException e){
System.out.println(e);
}
0254デフォルトの名無しさん
2011/02/13(日) 17:23:360255デフォルトの名無しさん
2011/02/13(日) 17:36:180256デフォルトの名無しさん
2011/02/13(日) 17:45:40でafileないよ〜と言われます。
クラスはコンパイルできれば、でるんじゃなかったでしたっけ?
javacでエラーがでてます。
ちなみにdatの中身は下のようなものです
1, 田中 実,41,21,13
0257デフォルトの名無しさん
2011/02/13(日) 17:50:55BufferedReader afile=new BufferedReader(new FileReader("s_assign_data.dat"));
}catch(FileNotFoundException e){
System.out.println(e);
}
String line = afile.readLine();
ではなく
BufferedReader afile = null;
try{
afile=new BufferedReader(new FileReader("s_assign_data.dat"));
String line = afile.readLine();
}catch(FileNotFoundException e){
System.out.println(e);
}
finally {
・・・
}
ってことか?
コンパイルくらい通せ
0258デフォルトの名無しさん
2011/02/13(日) 17:57:12その通りでした。エスパーありがとうござます。
tryの中にString line = afile.readLine();をいれたら解決しました。
0259デフォルトの名無しさん
2011/02/13(日) 18:08:280260デフォルトの名無しさん
2011/02/13(日) 18:09:530261デフォルトの名無しさん
2011/02/13(日) 18:25:500262デフォルトの名無しさん
2011/02/13(日) 23:43:57このデータをリストに読み込みなさいという課題がでています。方向性を教えていただけると助かります。
今自分がやろうとしているのは、ArrayListでそれぞれ全列を読み込み、さらにlist1.add(list2);みたいな形でつなげようと考えています。
こんなことは可能でしょうか?
それとも多次元配列とかmapとか使った方がいいんでしょうか?
0263デフォルトの名無しさん
2011/02/13(日) 23:46:58「みたいな形でつなげ」がわからなかった。
0264デフォルトの名無しさん
2011/02/13(日) 23:51:32てか聞いてたら課題にならんのじゃないか?
0265デフォルトの名無しさん
2011/02/13(日) 23:56:081, 田中 実,41,21,13
2, 田中 けい,22,11,23
↑ ↑
list1,list2
listは1列ごとしか読み込めないと自分は思ってて、それらを最後横から結合できないかなと思ってたんですが、調べるとできなそうでした。
多次元配列が一番自分の中で格納するイメージがわくんですが、型が違ってもいけるんですか?
>>264
ソートしたいです。選択法とかバブルソートとか。
もう7時間ぐらいやってるので、ヒントだけください。
0266デフォルトの名無しさん
2011/02/14(月) 00:22:33まともな説明とか無理そうだったら Object 型の多次元配列にしちゃえば?
0267デフォルトの名無しさん
2011/02/14(月) 00:27:02ありがとうございます。それで行きます。
0268デフォルトの名無しさん
2011/02/14(月) 00:32:160269デフォルトの名無しさん
2011/02/14(月) 00:33:04注:詳細については、-Xlint:deprecationオプションを指定して再コンパイルしてください。」
これって javac -deprecation ○○.java でコンパイルできる?
0270デフォルトの名無しさん
2011/02/14(月) 00:35:00一行ずつクラスを作りそうだが
public class Person {
private int no;
private String name;
・・・
}
みたいなクラス作って一行ずつそのクラスをnewして
Listに追加していく
0271デフォルトの名無しさん
2011/02/14(月) 00:42:18で画像保存したのですが青のプレーンだけ無視されて黄色がかった画像になってしまったのですが
これは何が原因でしょうか?
またjpeg以外で保存することはできないんでしょうか?
0272デフォルトの名無しさん
2011/02/14(月) 00:55:17そんな応用はできません><
2次元配列にデータを格納できました。うれしいです。
0273デフォルトの名無しさん
2011/02/14(月) 01:03:130274デフォルトの名無しさん
2011/02/14(月) 01:10:27じっくり時間をかけてマスターしろって
エリッククラプトンが言ってたよ。
0275デフォルトの名無しさん
2011/02/14(月) 01:13:04テキストボックスにhogehogeと追記するようなプログラムがあるとします。
・適当に一個クラスを作り、main関数を置く。
・main関数の中で、JFrameを継承したクラスAのインスタンスを一個作る。
クラスAのフィールドとして、ボタン(クラスB)とテキストボックス(クラスC)を宣言しておく。
・BにはクラスA型のフィールド(仮にX)を持たせ、AのコンストラクタでBのインスタンスを作成するときに、
XにA自身への参照を保持しておく。
・Bを押すと、(X)->Cと参照し、Cのメソッドを使って、Cにhogehogeと追記。
とりあえずこういう作り方をしてみて、一応動いてはいるんですが、Bの再利用性とか考えると、
なんか間違ってる気がします(Aじゃないクラスの中にBを置くとおかしなことになるような)。
でも、クラス間で会話できないとならないとすると、
階層が同じ他のクラスを参照する方法は必要みたいに思えます。
何かほかにいい方法があるのでしょうか。
0276デフォルトの名無しさん
2011/02/14(月) 01:40:060277デフォルトの名無しさん
2011/02/14(月) 01:46:33@ITのJFrameの記事でも読んでみろ
0278デフォルトの名無しさん
2011/02/14(月) 01:57:51ありがとうございます。@ITの記事参考になりました。
私の場合、どうも処理を書く場所が根本的にマズイみたいですね。
明日作り直してみます。
0279デフォルトの名無しさん
2011/02/14(月) 03:02:420280デフォルトの名無しさん
2011/02/14(月) 07:34:11エスパーか占い師か霊媒師にでも聞きに行け。
0281253
2011/02/14(月) 08:23:522, 田中 けい,22,11,23
データをリストにいれた後、選択法でのソートについて教えてください。
今上記のデータをlistArrayでsortListに格納し、sortList.get(0)でprintすると0~150まででてきます。
これらを選択法で指定した列でソートしたいんですが、一度配列にしないとできないように思いました。
どうすればいいでしょうか?
Selection(array A){//選択法の関数
for(i=1;i<n;i++){
min=i;
for(j=j+1;j<n+1;j++){
if(A[j]<A[min])min=j;
}
swap(A[i],A[min]);
}
}
0282デフォルトの名無しさん
2011/02/14(月) 10:03:000283デフォルトの名無しさん
2011/02/14(月) 10:07:430284デフォルトの名無しさん
2011/02/14(月) 10:55:25いやだから普通に 1, 田中 実,41,21,13 をクラスにすべきなんだが・・
0285デフォルトの名無しさん
2011/02/14(月) 11:08:25できるできないはあなたの判断なので、できないと思うのなら、できないで納得すればいいでしょう。
ArrayListとかCollectionとかのマニュアルを読んでも無駄そうなので、一度配列にしましょう。
Comparatorとかあなたには無理。
0286デフォルトの名無しさん
2011/02/14(月) 12:31:45これは何の冗談だ?
0287デフォルトの名無しさん
2011/02/14(月) 13:34:540288デフォルトの名無しさん
2011/02/14(月) 13:43:420289デフォルトの名無しさん
2011/02/14(月) 16:18:21その名前を聞いたのは、「刑事貴族」の再放送を見て以来だ
0290デフォルトの名無しさん
2011/02/14(月) 16:35:54たしかimgのカラーモデルが、ImageIO.writeで使われてるカラーモデルと一致しないとそういうことがおきる。
解決法はimgからTYPE_INT_RGB(たぶん)のカラーモデルでBufferedImageを作成して書き出す。
それでダメならwriteのショートカットメソッドは使わないで、ImageWriterから細かく設定するしかないんじゃないか
jpeg以外の保存法はjavadriveのページに書いてあるぞ
0291デフォルトの名無しさん
2011/02/14(月) 17:42:01TYPE_INT_RGBで作ったimgにコピーしてからセーブすることで全て解決しました。
ありがとうございます。
0292デフォルトの名無しさん
2011/02/15(火) 17:49:51実行環境によってコードを切り替えられるようにすることはできますか?
0294デフォルトの名無しさん
2011/02/15(火) 18:36:36ありがとうございます。
0295デフォルトの名無しさん
2011/02/15(火) 21:57:17コードの切り替えはできなくても実装クラスの切り替えはできる
そういうのはDIコンテナとか使用して、UTやIT環境で実装を切り替えたりするのがいい
0296デフォルトの名無しさん
2011/02/15(火) 21:58:56どこに表示されるでしょうか
0297デフォルトの名無しさん
2011/02/15(火) 23:32:38contain.add(MyPanel);
pack();
してあるものを
後からイメージの大きさを変えて
全体枠をリサイズすることは可能ですか?
どういう方法がありますか?
0298デフォルトの名無しさん
2011/02/15(火) 23:54:21作ってますが、javascriptが出力するソースコードが取得できません。
firefoxの「選択した部分のソースコードを表示」の機能で表示することはできます。
どうしたらJavaのプログラムから取得できますでしょうか。
0299デフォルトの名無しさん
2011/02/15(火) 23:54:50「SystemOutしたのに表示されません 」が正しければ
どこにも表示されないが正解だよね。
0300デフォルトの名無しさん
2011/02/15(火) 23:58:14Java と JavaScript は別言語だから無理なんじゃないかな?
0301デフォルトの名無しさん
2011/02/16(水) 00:04:41ブラウザをエミュレートしないと無理じゃね
C#でやった方が簡単そう
0302デフォルトの名無しさん
2011/02/16(水) 00:09:24javascriptのinnerHTMLとか叩けば
表示せれるのですが、javaからjavasctipt叩いても無駄ですよね?
C#ならどうやるのでしょうか。あ、スレチか。
0303デフォルトの名無しさん
2011/02/16(水) 01:12:550304デフォルトの名無しさん
2011/02/16(水) 01:28:18JavaScriptサポートしてたよね?
0305デフォルトの名無しさん
2011/02/16(水) 01:33:360306デフォルトの名無しさん
2011/02/16(水) 01:40:56revalidate
pack
0307デフォルトの名無しさん
2011/02/16(水) 01:55:29だからすごい頑張れとw
ScriptEngine上のJavaScriptからJava側を触ることができるんだから、
HTMLをJava側でパースしてラップしたDOMオブジェクトをScript上から触るみたいなことはできないだろうかと。
まぁ、そこまでやったら変態だが。
0308デフォルトの名無しさん
2011/02/16(水) 01:56:120309デフォルトの名無しさん
2011/02/16(水) 02:03:560310デフォルトの名無しさん
2011/02/16(水) 02:10:39間違っちゃあいないのでしょうか
0311デフォルトの名無しさん
2011/02/16(水) 02:35:570312デフォルトの名無しさん
2011/02/16(水) 02:42:40パソ通時代はライブラリからダウンロードして
お礼も何も書かなかったな
フリーソフトなんてそんなもん
0313デフォルトの名無しさん
2011/02/16(水) 05:41:39今じゃyoutubeだもんな
そら音楽売れんわ
0314デフォルトの名無しさん
2011/02/16(水) 08:02:10SOAPもなかなか
0315デフォルトの名無しさん
2011/02/16(水) 08:06:360316デフォルトの名無しさん
2011/02/16(水) 10:30:48javaのページで確認したらupdate21になっている
システム確認したらupdate24に確かになっているのに...
どういうことなの?
0317デフォルトの名無しさん
2011/02/16(水) 11:10:380318デフォルトの名無しさん
2011/02/16(水) 11:37:33ランダムで1桁の数字(画像で1~9)が表示され
それぞれの数字に対応して別の動作をさせることは可能ですよね?
0319デフォルトの名無しさん
2011/02/16(水) 11:41:26それとも、外部の別の何かが勝手に作った画像を読み取って処理するのか?
前者なら楽勝
後者なら地獄
0320319
2011/02/16(水) 11:48:44それなら後者でも画像のURL見ればだいたい分かるな
スレ違い
0321デフォルトの名無しさん
2011/02/16(水) 11:59:18ありがとう
0322デフォルトの名無しさん
2011/02/16(水) 13:45:550323デフォルトの名無しさん
2011/02/16(水) 22:56:26javac は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチファイルとして認識されていません。
と出ます。
Pathはプログラムファイルのjava、sdkのbinフォルダを指定したのですが。
何か考えられる原因はありますでしょうか?
0324デフォルトの名無しさん
2011/02/16(水) 23:07:54パソコンを起動したら自己解決。
初歩的なミスだ。。
0325デフォルトの名無しさん
2011/02/16(水) 23:16:04その時点で10MBのバッファが確保されるのでしょうか?
BufferedInputStream.mark(10 * 1024 * 1024);
0326デフォルトの名無しさん
2011/02/16(水) 23:19:570327デフォルトの名無しさん
2011/02/16(水) 23:47:16コンストラクタで10MB以上確保してなければ
必要になったとき2倍ずつどんどん増やしてって
最終的にmarkで与えた分確保するんだったような
仕様的には、どーゆー実装にしてもOKなんじゃね?
つまり継承クラスからbuf直接触る場合は決めうちしない方がいいかもしれん。
あんまし気にしすぎるとハゲるけどね。
0328デフォルトの名無しさん
2011/02/17(木) 00:17:51bufは弄らないのでこのまま使ってみようと思います。
ただ、resetで例外が発生する場合があるので、
そこだけどうにかしないと…。
リミットサイズがあらかじめ分からないので、
ある程度大きなサイズを確保しておくしか無さそうです。
0329デフォルトの名無しさん
2011/02/18(金) 00:33:01いったんローカルファイルに全部保存しておいて
RandomAccessFileなりFileChannelなり使った方が楽だと思うよ。
0330デフォルトの名無しさん
2011/02/18(金) 00:43:40Pattern.compile("^\(\"([a-zA-Z0-9]+)\"\)$");
ですが、これだとエスケープシーケンスがなんとかでエラーになってしまいます。
どう書くのが正しいのでしょうか?
0331デフォルトの名無しさん
2011/02/18(金) 00:45:220332デフォルトの名無しさん
2011/02/18(金) 00:48:45エスケープシーケンスが無効となってました。この場合、カッコのエスケープシーケンスはどうしたらいいのでしょうか?
0333デフォルトの名無しさん
2011/02/18(金) 00:52:390334デフォルトの名無しさん
2011/02/18(金) 00:57:360335デフォルトの名無しさん
2011/02/18(金) 01:02:280336デフォルトの名無しさん
2011/02/18(金) 01:07:34その程度、ぐぐっておわり
0337デフォルトの名無しさん
2011/02/18(金) 03:55:07正規表現でのエスケープ文字は\
では、JavaのStringリテラル中で\という文字はどう表記する?
0338デフォルトの名無しさん
2011/02/18(金) 09:04:52Pattern.compile("^¥¥((¥¥w+)¥¥)$")
っつーかその真ん中二つのダブルクオーテーションはなんだよ。マッチさせるのか?
0339デフォルトの名無しさん
2011/02/19(土) 06:21:31その処理をメソッド化することはあると思いますが
そのメソッドにつける修飾子はprivateでいいでしょうか?
0340デフォルトの名無しさん
2011/02/19(土) 07:00:11コンストラクタ内で行いたい処理が長くなる場合は、FactoryやBuilderクラスの使用も検討するといいです。
0341デフォルトの名無しさん
2011/02/19(土) 09:02:150343デフォルトの名無しさん
2011/02/19(土) 15:34:36>基本全部privateにして、他から呼ぶ必要があると理解した時だけ変更するようにすればおk.
コンストラクタからfinal publicメソッド呼ぶんなら再利用性上の支障はないんだったっけ。
0344339
2011/02/19(土) 16:33:25とりあえずコンストラクタ内でのみ使うメソッドと
他メソッドからのみ呼び出されるメソッドに対してprivateにしたいと思います
教えていただいたFactory、Builderクラスについても調べてみます
0345デフォルトの名無しさん
2011/02/19(土) 17:44:40え?リファクタリングとかやったことないですか?
0346デフォルトの名無しさん
2011/02/19(土) 17:47:020347デフォルトの名無しさん
2011/02/19(土) 18:12:420348デフォルトの名無しさん
2011/02/19(土) 18:13:31今更で申し訳ないが、コンストラクタでの処理ってのは
そのオブジェクトを具象化する処理なわけだが
コンストラクタでの処理が複雑になっているって事は
該当のオブジェクトの設計を間違えている可能性が非常に高い
単一の物を具象化する処理が複雑になるってことは本来あり得ない
つまり、メソッドとして切り離さなければいけないくらいの処理を行おうとした段階で
一度オブジェクトとしての設計を考え直すのが正解
0349デフォルトの名無しさん
2011/02/19(土) 21:01:46.79Javaで高速なコードを書こうとした場合、プリミティブ型を統一するしかないですか?
forで回して変換するのが嫌なんです。
CとかC++ならキャスト一発で一切コスト無く出来る事なので。
0350デフォルトの名無しさん
2011/02/19(土) 21:11:15.34無理。
ByteBuffer#asLongBuffer()みたいな代替手段があるから、それで我慢。
0351デフォルトの名無しさん
2011/02/19(土) 22:43:51.85ByteBuffer buffer = ByteBuffer.wrap(byteArray);
LongBuffer bufferL = buffer.asLongBuffer();
bufferL.array();
最後のarray()でException出ます。
hasArray()はfalse
なぜですか?
byteArrayをlong[]にキャストしたものを得たいのですが
0352デフォルトの名無しさん
2011/02/19(土) 22:47:21.00それは無理。
LongBufferのまま使う。
0353351
2011/02/19(土) 22:52:23.48BitSetを継承して
long[] words
を自由にセット出来るようにして流用しようとしてたのですが
BitSetをLongBufferに対応させるなら、もうbyte[]直で出来るようにするのと大差なさそうですか?
Javaで集合演算を簡単に便利に行ういい方法って何かありますか?
0354デフォルトの名無しさん
2011/02/19(土) 23:09:25.56大差ないだろね。
何が必要かによって違うからなんとも。
標準でBitSetって名前が使われてるから、
それ以外のBitArrayとかちょい変えた名前で検索すりゃクラスがおっこってるかも?
0355デフォルトの名無しさん
2011/02/20(日) 02:14:25.81Javadocが微妙になりそうww
0356デフォルトの名無しさん
2011/02/20(日) 04:26:16.090357デフォルトの名無しさん
2011/02/20(日) 12:13:16.12long[] 欲しいんなら、使うべきなのは LongBuffer#get(long[] dst) だろ。
ビッグエンディアンでいいんならByteBuffer#order(ByteOrder)はたぶん必要ない。
0358デフォルトの名無しさん
2011/02/20(日) 12:23:11.94Cだと#define TEISU 10とかをヘッダに書いておいて使いたいクラスのソースで#includeすればいいですよね
Javaだとstatic finalな変数だけをもつクラスを新しく作っておくとかでいいんでしょうか
0359デフォルトの名無しさん
2011/02/20(日) 12:37:54.68すんごく嫌がる人もいるけどね
0360デフォルトの名無しさん
2011/02/20(日) 12:50:32.240361デフォルトの名無しさん
2011/02/20(日) 13:05:15.12enumかstatic finalな変数で持っておいてimport staticする。
0362デフォルトの名無しさん
2011/02/20(日) 13:07:47.44継承先の名前空間汚すから嫌がられて当然。
0363デフォルトの名無しさん
2011/02/20(日) 13:12:15.280364デフォルトの名無しさん
2011/02/20(日) 13:52:56.250365デフォルトの名無しさん
2011/02/20(日) 15:48:30.16そうか?
stateパターン代わりぐらいにはなると思うが。
0366デフォルトの名無しさん
2011/02/20(日) 16:40:01.47それ内部みてみたらfor回してますね
0367デフォルトの名無しさん
2011/02/20(日) 18:00:36.760368デフォルトの名無しさん
2011/02/20(日) 18:57:47.66画像の全てのピクセルの色を調べて、抜き色だと判断したら透明色(アルファチャンネルが0)に置き換えます
アホらしいと思うなら抜き色なんて時代遅れなものは捨てて最初から透過PNGでも使ってね
0369デフォルトの名無しさん
2011/02/20(日) 20:04:06.46おれenumないと結構キツイんだけどw
ひょっとしてデフォルトコンストラクタしかつかっていないんじゃない?
0370デフォルトの名無しさん
2011/02/20(日) 20:08:06.31あれ実務で役に立つの?
0371デフォルトの名無しさん
2011/02/20(日) 21:07:25.29大抵のswitchとif文はenumに置き換えてる
0372デフォルトの名無しさん
2011/02/20(日) 21:45:17.120373デフォルトの名無しさん
2011/02/20(日) 22:00:50.030374デフォルトの名無しさん
2011/02/20(日) 22:06:18.110375デフォルトの名無しさん
2011/02/20(日) 23:21:03.78普通ですよね?それ以外で始める奴って基地外ですよね?
0376デフォルトの名無しさん
2011/02/20(日) 23:23:16.660377デフォルトの名無しさん
2011/02/20(日) 23:33:14.55eclipseが色分けしてくれるから、プレフィクスなんて気にしたことない。
0378デフォルトの名無しさん
2011/02/21(月) 00:16:40.91enumだろどう考えても
0379デフォルトの名無しさん
2011/02/21(月) 00:17:02.46スパゲティ乙
0380デフォルトの名無しさん
2011/02/21(月) 00:49:42.91元がクラスだからメソッド持てちゃうところだな。
手段が目的になりそうで俺は使わないが。
0381デフォルトの名無しさん
2011/02/21(月) 01:16:35.44お前は何を言ってるんだ?
質問や相談答えれるレベルじゃないぞ?
0382デフォルトの名無しさん
2011/02/21(月) 01:26:57.75toString上書きできなかったらすこぶる使えない。
0383デフォルトの名無しさん
2011/02/21(月) 01:57:32.81元質問では用途が伏せられているので、enumが適切かどうか判別不能なんだが
0384デフォルトの名無しさん
2011/02/21(月) 02:28:07.20C系統がわからない人?
例に出されてる用途ならenumだろ
0385デフォルトの名無しさん
2011/02/21(月) 03:08:51.74例えば、ドライバーの用途は「ネジの着脱」であって「回して使うこと」ではない
で、用途不明なんだから、その定数はリトライ回数や倍率という可能性だってある
0386デフォルトの名無しさん
2011/02/21(月) 06:00:46.96友達いないんだろ?
0387デフォルトの名無しさん
2011/02/21(月) 07:55:35.27>>358で例にだされてるのは整数だからenumで代替は難しいんじゃね?
0388デフォルトの名無しさん
2011/02/21(月) 15:03:26.530389デフォルトの名無しさん
2011/02/21(月) 15:22:37.490390デフォルトの名無しさん
2011/02/21(月) 15:36:09.54お前も質問答えるレベルにない
勉強しなおしてこい
0391デフォルトの名無しさん
2011/02/21(月) 19:28:55.57何時の本だっけ?
5以降に対応している?
0392デフォルトの名無しさん
2011/02/21(月) 20:26:05.35読んでない時点でお前は色々対象外だ
0393デフォルトの名無しさん
2011/02/21(月) 20:40:09.03第1版が2001年で1.4まで、第2版が2008年で6まで。
0394デフォルトの名無しさん
2011/02/21(月) 20:57:22.75interface作るかフィールドに public static final 持たせることより
優れている点をわかりやすく 俺に教えてください
パフォーマンスはstatic finalのほうがいいと思うので、何か意味があるわけだよね
それか実際に、有意義に使ってるソースを魅せてください
0395デフォルトの名無しさん
2011/02/21(月) 21:20:31.460396デフォルトの名無しさん
2011/02/21(月) 21:36:44.29・単なるintやString等の定数は、定数を入れる変数に何でも入ってしまうのでタイプセーフでない
enamを格納する変数はタイプセーフに記述することができる
・String定数パターンの場合、比較はequalsでやる事になると思うが、パフォーマンスが悪い
enamはイコールで比較できる
・インターフェース定数パターンは、一旦外部に公開してしまった場合に仕様変更がしづらい
enamは仕様変更に柔軟
などなど・・・
0397デフォルトの名無しさん
2011/02/21(月) 21:48:10.95”コンポーネントを読み込み中にエラー:[JFrame]->Panel1"
とか出てマウス操作で作れなくなったんですけどどうしたらいいですか
0398デフォルトの名無しさん
2011/02/21(月) 21:48:51.440399デフォルトの名無しさん
2011/02/21(月) 22:33:25.21ローカル編集履歴でソース少し巻き戻してみたら?
0400デフォルトの名無しさん
2011/02/21(月) 22:35:27.30いあy、まてよ・・・わかりづらいバグ盛り込みそうだ
enumがいまさらながら見えてきた気がする サンクル
0401デフォルトの名無しさん
2011/02/21(月) 23:15:12.100402デフォルトの名無しさん
2011/02/21(月) 23:18:44.03AAA aaa = null
下で
aaa = new AAA()
と言う書き方と
AAA aaa = new AAA()
という書き方で具体的に何が違うのでしょうか?
たとえばこうした方がパフォーマンスの点でメリットがあるとか
0403デフォルトの名無しさん
2011/02/21(月) 23:19:44.73data = data >> 3;
とかやると、左端が1埋めになるけど
0埋めにする方法ってありますか?
0404403
2011/02/21(月) 23:21:49.050405デフォルトの名無しさん
2011/02/22(火) 00:09:17.63フィールドにしとくとJavaDocで出る位だと思う。
DI使うための場合もあるが、aaa = new AAA()してるんじゃ意味ないしな。
0406デフォルトの名無しさん
2011/02/22(火) 00:11:54.98EnumMap使うと、HashMapより高速にアクセスできるらしいからハッシュのキーとしても有用
ちなみにビットフィールド表現はEnumSetで。プリミティブのビット演算と速度の遜色が無いらしいが・・・まあコードはきれいになるな
ちなみにordinalは使ったらダメだからね
enumでスパゲティになるって・・・。まあそう思う奴のスキルだと、何をしてもスパゲティなんだろうけど、ちょっと損してるぞ
0407デフォルトの名無しさん
2011/02/22(火) 00:28:57.85CのコードもEclipseで書くか、VisualStudioで書くかどっちがいいと思いますか?
0408デフォルトの名無しさん
2011/02/22(火) 01:07:01.49if文全てEnumに置き換えたらそれはただのEnum病のスパゲティだろ
0409デフォルトの名無しさん
2011/02/22(火) 01:18:27.84ちょっとオブジェクト指向がわかってきた初心者が陥るやつ
0410デフォルトの名無しさん
2011/02/22(火) 01:31:23.14慣れ
0411デフォルトの名無しさん
2011/02/22(火) 01:32:53.53見苦しいぞ
0412デフォルトの名無しさん
2011/02/22(火) 03:52:27.000413デフォルトの名無しさん
2011/02/22(火) 07:44:34.070414デフォルトの名無しさん
2011/02/22(火) 08:21:28.97だれがif文すべてって言ったんだよ、極端な奴だな
コーディングがダメなやつはやっぱ文章読むのもダメなんだな
0415デフォルトの名無しさん
2011/02/22(火) 08:44:51.910416デフォルトの名無しさん
2011/02/22(火) 13:06:15.42C、PHP、javaが全部入ったえくりぷすもあるよ
http://mergedoc.sourceforge.jp/
Ultimatetってのがそれです
でもなんか重たそう・・・
0417デフォルトの名無しさん
2011/02/22(火) 13:11:04.40どんな感じでつかうの?
0418デフォルトの名無しさん
2011/02/22(火) 13:21:36.01各々慣れてる環境で書いたら?
0419デフォルトの名無しさん
2011/02/22(火) 15:39:15.41(byte) 0xef,
(byte) 0xbb,
(byte) 0xbf,
(byte) 0x50,
(byte) 0x6f,
(byte) 0x6b,
(byte) 0x65,
(byte) 0x72,
};
いちいち (byte) ってキャストしてやらなきゃ、配列に値入らない
Type mismatch って言われるんだが、これは全くどうにもならないのか
見栄えが悪いのは嫌だなあ
0420デフォルトの名無しさん
2011/02/22(火) 15:49:45.70見栄えはいまいちだが短くて済む方法
final static byte[] HEADER = "\uefbb\ubf50\u6f6b\u6572".getBytes("UTF-16BE");
見栄えは良いが若干効率悪い方法
static byte[] toByteArray(int... a) {
byte[] b = new byte[a.length];
for (int i = 0; i < a.length; i++) {
b[i] = (byte) a[i];
}
return b;
}
final static byte[] HEADER = toByteArray(0xef, 0xbb, 0xbf, 0x50, 0x6f, 0x6b, 0x65, 0x72);
0421デフォルトの名無しさん
2011/02/22(火) 15:56:24.08サンキュー
やっぱり、キャストは必須なんだなあ
見れば 128 より小さいのは明らかなんだから、見逃してくれてもよさそうなもんだけど、
まあ、Java ではきょうび byte配列で比較なんてやらず文字列比較するだろうから、あんまりこういうので不便感じる人はいないんだろう それでもじゅうぶん速いし
0422デフォルトの名無しさん
2011/02/22(火) 15:57:14.71public static byte[] hex(String s) {
StringTokenizer st = new StringTokenizer(s);
ByteArrayOutputStream out = new ByteArrayOutputStream();
whilke(st.hasMoreTokens()) out.write(Integer.parseInt(st.nextToken(), 16));
return out.toByteArray();
}
みたいなメソッド作っておいて、
final static byte[] HEADER = hex("EF BB BF 50 6F 6B 65 72");
0423デフォルトの名無しさん
2011/02/22(火) 18:46:06.31インターフェースだけのテストクラスみたいなのを用意して暫定的に開発しようとしてるのですが
このインターフェースだけのコードと本番用のコードとを自動的に切り替えるような手段って何かありますか?
Eclipseです。
0424デフォルトの名無しさん
2011/02/22(火) 18:48:35.25モックオブジェクトの使えるテスティングフレームワークを使えばいい
0425デフォルトの名無しさん
2011/02/22(火) 20:47:08.370426デフォルトの名無しさん
2011/02/23(水) 09:37:55.12間違いなく糞なのはお前だから
0427デフォルトの名無しさん
2011/02/23(水) 11:51:33.640428デフォルトの名無しさん
2011/02/23(水) 12:00:49.71俺も
0429デフォルトの名無しさん
2011/02/23(水) 12:07:00.380430デフォルトの名無しさん
2011/02/23(水) 12:20:58.300431デフォルトの名無しさん
2011/02/23(水) 12:26:25.39HD死んでんじゃね?
0432デフォルトの名無しさん
2011/02/23(水) 14:40:39.29きっとパソコンが火を吹いてもNetBeansのせいにするタイプ
0433デフォルトの名無しさん
2011/02/23(水) 15:46:15.490434デフォルトの名無しさん
2011/02/23(水) 15:48:35.090435デフォルトの名無しさん
2011/02/23(水) 15:50:20.420436デフォルトの名無しさん
2011/02/23(水) 16:08:03.670437デフォルトの名無しさん
2011/02/23(水) 16:15:39.38これのJava版って無いんですか?
あるいはこういう事をする系の何か。
0438デフォルトの名無しさん
2011/02/23(水) 16:45:57.520439デフォルトの名無しさん
2011/02/23(水) 17:53:59.830440デフォルトの名無しさん
2011/02/23(水) 18:03:53.960441デフォルトの名無しさん
2011/02/23(水) 18:15:03.040442デフォルトの名無しさん
2011/02/23(水) 18:16:33.890443デフォルトの名無しさん
2011/02/23(水) 20:53:07.28javaw.exeっていうプロセスにロードされて実行されてるの?
でもjavawもたくさん立ち上がってるからどれかわからん。
JNIのデバッグしたいのだけど
とりあえずソースコードをeclipseに移してソースコード直で編集していったら目的のプログラムができたわnetbeas糞杉ワロタww
0445デフォルトの名無しさん
2011/02/23(水) 21:30:18.630446デフォルトの名無しさん
2011/02/23(水) 22:17:59.960447デフォルトの名無しさん
2011/02/23(水) 22:25:06.960448デフォルトの名無しさん
2011/02/23(水) 22:37:17.500449デフォルトの名無しさん
2011/02/23(水) 22:37:33.46の設定の書式について教えてください。
複数指定する場合など。
そういったオプションの指定方法を説明しているWEBページを教えてください。
0451デフォルトの名無しさん
2011/02/23(水) 22:45:48.880452デフォルトの名無しさん
2011/02/23(水) 23:04:07.19直ソースにアクセス出来ればそっちでやる。
0453デフォルトの名無しさん
2011/02/23(水) 23:13:46.870454デフォルトの名無しさん
2011/02/24(木) 00:15:03.95Swingはコードで書くと結構いいライブラリだけどGUIビルダとの相性は悪いよ。
0455デフォルトの名無しさん
2011/02/24(木) 00:43:18.760456デフォルトの名無しさん
2011/02/24(木) 00:47:49.48GUIビルダドリブンで開発出来る
0457デフォルトの名無しさん
2011/02/24(木) 06:46:50.070458デフォルトの名無しさん
2011/02/24(木) 07:47:24.04今はタダで落とせるよ
0459デフォルトの名無しさん
2011/02/24(木) 08:31:11.15片っ端から削除されてるExpressなんぞ、
まともな開発では役に立たん。
0460デフォルトの名無しさん
2011/02/24(木) 08:39:30.230461デフォルトの名無しさん
2011/02/24(木) 09:46:33.92GUI以外はVSよりeclipseのほうが圧倒的に使いやすいな〜
もちろん同じ無料のExpressと比べてだけど
VSもeclipse風のアドイン入れればだいぶましになるのかも知れんけど
スレチだけどeclipseでどっとGUIも含めてネット使えると幸せなんだけどな
0462デフォルトの名無しさん
2011/02/24(木) 09:56:56.540463デフォルトの名無しさん
2011/02/24(木) 11:24:17.48ウィンドウサイズ変わったときの挙動とか、細かい動きで
GUIツールにまかせて、うまくいかなくなったときが詰む
ちゃんと事前にレイアウトを決めていれば、時間そんなにかからんしね
0464デフォルトの名無しさん
2011/02/24(木) 11:34:03.680465デフォルトの名無しさん
2011/02/24(木) 11:42:43.420466デフォルトの名無しさん
2011/02/24(木) 12:43:42.06キリキリしながらGUI作るよりも、ロジック的に大雑把作ったほうが簡単だろ
一部配置を変更する場合もGUIビルダだとすぐ、ぐちゃぐちゃになるし
レイアウトクラスとかに元から備わっている便利な機能とか使えずに
わざわざ人の手で個別にコンポーネントを調整とか面倒
0467デフォルトの名無しさん
2011/02/24(木) 12:44:59.91はいはい
0468デフォルトの名無しさん
2011/02/24(木) 12:45:12.56なんで需要はそれなりにあるはずなのに未だにゴミみたいなのしかないんだろう
0469デフォルトの名無しさん
2011/02/24(木) 12:47:25.75それで業務でも十分回ってる
Eclipseは糞
0470デフォルトの名無しさん
2011/02/24(木) 12:50:59.870471デフォルトの名無しさん
2011/02/24(木) 12:54:18.46VSがユーザーのコード補完とGUIビルダの要求を引き上げまくってるのは事実
0472デフォルトの名無しさん
2011/02/24(木) 12:59:13.210473デフォルトの名無しさん
2011/02/24(木) 13:52:57.11そういう批評が多いのはあくまでEclipseとかJavaの世界のものと比べて
VSとは比較にならん
0474デフォルトの名無しさん
2011/02/24(木) 14:01:48.780475デフォルトの名無しさん
2011/02/24(木) 14:09:08.74GUIビルダーってバグだらけで不安定で信頼できないのが普通だけどVSは別格
0476デフォルトの名無しさん
2011/02/24(木) 14:09:33.49頭が悪いの?
ここはJavaのスレだよ?
0477デフォルトの名無しさん
2011/02/24(木) 14:15:12.45どのようにすれば可能ですか?
0478デフォルトの名無しさん
2011/02/24(木) 14:20:54.55char hoge[] = {'h','o','g','e'};
String fuga = new String(hoge);
0479477
2011/02/24(木) 14:27:20.51ループで全部キャストしてから変換する以外の方法ってないのかなぁと
0480デフォルトの名無しさん
2011/02/24(木) 14:40:18.73どうしてもCharacterじゃなければいけない理由があるなら諦めろ
0481デフォルトの名無しさん
2011/02/24(木) 16:24:12.730482デフォルトの名無しさん
2011/02/24(木) 16:38:40.640483デフォルトの名無しさん
2011/02/24(木) 19:32:01.900484デフォルトの名無しさん
2011/02/24(木) 20:09:12.970485デフォルトの名無しさん
2011/02/24(木) 21:09:43.44APIとして作り込んでJRubyやJythonで開発させたいじゃねーの?
0486デフォルトの名無しさん
2011/02/24(木) 22:12:22.55意地でも byte[] buffer の長さまで読み込むプログラムを書いたのですが、
美しくないです。
どうにか美しくできないでしょうか?
InputStream in = socket.getInputStream();
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buffer = new byte[1024 * 1024];
int read = 0;
int readInBuffer = 0;
while (true) {
read = in.read(buffer, readInBuffer, buffer.length - readInBuffer);
if (read == -1) {
if (readInBuffer == 0) {
break;
} else {
read = buffer.length - readInBuffer;
}
} else if ((readInBuffer + read) != buffer.length) {
readInBuffer += read;
continue;
} else {
readInBuffer += read;
}
bout.write(buff, 0, readInBuffer);
read = 0;
readInBuffer = 0;
}
0487デフォルトの名無しさん
2011/02/24(木) 22:15:59.09InputStream in = socket.getInputStream();
//☆★☆★☆★☆★☆★☆★☆★☆★
ByteArrayOutputStream out = new ByteArrayOutputStream();
//☆★☆★☆★☆★☆★☆★☆★☆★
byte[] buffer = new byte[1024 * 1024];
//☆★☆★☆★☆★☆★☆★☆★☆★
int read = 0;
//☆★☆★☆★☆★☆★☆★☆★☆★
int readInBuffer = 0;
//☆★☆★☆★☆★☆★☆★☆★☆★
while (true) {
//☆★☆★☆★☆★☆★☆★☆★☆★
read = in.read(buffer, readInBuffer, buffer.length - readInBuffer);
//☆★☆★☆★☆★☆★☆★☆★☆★
0488デフォルトの名無しさん
2011/02/24(木) 22:18:49.94スレ違いでしょうか? でしたらどちらに行けばいいでしょうか?
インデントが消えたので 全角スペースで置換しました。
InputStream in = socket.getInputStream();
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buffer = new byte[1024 * 1024];
int read = 0;
int readInBuffer = 0;
while (true) {
read = in.read(buffer, readInBuffer, buffer.length - readInBuffer);
if (read == -1) {
if (readInBuffer == 0) {
break;
} else {
read = buffer.length - readInBuffer;
}
} else if ((readInBuffer + read) != buffer.length) {
readInBuffer += read;
continue;
} else {
readInBuffer += read;
}
bout.write(buff, 0, readInBuffer);
read = 0;
readInBuffer = 0;
}
0489デフォルトの名無しさん
2011/02/24(木) 22:56:39.93Amazonランクレットってどういうコードなんでしょうか?javascriptですよね?
ついでにjavascriptは触ったこと無いです。
0490デフォルトの名無しさん
2011/02/24(木) 23:18:38.67不適な場合は誘導お願いします。
s2jdbc-genのgen-Entityで生成されるエンティティクラスのDate型をJava.uti.Date+TemporalType.TIMESTAMPにしたいと思っています。
http://d.hatena.ne.jp/akiraneko/20081015/1224075420
を参考にダイアレクトを作成したのですが、
columnTypeMap.put("date", new OracleColumnType("date", Date.class,TemporalType.TIMESTAMP));
の部分でコンパイルエラーになっています。
OracleColumnTypeのコンストラクタにString,Class,TemporalTypeはありませんとかなんとか…
どのように実装したらいいのでしょうか?
0491デフォルトの名無しさん
2011/02/24(木) 23:34:12.84new DataInputStream(in).readFully(buffer);
0492デフォルトの名無しさん
2011/02/25(金) 01:04:32.560493デフォルトの名無しさん
2011/02/25(金) 01:47:23.26何か、ソースに適当にコメント追加して、
アスキーアートに変換できるツールとかないかな…
あったら、嫌いな納品先に使うのに…
0494デフォルトの名無しさん
2011/02/25(金) 05:54:05.850495デフォルトの名無しさん
2011/02/25(金) 06:29:52.990496デフォルトの名無しさん
2011/02/25(金) 09:22:40.69http://live.nicovideo.jp/watch/lv41524401
0497デフォルトの名無しさん
2011/02/25(金) 11:00:02.37趣味でやってるんじゃなくてレポートでやってんのかよマジでカスすぎる
こんな奴にプログラミングやってほしくないわ
0498デフォルトの名無しさん
2011/02/25(金) 11:01:24.09JKの声ってかわいいなあ
0499デフォルトの名無しさん
2011/02/25(金) 12:19:51.08> >>486
> new DataInputStream(in).readFully(buffer);
それだとデータ長がbuffer.lengthの整数倍じゃないときに
末尾が捨てられちゃうな
0500デフォルトの名無しさん
2011/02/25(金) 12:39:35.720501デフォルトの名無しさん
2011/02/25(金) 12:55:42.410502デフォルトの名無しさん
2011/02/25(金) 15:34:53.11勝手にタスクトレイに戻されるんだな
0503デフォルトの名無しさん
2011/02/25(金) 18:15:58.20ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
socket.close();
oosを明示的に閉じる必要ありますか?
0504デフォルトの名無しさん
2011/02/25(金) 18:25:37.23場合によるので何とも言えないが
その2行だけのプログラムなら必要ない
違うのならストリームは開けたら必ず閉じろ
0505デフォルトの名無しさん
2011/02/25(金) 18:30:01.10oosを閉じればsocketも閉じるのに、なんでそんな使い方するの?
0506デフォルトの名無しさん
2011/02/25(金) 18:34:09.79centOs5 64JRE
秒間0〜1,500回 newされるrun()の中で使い捨てます
windows 64JRE で確認したらメモリリークはない様なのですが
上記の場合を知りたいです
ソース見ろって話ですよね・・
0507デフォルトの名無しさん
2011/02/25(金) 18:36:23.44まじで? サンクス
socket.close()のステートメントが余計なんだね
0508デフォルトの名無しさん
2011/02/25(金) 20:58:19.74特定要素を非表示にする事は出来ますか?
具体的には、id="test"を持つブロックを非表示にしたいです。
<iframe>
<div id="test">
</div>
</iframe>
0509デフォルトの名無しさん
2011/02/25(金) 20:59:25.06気になるなら、JDKインストールディレクトリにあるsrc.zipを確認してみると吉。
0510デフォルトの名無しさん
2011/02/25(金) 21:23:14.10できます。
親フレームじゃないととか言う制限があったかもしれないけど。
jQueryとか使ったが早い。
JavaScriptのスレへどうぞ。
0511デフォルトの名無しさん
2011/02/25(金) 21:46:10.89帰れ愚民
0512デフォルトの名無しさん
2011/02/26(土) 00:55:50.31ありがとうございます。
試してみます。
>>511
死ね
チンカス
0513デフォルトの名無しさん
2011/02/26(土) 03:06:30.22そもそもCharacter[]自体みかけないからなぁ
0514デフォルトの名無しさん
2011/02/26(土) 06:46:55.84すれ違いは死ねよ
0515デフォルトの名無しさん
2011/02/26(土) 07:43:42.96マルチスレットでadd シングルスレッドでpullする場合に適した
Queueの実装はどこのどいつですか?
ConcurrentLinkedQueueとaddをロックオブジェクトで囲む場合も含めて
パフォーマンス第一でお願いします。
マルチスレッドでadd remove getできるSetも教えてください
removeはイテレータ内でやってます
0516デフォルトの名無しさん
2011/02/26(土) 07:47:11.18jQueryってJavaなんですか?
0517デフォルトの名無しさん
2011/02/26(土) 11:09:13.17>>510じゃないがJavaじゃないよ
だからJavaScriptのスレに誘導してるんだろ
0518デフォルトの名無しさん
2011/02/26(土) 12:45:58.30jvisualvmに定期的にダンプを取る機能ってある?
0519デフォルトの名無しさん
2011/02/26(土) 14:56:07.65死ねば?
0520デフォルトの名無しさん
2011/02/26(土) 14:57:56.32jstat の出力を保存するのじゃダメ?
0521デフォルトの名無しさん
2011/02/26(土) 16:19:12.44x64版のJDKには入っていないんでしょうか?
インストールしたのですが、確認出来ませんでした
0522デフォルトの名無しさん
2011/02/26(土) 17:37:23.23Element element = root.addElement( "property" );
element.addText( "あああ" );
こんな感じでxmlに2バイトの要素を入れたいのだけど
2バイト文字列の部分がUTF-8にならなくて困ってます。
2バイト文字列の部分もUTF-8にする方法ってありますか。
0523デフォルトの名無しさん
2011/02/26(土) 17:50:58.17どこを確認して無かったの?
0524デフォルトの名無しさん
2011/02/26(土) 18:12:04.47おまえは何をいっているんだ?
XMLのencodingの部分はどうなってる?
それともUnicodeの\udddd 表記にしたいってこと?
0525デフォルトの名無しさん
2011/02/26(土) 18:18:36.63インストール時にインストールする内容が確認できる画面でもJavaDBの表示はされていませんでしたし、
本ではcのプログラムファイル下にsun\JavaDB...と作成されると書いてありましたが、作成されていませんでした
0526522
2011/02/26(土) 18:44:21.09もちろん、<?xml version="1.0" encoding="UTF-8"?>だけど
秀丸で読むと、変換できないといわれるのだよね。
で、下のような結果になる
<?xml version="1.0" encoding="UTF-8"?>
<system>
<property></property>
</system>
これを
<?xml version="1.0" encoding="UTF-8"?>
<system>
<property>あああ</property>
</system>
こうしたいわけだ。
0527デフォルトの名無しさん
2011/02/26(土) 18:46:43.690528522
2011/02/26(土) 18:47:29.23テキストデータ自体はUTF-8になってるけど
2バイト文字列だけが、何故かshift-jisになってる。
0529デフォルトの名無しさん
2011/02/26(土) 18:51:47.07dom4jのことはしらんが、普通はElementノードの子にTextノードをぶらさげる
0530522
2011/02/26(土) 18:55:02.02eclipse自体の文字コードが影響していた。
eclipse初期のMS932の文字コードで書き出されていたので
ダメだったらしい。
eclipseをUTF-8にして2バイト文字書き直してxml書き出したら正常だったよ。
情報不足だったし事故解決だったしで、なんかすみません。
時間使ってくれた方ありがとう!
0531デフォルトの名無しさん
2011/02/26(土) 19:09:48.56早く死ねよ
0532デフォルトの名無しさん
2011/02/26(土) 19:14:03.26誰か分かりませんでしょうか?
0533デフォルトの名無しさん
2011/02/26(土) 19:20:38.350534デフォルトの名無しさん
2011/02/26(土) 19:27:31.86マルチスレットでadd シングルスレッドでpullする場合に適した
Queueの実装はどこのどいつですか?
ConcurrentLinkedQueueとaddをロックオブジェクトで囲む場合も含めて
パフォーマンス第一でお願いします。
マルチスレッドでadd remove getできるSetも教えてください
removeはイテレータ内でやってます
0535デフォルトの名無しさん
2011/02/26(土) 19:30:07.280536デフォルトの名無しさん
2011/02/26(土) 21:55:53.79Javaのテキストなどで紹介されていGUIのプログラムの画面って、
なんだかボタンやテキストフィールドのレイアウトというか位置が独特ですよね。
なんだか画面を均等に分割して貼り付けているというイメージを持ちます。
ドット単位の座標でレイアウトをするのにはJavaは向いてないのでしょうか?
0537デフォルトの名無しさん
2011/02/26(土) 22:26:53.85OS毎のUIの装飾の違いを吸収するために「代替この辺り」でレイアウトすることを推奨してる。
一応レイアウトマネージャにnullを設定したり、GroupLayoutを使うことで座標配置は可能
0538デフォルトの名無しさん
2011/02/26(土) 22:35:55.76また、Andoroidアプリの作成はEclipseいったくしかないですか?
0539デフォルトの名無しさん
2011/02/26(土) 23:30:56.38UIデザインの本でも読むんだな。ドット単位で並べることよりも考えないといけないことがあることを書いてあるかもしれないぞ。
0540デフォルトの名無しさん
2011/02/26(土) 23:35:31.74jmapで定期ダンプ取るようにしてるが、GUIでできる方法がないかなと…
0541デフォルトの名無しさん
2011/02/26(土) 23:59:47.59メインスレッドからしかログへの書き込みしてなければ
メインスレッドからSystem.exitしてログファイルとか壊れたりしない?
0542デフォルトの名無しさん
2011/02/27(日) 17:53:38.92後でイメージを200*200に拡大してresize(200,200);でwindowも拡大させてるんですが
100*100の領域はイメージが黒く表示され、その外側はグレーで何も表示されません。
MyPanelから描画されたのは元の大きさだけです。
200*200の領域をちゃんと表示させるにはどうすればいいんでしょうか?
0543デフォルトの名無しさん
2011/02/27(日) 18:00:24.290544デフォルトの名無しさん
2011/02/27(日) 18:40:51.53それを1つずつ実行して別のテキストファイルに書き出す処理を実現したいです。
どのようにすれば、この機能を実現できるのでしょうか?
1行だけのSELECT文やINSERT文、UPDATE文、DELETE文を実行することはできていますが、
複数行のものやCREATE文、ストアドプロシージャが動きません。
どこかに分かりやすい参考サイトはありませんか?(もちろん自分でも探しています。)
なお、DBは、MySQL5.0を使用します。
0545デフォルトの名無しさん
2011/02/27(日) 18:44:59.09行頭か行末にスペース入れてみるとか
改行コードがおかしいとか
発行されたSQL文とか
エラー内容はどうなってんだ
0546デフォルトの名無しさん
2011/02/27(日) 23:37:41.85List myList = new ArrayList();
myList.trimToSize();
とやると、メソッドが見つからないというエラーがでます。
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/ArrayList.html
を見る限り存在しているようなのですが、、、使い方が悪いのでしょうか。
0547デフォルトの名無しさん
2011/02/27(日) 23:42:08.24myListはList型なので、Listにはそのメソッドはありません
ArrayListにキャストするか、
((ArrayList) myList).trimToSize();
最初からmyListをArrayList型で宣言します
ArrayList myList = .....
0548デフォルトの名無しさん
2011/02/27(日) 23:47:12.57言われてみればその通りですね。
馬鹿でした。
0549デフォルトの名無しさん
2011/02/27(日) 23:53:58.070550デフォルトの名無しさん
2011/02/28(月) 00:02:45.950551デフォルトの名無しさん
2011/02/28(月) 00:11:34.02ありがとございますになってるしね。
う、どこいったんだよ。
0552デフォルトの名無しさん
2011/02/28(月) 00:36:41.460553デフォルトの名無しさん
2011/02/28(月) 00:53:56.42わーおwwwwww
0554デフォルトの名無しさん
2011/02/28(月) 00:55:58.60これはまちがい
ほんとは>>552
0555デフォルトの名無しさん
2011/02/28(月) 09:42:15.01本当か?
どう確認したのか知らんから疑うが、本当に描画しているか?
「そうプログラムしてあります」じゃ論外だぞ。
ウインドウのサイズが変わったらパネルのサイズも変わっているか?
それによってpaint(paintComponent)が適切なパラメータで呼ばれているか?
0556デフォルトの名無しさん
2011/02/28(月) 13:10:41.17どうもコンストラクタコール時に接続をしていて、それをコンテキストが破棄されるまでオープンしっぱなしになってます。
これは仕様なのでしょうか?それともバグ?
Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_PRINCIPAL, "xx");
env.put(Context.PROVIDER_URL, "xx");
env.put(Context.SECURITY_CREDENTIALS, "xx");
env.put("basedn", "xx");
new InitialLdapContext(env, null);
0557デフォルトの名無しさん
2011/02/28(月) 19:30:56.320558デフォルトの名無しさん
2011/02/28(月) 23:58:18.79っていうようなソース読むとき用のエディタってないですか?
0559デフォルトの名無しさん
2011/03/01(火) 00:00:32.200560デフォルトの名無しさん
2011/03/01(火) 00:03:56.01軽いがこれでソース読む気力は無いわ
0561デフォルトの名無しさん
2011/03/01(火) 00:14:08.660562デフォルトの名無しさん
2011/03/01(火) 00:14:58.800563デフォルトの名無しさん
2011/03/01(火) 00:19:06.55オンリージャスト言いたかっただけとか、WTF!
0564デフォルトの名無しさん
2011/03/01(火) 00:25:48.60あれはうざい
0565デフォルトの名無しさん
2011/03/01(火) 00:42:47.610566デフォルトの名無しさん
2011/03/01(火) 01:07:37.35■LoadedClass.java
package loaderClasses;
public interface LoadedClass {
public void doIt();
}
0567デフォルトの名無しさん
2011/03/01(火) 01:08:21.99package loaderClasses;
public class SpeciallyLoadedClass implements LoadedClass {
public void doIt() {
System.out.println("doIt: Hello from " + getClass().getName());
}
}
0568デフォルトの名無しさん
2011/03/01(火) 01:09:15.37import loaderClasses.*;
public class LoaderMain {
public static void main(String[] args)
{
LoadedClass lc;
Class lcClass;
SimpleLoader loader = new SimpleLoader(args[0]);
try {
lcClass = loader.loadClass("loaderClasses.SpeciallyLoadedClass", true);
System.err.println("loaded : " + lcClass);
lc = (LoadedClass) lcClass.newInstance();
lc.doIt();
System.err.println("loaded : " + lc.getClass().getName());
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException iae) {
iae.printStackTrace();
}
}
}
0569デフォルトの名無しさん
2011/03/01(火) 01:10:40.21import java.io.*;
import java.util.*;
public class SimpleLoader extends ClassLoader {
private Hashtable _cache = new Hashtable();
private String _pathBase; // Directory containg class files
public SimpleLoader(String base)
{
_pathBase = base;
}
protected Class loadClass(String name, boolean resolve)
throws ClassNotFoundException
{
Class c;
// Check class cache
c = (Class) getCache().get(name);
if (c == null) {
try {
c = findSystemClass(name);
return c;
} catch (Exception ClassNotFoundException) {
0570542
2011/03/01(火) 02:00:48.16いろいろ試しましたが何がマスクしているのか見当がつきません。
0571デフォルトの名無しさん
2011/03/01(火) 02:02:18.01try {
String fileName = getPathBase() +
System.getProperty("file.separator") +
dotToSlash(name) + ".class";
System.out.println("Class file: " + fileName);
byte data[] = loadClassData(fileName);
System.out.println("File size: " + data.length);
c = defineClass(name, data, 0, data.length);
// Cache it...
getCache().put(name, c);
} catch (ClassFormatError e) {
throw new ClassNotFoundException(name);
}
}
}
// If we are really going to use class, resolve it!
if (resolve) {
resolveClass(c);
}
return c;
}
0572デフォルトの名無しさん
2011/03/01(火) 02:03:44.27private byte loadClassData(String name)[]
{
File file = new File(name);
try {
FileInputStream in = new FileInputStream(file);
byte[] buf = new byte[(int)file.length()];
in.read(buf, 0, (int)file.length());
return buf;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static String dotToSlash(String cname) {
return cname.replace('.',
System.getProperty("file.separator").charAt(0));
}
protected String getPathBase() {
return _pathBase;
}
protected Hashtable getCache() {
return _cache;
}
}
0573デフォルトの名無しさん
2011/03/01(火) 02:08:56.61なのですが、■SimpleLoader.javaの
c = defineClass(name, data, 0, data.length);
のところで、なぜか、
Class file: C:\\loaderClasses\SpeciallyLoadedClass.class
File size: 830
Class file: C:\\loaderClasses\LoadedClass.class
File size: 138
Class file: C:\\java\lang\Object.class
java.io.FileNotFoundException: C:\java\lang\Object.class (指定されたパスが見つかりません。)
と、「LoadedClass.class」を読みに行ってさらに、
「java\lang\Object.class」を読みに行こうとして
FileNotFoundExceptionが発生します。
ステップ実行してもいきなり、■SimpleLoader.java の
byte data[] = loadClassData(fileName);
に飛んでくる感じです。
説明下手で大変申し訳ございませんが、
どなたか上記現象について何かわかる方おられましたら、
ご教授のほどよろしくお願い致します。
0574デフォルトの名無しさん
2011/03/01(火) 04:05:18.55色分けできるエディタならなんでもいいと思うが
俺はWinではサクラエディタ使ってる。
ツリー解析して飛べるのが便利
0575デフォルトの名無しさん
2011/03/01(火) 07:58:19.07読みづらい。
↓こっちに貼ってくれ。
https://gist.github.com/
0576デフォルトの名無しさん
2011/03/01(火) 08:37:02.03描画をpaintでやってるか?
そいや少し前に宿題スレで、paint(g)以外で描画するサンプルを使ったものがあったが、その派生じゃないだろな。
0577デフォルトの名無しさん
2011/03/01(火) 08:51:20.28>>543にあるようにpaintComponentに行かせ全サイズ描画してます。
そのイメージの上には何も置いてないので描いても100より右は何かに描画をクリップされて止められてる感じです。
0578デフォルトの名無しさん
2011/03/01(火) 09:00:23.390579デフォルトの名無しさん
2011/03/01(火) 09:04:59.69MyPanel.revalidate();
もサイズ変えた後でいれてあるんです。
0580デフォルトの名無しさん
2011/03/01(火) 09:52:02.94ソース貼れよクソが
0581デフォルトの名無しさん
2011/03/01(火) 11:09:53.76あるクラスをロードするにはその親クラスが必要なのだからそれらを読みに行くことについて不思議はないよな
問題はなぜjava.lang.Objectに対してfindSystemClassが失敗してるのかという一点じゃないのか
せっかく例外をcatchしてるんだから握りつぶさずに表示させてみたらどうよ
0582デフォルトの名無しさん
2011/03/01(火) 12:13:56.85そうだな、どうも説明だけじゃ見つかりそうもないから、一式アーカイブしてどこかにうpしてくれ。
0583542
2011/03/01(火) 12:39:08.20class MainPanel extends JPanel {
public MainPanel() {
setPreferredSize(new Dimension(Width,Height));
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(img,0,0,this);
}
}
これをMyPanelで実体化してるんですが、拡大後、外から
MyPanel.setPreferredSize(new Dimension(Width,Height));
としても最初にコンストラクタで100*100に設定したものが固定されているようです。
0584デフォルトの名無しさん
2011/03/01(火) 12:50:48.49相談するつもりがあるなら必要な情報を隠さずに最初から全部書いてくれ
0585デフォルトの名無しさん
2011/03/01(火) 13:08:49.72外から
setPreferredSize(new Dimension(Width,Height));
を変更するにはどう書けばいいのでしょうか?
0586デフォルトの名無しさん
2011/03/01(火) 14:06:50.08だから今まで示された情報からでは問題を特定できそうにないと思われるので、>>582
0587542
2011/03/01(火) 14:35:23.55pass:0123
ttp://www.rupan.net/uploader/download/1298957275.java
MyPanel.setPreferredSize()
の位置は外に出しています。(結果は変わってませんが)
0588デフォルトの名無しさん
2011/03/01(火) 14:59:21.43setLayout(null); を消して resize(Width,Height); の代わりに pack();
setPreferredSize はレイアウトマネージャが使うものだからレイアウトマネージャが無かったら効果がない
フレームの resize はウィンドウ枠込みのサイズだから中身のサイズを 200, 200 にしたいならいまいち
0589デフォルトの名無しさん
2011/03/01(火) 15:10:33.96そういう問題でしたか。
お手数かけました。
どうもありがとうございます。
0590デフォルトの名無しさん
2011/03/01(火) 16:29:39.71毎回doubleに変換するのめんどくさいのですが
自動でテキストから数値型に変換してくれる方法ないのでしょうか
strustには入力が数値かどうかチェックする機能あるのに
変換機能がないのって変じゃないのですか
0591デフォルトの名無しさん
2011/03/01(火) 16:43:09.92DecimalFormatでstringにしてからintに戻すのと
キャストで
int i = (int) d;というようにするのではどちらがいいのでしょうか?
とあるサイトではキャストは危険だから極力使わないほうがいいと書いてありましたので。
0592デフォルトの名無しさん
2011/03/01(火) 17:05:45.96double 型から int 型への変換するとき
DecimalFormatでstringにしてからintに戻すのと
キャストで
int i = (int) d;というようにするのではどちらがいいのでしょうか?
とあるサイトではキャストは危険だから極力使わないほうがいいと書いてありましたので。
0593デフォルトの名無しさん
2011/03/01(火) 17:06:28.050594デフォルトの名無しさん
2011/03/01(火) 17:16:46.43キャストは動的型変換なので静的チェックが十分利かずバグが入る可能性が高まるってだけで、
実際に何が行われるのか理解して使う分には何の問題もない。
ただ(int)はゼロ方向に丸められるので最近の整数に丸めたいとかならMath.roundでlongにしてからintへ等別手段を。
0596566
2011/03/01(火) 19:29:30.36ご教授ありがとうございます。こんなところがあるんですね。
https://gist.github.com/848928
として貼り付けました。
>>581
大変申し訳ございません。
この質問において
c = findSystemClass(name);
はコメントアウトしておりました。
と言いますのも、この演習においてclassファイルをbyte配列に読みこんで
defineClassによりクラスを取得ということをやりたかったのですが、
「LoadedClass」とか定義解決するには「package loaderClasses」を
外部クラスとして参照しなきゃいけない(?ここが既に間違ってますでしょうか。。?)
そうすると、必ずfindSystemClassで解決してしまう。
そうならないようにコメントアウトして、実行すると上記URLの
最下部のようになります。
そもそもの環境づくりが間違っているのかもしれませんが、
LoaderClassesパッケージを入れたディレクトリにObject.classファイルを
探しに行ってしまいます。。
0597デフォルトの名無しさん
2011/03/01(火) 23:13:17.59Windows7(64bit)マシンとLinux(CentOS 5)マシンの2台構成で、LinuxをDBサーバ、
Windowsをクライアントにして接続実験をしようとしています。
Linuxのファイヤーウォールは、Derbyで使用する1527のTCPとUDPを「その他のポート」に設定しております。
さて、Linuxにユーザー権限でログインし、Derbyをインストールしたディレクトリのbinから
startNetworkServerを起動したところ、
Tue Mar 01 23:00:27 JST 2011 : セキュリティーマネージャーが Basic サーバーセキュリティーポリシーを使用してインストールされました。
Tue Mar 01 23:00:27 JST 2011 : Apache Derby Network Server - 10.7.1.1 - (1040133) が起動し、ポート 1527 で接続の受け入れ準備が完了しました
という表示がされました。
そこで、Windowsマシンの側で接続してみようと思い、EclipseからDB開発のパースペクティブを開き、DBに接続しようとすると、
Test へ接続できませんでした。
Testへの SQL モデル接続 接続の作成中にエラーが発生しました。(エラー: java.net.ConnectException: ポート 1527 のサーバー 192.168.1.x への接続中にメッセージ Connection refused: connect でエラーになりました。)
java.net.ConnectException: ポート 1527 のサーバー 192.168.1.x への接続中にメッセージ Connection refused: connect でエラーになりました。
Testへの JDBC 接続 接続の作成中にエラーが発生しました。(エラー: java.net.ConnectException: ポート 1527 のサーバー 192.168.1.x への接続中にメッセージ Connection refused: connect でエラーになりました。)
java.net.ConnectException: ポート 1527 のサーバー 192.168.1.x への接続中にメッセージ Connection refused: connect でエラーになりました。
との表示がされてしまいます。「あれれ?」と思ってLinuxマシンからlocalhostの1527へtelnetしてみたところ、内部に対してはポートが開いているのが確認できました。
が、WindowsマシンからtelnetするとConnection Refusedと言われてしまいます。
ファイヤーウォールには穴を開けているため、何故接続できないのか分からず、悩んでいます。
ご回答下されば幸いです。
0598デフォルトの名無しさん
2011/03/01(火) 23:30:08.50telnetでつなげられないならJava関係なさそうだが
Windows側のファイアウォールじゃなくて
Linux側のファイアウォール的なものが開いてないんじゃない?
iptablesとかいじった?
0599デフォルトの名無しさん
2011/03/01(火) 23:35:15.72Linuxのファイヤーウォールは一応設定していて、
GNOMEのGUIの
システム→管理→セキュリティレベルとファイヤーウォールの設定
から、「その他のポート」に1527のTCPとUDPを指定しています。
ここに177を指定してXでログインできるようにしているので、反映されてると思ってるのですが、
現象面で見るとポートが開いていないように見えてしまって…
このスレに複数台の環境でDerbyを使っている人がいたら、同じような現象が発生してそれをクリアしてるのではないかと
期待した次第です。
0601デフォルトの名無しさん
2011/03/02(水) 01:12:33.28逆にWindowsにderby入れて
ファイアウォール開けてLinuxからは入れるかやってみたら?
十中八九Linuxの設定周りだと思うよ
0602デフォルトの名無しさん
2011/03/02(水) 01:18:06.78今確認してみたところ、同じようにrefuseされました。
いずれにせよ、通信設定周りの問題である可能性が濃厚ですので、
自分でしばらく試行錯誤してみます。
お付き合いいただきありがとうございました。
0603602
2011/03/02(水) 01:19:06.45>>602=597です。
0604デフォルトの名無しさん
2011/03/02(水) 09:56:35.41親ローダを差し置いてロードする変則クラスローダを作りたいわけでなく、
そのSimpleLoaderはURLClassLoaderの真似事をさせたいだけじゃないか?
クラス検索を最初に親に任せる基本手順(findSystemClassの辺り)は行わせるようにしないとやっかいなことになる。
そして多分SimpleLoaderのターゲットであろうSpeciallyLoadedClassクラスだけをクラスパスの通っていない場所に置く。
LoadedClassクラスはLoaderMainでも使用している公開のインタフェイスなのでクラスパスを通す必要がある。
例えば、
C:\hoge\LoaderMain.java
C:\hoge\SimpleLoader.java
C:\hoge\loaderClasses\LoadedClass.java
C:\hoge\loaderClasses\SpeciallyLoadedClass.java
のように配置しておきC:\hogeをカレントディレクトリにしてコンパイルする。
javac LoaderMain.java loaderClasses\SpeciallyLoadedClass.java
その後、SpeciallyLoadedClass.classだけを、
C:\moga\loaderClasses\SpeciallyLoadedClass.class
のようにクラスパスの通っていない場所(C:\moga)にloaderClassesディレクトリを作って移動しておき、
java LoaderMain C:\moga
のようにすれば、
Class file: C:\moga\loaderClasses\SpeciallyLoadedClass.class
File size: xxx
loaded : class loaderClasses.SpeciallyLoadedClass
doIt: Hello from loaderClasses.SpeciallyLoadedClass
loaded : loaderClasses.SpeciallyLoadedClass
のように出力されて、パスが通っていないSpeciallyLoadedClassクラスがSimpleLoader自身によってロードされる。
コンパイルはSpeciallyLoadedClassのソースを最初からC:\moga\loaderClasses\SpeciallyLoadedClass.javaに置いて、
javac LoaderMain.java C:\moga\loaderClasses\SpeciallyLoadedClass.java
ならクラスファイルを移動する手間が省ける。
何クラスを自作ローダでロードしたいのか辺りがはっきりしないのでこれでいいか分からんが。
0605デフォルトの名無しさん
2011/03/02(水) 18:03:41.600606デフォルトの名無しさん
2011/03/02(水) 18:26:38.910607デフォルトの名無しさん
2011/03/02(水) 18:28:07.82ありがとうございます。
例外を使ってきます。C,C++から来たのでついassert書きたくなるんですが
0608デフォルトの名無しさん
2011/03/02(水) 18:49:30.56assertを判定処理代わりにするのは問題だと思うが、事前、事後条件はassertしたりしないか。
コメントで書くより有益だし。
0609デフォルトの名無しさん
2011/03/02(水) 19:09:03.68コンパイル時の設定で消せるから、開発向けに使えばいいと思うよ
0610596
2011/03/02(水) 19:27:25.33ご教授ありがとうございます。
なんとなく理解でき、実行することができました。
LoaderMain.javaの型解決を行うには、
LoadedClassインターフェースしか必要無いんですね。。
すいません、根本的にここを理解してしませんでした。
で、SpeciallyLoadedClassはクラスパスから外して、
.classバイナリを読ませるようにして、その他
defineClassから再帰的にSimpleLoader#loadClass()を
呼んで要求される?
(ここがdefineClass()の内部を追えてないのでよくわからないんですが。。
上記例のSpeciallyLoadedClass#doIt()を呼んだ際にも、
勝手にSimpleLoader#loadClass()が呼ばれる。。)
loaderClasses.LoadedClass
java.lang.Object
は親にまかせてfindSystemClass()で処理すると。
丁寧なご教授ありがとうございました。
0611デフォルトの名無しさん
2011/03/02(水) 23:21:00.43基本的に、手続き的な確認が容易な、
1つのファイル内で閉じている範囲で必ず成立することが確定できるようなものに対して
assert を使うというふうにするのが簡単。
例えば、配列やコレクションなどをフィールドに格納する場合は
防御コピー後に事前条件の確認を行わないと無意味なので、
内部ロジックの奥底でも例外を使う。
0612デフォルトの名無しさん
2011/03/03(木) 00:15:48.34例外処理にe.printStackTrace();と書くとNetBeansから
「Throwable#printStackTrace()を削除してください」と
警告されてしまいます。 実行できますが。
printStackTrace()は使っちゃいけないことになったのですか?
0613デフォルトの名無しさん
2011/03/03(木) 00:27:40.300614デフォルトの名無しさん
2011/03/03(木) 00:29:57.79標準出力に吐くなログを使えということ
0615デフォルトの名無しさん
2011/03/03(木) 02:17:36.51catch(Exception ex){ex.printStackTrace();}
javaの定石。アホだから
0616デフォルトの名無しさん
2011/03/03(木) 02:21:15.220617デフォルトの名無しさん
2011/03/03(木) 02:25:24.81「シリアライズ可能クラス AWTTest は long 型の static final serialVersionUID フィールドを宣言していません」
で↓の記述を
private static final long serialVersionUID = 1L;
Serializableをインターフェース継承しているかららしいですが、
これはなぜIDの実装が必要なのですか?
0618デフォルトの名無しさん
2011/03/03(木) 02:28:54.300619デフォルトの名無しさん
2011/03/03(木) 04:29:35.06そのIDがクラスのバージョンだから。
あとは自分で調べろ。
0620デフォルトの名無しさん
2011/03/03(木) 11:49:10.33今まで出来なかったすご技ができるとか
0621デフォルトの名無しさん
2011/03/03(木) 16:18:45.53チェック済み例外の是非をどうこう言うつもりはないが、
Webサイトや書籍のサンプルコードに平気でこんなものが出てくるのは
チェック済み例外のせいだよな
いくら「エラー処理は省略しています」と断ってあっても初心者はこれでいいんだと思ってしまう
0622デフォルトの名無しさん
2011/03/03(木) 17:00:25.63コンパイル時でなく実行時な。パッケージやクラス単位でスイッチ可能。
基本、assert文は、コード修正やリビルドが必要なぐらい深刻な異常を
自己診断するとき用と割り切ってるけどなぁ。
ところで副作用付きassert文を弾き飛ばすPMDルールとか作ったら需要あるかな?
0623デフォルトの名無しさん
2011/03/03(木) 17:59:25.020624デフォルトの名無しさん
2011/03/03(木) 18:02:44.900625デフォルトの名無しさん
2011/03/03(木) 19:42:41.78クラスにバージョンが必要なんて不思議ですぅ
ありがとうございました。
0626デフォルトの名無しさん
2011/03/03(木) 20:03:02.22自分で処理しないならErrorにした方がいいとか
0627デフォルトの名無しさん
2011/03/03(木) 21:25:57.850628デフォルトの名無しさん
2011/03/03(木) 21:41:03.080629625
2011/03/03(木) 22:25:15.19なるほど、たとえばファイルにクラス情報を書き出した後読み込むとき、
同じクラスでも変更があったりして、
書いたときのバージョンと違うと困るときがあるからIDつけておこう!
これで間違いがおきにくいね!やったね!ということですか。
わかりました。どうもです。
0630デフォルトの名無しさん
2011/03/03(木) 22:44:27.34シリアライズに対して考慮しているってことを宣言しているのと同等
デフォルトに任せないで、ちゃんとreadObjectとか安全に実装しろよ?
0631デフォルトの名無しさん
2011/03/03(木) 22:47:50.07ここのサンプル(kowaza.boo.jp/06mouse/onm-06.html)で
四文字熟語の部分を画像にして、
オンマウスで画像が変わり、更にリンク先をそれぞれ持たす。
そして、オンマウスで下に出てくる文字もそれぞれ画像にすることって可能ですか?
0633デフォルトの名無しさん
2011/03/03(木) 22:55:20.23例えば
public void a(int i) {
if(i > 0) b(i);
}
private void b(int i) {
assert i > 0;
...
}
をどのようにテストするつもりかに興味がある。
private は外しちゃだめだよ?assertする根拠の一つなんだから。
0634デフォルトの名無しさん
2011/03/03(木) 23:04:55.69アプリケーションで閉じててシリアライズなんてやる予定なんてなければ
わざわざserialVersionUIDを宣言するよか
警告を無視する設定にした方が、マシと言いたかっただけだのだが
シリアライズをちゃんと実装するのは大変だぞ?
標準ライブラリのHashMapだって、抜けがあるし
0636デフォルトの名無しさん
2011/03/03(木) 23:22:42.44リフレクション使うとか
0637デフォルトの名無しさん
2011/03/03(木) 23:54:55.70GUIをnetbeansやwindows builderで作成して実行部分をJNIやJNAで実装できるモン?
またそんな人いる?
0638デフォルトの名無しさん
2011/03/04(金) 00:23:23.432011年3月2日0:00をミリ秒で取得するにはどう書けばいいでしょうか?
0639デフォルトの名無しさん
2011/03/04(金) 00:28:58.600640デフォルトの名無しさん
2011/03/04(金) 00:36:58.70Calendar c = Calendar.getInstance();
c.clear();
c.set(Calendar.YEAR, 2011);
c.set(Calendar.MONTH, Calendar.MARCH);
c.set(Calendar.DAY_OF_MONTH, 2);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
System.out.println( c.getTimeInMillis() );
0641デフォルトの名無しさん
2011/03/04(金) 00:38:10.990642デフォルトの名無しさん
2011/03/04(金) 00:40:41.34新参乙
0643デフォルトの名無しさん
2011/03/04(金) 00:42:13.07TDDならbのi > 0は自明だからaをテストすればコードカバレッジは100%
そうでないなら、非公開メソッドは使用する全ての公開メソッドが把握できるので、参照もとをテストすればカバレッジ100%。
0644デフォルトの名無しさん
2011/03/04(金) 00:43:52.92ありがとうございます
>>639
答えられないものは普通にスルーするでしょJK
0645デフォルトの名無しさん
2011/03/04(金) 00:43:54.240646デフォルトの名無しさん
2011/03/04(金) 00:46:06.96こんなところでレスもらえなくて逆切れするより
0647デフォルトの名無しさん
2011/03/04(金) 00:49:03.64アホなのかお前ら。
0648デフォルトの名無しさん
2011/03/04(金) 00:50:48.500649デフォルトの名無しさん
2011/03/04(金) 00:51:26.740650デフォルトの名無しさん
2011/03/04(金) 00:53:08.96自演ウザイです
0651デフォルトの名無しさん
2011/03/04(金) 01:01:42.74なんでここでTDDやカバレッジが出てくるのか分からんが
成立するはずの
assert i > 0;
をチェックするはテストなるものはどう書くのさ?
まあ、仮にテストが書けたとしても、
実行可能なメモ書きを書いてはいけないという理由にはならないから
どうでもいいんだけど
0652デフォルトの名無しさん
2011/03/04(金) 02:00:38.08bに渡す値が正しいか調べるのは、それは既にやってるようにbを呼ぶ直前に入れる
privateメソッドなら全ての呼んでる場所が解る、すべての呼び出しもとでチェックできる
呼び出しもとでテストカバレッジを100%にすればそのbは期待通り値が渡っていることになる
成立するはずのことはチェックできているので、そのassertは必要が無い
コンパイラぶっこわれたレベルを調べてる
TDDは余計だったけど、言いたいのは作られたprivateメソッドはリファクタリングの結果だから十分テストされていることになるのでassertは必要ないということ
プログラミングミスを拾いたいのであれば、ミスの時はillegalArgumentExceptionを投げさせて、
例外が正しく起きることをテストしておく
0653デフォルトの名無しさん
2011/03/04(金) 08:17:15.08プログラミングミスを拾いたければ
public void a(int i) {
if(i > 0) b(i);
}
private void b(int i) {
if(i <= 0) throws IllegalArgumentException();
...
}
とかけとか?
0654デフォルトの名無しさん
2011/03/04(金) 10:25:53.21あんまりしないほうがいいな
コード書いてる途中で変な変数入れば、別のとこで、まあたとえば、
配列にアクセスしようとしたときとかに ArrayIndexOutOfException とか
何かしら例外投げるだろう
そういうのにまかせたほうがコード短くて済む
(でも、たまに、バグの原因かわからなくなって変数チェックしないとデバッグ進まない感じが
したときとかは、そういうコード入れてもいいかもしれない)
0655デフォルトの名無しさん
2011/03/04(金) 11:14:07.73そう思うよ。@paramや@throwsでだめな呼び出し方があると文書化できるし、実行時にもわかる
正しく処理されてだめな時はだめになるかを成立しているかは、テストで確かめられる
assertはエラーだからVMレベルで実行不可能という意味で使いたいところかな。書くのは簡単なんだけど
>>654
「何かしら例外を投げるだろう」はコードの浅いところで起きた方がいいと思う
それに例外が無いということはすべての変数が受け入れ可能って仕様になるから
呼び出しミスなのにメソッドの実装ミスを意味させることになる
今回の場合設計上悪い呼び出し方があるって解っていることだし
コードは短い方がいいけど、間違いが解りやすくなってる方がよりいい
0656デフォルトの名無しさん
2011/03/04(金) 11:28:32.500657デフォルトの名無しさん
2011/03/04(金) 12:53:39.03基本的にはJavadocに書いた仕様を満たすようにすりゃ良いとは思う
引数の仕様にi <= 0はダメって書いてあるならIAE投げるのが普通だろ
0658デフォルトの名無しさん
2011/03/04(金) 15:29:39.97誰が使うか全くわからんくらいに大量配布するAPI作るってんならともかく、
ふつう目的の機能を動かすためにプログラミングするんだろう
どうせ投げない例外処理を書いてもしょうがない
(当たり前だが、失敗しそうなことに対して自動テスト書いてくことのほうが大事)
0659デフォルトの名無しさん
2011/03/04(金) 15:35:49.46素人さん?
0660デフォルトの名無しさん
2011/03/04(金) 15:45:04.87そもそも自動テストを「失敗しそうな事」とやらの検証の為に書いている時点でおかしいだろ
自動テストは仕様通りの動作をする事を保証する為に書く物だ
その例外が発生しない事をお前はどうやって保証するつもりだよ
「ぼくがぼくの為に書いてぼくが使ってるAPIなんだから絶対大丈夫だよ!」とでも言うつもりか
0661デフォルトの名無しさん
2011/03/04(金) 15:57:54.640662デフォルトの名無しさん
2011/03/04(金) 16:00:47.48良く嫁
0663デフォルトの名無しさん
2011/03/04(金) 16:25:09.24範囲外の値を引数に指定したらArrayIndexOutOfBoundsExceptionをスローするとドキュメントに書いてあるなら
別にそれはそれで構わないが、エラーを出さずに正しく動いているように見えてしまったり
後になってからエラーが出たりするのは最悪
0664デフォルトの名無しさん
2011/03/04(金) 16:45:10.42それはそういう仕様だとJavadocに書いてあったりしないか?
仮に書いていなかったとしても、標準APIでもある事例だからと言って
問題解決を複雑化したり、バグの温床になるようなコードを書く理由にはならない
Javaは上位互換を大事にしている言語だから
実際はその仕様はイケてないと思われているけれど
スローする例外の種類が変わると互換が崩壊するから
なおしたくてもなおせない可能性だってあり得るわけで
0665デフォルトの名無しさん
2011/03/04(金) 16:52:49.18NullPointerException投げるんでもIllegalArgumentException投げるんでもどっちでもいい。
そーいやmethod(@NonNull String arg)みたいなアノテーションってどうなったんだっけ?
0666デフォルトの名無しさん
2011/03/04(金) 17:01:45.67JSR308が動いてないから無かった事になってるんじゃない?
0667デフォルトの名無しさん
2011/03/04(金) 17:02:50.660668デフォルトの名無しさん
2011/03/04(金) 17:05:00.320669デフォルトの名無しさん
2011/03/04(金) 17:12:54.160670デフォルトの名無しさん
2011/03/04(金) 17:57:36.220671デフォルトの名無しさん
2011/03/04(金) 19:01:09.600672デフォルトの名無しさん
2011/03/04(金) 19:44:29.520673デフォルトの名無しさん
2011/03/04(金) 19:53:20.67そういう機能入れだしたら歯止めがきかなくなるんだよな
俺俺JavaだらけになってC++みたいになる
0674デフォルトの名無しさん
2011/03/04(金) 21:59:25.33似たような物でグーグルがインターフェイスでバリデーションかけれるフレームワークリリースしてたけど
あれはインターフェイスでバリデーションかけられるから良いんであって
@NonNullとか怖ろしい真似するのはやめて欲しいよな
0675デフォルトの名無しさん
2011/03/04(金) 22:06:05.740676デフォルトの名無しさん
2011/03/04(金) 22:08:10.060677デフォルトの名無しさん
2011/03/04(金) 22:11:15.360678デフォルトの名無しさん
2011/03/04(金) 22:23:35.85synchronizedで他のスレッドが実行されてる時は
そのスレッドがロックを解除するまでwaitが維持される
0679デフォルトの名無しさん
2011/03/04(金) 22:25:39.81if(i > 0) b(i);
}
private void b(int i) {
if(i <= 0) throws IllegalArgumentException();
...
}
この IllegalArgumentExceptionを投げる分岐はVMレベルで到達可能なのか?
0680デフォルトの名無しさん
2011/03/04(金) 22:34:13.41書いてはある。ただし明示的チェックはしていないとあるし、throwする例外だと宣言されているわけではない。>>654 と同じ方針だと思われる。
> 領域が境界内にない場合は、ArrayOutOfBoundsExceptionがスローされることがあります。ただし、明示的な境界チェックは必ずしも実行されません。
NullPointerExceptionとArrayOutOfBoundsExceptionは明示的にチェックされていないことが多い。
0681デフォルトの名無しさん
2011/03/04(金) 22:35:43.39仮にそのクラスにそれ以外メソッドがないとしても、リフレクション経由の呼び出しもあるし。
0682デフォルトの名無しさん
2011/03/04(金) 22:39:18.88Thread.sleepだと維持されるけど、Object.waitだとされないんだよ…
俺も今日試して知ったんだが…
0683デフォルトの名無しさん
2011/03/04(金) 22:40:52.800684デフォルトの名無しさん
2011/03/04(金) 22:43:02.54java.lang、java.io、java.utilあたりは真面目に境界チェックやnullチェックやってたような。
0685デフォルトの名無しさん
2011/03/04(金) 22:44:23.12setAccessibleすりゃできるよ。
0686デフォルトの名無しさん
2011/03/04(金) 22:46:59.47お前はその状態からbが呼ばれる複数の方法が想像できない程度のバカなのか?
仮にその二つのメソッドしかないプログラムならば、お前はそんなコードを書くバカなのか?
違うだろ?
0687デフォルトの名無しさん
2011/03/04(金) 22:48:00.41privateメソッドなのに
b()が呼ばれる可能性を否定できない!
とそのクラスを開いているエディタの前で頭抱えるのか?
ああ、リフレクションね。
そんなこと言ったら、Threadの推奨されないメソッドを使ったりすると
いつでもどこでもチェックされる例外が投げられる可能性があるから、
どこでも、Exceptionをキャッチしとかないとね。
0688デフォルトの名無しさん
2011/03/04(金) 22:51:25.26真面目にチェックしているAPIを呼ぶ前に、値のチェックをするべきかって話。
APIからにしろ、ユーザーコードにしろ、例外が投げられて処理を抜ける。
0689デフォルトの名無しさん
2011/03/04(金) 22:53:58.280690デフォルトの名無しさん
2011/03/04(金) 22:59:36.71VMで到達不可能なところにassertを書くべきならば
IllegalArgumentExceptionを投げる分岐は到達不可能なのだから
IllegalArgumentExcpetionを投げるよりはassertを書くべきだろ
と主張したつもりだったのだが、
便所の落書にこんなにつらづらと書くのは面倒だし
意図は分かるだろうと手抜きをした俺は馬鹿なのか?
0691デフォルトの名無しさん
2011/03/04(金) 23:08:38.78>便所の落書に
真面目な返事を期待したのが(ry
0692デフォルトの名無しさん
2011/03/04(金) 23:13:12.17アサーションはあくまでテストの為の物なんだし
0693デフォルトの名無しさん
2011/03/04(金) 23:20:16.250694デフォルトの名無しさん
2011/03/04(金) 23:26:53.250695デフォルトの名無しさん
2011/03/04(金) 23:29:45.750696デフォルトの名無しさん
2011/03/04(金) 23:32:34.25事後条件、不変条件および非公開メソッドの事前条件はassertを使う。
0697デフォルトの名無しさん
2011/03/04(金) 23:39:23.290698デフォルトの名無しさん
2011/03/04(金) 23:41:30.67もうちょっとマシなやり方あったんちゃうんかと
0699デフォルトの名無しさん
2011/03/04(金) 23:45:05.34そういう奴はjava.util.loggingは使わん(キリッって言ってんだろうな。
0700デフォルトの名無しさん
2011/03/04(金) 23:45:11.460701デフォルトの名無しさん
2011/03/04(金) 23:45:45.860702デフォルトの名無しさん
2011/03/04(金) 23:48:24.54ロガーも実際使わないだろ?
標準APIや言語機能であっても
イケてなければ代わりのものを使うのは
カッコ悪いことじゃないよ
0703デフォルトの名無しさん
2011/03/04(金) 23:55:51.430704デフォルトの名無しさん
2011/03/05(土) 00:09:50.34カッケーッスネ
0705デフォルトの名無しさん
2011/03/05(土) 00:20:21.87防御的コピーの前に事前条件チェックは意味ないし、
オブジェクトの責務を考えれば、防御的コピーはそれをフィールドに格納するクラスが行うべき。
したがって、非公開なメソッド(コンストラクタを含む)まで事前条件のチェックが遅延されるかもしれないし、
その場合そこでIAEを投げざるを得ない。
また、オブジェクト指向の意味を考えれば
オブジェクトは、そのメソッドの呼び出しかたや順序に依存せずに整合性を保つことを保証することで、
一度に考えなければならない複雑さを各オブジェクトに分散・カプセル化しているのだから、
privateなどでカプセルの内側でありオブジェクト指向の範囲外であることを明示でもしてない限り
渡されてくるオブジェクトに対して、事前条件のチェックがされているのか、それとも遅延されているのか
判断する材料をそのオブジェクトの外に求めるのは、カプセル化に逆行する。
0706デフォルトの名無しさん
2011/03/05(土) 00:26:26.75対処法ある?
0707デフォルトの名無しさん
2011/03/05(土) 01:05:01.82プロセス殺したら?
0708デフォルトの名無しさん
2011/03/05(土) 02:08:54.440709デフォルトの名無しさん
2011/03/05(土) 02:25:32.10http://sourceforge.jp/
0710デフォルトの名無しさん
2011/03/05(土) 02:33:37.16もっと具体的にお願いします
0711デフォルトの名無しさん
2011/03/05(土) 02:44:59.95> 防御的コピーの前に事前条件チェックは意味ないし、
意味不明
0712デフォルトの名無しさん
2011/03/05(土) 12:29:29.79ありえない。だから例外やassertは無くてもいい
privateメソッドは参照もとをテストすれば実装が正しいかわかるから
でもプログラミングミスを防ぐ目的なら入れてドキュメントを作るとなお良い
入れるとして、assertよりillegalArgumentExceptionの方が意味が合う
そもそもassertは、使われるかもしれないし使われないかもしれないから、チェックにならない
0713デフォルトの名無しさん
2011/03/05(土) 12:38:49.59だから、assertは実行することもできるというオマケつきのコメントだと
コメントは必要ないと主張するのか?
0714デフォルトの名無しさん
2011/03/05(土) 12:43:02.930715デフォルトの名無しさん
2011/03/05(土) 13:49:38.540716デフォルトの名無しさん
2011/03/05(土) 14:30:39.31コメントに書くくらいならドキュメントに書け
情報分散させんなカス
0717デフォルトの名無しさん
2011/03/05(土) 15:13:15.920718デフォルトの名無しさん
2011/03/05(土) 15:41:03.36根本的にassertと例外を比較してるのが間違いだと俺も思う
assertはあくまで実行可能なコメントでありテスト用途だと思うし
コンパイル方法によっては実行されない以上は例外の代用たり得ない
コメントとしては、プログラミング中のミスも把握しやすいし悪くはないと思うよ
他の人がソース読んだ時も、条件が明示的に書いてあって見通しは良くなると思う
ただErrorで落とすようなものだし、一応Javadocにもその旨記載した方が良いんじゃない?
意図的にエラーで落とすプログラムってのが俺には想像付かないけど経験不足なんだろう
俺ならエラーで落とすくらいなら、例外投げてキャッチしてログ吐いてから終了って手順を取る
0719デフォルトの名無しさん
2011/03/05(土) 15:42:56.920720デフォルトの名無しさん
2011/03/05(土) 16:24:27.25直接「お前の使い方が間違ってる」と怒鳴りに行けるような関係ならポリシー次第でassertでもいい
代わりにコードに怒鳴らせる必要があるなら例外
0721デフォルトの名無しさん
2011/03/05(土) 16:36:53.740722デフォルトの名無しさん
2011/03/05(土) 16:43:25.340723デフォルトの名無しさん
2011/03/05(土) 16:55:00.38assertと例外の質問があったからだろバカ
0724デフォルトの名無しさん
2011/03/05(土) 17:35:47.450725デフォルトの名無しさん
2011/03/05(土) 17:40:56.05assertは例外の代わりにはならないし
例外もassertの代わりにはならない
0726デフォルトの名無しさん
2011/03/05(土) 17:46:21.44内部をどう作ろうが勝手。プロジェクトのポリシー次第。
約束の通じない不特定多数が使うライブラリに関しては、引数はきっちりチェックして例外を投げる。
0727デフォルトの名無しさん
2011/03/05(土) 18:12:44.71例外にしろassertにしろコード中に書かなくてもいいってのを説明したのが元々
理解したのか知らんけど、テストでわかるのに到達するしないの話になるのも知らん
引数チェックはもちろん入れたっていい。でもテスト通れば一応期待通り動いてるのは解る
チェック入れるならassertより例外を使うのが通例で、入れたらドキュメント(コメント)は書けと言ってる
例外なら@throwsで定型のドキュメントが書ける
assertなら@throws AssertionErrorだろうけど、俺はテストライブラリ以外でこれを見たことが無い
0729デフォルトの名無しさん
2011/03/05(土) 18:18:05.730730デフォルトの名無しさん
2011/03/05(土) 18:31:40.46そうそう、元々の元はそれ
0731デフォルトの名無しさん
2011/03/05(土) 18:45:27.170732デフォルトの名無しさん
2011/03/05(土) 19:24:53.330733デフォルトの名無しさん
2011/03/05(土) 19:48:06.04ある
0734デフォルトの名無しさん
2011/03/05(土) 20:10:50.200735デフォルトの名無しさん
2011/03/05(土) 20:46:04.90勘違い乙
0736デフォルトの名無しさん
2011/03/05(土) 22:04:20.74NullPointerExceptionやIllegalArgumentExceptionを発生させるってどうなのか?
外部から引数ありのpublicメソッドがNPEやIAEを投げてきたら
自分が渡した引数に問題があると思ってしまうのが自然じゃないのか?
0737デフォルトの名無しさん
2011/03/05(土) 23:32:39.07お前は何を言ってるんだ?
0738デフォルトの名無しさん
2011/03/05(土) 23:50:14.930739デフォルトの名無しさん
2011/03/06(日) 00:37:59.53末端コーダーの手抜きコードなんてさわりたくもないな。
0740デフォルトの名無しさん
2011/03/06(日) 00:53:49.630741デフォルトの名無しさん
2011/03/06(日) 00:53:55.81こんなことを言う奴のコードなんて触りたくもないな。
0742デフォルトの名無しさん
2011/03/06(日) 00:59:22.130743デフォルトの名無しさん
2011/03/06(日) 01:01:36.01どうやるの?
0744デフォルトの名無しさん
2011/03/06(日) 10:07:21.12がっ
0745デフォルトの名無しさん
2011/03/06(日) 12:45:17.88//タスク実行
}
を、タスク実行の部分を
Thread t = new Thread(new Runnable(){
//タスク実行
}
のように非同期に書き換えたのですが
Runnable#run()の中で発生する例外を呼び出し元で処理させるようにしたいのですが
一般的にはどのように書くのがよいのでしょうか?
0746デフォルトの名無しさん
2011/03/06(日) 13:21:30.790747デフォルトの名無しさん
2011/03/06(日) 18:05:04.07すいません、よくわからないです。。
0748デフォルトの名無しさん
2011/03/06(日) 19:32:28.12contains("" + j)とするとできるのですが
この引数 "" + j がCharSequenceになるのはどういうことなのか
わかりません教えてください。
0749デフォルトの名無しさん
2011/03/06(日) 19:37:23.08これは言語仕様でそう決まっている。
文字列はStringクラスのインスタンス。
StringクラスはCharSequenceインターフェイスを実装している。
だから文字列をCharSequence型として扱うことができる。
0750デフォルトの名無しさん
2011/03/06(日) 19:40:57.19分かりました。ありがとうございます。
0751デフォルトの名無しさん
2011/03/06(日) 20:48:35.71今時非同期処理はThreadじゃなくてconcurrencyユーティリティを使いな
Callableのcallにタスクを書いてExecutorService作ってsubmit
Futureオブジェクトが返るから、それをgetする時にcallで呼んだ例外が解る。
Swing GUI使うならSwingWorkerで、タスクをdoInBackgroundに実装する方が楽
0752デフォルトの名無しさん
2011/03/06(日) 20:53:28.58newをしなくていいクラスと
newをしなくてはいけないクラスの違いって何?
0753デフォルトの名無しさん
2011/03/06(日) 21:45:49.26なるほど。。ありがとう
調べてみます。
0754デフォルトの名無しさん
2011/03/06(日) 21:59:25.46なにか原因に心あたりはありませんでしょうか。
たとえば
<c:forEach var="i" begin="1" end="3">
<p>i=${i}<p>
</c:forEach>
と書いた場合、実行結果が
<p>i=${i}<p> <p>i=${i}<p> <p>i=${i}<p>
となります。期待するのは
<p>i=1<p> <p>i=2<p> <p>i=3<p>
となります。ループはしているので、<c:forEach>は動いているのですが、${var}がうまく展開されません。
0755デフォルトの名無しさん
2011/03/06(日) 22:49:36.46!ENTRY org.eclipse.ui.ide 4 4 2011-03-06 22:46:39.946
!MESSAGE ワークスペースの保管の問題
!ENTRY org.eclipse.ui.ide 4 1 2011-03-06 22:46:39.946
!MESSAGE ワークベンチの状態を保管中に問題が発生しました。
!SUBENTRY 1 org.eclipse.ui.ide 4 1 2011-03-06 22:46:39.946
!MESSAGE 内部エラー
!STACK 0
java.lang.NoSuchMethodError: org.eclipse.core.internal.localstore.HistoryStore2.<init>(Lorg/eclipse/core/internal/resources/Workspace;Lorg/eclipse/core/runtime/IPath;I)V
at org.eclipse.core.internal.resources.ResourcesCompatibility.createHistoryStore(ResourcesCompatibility.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.core.internal.resources.ResourcesCompatibilityHelper.createHistoryStore(ResourcesCompatibilityHelper.java:73)
at org.eclipse.core.internal.resources.ResourcesCompatibilityHelper.createHistoryStore(ResourcesCompatibilityHelper.java:47)
at org.eclipse.core.internal.localstore.FileSystemResourceManager.getHistoryStore(FileSystemResourceManager.java:406)
at org.eclipse.core.internal.resources.SaveManager.save(SaveManager.java:1134)
at org.eclipse.core.internal.resources.Workspace.save(Workspace.java:2006)
at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor$5.run(IDEWorkbenchAdvisor.java:502)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
おしえてちょんまんげ
0756デフォルトの名無しさん
2011/03/06(日) 23:02:27.63テキストファイルを1行ずつ読み込んでそれをセルに出力みたいな。
VBA使えってのは分かってます。
敢えてJavaでは出来ないのかなって。
そもそもJavaで特定アプリケーションやWindowsの機能とかって触れるのでしょうか?
0757デフォルトの名無しさん
2011/03/06(日) 23:11:30.48ほとんどJavaと変わらん
0758デフォルトの名無しさん
2011/03/06(日) 23:30:30.490759デフォルトの名無しさん
2011/03/06(日) 23:41:02.68出来るよ
poiとかfisshplateでググれ
fisshplateなら日本語でサポートも受けれる
0760デフォルトの名無しさん
2011/03/06(日) 23:42:26.60操作してるわけじゃない
0761デフォルトの名無しさん
2011/03/06(日) 23:44:45.22JavaライクなMSの言語
Windowsとの親和性は非常に良い
Excel操作のようなCOM相互運用の類は自由自在
0762デフォルトの名無しさん
2011/03/06(日) 23:47:54.52カンマ区切りのテキストファイルに出力して Excel で読み込めば良いんじゃないかな
0763デフォルトの名無しさん
2011/03/06(日) 23:48:35.570764デフォルトの名無しさん
2011/03/06(日) 23:51:22.69.NETでやるか、WSHのVBSにでも書いておいてJavaから呼び出せばいい
0765デフォルトの名無しさん
2011/03/06(日) 23:53:04.37excelの動作を制御したいならJavaは厳しいだろうなぁ
0766デフォルトの名無しさん
2011/03/07(月) 00:16:48.75お前それJavaScriptの話じゃないのか?
>>756
Windowsオンリーで良いならJava-Comブリッジでがんばるとか
Javaにこだわるなら
0767デフォルトの名無しさん
2011/03/07(月) 06:29:50.68Java-COMブリッジ
http://www.hcn.zaq.ne.jp/no-ji/jcom/
Apache POI
http://www.javadrive.jp/poi/
0768デフォルトの名無しさん
2011/03/07(月) 08:33:50.330769デフォルトの名無しさん
2011/03/07(月) 10:59:00.04java.awt.dnd参照
JavaアプリからIEへのURL送信なら実績ある
0770デフォルトの名無しさん
2011/03/07(月) 12:34:51.66同じ内容の複数のシートの使い方はわかったんですけど
0771デフォルトの名無しさん
2011/03/08(火) 10:51:24.440772デフォルトの名無しさん
2011/03/08(火) 10:55:13.610773デフォルトの名無しさん
2011/03/08(火) 11:27:27.740774デフォルトの名無しさん
2011/03/08(火) 16:15:54.58デフォルトじゃ出来ないみたいだな
http://d.hatena.ne.jp/happy_ryo/20090524
http://d.hatena.ne.jp/happy_ryo/20090525
0775デフォルトの名無しさん
2011/03/08(火) 21:19:08.25一意な数字
0776デフォルトの名無しさん
2011/03/08(火) 21:21:57.91mapはforで回して走査とかできないんじゃないっけ?
forで回して走査できて、アイテムを一意な数字とかでサッと取得できるようなクラスないかい?
0777デフォルトの名無しさん
2011/03/08(火) 21:26:36.77自作すれば?
0778デフォルトの名無しさん
2011/03/08(火) 21:29:40.20デフォでないのかと。
arraylistとhashmapを組み合わせればできそう?だけど。
0779デフォルトの名無しさん
2011/03/08(火) 21:29:56.690780デフォルトの名無しさん
2011/03/08(火) 21:33:14.99Map#keySet()使えば拡張forは使えるけど
0781デフォルトの名無しさん
2011/03/08(火) 21:36:46.33mapにイテレーターなかった
0782デフォルトの名無しさん
2011/03/08(火) 21:38:46.75なるほど!
ありがと
0783デフォルトの名無しさん
2011/03/08(火) 21:40:47.76entrySet()
keySet()
values()
ここら辺の返り値に対してIterator(もしくは拡張for)を使えば良い。
用途によって使い分けてなー。
0784デフォルトの名無しさん
2011/03/08(火) 21:46:11.84あんがと!
0785デフォルトの名無しさん
2011/03/08(火) 21:47:19.850787デフォルトの名無しさん
2011/03/09(水) 14:19:11.17それまで何とも無かったんだけどね
0788デフォルトの名無しさん
2011/03/09(水) 20:39:22.410789デフォルトの名無しさん
2011/03/09(水) 21:34:55.13言ってみりゃprintln追加した程度のもんだ
ライブラリはちゃんとlibにはいっちょる
0790デフォルトの名無しさん
2011/03/10(木) 17:52:34.28大量のJavadocと干渉してブロックコメントが使えないときみなさんはどうしますか?
Eclipse動かせない貧弱な環境(RAM256MB)なのでEmEditorでしこしこ書いているのですが……
理想は「リファクタリングのための工数を1週間よこせ」なのですが、
それは夢物語なのでそれ以外でお願いします
0791デフォルトの名無しさん
2011/03/10(木) 17:54:52.20>大半の
これが怖い。
途中に何があるかわかったもんじゃないw
0792デフォルトの名無しさん
2011/03/10(木) 17:59:37.48選択範囲内を1行コメント化(+解除)みたいな機能使う。
EmEditorにその機能があるかは知らんけど。
0793デフォルトの名無しさん
2011/03/10(木) 18:02:08.76変数やメソットは全く大文字だめですか?
例えば
CalcTestVer
とかは
calcTestVer
となるのでしょうか?
何かバランスが悪い感じがしますが。
0794デフォルトの名無しさん
2011/03/10(木) 18:08:55.44基本的には郷に入れば郷に従った方がいい。
0795デフォルトの名無しさん
2011/03/10(木) 18:10:18.5620万行のクラスって時点で吹いた
なんか代用出来る機能はありそうだが
コメントパーサを書く時間とどちらが早いかだね
/* // */ ""ぐらい考慮すればいいだけだろうし
0796デフォルトの名無しさん
2011/03/10(木) 18:54:35.08何行目から下の行全てに//つけるとか、
必要なメンバが分かってるならそれ以外につけるとか
0797デフォルトの名無しさん
2011/03/10(木) 19:00:56.65Perl でプログラムを書くかなぁ……
0798デフォルトの名無しさん
2011/03/10(木) 19:11:17.83↓があったけどだいぶ古そう…これより新しい物はない?
Java仮想マシン仕様
http://www.amazon.co.jp/exec/obidos/ASIN/489471356X
0799デフォルトの名無しさん
2011/03/10(木) 19:17:49.39難しかったけど。画面出力のような命令はどうやってるのかよくわからなかったな。
自分でバイナリ書きだして実行させるのは俺には無理そうだとあきらめた。
0800デフォルトの名無しさん
2011/03/10(木) 19:49:13.62http://itpro.nikkeibp.co.jp/article/COLUMN/20100105/342883/?ST=android-dev&P=4
4ページ目のアクティビティの実装で、
エラーが検出されるのですが解決方法が分かりません。
ソースコードをコピペしていけば作れるのかと思ったのですが、
解決方法ご存知の方いらっしゃいましたらご教示願えないでしょうか。
環境はPleiadesを使っています。
0801デフォルトの名無しさん
2011/03/10(木) 19:55:37.78>ソースコードをコピペしていけば作れるのかと思ったのですが、解決方法ご存知の方
まず自分の頭で考えたらいいんじゃないでしょうか?
0802デフォルトの名無しさん
2011/03/10(木) 20:50:17.69どうも、ググッたほうが早かったみたいですね。
qaI//<ESC>j200000@a
と打つだけジャン。
これだから文型のカスグラマわww
qaI//<ESC>jq200000@a
と打つだけジャン。
これだから文型のカスグラマわww
0805デフォルトの名無しさん
2011/03/10(木) 21:25:02.16一週間でどうこうなるもんでもないだろすでにそれは
コメントアウトすれば解決するのだろうか? ありえない
しかも Eclipse 動かせないとか 無茶苦茶にもほどがある
0806デフォルトの名無しさん
2011/03/10(木) 21:49:27.260807デフォルトの名無しさん
2011/03/10(木) 21:51:58.00public static void main(
だろ
0808デフォルトの名無しさん
2011/03/10(木) 21:57:09.48割り当てメモリ1.5GBのEclipseで4万行ぐらいあるファイル編集した際にコード補完でぬるぽ連発した経験からいって
20万行のファイルは仮に開けてもまともに編集できないと思う。
0809デフォルトの名無しさん
2011/03/10(木) 22:12:50.30正規表現で行頭検索して置換文字を//にしてコメントアウトすりゃーいいんじゃないか?
viって手もあるけど
0810デフォルトの名無しさん
2011/03/11(金) 00:49:05.72だめではないけど「そういう記法が前提」で書かれているプログラムもある。
リフレクションで何かするようなクラスが入ったjarファイルを使う際は気をつけたほうがいいかも。
バランスが悪いかどうかは主観の問題。「このコードは美しいか否か」「このコードは
私の気分を害しない表記法か否か」位でしかないので、あきらめるほかないと思うよ。
まぁJavaプログラマーが
private void DoAnything { ... }
とか見て「なんでdoAnythingじゃないんだ、キモイ」と思うのと同じだと思うけど。
>>790
正直驚愕した。
0811デフォルトの名無しさん
2011/03/11(金) 00:52:53.64C++側でjavaのメソッドを呼んだ時、実際には呼んだだけだから、javaの方でその処理が行われるの?
それともC++側で行われる?
0812デフォルトの名無しさん
2011/03/11(金) 00:53:35.17自動生成かなんか?
0813デフォルトの名無しさん
2011/03/11(金) 00:57:40.06JVMの仕様は安定しているから
今のところはそれで問題ないはず
0814デフォルトの名無しさん
2011/03/11(金) 02:27:46.600815デフォルトの名無しさん
2011/03/11(金) 05:54:24.95あんまり使いどころないきがするんですが・・・。
0816デフォルトの名無しさん
2011/03/11(金) 09:31:16.91定数宣言するときに
public static final String HOGE_HOGE = "";
みたいなのはすごくよくやる
0817デフォルトの名無しさん
2011/03/11(金) 09:36:31.80オーバーライドや継承されたらまずいものっていうのは意外と多い
0818デフォルトの名無しさん
2011/03/11(金) 09:46:17.90Java側。JVM起動してその中で処理を行う。
0819デフォルトの名無しさん
2011/03/11(金) 10:05:20.68そこはあんまり、神経質になるとこじゃないな
そりゃまあ、一度定義したら変更しない変数は、プログラム書いてたら
いっぱいあるだろうが、無名クラスで、final つけないと参照できないとか
必要になったときだけ書いてればいいよ。
あとは、final static int XXX = 999; みたいに書いてあると、これはどこかで
使われる定数なのだなと人間にわかりやすくていい。
0820デフォルトの名無しさん
2011/03/11(金) 10:06:07.26第三版は出てないから、出版されてる中ではそれが最新。
とはいえ内容が最新ってわけではなくて追加や修正の情報も出てる。
http://java.sun.com/docs/books/jvms/second_edition/jvms-proposed-changes.html
http://java.sun.com/docs/books/jvms/second_edition/jvms-clarify.html
0821デフォルトの名無しさん
2011/03/11(金) 10:09:33.80スレッドプログラミングをする時に
変数の中身を確実に保証する為にはfinalにしないといけない
0822デフォルトの名無しさん
2011/03/11(金) 10:20:10.70それは暗に継承されないことを前提にしてるのでクラスにfinal付けたほうがいい
でないとequalsの実装に要求されるx.equals(y) == y.equals(x)を満たせない
イミュータブルなクラス作るときもクラスをfinalにしないと変更されないことは保障されない
0823デフォルトの名無しさん
2011/03/11(金) 10:27:31.37どうしても必要なのはインナークラスからクラス内のローカル変数を参照する時。
他は、再代入禁止とか継承禁止とかオーバライド禁止といった禁止事項を指定するもの。
オブジェクトの変数なんて滅多に再代入しないので、再代入を意識しているものだけ指定できた方が便利だと思う。
0824デフォルトの名無しさん
2011/03/11(金) 10:41:28.09まとめ
定数の時使う、enumで代用する人も居るけどな
インナークラスからクラス内の変数を参照しなければならない時に
該当の変数にfinalを付けても問題ない時に付ける
問題がある時は設計を見直す
スレッドを使う時に中身を保証したい時はfinal一択
0825デフォルトの名無しさん
2011/03/11(金) 11:05:46.460826デフォルトの名無しさん
2011/03/11(金) 14:45:22.030827デフォルトの名無しさん
2011/03/11(金) 17:22:23.37前前から気になっていたんですけど、どうして.NETでは大文字にしてるんですか?
言語仕様か何かなんですか?
0828デフォルトの名無しさん
2011/03/11(金) 17:27:42.71世の中にどんな記法があるか調べればいいと思う
0829デフォルトの名無しさん
2011/03/11(金) 17:38:40.42公開APIの名前を全部先頭大文字にするのはMSの昔からの慣習
C/C++ではJavaのような先頭小文字と並んでわりとよくあるスタイル
0830デフォルトの名無しさん
2011/03/11(金) 17:50:39.400831デフォルトの名無しさん
2011/03/11(金) 17:56:50.25どういうスタイルを採用するかは勝手だけど統一するのが大事。
.NETやJavaにはそれぞれガイドラインがある。
0832デフォルトの名無しさん
2011/03/11(金) 17:59:20.540833デフォルトの名無しさん
2011/03/11(金) 18:17:04.55C++(特に決まっていないが先頭大文字スタイルはよく使われる),
Delphi, .NET など
全部小文字やアンダースコア区切り
C/C++(標準ライブラリ), Python, Ruby, Perl, PHP
0834デフォルトの名無しさん
2011/03/11(金) 18:20:51.970835デフォルトの名無しさん
2011/03/11(金) 18:23:29.330836デフォルトの名無しさん
2011/03/11(金) 18:25:56.28doAnythingが一番不自然でしょ
そういうことに決めているから、としか
0837デフォルトの名無しさん
2011/03/11(金) 18:26:41.160838デフォルトの名無しさん
2011/03/11(金) 18:32:32.280839デフォルトの名無しさん
2011/03/11(金) 18:34:14.490840デフォルトの名無しさん
2011/03/11(金) 18:34:59.060841デフォルトの名無しさん
2011/03/11(金) 18:42:06.950842デフォルトの名無しさん
2011/03/11(金) 18:45:38.750843デフォルトの名無しさん
2011/03/11(金) 18:47:51.860844デフォルトの名無しさん
2011/03/11(金) 18:56:16.350845デフォルトの名無しさん
2011/03/11(金) 18:59:31.07beansじゃないけど関数名一覧とかregexpでの処理に便利でしょ。
0846デフォルトの名無しさん
2011/03/11(金) 19:02:12.39こんな感じだからMSから移りたくない
0847デフォルトの名無しさん
2011/03/11(金) 19:05:55.00いつまでもMSの世界に居てください
0848デフォルトの名無しさん
2011/03/11(金) 20:14:17.13なんともないぜ
0849デフォルトの名無しさん
2011/03/11(金) 23:02:54.77おいてめーcreatさんディスってんじゃねーぞ
0850デフォルトの名無しさん
2011/03/12(土) 02:12:31.73そりゃあ「クラス名大文字にして変数名小文字にしたら、どっちがクラス名なのか変数名なのか
分かりやすいんじゃね?」という発想があったからだわ。
現実問題として言えば、プログラマーならンなこと気にしなくても分かるっつっちゃわかる。
(誤解版の)ハンガリアン記法っぽいわな。その辺は。
>>843
そう思うなら別にいいと思うが、俺の見た限りホモもゲイもいなかったな。
VB界は99%のDQNと1%のマジGODの世界だと思うよ。
VBほどはっきり天才とバカが見分けつく言語は珍しいと思う。
アレだ、チャーハンとかC言語とかみたいに当人の腕が一発で分かるんだよ。
ただVBはCよりもっと分かりやすい。
>>846
あれは「シェルスクリプトを書くこと」が前提のネーミング。
コマンドが長いとタイプするのがめんどくせぇのさ。
Windows界の「基本的にアイコンをダブルクリックしてアプリ起動」の世界とは
また違う文化だという程度でしかない。
0851デフォルトの名無しさん
2011/03/12(土) 02:14:19.20つ alias
0852デフォルトの名無しさん
2011/03/12(土) 02:36:44.390853デフォルトの名無しさん
2011/03/12(土) 02:40:05.260854デフォルトの名無しさん
2011/03/12(土) 02:46:52.37そうだな。
ls じゃなく
showDirectoryContents
にするべきだなw
0855デフォルトの名無しさん
2011/03/12(土) 02:48:53.940856デフォルトの名無しさん
2011/03/12(土) 02:50:08.490857デフォルトの名無しさん
2011/03/12(土) 02:51:06.750858デフォルトの名無しさん
2011/03/12(土) 02:54:36.35↓以下、駄レスじゃない話題をお楽しみください。
0859デフォルトの名無しさん
2011/03/12(土) 02:55:15.40そんなあなたは一生 MS VISUAL BASIC
0860デフォルトの名無しさん
2011/03/12(土) 03:02:44.18三大バカ言語
0861デフォルトの名無しさん
2011/03/12(土) 09:40:40.300862デフォルトの名無しさん
2011/03/12(土) 11:25:55.05APLより、Rubyより、
何をおいてもC++だと思うんだけど…
0863デフォルトの名無しさん
2011/03/12(土) 12:50:39.590864デフォルトの名無しさん
2011/03/12(土) 12:59:46.85平凡なコーダーが「難しい」って感じるなら、バカ言語なんじゃね?
0865デフォルトの名無しさん
2011/03/13(日) 12:33:06.94■疑問に思ったコード
1: public class Test {
2: public static void main(String args[]){
3: byte b = 7;
4: byte b2 = b*2; //コンパイルエラー。エラー内容→型の不一致。intからbyteに変換できません。
5: int i = b;
6: int i2 = 7;
7: String s = 7; //コンパイルエラー。エラー内容→intからStringには変換できません。
8: String s2 = b; //コンパイルエラー。エラー内容→byteからStringには変換できません。
9: }
10: }
■補足
3行目でエラーがでないのは、7がbyte型だから?
7行目でエラーが出てるけど、7がint型として扱われてるっぽいエラー内容。
7がint型なら、なぜ3行目はエラーにならない?
0866デフォルトの名無しさん
2011/03/13(日) 12:51:32.95>3: byte b = 7;
が暗黙裡にキャストされてるだけでしょ。リテラルだから。
0867デフォルトの名無しさん
2011/03/13(日) 12:52:21.033行目はコンパイラの判断で byte b = (byte)7; と解釈される。
確かに4行目もオーバーフローしないのはコンパイル時に明らかなんだけど、そこまでは面倒見てくれない。
0868デフォルトの名無しさん
2011/03/13(日) 13:37:17.17レスありがとう。
だいたい理解できました。
コードに直接書いた数値は、整数であればintとして扱われる。
変数を使用せずに、直接コードに書いた数値だけならば、演算が含まれていても暗黙的にキャストしてくれる。
ただし、キャスト対象の型の範囲内に収まらない場合、型の不一致としてエラーになる。
■以下は検証結果。コメントが無い行はエラーにならない。
int i = 1;
byte b = 127;
byte b2 = 128; //型の不一致:int型からbyte型には変換できません。
byte b3 = 10*4/3;
byte b4 = i; //型の不一致:int型からbyte型には変換できません。
0869デフォルトの名無しさん
2011/03/13(日) 21:59:29.03文字入力ってどうするの?
2011/03/13 21:56:59 org.apache.catalina.core.StandardWrapperValve invoke
致命的: サーブレット Customer のServlet.service()が例外を投げました
java.lang.NumberFormatException: For input string: "志賀太郎"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at controller.Customer.doPost(Customer.java:44)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
0870デフォルトの名無しさん
2011/03/13(日) 22:07:58.02parseIntからエラー出てるんだろ?"志賀太郎"を数値項目にねじ込もうとしたんじゃねーの?
0871デフォルトの名無しさん
2011/03/14(月) 15:21:34.02ファイルをドラッグアンドドロップしてjarファイルを起動することはできないのでしょうか
バッチファイルを別に用意して
@echo off
java -jar Hoge.jar %1
などとすれば同等のことは実現できたのですが、もっと上手い方法はないのかなと思っている次第です
0872デフォルトの名無しさん
2011/03/14(月) 15:43:36.650873デフォルトの名無しさん
2011/03/14(月) 16:11:11.350874デフォルトの名無しさん
2011/03/14(月) 16:43:09.19マニフェストで何か設定したりとかでできないかと思ったけど、まぁ役割違うもんな
ありがとうございました
0875デフォルトの名無しさん
2011/03/15(火) 16:48:02.09EntityManagerFactoryは生成コストが高いから
アプリの起動時に生成とopenして
アプリの終了時にcloseすると思うけど。。。
0876デフォルトの名無しさん
2011/03/15(火) 17:14:17.86スドッレー
0877デフォルトの名無しさん
2011/03/15(火) 21:53:43.45解決した答えを書いとくのがネット使う際のマナーな
0878デフォルトの名無しさん
2011/03/15(火) 22:25:19.52アプリケーションの終了時に閉じられます。その作成は経費のかかるプロセスです。
Hibernate に慣れ親しんでいるユーザーには、entity manager ファクトリはとても
セッションファクトリに似ていることが分かるでしょう。実際、entity manager ファクトリは
セッションファクトリの上にあるラッパーなのです。
entityManagerFactory への呼び出しは スレッドセーフです。
ファクトリは使い回せってことですね。
ファクトリ≒DataSource、エンティティマネージャ≒Connectionなんだろ、内部的には。
0879デフォルトの名無しさん
2011/03/16(水) 00:34:35.97先日version6 Update24のJREにアップデートしてからだと思うのですが、javaで動作するソフトもこのようにぼやけるようになっていました。
一度JREを全てアンインストールしてからSDKをいれようとしてもこの有様です
どうしたら正常な表示に戻せるでしょうか
Windows7の64Bitです
0880879
2011/03/16(水) 01:04:32.39ttp://imepita.jp/20110316/017860
0881876
2011/03/16(水) 01:17:04.18>>878
E・M・Factoryは重いがスレッドセーフのためアプリに1つあればよい
一方でEntityManagerはセーフではないためスレッドごとに生成する必要があるみたい。
つまり一般的には必要な直前で生成してopenしてトランザクション終わったら
ささっとcloseするみたいだけど
スレッドの開始時に生成&open()、スレッドの終了時にclose()するようにして
1スレッド内で1つのE・Managerつかいまわしてもいいみたい。
ただし外人が言うには最後のcommit()が確実に実行されるように
一般的なやり方が良いとのこと。
http://stackoverflow.com/questions/3393186/keeping-jpa-entitymanager-open
0882デフォルトの名無しさん
2011/03/16(水) 12:27:26.562.Antビルドで実行する
3.1で追加したパッケージが見つからないと怒られる
な…何故…。
ソース上ではちゃんと反映されてるし…
0883デフォルトの名無しさん
2011/03/16(水) 12:33:10.920884デフォルトの名無しさん
2011/03/16(水) 12:50:02.31即レスありがたや・・・。
まさにそのとおりでした。
0885デフォルトの名無しさん
2011/03/16(水) 17:33:30.51もとの文字列は囲み文字無し、タブ区切りで4列、行数はわかりません。
public class CSV {
private String[][] aryCSV;
public CSV(String plain){
String[] array1 = plain.split("\n");
int row=array1.length;
aryCSV=new String[row][];
for(int y =0;y==row-1;y++){
aryCSV[y]=new String[4];
aryCSV[y]=array1[y].split("\t",4);
}
}
public String[][] getCSV(){
return aryCSV;
}
}
よろしくお願いします。
0886デフォルトの名無しさん
2011/03/16(水) 17:37:59.57>for(int y =0;y==row-1;y++){
条件式おかしくね?
0887デフォルトの名無しさん
2011/03/16(水) 17:42:34.45y<row;にしたら多分うまくいきました。ありがとうございました。
0888デフォルトの名無しさん
2011/03/16(水) 17:51:38.63aryCSV[y]=new String[4];
この行いらなくないか?
0889デフォルトの名無しさん
2011/03/16(水) 17:52:40.94なくても動きました。
ありがとうございます。
0890デフォルトの名無しさん
2011/03/16(水) 18:59:13.66Test2クラスとTest3クラスの動作は完全に同じですか?
■ソース
//Test2クラス
1: public class Test2 {
2: int testInt = 3; //�@
3:
4: public void a(){
5: System.out.println(testInt);
6: }
7: }
//Test3クラス
1: public class Test3 {
2: int testInt;
3:
4: Test3() {
5: testInt = 3;
6: }
7:
8: public void a(){
9: System.out.println(testInt);
10: }
11: }
■備考
コンストラクタはインスタンスが生成された時に動くものだと学びました。
コメントの�@で記した行はよくわかりませんが、動作を見る限りではインスタンスが生成された時に初期化されているように見えます。
0891デフォルトの名無しさん
2011/03/16(水) 19:26:38.33Test3のコンストラクタはpublicでないので別パッケージから呼べません
0892デフォルトの名無しさん
2011/03/16(水) 19:42:22.20何をもって完全に同じと見るかだな。
a()の時点でint値は同じならいいのか?
バイナリコードが違うならJVMの動きは当然違うわけだが。
それとコンストラクタはインスタンスが生成されてから動くのではなく、生成されるときに動く。
この違いは地味に意味がある。
0893デフォルトの名無しさん
2011/03/16(水) 20:11:30.13int testInt = 3; //�@
の後にコンストラクタで
4: Test3() {
5: testInt = 2;
6: }
とやると2で上書きされるかな?
そしたら違うと言えば違う。
Youが同じと言ってるのはたまたま設定した値が同じという意味じゃないか?
0894デフォルトの名無しさん
2011/03/16(水) 20:12:42.01>>891
Test2もTest3も外部からコンストラクタを呼び出しってゆうと・・・
newするときに使いますが、明示的に呼び出すことはできないので、振る舞いは同じでは?
>>892
ちょっと質問の仕方がおかしかったかもしれません。
私は初期化を行う場合は、final staticな定数以外は、全てコンストラクタを使って初期化しています。
しかし、見る場所が変数を定義した場所と、コンストラクタ内の処理の2箇所になってしまいますし、
コンストラクタをオーバーロードしている場合、同じ処理を何度も書かなければいけません。
そこで、変数宣言時に値を入れてしまってもいいんじゃないかなと思って書きました。
何か発生しうる問題があれば教えて欲しいです。
0895デフォルトの名無しさん
2011/03/16(水) 20:14:14.31コンストラクタで代入するより宣言的で好ましい
0896デフォルトの名無しさん
2011/03/16(水) 20:18:59.090897デフォルトの名無しさん
2011/03/16(水) 20:23:11.92私の質問の仕方が悪かったんですが、私が考えている事と少し違います。
>>895
おぉ、そうゆうものでしたか。
今度から宣言時に初期化することにします。
ありがとうございました。
0898デフォルトの名無しさん
2011/03/16(水) 20:28:23.50newするときに使うから、つまり別パッケージのクラスではnew Test2();ができるけどnew Test3();はできないんだよ
0899デフォルトの名無しさん
2011/03/16(水) 20:46:16.37定義されるのが言語仕様だよ。一度逆コンパイラでも使ってみな。
$ cat a/A.java
package a; public class A{}
$ cat b/B.java
package b; public class B { public static void main(String[] args){ new a.A(); } }
$ javac b/B.java
$ java b.B
0900デフォルトの名無しさん
2011/03/16(水) 23:08:05.98そんな当然の事を言われましても…
0901デフォルトの名無しさん
2011/03/16(水) 23:12:26.48ファイルをバイト単位で読んだ時に128以上がEclipseではマイナス扱いで読まれた。
こういうことってあるんですね。
0902デフォルトの名無しさん
2011/03/16(水) 23:19:32.68>>291,298
0903デフォルトの名無しさん
2011/03/16(水) 23:20:27.440904デフォルトの名無しさん
2011/03/16(水) 23:21:33.60OSはvistaで「キーストアのパスワードを入力して下さい」とカーソル表示が出た後、キーボードの文字が打てなくなります
enterは押せます
0905デフォルトの名無しさん
2011/03/16(水) 23:24:22.440906デフォルトの名無しさん
2011/03/16(水) 23:26:19.25再現できる最小ソースまたはそれぞれのクラスファイルを。
まぁ昔から Eclipse で動かすコンパイラはちょっと変な動きをするけどな。
0907デフォルトの名無しさん
2011/03/16(水) 23:38:15.18ありがとおおおおおおお
次進めたよ
0908デフォルトの名無しさん
2011/03/16(水) 23:41:05.03br=new BufferedReader(new InputStreamReader(new FileInputStream(new File("FileName"))));
d=br.read();
で同じファイルを読んだ時値がNBでは全て正の数だったのに
ECでは負の数が含まれて動作異常がおこり気がついた。
詳しいところは調査中で混乱してます。
0909デフォルトの名無しさん
2011/03/16(水) 23:51:49.26その程度は言語仕様通りに動きます。
多分あなたの勘違いでしょう。
0910デフォルトの名無しさん
2011/03/17(木) 01:01:50.49バイナリエディタで書いた値をEclipse側で読ませた結果
80〜FFが全て65533になったり
たまに前後のbitに影響受けたり受けなかったりで
なんだかわからなくなってしまいました。
0911デフォルトの名無しさん
2011/03/17(木) 01:31:37.31バイナリの値をReaderで読むな
0912デフォルトの名無しさん
2011/03/17(木) 02:56:12.870914デフォルトの名無しさん
2011/03/17(木) 14:21:16.2565533てのはたぶん文字U+FFFDのことだ。
nioのCharsetDecoder各種実装は、変な文字読ませるとよくこういう字を返す。
>911の言うとおり、おそらくReader使うこと自体間違ってる。
IDEによって各種Readerのデフォルトエンコードが違うのはありふれた話。
0915デフォルトの名無しさん
2011/03/17(木) 20:10:40.600916デフォルトの名無しさん
2011/03/17(木) 23:09:04.09http%3A%2F%2Fhogehoge.com%2F%E3%81%BB%E3%81%92%E3%81%BB%E3%81%92 になってしまいます。
http://hogehoge.com/%E3%81%BB%E3%81%92%E3%81%BB%E3%81%92 にするのはどうすればよいですか?
0917デフォルトの名無しさん
2011/03/17(木) 23:24:47.920918デフォルトの名無しさん
2011/03/18(金) 00:13:51.82URI#toASCIIString()の出番だろ
0919デフォルトの名無しさん
2011/03/18(金) 06:10:43.30データベース上に同じスキーマが既にあるかどうかを返すにはどうしたらいいでしょうか?
select文で「hoge」をとって、結果がnullだったら分岐、のようにやったり、
getString("hoge")がnullだったら、などを試したのですがだめでした。
どなたかわかるかたアドバイスよろしくお願いします。
0920デフォルトの名無しさん
2011/03/18(金) 06:11:50.19java自体はアンインストールしたんですが
アドオンの「Java(tm) Plug-In 2 SSV Helper」が消えずに残ってしまいました
削除のボタンも押せない状態になっていて、詳細を見ても利用不可となっています
このアドオンを削除する方法をご存知の方がいましたらアドバイスお願いします
0921デフォルトの名無しさん
2011/03/18(金) 10:13:51.34データベース上に同じスキーマが既にあるかどうかを返すにはどうしたらいいでしょうか?
スキーマ?? プライマリーキーでいいの??
select count(*) from hoge_tabel where id = 'hoge';
で件数取得すればいいんでない?
0922デフォルトの名無しさん
2011/03/18(金) 16:42:17.59Java、SQL(DB)の勉強をしてみたく、仲間内で利用できる簡単なSNSを作成しようと思っています。
データベース構造を参考にしたいのですが、参考にできるサイトとかないでしょうか?
0923デフォルトの名無しさん
2011/03/18(金) 16:51:34.61正規化とかちゃんと意識すれば
自然に構造は決まってくるけど。
基本は第3正規形で、
http://www.atmarkit.co.jp/fdb/rensai/db_enginer03/db_enginer03_1.html
一部、第4、第5で。
http://www.atmarkit.co.jp/fdb/rensai/db_enginer03/db_enginer03_4.html
0924922
2011/03/18(金) 17:15:19.98ありがとうございます。一読してみます(^^
0925デフォルトの名無しさん
2011/03/18(金) 20:41:34.11Connection#getMetaData()で拾えない?
0926879
2011/03/19(土) 00:54:05.44RADEONのグラボを使用していて、ドライバソフトのCatalystControlCenterの設定で形態学的フィルタリングをオンにするとこの症状になりました
0927デフォルトの名無しさん
2011/03/19(土) 18:56:44.23public static void main(String args[]) {
Main m = new Main();
m.start();
…
初歩的な質問です。よくある出だしですが。
まず静的クラスとしてMainが実行され
中で自己のインスタンスmが作られる…のはわかるのですが
またそのmのMainの中でmが作られる…の永久ループにならないのは何故なんでしょうか。
0928デフォルトの名無しさん
2011/03/19(土) 19:24:45.100929デフォルトの名無しさん
2011/03/19(土) 19:34:24.56mainが実行されるのはクラスの時なんですね。
0930デフォルトの名無しさん
2011/03/19(土) 19:48:01.880931デフォルトの名無しさん
2011/03/19(土) 19:58:29.14Mainのmain
Mainのコンストラクタ
2番目のはjava.exe Mainってやったから呼ばれてるだけ
0932sage
2011/03/19(土) 20:34:28.69Eclipseの「パッケージエクスプローラー」のツリーってどうやってつくってるの?
なんとなくJTREEではない様な気がするんだけど。
あんなツリー表示のアプリを作ってみたくて。
0933デフォルトの名無しさん
2011/03/19(土) 20:57:43.320934デフォルトの名無しさん
2011/03/19(土) 21:01:47.95ネイティブコードで作ってJavaから使ってるだけ
0935932
2011/03/19(土) 21:16:10.84AWTとSWING以外のSWTって初めて知った。
>934
そういう方法もあるんだ。
2人ともありがと。
0936デフォルトの名無しさん
2011/03/19(土) 21:23:37.030937デフォルトの名無しさん
2011/03/20(日) 11:05:16.67どうやって複数の関数内の変数を受け渡しすればいいですかね?
0938デフォルトの名無しさん
2011/03/20(日) 11:08:24.350939デフォルトの名無しさん
2011/03/20(日) 11:10:54.700940デフォルトの名無しさん
2011/03/20(日) 11:20:52.38static importも使えばそれっぽくなる
0941デフォルトの名無しさん
2011/03/20(日) 12:42:52.34やはり this の部分がエラーになってしまいました。
ここは何に置き換えればいいですか?
クラス名ではだめでした。
0942デフォルトの名無しさん
2011/03/20(日) 13:06:08.33もう諦めれ
0943デフォルトの名無しさん
2011/03/20(日) 13:09:08.950944デフォルトの名無しさん
2011/03/20(日) 13:22:06.690945デフォルトの名無しさん
2011/03/20(日) 17:38:50.71ブロパティファイルを読み込んで適用、ってだけじゃなくて、
・コンフィグ適用ロジックと、モデルが強結合しないための仕組み
・firefoxのabout:configと設定ダイアログのような、即時適用とバッチ適用の仕組み
・cisco iosでいうところのrunning-configとstartup-configを泥臭くなく実現する仕組み
あたり。
イメージどしてはasn.1で書いたコンフィグモデルとアプリケーションドメインモデルの間をつなぐ感じ。
0946デフォルトの名無しさん
2011/03/20(日) 17:40:25.15もう、どこまで知ってるのか知らないのか想像も出来ない。
どうやったらこういう思考でプログラムを作ろうというヤツになるんだ。
0947デフォルトの名無しさん
2011/03/20(日) 17:40:39.160948デフォルトの名無しさん
2011/03/20(日) 19:58:20.200949デフォルトの名無しさん
2011/03/21(月) 04:43:10.320950デフォルトの名無しさん
2011/03/21(月) 12:44:58.42sqlまで発行させろとは言いませんが、列を指定して行を検索したりしたいです。
0951デフォルトの名無しさん
2011/03/21(月) 15:54:31.94データベースのどの側面が欲しいかによると思う。
・機能なのか (SELECTでのカラム入れ替え、JOIN、ORDER BYなど)
・性能なのか (複雑なクエリに対する性能劣化が小さいこと)
・インターフェイスなのか (SQL文)
とりあえず、SqlJetでin memoryにどうでしょか。
0952デフォルトの名無しさん
2011/03/21(月) 17:19:23.65これのHTML表示部の文字コード指定方法分かる方いますか?
HTMLファイル冒頭のcharset指定はどうも無視されるようなので…
0953デフォルトの名無しさん
2011/03/21(月) 21:06:55.34下記のコードでは2バイトとなってしまいます。
修正が必要、またはそもそも間違っているのかご指摘お願いいたします。
int in = 130
Integer.toHexString(in);
byte[] by = hex.getBytes("SJIS");
0954デフォルトの名無しさん
2011/03/21(月) 21:07:51.71コードが誤っていましたので修正です。
int in = 130
String hex = Integer.toHexString(in);
byte[] by = hex.getBytes("SJIS");
0955デフォルトの名無しさん
2011/03/21(月) 21:16:36.48Integer#toHexString(int) は10進数の130を16進数の文字列に変換するので
Integer.toHexString(130) は "82" になる。
1バイトだけなら byte[] by = { (byte)130 }; でいいんじゃね?
複数バイトなら>>420-422あたりにある。
0956デフォルトの名無しさん
2011/03/21(月) 21:23:37.790957デフォルトの名無しさん
2011/03/21(月) 21:31:19.790958デフォルトの名無しさん
2011/03/21(月) 21:35:49.330959デフォルトの名無しさん
2011/03/21(月) 21:55:48.12char
0960デフォルトの名無しさん
2011/03/21(月) 22:11:11.94ありがとうございます!
キャストすると0〜255の範囲で扱えるとは知りませんでした。
ただし、キャストだと文字コード指定できませんので、
>>420のgetBytesを使う方法になりそうです。
ただ、getByteに必要なStringとして130を渡す必要があるため、
Integer.toHexStringを使ってStringを生成していますが
正しいのかよくわかっていないため調べてみます。
0961デフォルトの名無しさん
2011/03/21(月) 23:27:01.75現在、Androidアプリを作成中なのですが、JDK1.5のいくつかのソースコードを改変して
アプリに組み込もうと思っております。
javaのライセンスは確かGPLだったと思うので、作成したアプリの
ソースコードを公開してしまえば、問題なかったでしょうか?
よろしくお願いします。
0962デフォルトの名無しさん
2011/03/21(月) 23:32:14.95OpenJDKの方
0963デフォルトの名無しさん
2011/03/21(月) 23:57:16.43JAVAのライセンスは結構ややこしいですね。。。
ライセンスのことをもう一度調べてみようと思います。
ありがとう御座いました。
0964デフォルトの名無しさん
2011/03/22(火) 02:05:09.11Object型の変数.toString()ではClassCastExceptionになりました。
0965デフォルトの名無しさん
2011/03/22(火) 03:16:18.530966デフォルトの名無しさん
2011/03/22(火) 09:34:09.300967デフォルトの名無しさん
2011/03/22(火) 09:44:04.90GPLで配布されてるOpenJDKは今のところ1.6と1.7だけだったような
0968デフォルトの名無しさん
2011/03/22(火) 10:42:18.71「キャストだと文字コードが指定できない」とか、表現からすると、やりたいこととやってることに勘違いが重なっているように見えるんだが。
「int値"130"を要素1個のバイト配列にする」のに文字コードなんて関係ないだろ。
「SJISコード'130'の入ったint変数をバイト配列にしなさい」とかいうおバカな課題でも出されたのか。
0969デフォルトの名無しさん
2011/03/22(火) 14:04:37.66書き込み前のファイル末尾〜書き込み開始位置までは0で埋められるのでしょうか?
それとも、書き込み前のファイル末尾から書き込まれるのでしょうか?
0970デフォルトの名無しさん
2011/03/22(火) 15:09:34.80> それとも、書き込み前のファイル末尾から書き込まれるのでしょうか?
少なくともRandomAccessFile#write(int)、RandomAccessFile#write(byte[])の
API仕様の記述に反する振る舞いだから基本的にないと思っていい。
> 書き込み前のファイル末尾〜書き込み開始位置までは0で埋められるのでしょうか?
API仕様には直接的な記述はなかったはず。
RandomAccessFile#setLength(long) には
> length により返されたファイルの現在の長さが newLength 引数よりも小さい場合、
> ファイルは拡張されます。この場合、ファイルの拡張部分の内容は定義されていません。
って書いてあるから、これに準じた振る舞いをするんじゃないかと。
ちなみに、Windowsで元々大きかったファイルを再拡張した場合に、
元々の内容がそのまんま残ってたりする事もある。
0971デフォルトの名無しさん
2011/03/22(火) 16:09:52.490972デフォルトの名無しさん
2011/03/22(火) 16:28:18.48繋がってhttp://java.com/ja/に転送される
0973デフォルトの名無しさん
2011/03/22(火) 16:56:16.23グローバルIPが弾かれていました。
頭が1.から始まるとアクセス出来ないそうです。
失礼しました。
0974デフォルトの名無しさん
2011/03/22(火) 16:59:09.12そういう事じゃない?
0976デフォルトの名無しさん
2011/03/22(火) 20:19:23.78一種のクラナドやん
0977デフォルトの名無しさん
2011/03/22(火) 20:36:28.38Flashのようなプラグイン式に比べてユーザーの負担や嫌悪感が非常に大きい
0978デフォルトの名無しさん
2011/03/22(火) 21:32:26.64以下のような、クラス内でpaintメソッドを定義したJFrameを継承したクラスXXXのインスタンスを、mainメソッドから生成してmeeenメソッド中の処理を行うようにしたいです。
class XXX extends JFrame{
Image offi;
Graphics offg;
public XXX(){
offi = createImage(640, 480);
offg = offi.getGraphics();
meeen();
}
public void paint(Graphics g){
offg.setColor(new Color(0,0,0));//[[[[この行]]]]
offg.drawString("うるおいミルク ぷー",100,100);
g.drawImage(offi,0,0,this);
}
public void meeen(){処理;}
}
実行してみると、上の[[[[この行]]]]を含む行にNullPointerExceptionが発生する時があります(しない時もあります)。
例外が発生した時はXXXのコンストラクタ内の特定の処理が終了する前にpaintメソッドが呼び出されてしまったということなのでしょうか?
どなたか解説お願いします!
0979デフォルトの名無しさん
2011/03/22(火) 23:12:01.370980デフォルトの名無しさん
2011/03/23(水) 02:34:24.84ここ見てるPG/SEの帰宅時間に関係があったりして
0981デフォルトの名無しさん
2011/03/23(水) 03:49:18.33SVN 以外での配布やめたの?
http://tomcat.apache.org/taglibs/standard/
0982デフォルトの名無しさん
2011/03/23(水) 08:50:37.11以下のようにあるから、恐らく開発中。
> not yet JCP approved
0983デフォルトの名無しさん
2011/03/23(水) 08:52:58.24初心者にしては珍しく具体的な情報が多くて良い質問だなぁ。
main()とEDTは別プロセスだから、mainの実行中にswingのオブジェクトツリーに追加されるような操作(setVisible(true)とか)すると、以降非同期にEDTからpaint等が呼ばれる可能性があるような。
JFrameってコンストラクタでsuper()しなくていいんだっけ?
0984デフォルトの名無しさん
2011/03/23(水) 08:59:39.60暗黙的にそれが呼ばれます。
0985デフォルトの名無しさん
2011/03/23(水) 09:04:55.04>JFrameってコンストラクタでsuper()しなくていいんだっけ?
自分が初心者のくせになに言ってんだw
0986デフォルトの名無しさん
2011/03/23(水) 09:49:22.52相手にするな
0987デフォルトの名無しさん
2011/03/23(水) 10:01:09.160988デフォルトの名無しさん
2011/03/23(水) 13:30:12.60現在はダブルバッファリングの実装を必要としない方法に書き換えました。
質問の状態ではsetVisible(true)をXXXのコンストラクタ内に記述していたのですがこれがいけなかったのでしょうか。
ということはつまり、JFrameのインスタンスを生成する際にはコンストラクタ内の処理とpaintメソッド内の処理のどちらが先に行われるかはわからないということでしょうか?
また、
>JFrameってコンストラクタでsuper()しなくていいんだっけ?
についてできれば詳しく教えていただきたいです。
0989デフォルトの名無しさん
2011/03/23(水) 15:11:35.050990デフォルトの名無しさん
2011/03/23(水) 15:32:22.96コンストラクタの処理とpaintの処理については、StringBuilderのようなフィールドにそれぞれの呼び出しで別の値を追加するようにすればわかるんじゃないかな?
で、Javaはコンストラクタの先頭で明示的にsuperを指定しないと引数なしの superが自動的に呼び出される。
0991デフォルトの名無しさん
2011/03/23(水) 16:14:20.21サーバー側で複数ファイルをzipなどで圧縮して1ファイルにし
ブラウザにダウンロードさせ、それを解凍してもらうしかないでしょうか?
0992デフォルトの名無しさん
2011/03/23(水) 16:58:12.40オフスクリーン用 Graphics は paint 内で作るとよい。
if (offg == null) offg = offi.getGraphics();
0993デフォルトの名無しさん
2011/03/23(水) 17:08:39.65んなことせんでも Swing は最初からダブルバッファ機構あるから
自前でやる必要まったくない
なにもしなくてもおけ
paintComponent(Graphics g)
これオーバライドして、適切なタイミングで repaint 呼び出すだけでよい
ちなみに repaint は、ちゃんと再描画の範囲を指定してやると無駄な処理が少なくなっていい
0994デフォルトの名無しさん
2011/03/23(水) 20:16:20.23JFrame のサブクラスでなにかを描画するプログラムを
書くよりは、まず JComponent のサブラクス作って、そこに描画
のプログラム書いて、
そのパネルを main メソッドの中で JFrame#setContentPane とかして、
表示させるのがいい
コードが整理されて見やすいし、アプレットとかにも転用できる
0995デフォルトの名無しさん
2011/03/23(水) 20:30:15.370996デフォルトの名無しさん
2011/03/23(水) 22:11:39.11オライリーのSwingHacksとかでも、描画関連の処理はpaintComponentでやれって書いてたな
SwingHacksは、ちょっと古いけどSwingの描画まわりはかなり詳しく解説されてた
Swingを本気でやるならオススメだ
>>995
Swing自体、複雑だしわかりにくいからな
その辺りを解消するために、Swing Application Frameworkとか開発されてたけど、
今、どうなってるか知ってる人いる?
0997デフォルトの名無しさん
2011/03/23(水) 22:38:12.51SWTみたく別スレッドからアクセスしてきたから
即例外エラー出さないからねえ
しかし、それでも、コンポーネントの組み替えとか
必要なところだけ SwingUtilities.invokeLater(doRun)
やればいいだけだろう、そんなに難しい話じゃない
0998デフォルトの名無しさん
2011/03/24(木) 04:51:30.650999983
2011/03/24(木) 07:54:24.69> スーパークラスにデフォルトコンストラクタが定義されていれば
>暗黙的にそれが呼ばれます。
そうだっけ。
最近そういうの全然意識してなかったうえに、swing使ってた頃はJFrameは引数付けて呼んでたもんで、確認せずに適当に書いた。
984以降指摘してくれた各位と質問者にお礼とお詫びする。
ありがとう。混乱させてすまなかった。
ついでに埋め。
1000デフォルトの名無しさん
2011/03/24(木) 10:07:02.5110011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。