★★Java質問・相談スレッド143★★

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
プログラミング言語Javaに関する質問スレです。
JavaScript, 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/
2デフォルトの名無しさん: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/
3デフォルトの名無しさん:2011/01/25(火) 03:14:16
■ NetBeansに関する雑談は --
NetBeans 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
41:2011/01/25(火) 03:16:35
テンプレのうち、Eclipseスレに問題があったので訂正。
dat落ちしていたスレッドは、新しいスレッドに置換した。
前スレはP2ユーザーがp2からブラウザでスレを立てた影響で余計な(p)記号があったので消した。
またサブドメインが古いpc12からhibariに変更されたのでそれに伴いURLも変更。


スレ立ては以上。
5デフォルトの名無しさん:2011/01/25(火) 13:40:19
質問させて下さい。スレ違いでしたらすみません。
tomcat6.0.29を、jdkを、sunの1.6.0_22を使っていました。
今回、同1.6.0_23にしたところ、tomcatの動作には問題ないのですが、jstatで情報が取れなくなりました。
jpsでも該当プロセスが出て来ません。
これはアップデートの際の何かの仕様変更による想定通りなのでしょうか?
それとも不具合なのでしょうか?
6デフォルトの名無しさん:2011/01/25(火) 17:30:02
>>5
JDKをアップデートしたら使えなくなった?

JAVA_HOMEの設定変えてないとか、ではないよな?
7デフォルトの名無しさん:2011/01/25(火) 17:48:12
>>6
シンボリックリンクの張り替えでバージョン切り替えているので、
パスにおける差異は発生してません。
8デフォルトの名無しさん:2011/01/25(火) 18:18:30
Apacheと連動させている?
9デフォルトの名無しさん:2011/01/25(火) 18:34:18
はい、8080は起動せずに8009でajpで連携してます。
tomcat側は今まで取得していた状態から変更はしていません。
ただ、使用するjdkが置き換わっているのみです。
jsvcでの起動を疑ってjsvcを使わないようにしてみましたが結果変わらず。
jdkが_22であれば、jsvcの有無を問わずに正常にjpsもjstatも結果が返ります。
10デフォルトの名無しさん:2011/01/25(火) 19:37:25
Javaをダウンロードした後でchecksumとかした?
11デフォルトの名無しさん:2011/01/25(火) 19:42:47
String に入った文字列を nateve2ascii みたいに \uXXXX 形式に変換する方法を教えてください。
1文字ずつ、自力で変換しないとダメですか?
125:2011/01/25(火) 22:05:12
ID出ないのを失念してました。
5=7=9です。

>>10
すみません、jdkはハッシュを確認していません。
というか比較すべきハッシュ値がどこにあるか判ってませんでした。
※tomcatなんかは、ダウンロードするすぐ側にあるので判るのですが…。

ダウンロードしているのは jdk-6u23-linux-i586.bin です。
なお、二つの全く異なる環境で同様の事象が起きており、
片方は11/17にダウンロードしたjdk、もう片方は本日ダウンロードしたjdkです。
※どちらもバージョンは一緒で、双方のハッシュはmd5にて同値である事を確認。
13デフォルトの名無しさん:2011/01/25(火) 23:44:40
アプレット上にパネルを2つ置きました。
1つ目はセルに分割し、各セルにボタンを配置しボタンをクリックすると各セルのボタンの色が変わりもう1度押すと元の色に戻るプログラムを入れました。
2つ目のパネルではある計算を実行し、計算結果を出力する画面を作りました。

そこでなんですが、一つ目のパネルで色が変わったセルの位置を2つめのパネルの計算結果に反映させるにはどうしたらいいのでしょうか?
14デフォルトの名無しさん:2011/01/26(水) 00:32:52
色を変えたタイミングでアプレットに位置情報を保存する
1513:2011/01/26(水) 00:42:36
class Clickcell implements ActionListener{
public 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));
}
}

色を変えるクラスはこれなんですが、どのようにして位置情報を保存すればいいんですか?
16デフォルトの名無しさん:2011/01/26(水) 00:53:19
・Observerパターンにする
・通知先への参照を持つ(例えばClickcellのコンストラクタに渡す)
・evt経由
・そんだけのコードならClickcellをやめて
 親クラスで、匿名クラス経由でactionPerformedを作成し、Parentclass.thisを使って処理
多分どれかで何とかなる
1713:2011/01/26(水) 00:54:59
やってみます。ありがとうございます
1813:2011/01/26(水) 01:28:35
どれをググッてみてもいまいち書き方がわかりません。
もしよろしければどれか1つでもいいので詳しく書いていただけないでしょうか?
19デフォルトの名無しさん:2011/01/26(水) 08:20:53
2番目のやつ。P直下のパネルにCellが無ければパネル経由で委譲する
public 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); 以下略 */}}
20デフォルトの名無しさん:2011/01/26(水) 09:55:53
Cがわかっていて、一からJavaを始める人におすすめの本を教えてください。
オブジェクト指向の説明が濃いものが良いです。
21デフォルトの名無しさん:2011/01/26(水) 12:20:07
Cが”本当に”分かってるなら立ち読みすりゃ自分で選べる。
22デフォルトの名無しさん:2011/01/26(水) 13:01:00
GCJの方バイナリに出来たりしてよくないですか?
23デフォルトの名無しさん:2011/01/26(水) 14:15:18
よくなくないです
24デフォルトの名無しさん:2011/01/26(水) 17:43:11
入門サイトに書いてあったサンプルを実行したところ
Exception 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);
}
}
25デフォルトの名無しさん:2011/01/26(水) 18:14:45
>>24
no = 無い
such = その
method = メソッド
エラーメッセージでググることもできんのかお前は
26デフォルトの名無しさん:2011/01/26(水) 18:18:23
1を読まないのが原因だと思うよ
27デフォルトの名無しさん:2011/01/26(水) 20:38:14
XMLの読みも書きも必要なんだけど
どっちも半端じゃないサイズ(数百メガ〜ギガ単位)が必要な時
XMLパーサは何を使って実装すればいいですか。
28デフォルトの名無しさん:2011/01/26(水) 21:29:26
その前にンなデカいもん作らない方法を考えろ
29デフォルトの名無しさん:2011/01/27(木) 00:00:10
>>27
パーサを作りたいのか内部でパーサを使ったライブラリを作りたいのかしらんが
ひと通りの仕様を満たしてて早くてフットプリントが小さい必要があるならpiccoloあたり。
組み込みとかでそれより小さくしたいなら要件に合わせて既存のライブラリ修正か手書き。
全部入りがほしいいなら手書き一択。

標準ライブラリを使いたくないって理由以外ならJAXPで事足りるんじゃないか?
色々あるからまあググれ。
30デフォルトの名無しさん:2011/01/27(木) 01:43:09
interfaceにメソッドを追加して、でも実装クラスの中で1つだけ異なる引数にしたい場合
設計的にどうするのがいいんでしょうか

いくつかの製品モデルがあったとして

製品A.create(Arg1 arg1)
製品B.create(Arg1 arg1, Arg2 arg2)

というような形になる場合、

interface 製品
にcreate()を書くにはどうすればいいのかなと

Arg1+Arg2を持った新たなクラスを作る、とか?
31デフォルトの名無しさん:2011/01/27(木) 02:11:51
1つのinterface内でパッケージプライベートなメソッドとそうでないメソッドを定義したい場合はどう書けばいいですか?
32デフォルトの名無しさん:2011/01/27(木) 06:16:56
>>30
public void create(Arg1 ... arg1)でどう?
ただ引数を一緒にする方がよい気がするけどね。
3332:2011/01/27(木) 06:25:47
>>30
あ、すまん。よく見てなかった。
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(){

});
3432:2011/01/27(木) 06:29:27
送信してしまった。。
後半はこう書きたかった。

製品A.create(new ProductCreateContext(){
public getArg1(){
return local_arg1;
}
public getArg2(){
return local_arg2; //必要に応じて
}
});
35デフォルトの名無しさん:2011/01/27(木) 06:34:42
オブジェクトのコピーを簡単に行う方法はありますか?
配列ならSystem.arraycopy()というのがありますがオブジェクト一般に行いたいです。
コピー元、コピー先は同じ型で既存のオブジェクトです。
clone()はコピー先オブジェクトを指定出来なくて新たなインスタンスを作ってしまうようなので求めているものとは違います。
36デフォルトの名無しさん:2011/01/27(木) 06:39:10
javaでclassファイルを「計算」と「描画」の2つに分けて「描画」側でアプレットで表示させるプログラムを作った場合
計算 f=new 計算();
で「計算」の中の関数を「描画」内でfで呼び出せると思うんですが
「描画」内の関数を「計算」で呼び出すときに同じように書くとjavaがアプレット上で空回りし続けてエラーになってしまいます。
どう対策すればよいですか?
37デフォルトの名無しさん:2011/01/27(木) 06:44:26
>>36
たぶん設計がおかしい
よくあるMVCのパターンで描画=V、計算=Mになるはずで、
計算から描画を参照するのはおかしい
38デフォルトの名無しさん:2011/01/27(木) 06:45:59
日語可以アルヨ!
39デフォルトの名無しさん:2011/01/27(木) 06:57:12
>>37
この場合描画のほうでMouseListenerから取得した値を計算に送ることはできないということですか?
40デフォルトの名無しさん:2011/01/27(木) 07:13:18
>>39
そういう場合はListenerがCになる
普通、MからVを参照するコードは一切発生しない
CがMのメソッドを呼び出す事はある
VもMのメソッドを呼び出さない
ListenerとかCのみがMを参照する
41デフォルトの名無しさん:2011/01/27(木) 07:16:30
>>40
何度もすいません。。。
つまりclassファイルとしてもうひとつリスナーファイルを作るのが正しいってことですか?
42デフォルトの名無しさん:2011/01/27(木) 07:17:03
まあその手の問題は、
MVC+イベント+リスナーを使って、
MのほうでPropertyChangedEventを発生させて、
Mの生成時にCをAddListener()していけば大体解決する。

たぶん、MからVのコードを呼び出したいって
Mの状態が変わったときに再描画したいとかだろ?
43デフォルトの名無しさん:2011/01/27(木) 09:02:31
>>42
PropertyChangeEventになるとちょっとわからないことだらけになりますね。。。
基本的には「描画」のMouseListenerほうで取得した座標を「計算」で初期値として扱って計算して
「描画」で再描画したいっていう形ですね。
MouseListner使えば結構あっさりできると思ったんですけど。。。^^;
44デフォルトの名無しさん:2011/01/27(木) 09:09:08
>>43
MouseListenerでV>Cの流れをやって、
C>Mでモデルにマウス座標を与えて、
Mで再計算された結果を保持しとくフィールドのsetter()でPropertyChangeEventを投げて、
それを見てVが再描画するって話
「座標受け取り」「計算」「再描画」まで手続き的にやりたいのかもしれないけど
この3つの間は全てイベントで繋ぐって話
45デフォルトの名無しさん: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
(現在の環境をわかる範囲で↓で書きます。)
46デフォルトの名無しさん:2011/01/27(木) 10:01:21
OS:WindowsVista

Javaのインストール状況
ProgramFilesの下に
・Java\jdk1.6.0_23
・Java\jre1.6.0_03
・Java\jre6
・Jrail5
とフォルダが出来てます。(まずはここから問題な気がしてます・・)

環境変数には
JAVA_HOME・・ユーザー、システムともに作成されてます。値は両方Java\jre6になってます。
システム環境変数のPATHにはJava関連のものは見当たりません・・(関係ない?)

以上です。まずは環境としてはどうでしょうか?
47デフォルトの名無しさん:2011/01/27(木) 10:01:42
>>44
細かく教えていただいてありがとうございます。とりあえずPropertyChangeEventから勉強しようと思います。
4846:2011/01/27(木) 10:10:52
axisは
・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等のエラーが出てファイルは作成されませんでした;;
49デフォルトの名無しさん:2011/01/27(木) 10:59:27
環境変数AXIS2_HOMEは定義したの?
50デフォルトの名無しさん:2011/01/27(木) 11:04:14
AXIS2_CLASS_PATHは定義した?
5146:2011/01/27(木) 11:21:06
>>49
C:\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はやった記憶がありません・・
52デフォルトの名無しさん:2011/01/27(木) 11:39:28
javaやってる人でmsに興味ある人など一人もいない
.netスレでjavaに詳しい人に聞け
53デフォルトの名無しさん:2011/01/27(木) 11:44:22
.netと関係なくね?
5446:2011/01/27(木) 11:54:58
>>52
そうですよね・・
自分は.netのほうが経験が長いのであまりに場違いなようでしたらそちらに移動します・・


55デフォルトの名無しさん:2011/01/27(木) 13:12:42
JSliderで変数を設定したいんだがどうすればいいんですか?
56デフォルトの名無しさん:2011/01/27(木) 13:56:12
axis2というのをダウンロードして
下のページの通りやるだけでファイルできたよ
http://japan.internet.com/developer/20090714/26.html
5746:2011/01/27(木) 14:14:56
>>56
ほんとだ!!!!!!!!
出来ました!!!!

これで一歩進めることが出来ました。本当にありがとうございました。m(__)m

結局、何か違うとしたらaxis2-1.5.4にして、URLに書いてある通り、outオプションが付いたぐらいですね。

助かりました。ありがとうございました。
58デフォルトの名無しさん:2011/01/27(木) 14:17:53
ズコー
59デフォルトの名無しさん:2011/01/27(木) 16:36:00
http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/vm/gc-ergonomics.html
>最大ヒープサイズ:
>物理メモリーの 1/4 か、1GB かの小さい方。J2SE 5.0 より前のデフォル
>トの最大ヒープサイズは 64MB。このデフォルトは、-Xmx コマンド行オプ
>ションを使用してオーバーライドが可能

ここに書いてあることと全然違うんだけどこれはどういうことなの?

物理メモリ8GBのMac OS Xでjavaを起動してjconsoleで見ると最大ヒープ
サイズが128MBに設定されてる。

物理メモリ2GBのWindowsXPでjavaを起動してjconsoleで見ると最大ヒープ
サイズが64MBに設定されてる。
60デフォルトの名無しさん:2011/01/27(木) 17:03:23
正しいも正しくないもない。
動く作り方は無数にあって、ただお前のがそのどれでもないだけだ。
6160:2011/01/27(木) 17:08:55
すまん間違って書き込みしちまった
62デフォルトの名無しさん:2011/01/27(木) 17:10:17
>>59
まかーだから
63デフォルトの名無しさん:2011/01/27(木) 17:30:53
>>12
Linuxか。どこのディストリビューション?
もしかしてだが、Tomcatもyum経由でインストール?

もしかしてもしかしてだが、which javaってやるとどうなるよw
64デフォルトの名無しさん:2011/01/27(木) 18:03:48
文字列変換で、漢数字、全角数字を半角数字に変換したいのだが

文字列.replaceAll("[0123456789]", "[0123456789]");
文字列.replaceAll("[零一ニ三四五六七ハ九]", "[0123456789]");

↑な感じで描いてみたら↓な風に変換されてしまいました

1 → 0123456789
零 → 0123456789

1個ずつ地道に変換するしかないでしょうか?
65デフォルトの名無しさん:2011/01/27(木) 21:24:52
>>54
つかAXISじゃなくても、標準でついてるwsimportでもいけるよ。
wsimportの方が設定とか楽だよ。設定というかコマンドだけだし。
6665:2011/01/27(木) 21:25:46
あら、解決してたか。すまん。
そしておめでとうございます。
67デフォルトの名無しさん:2011/01/27(木) 21:37:32
eclipse重いと思ってたけど自宅のPCだと3秒で起動するw
会社のPC糞すぎww
68デフォルトの名無しさん:2011/01/27(木) 23:27:21
eclipseと大して変わらんRADがなんであんな高価なん
何か違うん?
69デフォルトの名無しさん:2011/01/27(木) 23:48:57
サポートありか、ナシか。つまり人件費・・・じゃない?
PC部品屋のメモリーだってサポートあり、ナシの値段両方あるし。
70デフォルトの名無しさん:2011/01/28(金) 03:36:23
eclipseもVisualStudioと比べたら動作というか仕様自体がもっさり
71デフォルトの名無しさん:2011/01/28(金) 08:19:25
もっさりした仕様ってどんなのだろう?
72デフォルトの名無しさん:2011/01/28(金) 08:46:30
もっさりはsandy bridgeが解決してくれることがわかった。
73デフォルトの名無しさん:2011/01/29(土) 00:12:26
eclipseってここのでいいんですかね?
http://mergedoc.sourceforge.jp/
74デフォルトの名無しさん:2011/01/29(土) 00:44:23
そんなキモイの使うなよ
75デフォルトの名無しさん:2011/01/29(土) 05:35:46
>>45
完璧に時代の流れに取り残されてるな
ttp://www.publickey1.jp/blog/10/restsoapwebws-i.html
WSDLなんて久しぶりに聞いたわ

レガシーなシステムの保守だけやってるとそうなる
76デフォルトの名無しさん:2011/01/29(土) 05:40:19
middlegenでO/Rマッパー出力して、メソッド追加したりjavadoc書いたりして、
またmiddlegenで出力しなおすと上書きされますよね?
直接O/Rマッパーを編集すべきじゃないんですか?
継承したり、委譲したクラスを作ってやるべき?
77デフォルトの名無しさん:2011/01/29(土) 07:30:14
C言語なら、

int* test1;
char* test2 = (char*)test1;

とか配列の参照をキャストできるのに、javaでは

byte[] test1;
long[] test2 = (long[])test1;

と書けませんよね?
なぜですか?
78デフォルトの名無しさん:2011/01/29(土) 08:40:09
>>77
java.nio.ByteBuffer#asLongBuffer()使え
7912:2011/01/29(土) 15:05:21
>>63
すみません、返信遅くなりました。

Linuxです。
Slackwareです。
32bit環境と64bit環境でjava及びtomcatは双方32bitです。

yumは使ってません。
tomcatは ttp://tomcat.apache.org/でtar.gzのcoreを展開して導入
which javaをすると、シンボリックリンク経由で期待しているjdkのbin/javaを指します。
80デフォルトの名無しさん:2011/01/29(土) 15:09:36
>>59
使用しているjavaのバージョンが不明ですが、日本語資料が全然更新されていないだけです。
6以降でエルゴノミクスも大分変わっています。
81デフォルトの名無しさん:2011/01/29(土) 19:43:32
javaに無料のオブジェクトデータベースってありますか?
82デフォルトの名無しさん:2011/01/29(土) 21:45:20
「明解Java 入門編」という本で独学で勉強しているのですが、以下のプログラムをコンパイル
しても、エラーになってしまいます。自分では何度も確認したのですが、どこが間違っているのかわかりません。

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));

}
}

83デフォルトの名無しさん:2011/01/29(土) 21:46:42
>>82をコンパイルしようとすると、以下のような文章が出てきます・・・

ArithInt.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 個

84デフォルトの名無しさん:2011/01/29(土) 22:02:38
>>82
java.util.Scanner がないって事は 1.5以降じゃないのか
javac -J-version でバージョン確認したら?
85デフォルトの名無しさん:2011/01/29(土) 22:06:01
そのコードをコピペしたら普通に動いた
環境設定が変とか
86デフォルトの名無しさん:2011/01/29(土) 22:21:12
>>75は流行に振り回されて結局何の成果も残せないタイプだな
モバグリやスマホ向けのソーシャルアプリ(笑)とか作ってそう
jQuery、Ajax、クラウド(爆笑
一昔前は某広告代理店に乗せられてセカンドライフ(核爆
に手を出してただろ?
87デフォルトの名無しさん:2011/01/29(土) 22:31:02
だろ?
88デフォルトの名無しさん:2011/01/29(土) 22:47:04
>>84
調べてみたら
java version "1.4.2_16"と表示されました
89デフォルトの名無しさん:2011/01/29(土) 22:56:01
>>88 oracleのサイトから最新のJDKをダウンロード
90デフォルトの名無しさん:2011/01/29(土) 23:01:41
>>89
サイトへ行ってダウンロードしたので解決しました
お騒がせしました^^
91デフォルトの名無しさん:2011/01/29(土) 23:32:06
あれ?なんでsunじゃなくてoracleなん?
92デフォルトの名無しさん:2011/01/29(土) 23:45:53
買収されたよ
93デフォルトの名無しさん:2011/01/29(土) 23:54:50
いつの話をしてるんだ
94デフォルトの名無しさん:2011/01/30(日) 00:02:23
な、なんだってー!
95デフォルトの名無しさん:2011/01/30(日) 07:57:49
初めまして 質問させてください。
現在JAVAを用いてMySQLを操作していて、データにSelect文をかけて
その結果の表をeclipseのコンソール画面に表示したいのですがうまくいきません。

一旦Select結果をresultsetに格納し、rs.next()で回して一件ずつ表示するという方法で
表示していたのですが、「これだとデータが膨大になった時にとても遅くなる」と怒られました。
なのでselect結果をそのまま表示する方法を探しています。
どなたか御助力いただけると嬉しいです。
96デフォルトの名無しさん:2011/01/30(日) 10:38:09
回す以外の方法はない。
select文を見直せという意味でなければ、
その怒った奴が阿呆。
もしくは、メインの処理とは別に
コンソールにログ的に表示してるんなら、
使い方が間違っている。
97デフォルトの名無しさん:2011/01/30(日) 10:42:14
別スレッドで処理させろという意味かも…
なわけないか。
98デフォルトの名無しさん:2011/01/30(日) 10:55:49
質問です
jdk6を使っているのですが
HTMLのoptionタグの様なUIを作る時は何というクラスを使えば良いのでしょうか?
ラジオボタンやチェックリスト、スクロールは見つける事が出来たんですけど
これが見つかりません
99デフォルトの名無しさん:2011/01/30(日) 10:56:09
Oracle+Pro*Cのときとか一括で取得する方法あったような気が
するけどそんなのかな
100デフォルトの名無しさん:2011/01/30(日) 11:03:31
101デフォルトの名無しさん:2011/01/30(日) 11:31:24
102デフォルトの名無しさん:2011/01/30(日) 11:51:21
>>86
核爆←昭和の人?
103デフォルトの名無しさん:2011/01/30(日) 12:04:22
昭和の人(オオワラ
104デフォルトの名無しさん:2011/01/30(日) 12:05:21
>>102
>>86はコボラー、あるいはコボル風手続き型の1クラス数万行の
Javaコードを書く天災だから触れちゃ駄目だ、毒されるぞ
ttp://slashdot.jp/developers/article.pl?sid=11/01/10/0943209
105デフォルトの名無しさん:2011/01/30(日) 12:13:43
>>101
おおっ
ありがとうございました!
106デフォルトの名無しさん:2011/01/30(日) 12:25:08
>>95
一般的なWebアプリケーションもforEachループで回すんだけどな…
数が多いと遅くなるのは当たり前で、大抵はページング処理して
件数を分割して高速に表示されるように考慮する

「ページング処理しろ」って意味じゃないのか?
107デフォルトの名無しさん:2011/01/30(日) 12:48:02
>>95
その部分を示す模擬的なコードを出せ

エスパーすると、ループの中で1行1行プリントするんじゃなくて
1つのStringにまとめてから1度にプリントしろ
108デフォルトの名無しさん:2011/01/30(日) 17:56:24
チャットの発言がある度にMySQLに接続してレコードの追加をするプログラム作ってるんだが、
このプログラム単体(接続とレコード登録のみに絞った)だと正常に動くんだけど
ソケット接続を含めたチャット機能を加えたら、JDBCドライバーが見つからないエラーになる
ソケット接続とDB接続って同時にできないのですか?
109デフォルトの名無しさん:2011/01/30(日) 18:02:23
そんなことはない
110デフォルトの名無しさん:2011/01/30(日) 18:09:52
じゃあチャットに問題があるのでしょうか
エスパー希望
コンパイルは通るけど、発言ある度にコンソールにエラー吐き出す
発言がある度にじゃなく、起動時にDB接続するようにしてもnotfoundになります・・・
111名無しさん:2011/01/30(日) 20:02:51
コネクションクローズせずに再度コネクション取得しようとして、接続上限に達したとか
112110:2011/01/30(日) 21:46:05
NetBeans使ってたのでドライバのjar通す設定を忘れてました。すんません。
答えてくれた方々どうもありがとうございました。
113デフォルトの名無しさん: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;
}

よろしくお願いします。
114名無しさん:2011/01/30(日) 23:55:20
>>113
例のtやstrはCで言うポインター変数。
ポインター変数が破棄されたからといって
それが指す領域は破棄されないでしょ。
115デフォルトの名無しさん:2011/01/31(月) 02:35:25
JAVAで、ヤフーファイナンスから日経平均の株価の数字だけを自動で取得したい場合
URLからHTMLを解析して、正規表現などをつかって抽出する方法が一般的なのでしょうか?
現在URLからのHTML取得や、文字列の抽出はできるようになったのですが、
HTML取得→文字列抽出までを同時に実行しようとする所でどうすればよいかわからず
行き詰っています。 何か株価抽出に関してヒントや勉強したほうがいい箇所などありましたら
ご教授お願いいたします。
116デフォルトの名無しさん:2011/01/31(月) 03:14:06
ヤフーはhtmlじゃなくてcsvで返してくれる機能あるぞ。少なくともアメリカのは。肝心のURLは忘れたけどな
117デフォルトの名無しさん:2011/01/31(月) 03:36:10
>>115
プログラムとは関係ない文章中でも、全角大文字を平気で使うプログラマは信用されないぞ
あとhtmlパーサを使え Javaなら沢山あるだろ Jsoupとかがいいんじゃないか
118デフォルトの名無しさん:2011/01/31(月) 03:57:55
ここらへんのセレクタ駆使すりゃどんな要素でも特定して抜け出せるはずだ
ttp://jsoup.org/apidocs/org/jsoup/select/Selector.html
119デフォルトの名無しさん:2011/01/31(月) 04:59:23
あと分かっていると思うが、スクレイピングするなら合法的な範囲でやれよ
日経平均の更新間隔はどこのサイトも15分程度だから
最初に取得した時にmemcachedか何かに15分後の時刻と値を記録しておいて、
次回アクセス時はその時刻を確認した上で取りに行くようにしないと
自分のサイトにアクセスが集中した時にパクリ側に拒否られる可能性がある
120デフォルトの名無しさん:2011/01/31(月) 05:04:31
自分のサイトとかどこから出てきたの?
121デフォルトの名無しさん:2011/01/31(月) 05:20:21
割合的にJavaってWebアプリケーション開発に使われることのほうが
多いから決め打ちで書いただけだよ
122デフォルトの名無しさん:2011/01/31(月) 05:22:16
皆様いろいろなご意見ありがとうございます。
自分専用に株価のGUIアプリをつくっているので、そこで使う予定でいます。
ありがとうございました。
123デフォルトの名無しさん:2011/01/31(月) 12:07:19
指定したURLのページのタイトルを取得するには
何が一番処理効率が良いでしょうか?
あと、指定したページがHTMLかXMLなどを判断するには
getContentType()で判断するしかないでしょうか?
124デフォルトの名無しさん:2011/02/01(火) 01:49:34
HadoopでAppletを実装したいのですが、具体的な実装方法?がわかりません。
一応ソース書いてコンパイルして、エラー無くして実行(Appletviewer)したのですが、エラーがでます。
java.lang.NoClassDefFoundError :org/opache/hadoop/fs/FSDataInputStream
...
といった感じです。FSDataInputStreamのクラスが無いと言われても・・・。
hadoopのバージョンは0.21.0です。
色々無知なので沢山指摘してもらえると助かります。よろしくお願いします
125デフォルトの名無しさん:2011/02/01(火) 02:22:15
別クラス作ってやったら初期化うまくいって実行できました。いじるとエラーがでますが・・。
ご迷惑おかけしました。
126デフォルトの名無しさん:2011/02/01(火) 10:38:24
Javaで簡単に特定のメソッドのベンチマークを取る方法とかないの?
main()だけでもいいんだけど
eclipseのプラグインとかでないのかな
127デフォルトの名無しさん:2011/02/01(火) 11:26:17
-Xprofとかjconsoleとか。何を調べたいのかにもよるけど。
128デフォルトの名無しさん:2011/02/01(火) 17:58:29
だね
129デフォルトの名無しさん:2011/02/01(火) 20:03:37
Java-aって半年前からまだバージョン変わってない?
130デフォルトの名無しさん:2011/02/01(火) 20:27:48
Javaーaって半年前からバージョン変わってない?
131デフォルトの名無しさん:2011/02/02(水) 10:46:16
javaでDBMS_PIPEを使いたいのですが、可能ですか??
出来れば使うときの環境とか、
簡単なサンプルソースとかあれば教えてほしいのですが。。。
お願いします。
132デフォルトの名無しさん:2011/02/02(水) 15:14:49
Macのコマンドライン上でJava PathFinderを導入したのですが、実行の仕方がよく分かりません
.javaや.classを動かすにはどうすればいいでしょうか?
133デフォルトの名無しさん:2011/02/02(水) 18:42:28
これはひどい
134デフォルトの名無しさん:2011/02/02(水) 18:47:32
例外発生後に通常の処理に戻す方法ってありますか?
以下の2つのケースで、1つ目は"test"は出力されず、2つ目はreturnした後に通常処理になる、
という理解で合っていますか?

try{
}catch(SomeException e){
}
System.out.println("test");

try{
}catch(SomeException e){
return;
}
135デフォルトの名無しさん:2011/02/02(水) 18:49:30
試してみるべし。return + finallyもやってみたらいい
136デフォルトの名無しさん:2011/02/02(水) 21:20:54
ジャバーあほだからなんでもキャッチしちゃうよね
137デフォルトの名無しさん:2011/02/02(水) 21:22:45
バージョン代わった?
138デフォルトの名無しさん:2011/02/02(水) 23:05:14

                        |
       ____.____    |      |||||
     |        | キャッチ. .│   |        _,,..,,,,_
     |        | ∧_∧ |   |      / ,' 3  `ヽーっ
     |        |( ・∀・) |   |       l   ⊃ ⌒_つ
     |        |/.⊃━,⊃━━━━━┫ `'ー---‐'''''"┃
        ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄    |     ┗━━━━━┛
                        |
                        |

                        |
       ____.____    |
     |        | アンド リリース . |
     |        | ∧_∧ |   |
     |        |( *・∀・).|   |     ┏━━━━━┓
     |        |/.⊃━,⊃━━━━━┫       .┃
        ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄    |       |||||
                        |        _,,..,,,,_
                        |      / ,' 3  `ヽーっ
                           l   ⊃ ⌒_つ
                           `'ー---‐'''''"
139デフォルトの名無しさん:2011/02/03(木) 00:06:04
try{
}catch(Exception e){
}
javaの定石
140デフォルトの名無しさん:2011/02/03(木) 17:43:55
二元配列で質問なんですが
String Name [][]={ {"hoge"},{"hogehoge"}};
System.out.println (Name[1]);

これだとエラーになるはずなのにコンパイルが通って
実行してみると

Ljava.lang.String;@1a758cb

と出ます。何なんでしょう
141デフォルトの名無しさん:2011/02/03(木) 17:49:59
なんでエラーになるはずと思った?
142デフォルトの名無しさん:2011/02/03(木) 17:54:25
>>140
すべての参照型には toString() ってメソッドがあってだな……
143デフォルトの名無しさん:2011/02/03(木) 18:08:38
自作MMO作ってます

1. クライアントSocket → サーバ(固定IP)+ポートServerSocket
2. サーバ?       → クライアント?+ポート

2の実装なのですが
クライアントが1を使ってサーバに対するポーリングを行う以外の方法は何かありませんか?
何が聞きたいかというと、サーバからクライアントに対してコネクションできないですよね?
ネットワーク全然わからん・・・ぼすけて
144デフォルトの名無しさん:2011/02/03(木) 18:13:16
サーバーからクライアントにつなぐ必要ないじゃん
145デフォルトの名無しさん:2011/02/03(木) 18:19:18
言葉足らずだった・・svchostをjavaからいじいじできないかなって意味でした

サーバの状態変化をリアルタイムでクライアントに送信したいのです・・・
ポーリングさせると、サーバトランザクションがすごいことになりそうなのです><
146デフォルトの名無しさん:2011/02/03(木) 18:22:57
1のソケットをつなぎっぱなしにしておけばいつでも送信できる
147デフォルトの名無しさん:2011/02/03(木) 18:45:15
回答ありがとうございます
1.フィードバック用ソケットをクライアントに持たせる
2.readさせ、応答があるまでブロック

こんな感じでいけそうです。ありがとうございました
148デフォルトの名無しさん:2011/02/03(木) 22:51:31
KeyListenerをJPanelにつかって
KeyEvent::getKeyChar()は文字が取れて
KeyEvent::getKeyCode()をつかうと常に0になるのですが

思い当たることはありませんか? 理解不能です><
149デフォルトの名無しさん:2011/02/03(木) 22:53:41
keyTypedの時のみで
keyPressedやkeyReleasedだと0以外の値が取れました・・・ 心霊現象?w
150デフォルトの名無しさん:2011/02/03(木) 22:56:27
日本語文字の入力を考えるとわかると思うが
文字が入力されたタイミングとキーが押されたタイミングは別
151デフォルトの名無しさん:2011/02/04(金) 00:13:59
レスサンクス
リファクタリングしてたらその状況になったのです・・・
keyTypedでもgetKeyCode()にキーコードは入ってたので

さらにこのメソッドにやる気が感じられません
public boolean requestFocusInWindow()
100%javaで行きたかったけどDirectInput使うことになる悪寒・・
イベントキューに突っ込む方法とかもあったけど、意外とつらいswing
152デフォルトの名無しさん:2011/02/04(金) 00:19:05
JavaのGUIフレームワークは総じて糞。
153デフォルトの名無しさん:2011/02/04(金) 00:30:41
フォーカスとかリスナーに不満はあるけど
さくさく書けるよ?
ImageIconとかストリームで流すのとか1行でかけちゃうし
もう少し完成度がほしかったってのが心情

軽量クライアントでJWS使って毎度読み込ませても軽快だろうと妄想していたんだ

さっきまで・・
154デフォルトの名無しさん:2011/02/04(金) 01:23:23
無限ループ+Thread.sleep()と、Timer+TimerTaskとで、パフォーマンスの差ってそんなにないよな?

後、Runnable.run()内で変更される、外から引数で渡されるList(Map)ってsynchronized必要?
155デフォルトの名無しさん:2011/02/04(金) 02:10:08
>>154
そりゃListやMapの実装によるでしょう。
156デフォルトの名無しさん:2011/02/04(金) 08:04:28
無限ループでやるほうはただのHashMapでいいけど
タイマータスクに持たせていじいじするなら シンクロブロック無しのコンカレントハッシュマップがおぬぬめ

コンカレントのほう使う場合はvaluにnull渡せないから注意ね

ときにpublic boolean requestFocusInWindow()なんだけど
一回ウインドウ自体からフォーカスはずすと有効になる謎動作なんだけど
どうにかならんかね・・・イベントキューに突っ込む以外に方法が見当たらん・・
157デフォルトの名無しさん: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]
でつ。
よろしく頼むぜ!!
158デフォルトの名無しさん:2011/02/04(金) 10:38:03
時計ズレてんじゃね?
159デフォルトの名無しさん:2011/02/04(金) 10:38:40
あ、ごめん、
Date date = svnFormat.parse("2011-02-04T00:43:27.134501Z");
160デフォルトの名無しさん:2011/02/04(金) 10:50:06
フォーマット間違っているんじゃないの
161デフォルトの名無しさん:2011/02/04(金) 11:11:15
SSSSSS はミリ秒らしいから、 134501 ミリ秒 = 134秒+501ミリ秒 = 2分+14秒+501ミリ秒 で、43:27 に加算すると 45:41.501 と思われ
マイクロ秒はどうすりゃいいんだろうね?
あきらめて正規表現で解析したら?
162デフォルトの名無しさん:2011/02/04(金) 11:29:29
Date型の、
getYear()
getMonth()
getDay()
などのメソッドを使おうとしたら、deprecationの警告が出ました。
これらが非奨励なら、代わりに何を使うのが適切ですか?
代わりとなるメソッドは見当たらなかったんですが
163デフォルトの名無しさん:2011/02/04(金) 11:30:25
>>162
Calendar の get を使ってください
164デフォルトの名無しさん:2011/02/04(金) 12:34:16
>>161
うおおおおおおおおおおおおお!!!!!!
あんたすげぇ!!
マジすげぇよ!!!
俺は今、>>161神のおかげで満面の笑みで華麗にコミットしたぜ!!!
ありがとう!!!
165デフォルトの名無しさん:2011/02/04(金) 14:24:07
変な質問だと思うんですけど
JDKでコンパイルして作られたファイルはexeファイルのようにダブルクリックで起動するようには出来ないですか?
166デフォルトの名無しさん:2011/02/04(金) 14:28:52
jarにすれば?
167デフォルトの名無しさん:2011/02/04(金) 14:30:08
exeファイルにすることが出来る、GCJを使用して。
168デフォルトの名無しさん:2011/02/04(金) 15:49:21
.jarを実行するexeを作るのが正解
169デフォルトの名無しさん:2011/02/04(金) 16:01:50
>>168
それすっと汎用的でいいよね

めんどっちいからBATファイルから起動してるけど
170デフォルトの名無しさん:2011/02/04(金) 16:02:52
javaのランタイムまで含められれば良いんだけどね。
有償のやつしかしらんけど今なら無償でもあるのかな?
171デフォルトの名無しさん:2011/02/04(金) 16:34:18
exewrapperはどうだっけ?
172デフォルトの名無しさん:2011/02/04(金) 16:42:56
javaw -jar hoge.jar %1

こんなバッチファイル作れば関連付け実行とか、送るもできる
jarファイルダブルクリックで実行出来るのに、送るとか関連付け出来なくて仕方なくexe作ったけど
こんなの使うぐらいならBATでいいやと思ってしまった
173デフォルトの名無しさん:2011/02/04(金) 18:14:06
HTTP1.0だと問題ないんですがHTTP1.1だとString line = reader.readLine();のところで固まってしまうことがあります。
www.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.");
}
174デフォルトの名無しさん:2011/02/04(金) 18:23:20
>>173
HTTP/1.1 では Connection: close を付けていなければ persistent connection になりますので、次のリクエストを待っている状態です
次のリクエストがあればそれを送ってください
次のリクエストがなければ自分でクローズしてください
最初のレスポンスの終わりがどこかは Transfer-Encoding や Content-Length を見て判断する必要があります
面倒ならリクエストに Connection: close を付ければいいです
175デフォルトの名無しさん:2011/02/04(金) 18:43:16
>>174
なるほど!
できました。ありがとうございます。
176デフォルトの名無しさん:2011/02/04(金) 22:09:49
今更だけどHttpConnectionのAPIさらっと見ておくといいかも
泥臭いコーディングしなくていいよ
177デフォルトの名無しさん:2011/02/04(金) 22:13:52
クラス名間違えてた・・・
java.net.HttpURLConnection
これが正解

とってもスマートに実装できまする
178デフォルトの名無しさん:2011/02/05(土) 00:56:55
>>166-172
ありがとうございました
少し調べて試してみます
179デフォルトの名無しさん:2011/02/05(土) 11:48:06
SSLSocket等javax.net.sslパッケージのソースを見たいのですが
jdkに付属してくるソースには含まれていないですよね?
どこから手に入れられるのでしょうか?
180デフォルトの名無しさん:2011/02/05(土) 12:55:30
JPAとかJDO、特にJDOについてよくわからないんですけど
解説記事とかなにか教えてください
181デフォルトの名無しさん:2011/02/05(土) 15:43:26
また変な質問なんですけど
自分で作ったクラスのインスタンスを参照する時に
そのクラスがフィールドに持つ既存のクラスを参照の対象にする事は出来るのでしょうか?
JListの中で自分で作ったクラスのリストを文字列でソートがしたいのですが
そのままソートすると"クラス名+謎の数列"の形で参照されてしまいます
こう言った場合は大人しくString型等を継承したクラスに作り直すべきですか?
182デフォルトの名無しさん:2011/02/05(土) 15:59:54
JListにソートの機能はありませんが、ソートは何を使って実行していますか?
JListに表示される"クラス名+謎の数列"は自分で作ったクラスにtoString()メソッドを書くと変えることができます。ListCellRendererを実装する方法もあります。
Stringはfinalクラスなので継承できません。
183デフォルトの名無しさん:2011/02/05(土) 19:15:54
ごめんなさいソートはまだしてません間違えました
ソートをするために確認しようとして
無理やりStringとして扱った場合でした

Stringは継承出来ないんですね・・・
試してみましたが確かに出来ませんでした
184デフォルトの名無しさん:2011/02/05(土) 19:43:44
tomcatについて質問なのですが、
ホストのデフォルトのコンテキストをROOTから別の名前に変更できますでしょうか?
プログラムを変更せずに設定ファイル等で変更する方法がありましたら教えていただければと思います。
よろしくお願いします。
185デフォルトの名無しさん:2011/02/05(土) 20:49:02
server.xmlのサービス name=Catalinaってのをいじいじするといいんじゃないかな
誰もレスしないところを見ると
それくらい自分でググれないと、やっていけないぜということなんだろうなぁ・・
186デフォルトの名無しさん:2011/02/05(土) 21:02:26
JAVAってそれぞれなんの頭文字ですか?
187デフォルトの名無しさん:2011/02/05(土) 21:10:08
とくに頭文字ではないらしいよ
開発チームが出入りしていた喫茶店の店員のシャツにJAVAって描いてたから
とかなんとか
188デフォルトの名無しさん:2011/02/05(土) 22:07:18
javaって、コーヒーのことだよね
189デフォルトの名無しさん:2011/02/05(土) 22:19:47
Javaティー
190デフォルトの名無しさん:2011/02/05(土) 23:30:02
>>185
調べてみましたが違うようです?勘違いでしたらすみません
初歩的なことなのかもしれませんがなかなか見つからずで

具体的には、下記のように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/
に変えたいのです
191デフォルトの名無しさん:2011/02/06(日) 01:00:57
alias設定したらいいんでない?
192デフォルトの名無しさん:2011/02/06(日) 01:12:06
あ、ごめん、Tomcatか。
193190:2011/02/06(日) 01:34:49
>>192-192
TomcatのHostのAliasだと、
http://hoge.com/
http://www.hoge.com/
の両方でアクセスしたい時に書くものだと認識してます。

ApacheのAliasは、DocumentRootでは無い、配下の特定のパスに対して、別のディレクトリを指定したい場合に使うと思うんですが、
今回のケースには適用できない気がします。

よくよく調べたらROOTってTomcatのプログラムにハードコーディングされているようですね。
/var/www/hoge.com/htdocs/にコンテキストを配備して、
/var/www/hoge.com/ROOTっていうシンボリックリンクを作ればいけるのかな
194デフォルトの名無しさん: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...と(人間の目から見て)正しく表示されます。
なぜでしょうか。
195190:2011/02/06(日) 02:07:31
196デフォルトの名無しさん:2011/02/06(日) 02:08:32
実数は小数点以下無限に続くのに、有限のメモリで浮動小数が表せるわけないから
Cでも誤差が見えないだけ。1000000ぐらいまでやってみ
197110:2011/02/06(日) 20:58:53
毎回違った長さの文字列を取得して、TextAreaを使わず画面上に表示するプログラムを作ってるんですが、
画面の右端近くに来たときに自動的に改行されるようにしたいです。

文字列には全、半英数、全かな、半カナ等々入り混じっています。
全かなの文字数で改行条件を作ると、半角文字が混じった場合右にまだ余裕がある状態で改行されてしまいます。
そこで
moji_byte = str.getBytes( "Shift_JIS").length;
を使って文字列のバイト数を割り出すという方法を知ったんですが、
1バイトを0.5文字として扱って・・・等々いろいろ試しましたがだめでした・・・。

これをどう使えば、半角と全角が混じった状態でも改行の位置が丁度よくなるでしょうか、教えてください。

198デフォルトの名無しさん:2011/02/06(日) 20:59:49
あ、名前が前のままでしたw
文字列はチャットから送られてくるものです
199デフォルトの名無しさん:2011/02/06(日) 21:40:30
一般的なアプリケーションはみんな同じ現象起きるような
そんな気にする必要ないと思うけどなぁ
200デフォルトの名無しさん:2011/02/07(月) 02:51:47
>>197

「300pxに収まるところで文字列を分割したい」とかそういう話だね?
java.awt.font パッケージにいろいろあるから全部目を通すのがよろし。
201デフォルトの名無しさん:2011/02/07(月) 19:28:46
アプレットでデシリアライズすると以下のクラスがないと行って怒られます。
 org.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)
202デフォルトの名無しさん:2011/02/07(月) 21:30:17
情報系の専門学校通ってるがまったく授業についていけん
今回の後期試験もJavaで赤点とってレポート書いてる

そのレポートについて質問だけど「float f2 = 100.0;」が有効ではない理由って何?
ここで今躓いててレポート止まってる


203デフォルトの名無しさん:2011/02/07(月) 21:38:48
Javaでは小数はdouble型として扱われます
つまり
100.0
と書いた時点でこれはdouble型なわけ
実際にはfloat型に収まる範囲なんだけど
Javaの決まりで小数はとりあえずdouble型だと決めてしまってるの
それを
float f2
に代入しようとしてるからそれはだめだよと

204デフォルトの名無しさん:2011/02/07(月) 21:49:03
おまえは向いてないから諦めろ
205デフォルトの名無しさん:2011/02/07(月) 22:14:27
てきとーな無料入門サイトの基礎レベルで躓くために親に幾ら学費払わせたんだ?
206デフォルトの名無しさん:2011/02/07(月) 22:47:22
どうなの?
207デフォルトの名無しさん:2011/02/08(火) 01:34:54
入門書の第一章だな...親が不憫でならない。
208デフォルトの名無しさん:2011/02/08(火) 08:34:11
俺、知らんかったわ。floatは使わない、使う必要がないってことだけで。
209デフォルトの名無しさん:2011/02/08(火) 08:41:19
Javaでも100.0fとか書けるよね?
210デフォルトの名無しさん:2011/02/08(火) 18:17:21
>>209
書けるよ
2秒で書ける
その2秒すら惜しんで2chに書き込んでる時点で
お前はダメだ
今後何をやってもダメだ
という文章を1分近く使って書き込んでるおれの方がもっとダメだ
211デフォルトの名無しさん:2011/02/08(火) 18:29:05
時は金なり
212デフォルトの名無しさん:2011/02/08(火) 19:41:46
アプレットでプルダウンメニュー内に@,A,B,CとありBを選択しているときにリセットボタンを押すと表示も同時に@に戻るようにするにはどうすればいいんですか?
213デフォルトの名無しさん:2011/02/08(火) 21:56:28
始めて設計担当にされたのですが
クラス設計についてわかりやすいサイトはないですか
214デフォルトの名無しさん:2011/02/08(火) 22:28:52
>>213
何の設計?とりあえずデザインパターンやUML クラス図でググってみれば
215デフォルトの名無しさん:2011/02/08(火) 22:34:57
Intellij IDEA使っていたら教えていただきたいですが、

IDEAで、javaファイルからclassにコンパイルして実行することは出来ましたが、
これを、jarファイルにする方法が見つかりません。

Web検索しても、そもそも Intellij 使っている人少ないようだし、、。


Eclipseのときは、jarファイル作るって簡単にできたのに、Intellijではどうやるのだろう?

216デフォルトの名無しさん:2011/02/08(火) 23:04:15
>>215

自己解決

Configuring Artifacts で設定すれば jarの項目ありました。
普通にhelpにのっていた。


しかし、Intellij IDEA って軽いうえに高機能なDEで、Googleの開発者でも人気だ
というのに、日本語の情報が少ないなあ。
217デフォルトの名無しさん:2011/02/08(火) 23:11:38
流行ってから使うのが勝ち
218デフォルトの名無しさん:2011/02/09(水) 12:50:53
持ってるドメインが数字から始まるせいで
ドメイン名からパッケージ名を付けられないんですけど
この場合どんな風にパッケージ名付けたらいいですか?
219デフォルトの名無しさん:2011/02/09(水) 13:07:30
1ならoneに変えるとか、何でもいいだろ
一意になればいいものだし、ぶっちゃけ外部に公開するライブラリとかじゃなければかぶる機会も無いんだし
220デフォルトの名無しさん:2011/02/09(水) 13:27:56
外部に公開します
マーケット経由でAndroidからアクセスさせる
という前提だったりします
221デフォルトの名無しさん:2011/02/09(水) 21:17:59
>>218
ttp://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.
222デフォルトの名無しさん:2011/02/10(木) 15:57:33
Webアプリケーションで、別のコンテキストとセッションを共有する方法ってないのかしら
Tomcatで、DBとか使わずにHttpSessionで
223デフォルトの名無しさん:2011/02/10(木) 20:18:29
>>222
セキュリティ観点で考えよ
224デフォルトの名無しさん:2011/02/10(木) 20:50:08
DBつかわずってインメモリDBの何が不満なの?
H2DBのインメモリモードあたりで手軽にやればいいじゃん。
225デフォルトの名無しさん:2011/02/10(木) 22:23:02
Webシステムの開発に使用するjavaを勉強したいのですが、
javaservlet(JSP)というもので良いのでしょうか?
その勉強の為の参考書を購入したいのですが、
お薦めの参考書を教えていただけませんか?
226デフォルトの名無しさん:2011/02/10(木) 22:50:33
ネットで十分
227デフォルトの名無しさん:2011/02/11(金) 01:28:59
>>224
セッションでやれたら楽じゃない!
228デフォルトの名無しさん:2011/02/11(金) 03:57:25
for(int i = 0; i < 10; i++) {
int j = (int)(Math.random() * (i + 1));
num[i] = num[j];
num[j] = i + 1;
}
ってやれば空の配列に数字を入れながらランダムにできる
229デフォルトの名無しさん:2011/02/11(金) 14:49:27
>>225
sjc-wcの教科書
230デフォルトの名無しさん:2011/02/11(金) 23:15:53
指定したURLのWebページで下記のmetaタグが設定されている場合、
charsetの値を取得したいのですが、下記の実装だとcontentの値しか取得出来ません。
どうすればcharsetの値を取得出来るのでしょうか?

<!-- metaタグ -->
<meta content="text/html" charset="utf-8" http-equiv="Content-Type"/>

//実装
URL url = new URL(任意のURL);
URLConnection urlConnection = url.openConnection();
231デフォルトの名無しさん:2011/02/11(金) 23:16:59
>>230
meta の書式が間違っているので取得は無理なのでは?
232デフォルトの名無しさん:2011/02/11(金) 23:28:01
>>231
間違ってますか?ちなみに自分が見ているサイトのURLは下記です。
Firefoxでソースの表示からmetaタグをコピペしました。
http://japanese.engadget.com/2011/02/11/q-a-android-meego/
233デフォルトの名無しさん:2011/02/11(金) 23:56:28
>>232
まあ、正式な文法がわからない以上、あとはど根性とカンと運でなんとかするしかないでしょう。
234デフォルトの名無しさん:2011/02/11(金) 23:59:30
ろくでもないな。
235デフォルトの名無しさん:2011/02/12(土) 07:14:03
糞スレあげ
236デフォルトの名無しさん:2011/02/12(土) 08:03:08
恥ずかしいからageないで!
237デフォルトの名無しさん:2011/02/12(土) 08:55:19
『つくって覚えるJava入門』(オフィス加減 ASCI)
の38Pについて質問です。
「Writeの項目で、Androidアプリケーション実行時に最初に呼び出されるonCreateメソッド
の中に次のソースを加えてみましょう。」と記述されていますが、Androidアプリケーション実行
は、どうすればいいのでしょう?
具体的にどういう操作をすればいいのか記述されていないので、困っています。
238デフォルトの名無しさん:2011/02/12(土) 09:20:53
2章開発環境を準備しようとかに書いて無いのかよ
239デフォルトの名無しさん:2011/02/12(土) 11:17:21
たしかに回答者はアホしかいないが、もう少し高度な質問にしてくれたまえ
240デフォルトの名無しさん:2011/02/12(土) 11:20:22
2章で開発環境を準備しました。
しかし、「Androidアプリケーション実行」をどうすればいいのか
分からないのです。
ImageViewMainを宣言したいのですが。
241デフォルトの名無しさん:2011/02/12(土) 23:57:38
>>230
domで取ればいいんでない
242デフォルトの名無しさん:2011/02/13(日) 00:05:20
>>230
コピペするからにはよく調べて書いてあることを理解してからコピペした方がいい。
ネットには正しくないものもあるってことを忘れちゃいけない。
243デフォルトの名無しさん:2011/02/13(日) 02:13:34
>>241
調べてみます。

>>242
気を付けます。
244デフォルトの名無しさん:2011/02/13(日) 02:39:49
>>243
>>233にレスをもらってから「正式な文法」は調べたか?
本人じゃないが>>233のレスは「根性とカンでしか無理」って意味じゃないぞ?

正しいかどうか判断できない素人がどっかの糞サイトみて根拠もなく信じこむんじゃなくて、
お前自信が参考にした糞サイトのDOCTYPEにも書いてあるんだからまずDTDを確認することだ。

で、確認したら次に回答者に伝えるべきことがある。
間違ったソースから解析する方法を知りたいのか?
正しいソースから取得する方法がわかればよいのか?

的確な回答がほしけりゃ的確な質問を心がけろよ。
245デフォルトの名無しさん:2011/02/13(日) 02:42:42
垂直落下式DTD
246デフォルトの名無しさん:2011/02/13(日) 09:00:27
バカが質問してバカがトンチンカンな回答するから全然解決しないw
247デフォルトの名無しさん:2011/02/13(日) 09:10:52
エスパーに任せるしかないw
>>264答えてあげなさい。
248デフォルトの名無しさん:2011/02/13(日) 10:08:58
>>244
すみません。文法云々を知りたいのではないので。
取得するAPIとかあればそれで済む話です。
249デフォルトの名無しさん:2011/02/13(日) 11:00:13
質問です。
パソコンを軽くしたいので、コントロールパネルを見てたら

Java(TM) 6 Update 11
Java(TM) 6 Update 5
Java(TM) 6 Update 7

とあったのですが、11以外削除していいのでしょうか?
よろしくお願いいたします。
250デフォルトの名無しさん:2011/02/13(日) 11:15:33
>>249
基本的には最新の入れたら古いのは削除していい。

古いバージョンの挙動に依存してるアプリ使ってる場合は
古いの消したらそのアプリが動かなくなるってだけ。
251デフォルトの名無しさん: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になっているだけで他は同じです。
252デフォルトの名無しさん:2011/02/13(日) 13:51:41
それはcgiの中まで見ないとわからない
253デフォルトの名無しさん: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);
}
254デフォルトの名無しさん:2011/02/13(日) 17:23:36
javaじゃなくてクラスファイルと同じ場所に入れなさいよ
255デフォルトの名無しさん:2011/02/13(日) 17:36:18
じゃなくて、afileという変数がそのエラーが出たところで見つからないと言っている
256デフォルトの名無しさん:2011/02/13(日) 17:45:40
String line = afile.readLine();
でafileないよ〜と言われます。
クラスはコンパイルできれば、でるんじゃなかったでしたっけ?
javacでエラーがでてます。

ちなみにdatの中身は下のようなものです
1, 田中 実,41,21,13
257デフォルトの名無しさん:2011/02/13(日) 17:50:55
try{
BufferedReader 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 {
 ・・・
}

ってことか?
コンパイルくらい通せ
258デフォルトの名無しさん:2011/02/13(日) 17:57:12
>>257
その通りでした。エスパーありがとうござます。
tryの中にString line = afile.readLine();をいれたら解決しました。
259デフォルトの名無しさん:2011/02/13(日) 18:08:28
アホしかいないんだからこの程度の難易度の質問で頼むよ
260デフォルトの名無しさん:2011/02/13(日) 18:09:53
自己紹介乙
261デフォルトの名無しさん:2011/02/13(日) 18:25:50
変数のスコープ覚えろ
262デフォルトの名無しさん:2011/02/13(日) 23:43:57
1, 田中 実,41,21,13
このデータをリストに読み込みなさいという課題がでています。方向性を教えていただけると助かります。
今自分がやろうとしているのは、ArrayListでそれぞれ全列を読み込み、さらにlist1.add(list2);みたいな形でつなげようと考えています。
こんなことは可能でしょうか?
それとも多次元配列とかmapとか使った方がいいんでしょうか?
263デフォルトの名無しさん:2011/02/13(日) 23:46:58
>>262
「みたいな形でつなげ」がわからなかった。
264デフォルトの名無しさん:2011/02/13(日) 23:51:32
読み込んで何したいか書けよ
てか聞いてたら課題にならんのじゃないか?
265デフォルトの名無しさん:2011/02/13(日) 23:56:08
>>263
1, 田中 実,41,21,13
2, 田中 けい,22,11,23
↑  ↑
list1,list2
listは1列ごとしか読み込めないと自分は思ってて、それらを最後横から結合できないかなと思ってたんですが、調べるとできなそうでした。
多次元配列が一番自分の中で格納するイメージがわくんですが、型が違ってもいけるんですか?

>>264
ソートしたいです。選択法とかバブルソートとか。
もう7時間ぐらいやってるので、ヒントだけください。
266デフォルトの名無しさん:2011/02/14(月) 00:22:33
「横から結合」の意味がわからなかったけど、
まともな説明とか無理そうだったら Object 型の多次元配列にしちゃえば?
267デフォルトの名無しさん:2011/02/14(月) 00:27:02
>>266
ありがとうございます。それで行きます。
268デフォルトの名無しさん:2011/02/14(月) 00:32:16
コレクションの要素に配列入れられるぞ
269デフォルトの名無しさん:2011/02/14(月) 00:33:04
「注:〜は推奨されないAPIを仕様またはオーバーライドしています。
注:詳細については、-Xlint:deprecationオプションを指定して再コンパイルしてください。」

これって javac -deprecation ○○.java でコンパイルできる?
270デフォルトの名無しさん:2011/02/14(月) 00:35:00
Objectの多次元配列にするくらいなら
一行ずつクラスを作りそうだが

public class Person {
 private int no;
 private String name;
 ・・・
}

みたいなクラス作って一行ずつそのクラスをnewして
Listに追加していく
271デフォルトの名無しさん:2011/02/14(月) 00:42:18
result = ImageIO.write(img, "jpeg", new File("test.jpeg"));
で画像保存したのですが青のプレーンだけ無視されて黄色がかった画像になってしまったのですが
これは何が原因でしょうか?
またjpeg以外で保存することはできないんでしょうか?
272デフォルトの名無しさん:2011/02/14(月) 00:55:17
>>270
そんな応用はできません><
2次元配列にデータを格納できました。うれしいです。
273デフォルトの名無しさん:2011/02/14(月) 01:03:13
配列を使えるようになるのに7時間もかかる奴なんてのはそもそもこの世界に向いてない
274デフォルトの名無しさん:2011/02/14(月) 01:10:27
配列は全ての基本だ。とても難しい。
じっくり時間をかけてマスターしろって
エリッククラプトンが言ってたよ。
275デフォルトの名無しさん: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を置くとおかしなことになるような)。

でも、クラス間で会話できないとならないとすると、
階層が同じ他のクラスを参照する方法は必要みたいに思えます。
何かほかにいい方法があるのでしょうか。
276デフォルトの名無しさん:2011/02/14(月) 01:40:06
そんなゴミクズ再利用できないからどうでもいいだろ
277デフォルトの名無しさん:2011/02/14(月) 01:46:33
再利用する時が本当にあるのかという気もするが
@ITのJFrameの記事でも読んでみろ
278デフォルトの名無しさん:2011/02/14(月) 01:57:51
>>276-277
ありがとうございます。@ITの記事参考になりました。
私の場合、どうも処理を書く場所が根本的にマズイみたいですね。
明日作り直してみます。
279デフォルトの名無しさん:2011/02/14(月) 03:02:42
チャットでよく名前の前辺りとかにアイコンを表示させることができるものがありますが、どんなプログラムでやっているんですか?
280デフォルトの名無しさん:2011/02/14(月) 07:34:11
>>279
エスパーか占い師か霊媒師にでも聞きに行け。
281253:2011/02/14(月) 08:23:52
1, 田中 実,41,21,13
2, 田中 けい,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]);
}
}
282デフォルトの名無しさん:2011/02/14(月) 10:03:00
これは本格的にセンスないな
283デフォルトの名無しさん:2011/02/14(月) 10:07:43
スルーしろ
284デフォルトの名無しさん:2011/02/14(月) 10:55:25
>>281
いやだから普通に 1, 田中 実,41,21,13 をクラスにすべきなんだが・・
285デフォルトの名無しさん:2011/02/14(月) 11:08:25
>>281
できるできないはあなたの判断なので、できないと思うのなら、できないで納得すればいいでしょう。
ArrayListとかCollectionとかのマニュアルを読んでも無駄そうなので、一度配列にしましょう。
Comparatorとかあなたには無理。
286デフォルトの名無しさん:2011/02/14(月) 12:31:45
>sortList.get(0)でprintすると0~150まででてきます。
これは何の冗談だ?
287デフォルトの名無しさん:2011/02/14(月) 13:34:54
田中 実さんの人気に嫉妬
288デフォルトの名無しさん:2011/02/14(月) 13:43:42
awt.eventではなくsignal/slotのようなことをやとうとしたらどうやって書きますか?
289デフォルトの名無しさん:2011/02/14(月) 16:18:21
田中実さん・・・
その名前を聞いたのは、「刑事貴族」の再放送を見て以来だ
290デフォルトの名無しさん:2011/02/14(月) 16:35:54
>>271
たしかimgのカラーモデルが、ImageIO.writeで使われてるカラーモデルと一致しないとそういうことがおきる。
解決法はimgからTYPE_INT_RGB(たぶん)のカラーモデルでBufferedImageを作成して書き出す。
それでダメならwriteのショートカットメソッドは使わないで、ImageWriterから細かく設定するしかないんじゃないか
jpeg以外の保存法はjavadriveのページに書いてあるぞ
291デフォルトの名無しさん:2011/02/14(月) 17:42:01
>>290
TYPE_INT_RGBで作ったimgにコピーしてからセーブすることで全て解決しました。
ありがとうございます。
292デフォルトの名無しさん:2011/02/15(火) 17:49:51
たとえばプリコンパイラ命令みたいなもので
実行環境によってコードを切り替えられるようにすることはできますか?
293名無しさん:2011/02/15(火) 18:03:04
>>292
プロパティなどで指定したクラスを使うようにすればいいんじゃない。
294デフォルトの名無しさん:2011/02/15(火) 18:36:36
なるほどSystem.Propertiesでしょうか?
ありがとうございます。
295デフォルトの名無しさん:2011/02/15(火) 21:57:17
>>292
コードの切り替えはできなくても実装クラスの切り替えはできる

そういうのはDIコンテナとか使用して、UTやIT環境で実装を切り替えたりするのがいい
296デフォルトの名無しさん:2011/02/15(火) 21:58:56
SystemOutしたのに表示されません
どこに表示されるでしょうか
297デフォルトの名無しさん:2011/02/15(火) 23:32:38
最初に
contain.add(MyPanel);
pack();
してあるものを
後からイメージの大きさを変えて
全体枠をリサイズすることは可能ですか?
どういう方法がありますか?
298デフォルトの名無しさん:2011/02/15(火) 23:54:21
JavaでhttpClientを使ってwebサイトのソースコードを取得するプログラムを
作ってますが、javascriptが出力するソースコードが取得できません。
firefoxの「選択した部分のソースコードを表示」の機能で表示することはできます。
どうしたらJavaのプログラムから取得できますでしょうか。

299デフォルトの名無しさん:2011/02/15(火) 23:54:50
>>296
「SystemOutしたのに表示されません 」が正しければ
どこにも表示されないが正解だよね。
300デフォルトの名無しさん:2011/02/15(火) 23:58:14
>>298
Java と JavaScript は別言語だから無理なんじゃないかな?
301デフォルトの名無しさん:2011/02/16(水) 00:04:41
>>298
ブラウザをエミュレートしないと無理じゃね
C#でやった方が簡単そう
302デフォルトの名無しさん:2011/02/16(水) 00:09:24
>>301
javascriptのinnerHTMLとか叩けば
表示せれるのですが、javaからjavasctipt叩いても無駄ですよね?
C#ならどうやるのでしょうか。あ、スレチか。
303デフォルトの名無しさん:2011/02/16(水) 01:12:55
javaからjavasctipt叩くとは?
304デフォルトの名無しさん:2011/02/16(水) 01:28:18
JDK6のScriptEngine使って、すごい頑張るとか……?
JavaScriptサポートしてたよね?
305デフォルトの名無しさん:2011/02/16(水) 01:33:36
innerHTMLとか言ってるレベルがjdk1.6なんかを触れるわけないだろ
306デフォルトの名無しさん:2011/02/16(水) 01:40:56
>>297
revalidate
pack
307デフォルトの名無しさん:2011/02/16(水) 01:55:29
>>305
だからすごい頑張れとw
ScriptEngine上のJavaScriptからJava側を触ることができるんだから、
HTMLをJava側でパースしてラップしたDOMオブジェクトをScript上から触るみたいなことはできないだろうかと。

まぁ、そこまでやったら変態だが。
308デフォルトの名無しさん:2011/02/16(水) 01:56:12
おまえら日本語で喋れ
309デフォルトの名無しさん:2011/02/16(水) 02:03:56
JCOMやSWTとか使ってIEコンポーネント叩く方が現実的かもね……。
310デフォルトの名無しさん:2011/02/16(水) 02:10:39
引数をいんすうと読む先生がいるのですが
間違っちゃあいないのでしょうか
311デフォルトの名無しさん:2011/02/16(水) 02:35:57
「DOM」と書いてあるのを見つけるとガンダムのことをいつも思い出してしまう・・
312デフォルトの名無しさん:2011/02/16(水) 02:42:40
DownloadOnlyMember
パソ通時代はライブラリからダウンロードして
お礼も何も書かなかったな
フリーソフトなんてそんなもん
313デフォルトの名無しさん:2011/02/16(水) 05:41:39
おれはmp3だったよ
今じゃyoutubeだもんな
そら音楽売れんわ
314デフォルトの名無しさん:2011/02/16(水) 08:02:10
DOMわかるww
SOAPもなかなか
315デフォルトの名無しさん:2011/02/16(水) 08:06:36
そんなこといってたら「JSON」はどーなるの?(笑)
316デフォルトの名無しさん:2011/02/16(水) 10:30:48
Java6 update24をインストールしたけど、
javaのページで確認したらupdate21になっている
システム確認したらupdate24に確かになっているのに...
どういうことなの?
317デフォルトの名無しさん:2011/02/16(水) 11:10:38
そういうこと
318デフォルトの名無しさん:2011/02/16(水) 11:37:33
ちょっと作りたい物があってjavascriptを勉強しているのですが
ランダムで1桁の数字(画像で1~9)が表示され
それぞれの数字に対応して別の動作をさせることは可能ですよね?
319デフォルトの名無しさん:2011/02/16(水) 11:41:26
その一桁のランダムな数字というのは自分で決めるのか?
それとも、外部の別の何かが勝手に作った画像を読み取って処理するのか?
前者なら楽勝
後者なら地獄
320319:2011/02/16(水) 11:48:44
よく見たらJavaScriptか
それなら後者でも画像のURL見ればだいたい分かるな
スレ違い
321デフォルトの名無しさん:2011/02/16(水) 11:59:18
失礼しました
ありがとう
322デフォルトの名無しさん:2011/02/16(水) 13:45:55
乱打舞図
323デフォルトの名無しさん:2011/02/16(水) 22:56:26
すみません・・。Windows7 Premier HomeでSDKダウンロードインストールしてPathの設定をしているところなのですが、

javac は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチファイルとして認識されていません。


と出ます。

Pathはプログラムファイルのjava、sdkのbinフォルダを指定したのですが。


何か考えられる原因はありますでしょうか?
324デフォルトの名無しさん:2011/02/16(水) 23:07:54
>>323

パソコンを起動したら自己解決。
初歩的なミスだ。。

325デフォルトの名無しさん:2011/02/16(水) 23:16:04
下記のように10MBの値をmarkの引数にセットしたら、
その時点で10MBのバッファが確保されるのでしょうか?

BufferedInputStream.mark(10 * 1024 * 1024);
326デフォルトの名無しさん:2011/02/16(水) 23:19:57
俺たちが唯一答えられる質問だったのに…
327デフォルトの名無しさん:2011/02/16(水) 23:47:16
>>325
コンストラクタで10MB以上確保してなければ
必要になったとき2倍ずつどんどん増やしてって
最終的にmarkで与えた分確保するんだったような

仕様的には、どーゆー実装にしてもOKなんじゃね?
つまり継承クラスからbuf直接触る場合は決めうちしない方がいいかもしれん。
あんまし気にしすぎるとハゲるけどね。
328デフォルトの名無しさん:2011/02/17(木) 00:17:51
>>327
bufは弄らないのでこのまま使ってみようと思います。
ただ、resetで例外が発生する場合があるので、
そこだけどうにかしないと…。
リミットサイズがあらかじめ分からないので、
ある程度大きなサイズを確保しておくしか無さそうです。
329デフォルトの名無しさん:2011/02/18(金) 00:33:01
>>328
いったんローカルファイルに全部保存しておいて
RandomAccessFileなりFileChannelなり使った方が楽だと思うよ。
330デフォルトの名無しさん:2011/02/18(金) 00:43:40
(abc)このような文字列から英数字を抜き出したいので、以下のような正規表現のパターンを考えました。
Pattern.compile("^\(\"([a-zA-Z0-9]+)\"\)$");
ですが、これだとエスケープシーケンスがなんとかでエラーになってしまいます。
どう書くのが正しいのでしょうか?
331デフォルトの名無しさん:2011/02/18(金) 00:45:22
「なんとか」の部分をちゃんと読めば解決する
332デフォルトの名無しさん:2011/02/18(金) 00:48:45
>>331
エスケープシーケンスが無効となってました。この場合、カッコのエスケープシーケンスはどうしたらいいのでしょうか?
333デフォルトの名無しさん:2011/02/18(金) 00:52:39
ググれカス
334デフォルトの名無しさん:2011/02/18(金) 00:57:36
ググレですんだかこのスレいらんのじゃボケ!
335デフォルトの名無しさん:2011/02/18(金) 01:02:28
んじゃ次回からは「モテナイ男の30年」にしよう
336デフォルトの名無しさん:2011/02/18(金) 01:07:34
>>334
その程度、ぐぐっておわり
337デフォルトの名無しさん:2011/02/18(金) 03:55:07
>>330
正規表現でのエスケープ文字は\
では、JavaのStringリテラル中で\という文字はどう表記する?
338デフォルトの名無しさん:2011/02/18(金) 09:04:52
>>330
Pattern.compile("^¥¥((¥¥w+)¥¥)$")
っつーかその真ん中二つのダブルクオーテーションはなんだよ。マッチさせるのか?
339デフォルトの名無しさん:2011/02/19(土) 06:21:31
コンストラクタ内で行いたい処理が長くなる場合
その処理をメソッド化することはあると思いますが
そのメソッドにつける修飾子はprivateでいいでしょうか?
340デフォルトの名無しさん:2011/02/19(土) 07:00:11
基本全部privateにして、他から呼ぶ必要があると理解した時だけ変更するようにすればおk.
コンストラクタ内で行いたい処理が長くなる場合は、FactoryやBuilderクラスの使用も検討するといいです。
341デフォルトの名無しさん:2011/02/19(土) 09:02:15
うるせーバカ
342名無しさん:2011/02/19(土) 09:46:53
>>340
なにその行き当たりばったりは。
ちゃんと設計しなよ。
343デフォルトの名無しさん:2011/02/19(土) 15:34:36
>>340
>基本全部privateにして、他から呼ぶ必要があると理解した時だけ変更するようにすればおk.

コンストラクタからfinal publicメソッド呼ぶんなら再利用性上の支障はないんだったっけ。
344339:2011/02/19(土) 16:33:25
レスどうもありがとうございました
とりあえずコンストラクタ内でのみ使うメソッドと
他メソッドからのみ呼び出されるメソッドに対してprivateにしたいと思います
教えていただいたFactory、Builderクラスについても調べてみます
345デフォルトの名無しさん:2011/02/19(土) 17:44:40
>>342
え?リファクタリングとかやったことないですか?
346デフォルトの名無しさん:2011/02/19(土) 17:47:02
全部privateでアクセス時は全部リフレクションだが特に問題は発生していない
347デフォルトの名無しさん:2011/02/19(土) 18:12:42
>>346 極端すぐる
348デフォルトの名無しさん:2011/02/19(土) 18:13:31
>>344
今更で申し訳ないが、コンストラクタでの処理ってのは
そのオブジェクトを具象化する処理なわけだが
コンストラクタでの処理が複雑になっているって事は
該当のオブジェクトの設計を間違えている可能性が非常に高い
単一の物を具象化する処理が複雑になるってことは本来あり得ない
つまり、メソッドとして切り離さなければいけないくらいの処理を行おうとした段階で
一度オブジェクトとしての設計を考え直すのが正解
349デフォルトの名無しさん:2011/02/19(土) 21:01:46.79
byte[]をlong[]にキャストって出来ませんよね?

Javaで高速なコードを書こうとした場合、プリミティブ型を統一するしかないですか?
forで回して変換するのが嫌なんです。
CとかC++ならキャスト一発で一切コスト無く出来る事なので。
350デフォルトの名無しさん:2011/02/19(土) 21:11:15.34
>>349
無理。
ByteBuffer#asLongBuffer()みたいな代替手段があるから、それで我慢。
351デフォルトの名無しさん:2011/02/19(土) 22:43:51.85
byte[] byteArray = {64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64};
ByteBuffer buffer = ByteBuffer.wrap(byteArray);
LongBuffer bufferL = buffer.asLongBuffer();
bufferL.array();

最後のarray()でException出ます。
hasArray()はfalse
なぜですか?
byteArrayをlong[]にキャストしたものを得たいのですが
352デフォルトの名無しさん:2011/02/19(土) 22:47:21.00
>>351
それは無理。

LongBufferのまま使う。
353351:2011/02/19(土) 22:52:23.48
>>352
BitSetを継承して
long[] words
を自由にセット出来るようにして流用しようとしてたのですが
BitSetをLongBufferに対応させるなら、もうbyte[]直で出来るようにするのと大差なさそうですか?

Javaで集合演算を簡単に便利に行ういい方法って何かありますか?
354デフォルトの名無しさん:2011/02/19(土) 23:09:25.56
>>353
大差ないだろね。

何が必要かによって違うからなんとも。
標準でBitSetって名前が使われてるから、
それ以外のBitArrayとかちょい変えた名前で検索すりゃクラスがおっこってるかも?
355デフォルトの名無しさん:2011/02/20(日) 02:14:25.81
>>346
Javadocが微妙になりそうww
356デフォルトの名無しさん:2011/02/20(日) 04:26:16.09
eclipseのメソッド名変更とか効かなくなるから不便でしょうがない気が
357デフォルトの名無しさん:2011/02/20(日) 12:13:16.12
>>351
long[] 欲しいんなら、使うべきなのは LongBuffer#get(long[] dst) だろ。
ビッグエンディアンでいいんならByteBuffer#order(ByteOrder)はたぶん必要ない。
358デフォルトの名無しさん:2011/02/20(日) 12:23:11.94
すいません複数のクラスから参照される定数はどのように持たせるのがいいんでしょうか
Cだと#define TEISU 10とかをヘッダに書いておいて使いたいクラスのソースで#includeすればいいですよね
Javaだとstatic finalな変数だけをもつクラスを新しく作っておくとかでいいんでしょうか
359デフォルトの名無しさん:2011/02/20(日) 12:37:54.68
クラスでなくinterfaceにする人も多いかなー
すんごく嫌がる人もいるけどね
360デフォルトの名無しさん:2011/02/20(日) 12:50:32.24
1.5以降のベストプラクティスはenumを使うことらしい
361デフォルトの名無しさん:2011/02/20(日) 13:05:15.12
>>358
enumかstatic finalな変数で持っておいてimport staticする。
362デフォルトの名無しさん:2011/02/20(日) 13:07:47.44
>>359
継承先の名前空間汚すから嫌がられて当然。
363デフォルトの名無しさん:2011/02/20(日) 13:12:15.28
定数の意味をよく考えて、それに当たるクラスがすでにあればそこに、無ければそのクラスを作ってやるかな。 インターフェースにするのは、技としてはうまいなとは思うが、本来の使い方とは違うと理解しているので、自分ではやらない。
364デフォルトの名無しさん:2011/02/20(日) 13:52:56.25
前Enumをちょっと使ってみたけど、思いの他使いにくかった
365デフォルトの名無しさん:2011/02/20(日) 15:48:30.16
>>364
そうか?
stateパターン代わりぐらいにはなると思うが。
366デフォルトの名無しさん:2011/02/20(日) 16:40:01.47
>>357
それ内部みてみたらfor回してますね
367デフォルトの名無しさん:2011/02/20(日) 18:00:36.76
bmpファイルを読み込んでdrawImageで描画してるんですが抜き色の指定ってどうやったらできますか
368デフォルトの名無しさん:2011/02/20(日) 18:57:47.66
まずBufferedImageに変換します
画像の全てのピクセルの色を調べて、抜き色だと判断したら透明色(アルファチャンネルが0)に置き換えます
アホらしいと思うなら抜き色なんて時代遅れなものは捨てて最初から透過PNGでも使ってね
369デフォルトの名無しさん:2011/02/20(日) 20:04:06.46
>>364
おれenumないと結構キツイんだけどw
ひょっとしてデフォルトコンストラクタしかつかっていないんじゃない?
370デフォルトの名無しさん:2011/02/20(日) 20:08:06.31
Oracle認定の資格持ってる人いる?
あれ実務で役に立つの?
371デフォルトの名無しさん:2011/02/20(日) 21:07:25.29
enum便利だよ
大抵のswitchとif文はenumに置き換えてる
372デフォルトの名無しさん:2011/02/20(日) 21:45:17.12
かえって酷いスパゲッティになりそうだな
373デフォルトの名無しさん:2011/02/20(日) 22:00:50.03
typesafeのほうがいいとおもうけどな。
374デフォルトの名無しさん:2011/02/20(日) 22:06:18.11
typesafeはいいけどポリモーフィズムの乱用はちょっとな
375デフォルトの名無しさん:2011/02/20(日) 23:21:03.78
Javaってメンバ変数をmから始めるのが
普通ですよね?それ以外で始める奴って基地外ですよね?
376デフォルトの名無しさん:2011/02/20(日) 23:23:16.66
ははっワロス
377デフォルトの名無しさん:2011/02/20(日) 23:33:14.55
>>375
eclipseが色分けしてくれるから、プレフィクスなんて気にしたことない。
378デフォルトの名無しさん:2011/02/21(月) 00:16:40.91
>>358
enumだろどう考えても
379デフォルトの名無しさん:2011/02/21(月) 00:17:02.46
>>371
スパゲティ乙
380デフォルトの名無しさん:2011/02/21(月) 00:49:42.91
Javaのタイプセーフenumのキチガイじみてるところは、
元がクラスだからメソッド持てちゃうところだな。
手段が目的になりそうで俺は使わないが。
381デフォルトの名無しさん:2011/02/21(月) 01:16:35.44
>>380
お前は何を言ってるんだ?
質問や相談答えれるレベルじゃないぞ?
382デフォルトの名無しさん:2011/02/21(月) 01:26:57.75
逆にメソッド持てなかったら、全く使えないけどな。
toString上書きできなかったらすこぶる使えない。
383デフォルトの名無しさん:2011/02/21(月) 01:57:32.81
>>378
元質問では用途が伏せられているので、enumが適切かどうか判別不能なんだが
384デフォルトの名無しさん:2011/02/21(月) 02:28:07.20
>>383
C系統がわからない人?
例に出されてる用途ならenumだろ
385デフォルトの名無しさん:2011/02/21(月) 03:08:51.74
例も何も用途書いてないじゃん
例えば、ドライバーの用途は「ネジの着脱」であって「回して使うこと」ではない

で、用途不明なんだから、その定数はリトライ回数や倍率という可能性だってある
386デフォルトの名無しさん:2011/02/21(月) 06:00:46.96
おまえ、相当な負けず嫌いなんだな
友達いないんだろ?
387デフォルトの名無しさん:2011/02/21(月) 07:55:35.27
>>384
>>358で例にだされてるのは整数だからenumで代替は難しいんじゃね?
388デフォルトの名無しさん:2011/02/21(月) 15:03:26.53
Effective Java読めよ
389デフォルトの名無しさん:2011/02/21(月) 15:22:37.49
ぬるぽ

390デフォルトの名無しさん:2011/02/21(月) 15:36:09.54
>>387
お前も質問答えるレベルにない
勉強しなおしてこい
391デフォルトの名無しさん:2011/02/21(月) 19:28:55.57
>>388
何時の本だっけ?
5以降に対応している?
392デフォルトの名無しさん:2011/02/21(月) 20:26:05.35
>>391
読んでない時点でお前は色々対象外だ
393デフォルトの名無しさん:2011/02/21(月) 20:40:09.03
>>391
第1版が2001年で1.4まで、第2版が2008年で6まで。
394デフォルトの名無しさん:2011/02/21(月) 20:57:22.75
ちょっと前のレスでenumについて語られていたのだけど
interface作るかフィールドに public static final 持たせることより
優れている点をわかりやすく 俺に教えてください
パフォーマンスはstatic finalのほうがいいと思うので、何か意味があるわけだよね

それか実際に、有意義に使ってるソースを魅せてください
395デフォルトの名無しさん:2011/02/21(月) 21:20:31.46
IDEが設定値を勝手に絞り込んでくれるってだけで十分なメリットだろ。
396デフォルトの名無しさん:2011/02/21(月) 21:36:44.29
>>394

・単なるintやString等の定数は、定数を入れる変数に何でも入ってしまうのでタイプセーフでない
enamを格納する変数はタイプセーフに記述することができる

・String定数パターンの場合、比較はequalsでやる事になると思うが、パフォーマンスが悪い
enamはイコールで比較できる

・インターフェース定数パターンは、一旦外部に公開してしまった場合に仕様変更がしづらい
enamは仕様変更に柔軟

などなど・・・
397デフォルトの名無しさん:2011/02/21(月) 21:48:10.95
すいませんNetBeansでマウス操作でGUI画面を作ってたんですが今日起動したら
”コンポーネントを読み込み中にエラー:[JFrame]->Panel1"
とか出てマウス操作で作れなくなったんですけどどうしたらいいですか
398デフォルトの名無しさん:2011/02/21(月) 21:48:51.44
enam……
399デフォルトの名無しさん:2011/02/21(月) 22:33:25.21
>>397
ローカル編集履歴でソース少し巻き戻してみたら?
400デフォルトの名無しさん:2011/02/21(月) 22:35:27.30
定数のStringなら==でもいけてるジャン
いあy、まてよ・・・わかりづらいバグ盛り込みそうだ

enumがいまさらながら見えてきた気がする サンクル
401デフォルトの名無しさん:2011/02/21(月) 23:15:12.10
昨日の夜寝るときはマウス操作でできてたのに今日起動したら何もいじってないのにマウス操作できなくなってたんですよ
402デフォルトの名無しさん:2011/02/21(月) 23:18:44.03
Javaで
AAA aaa = null
下で
aaa = new AAA()
と言う書き方と

AAA aaa = new AAA()
という書き方で具体的に何が違うのでしょうか?
たとえばこうした方がパフォーマンスの点でメリットがあるとか
403デフォルトの名無しさん:2011/02/21(月) 23:19:44.73
int data = 0xffffffff;
data = data >> 3;

とかやると、左端が1埋めになるけど
0埋めにする方法ってありますか?
404403:2011/02/21(月) 23:21:49.05
自己解決しました
405デフォルトの名無しさん:2011/02/22(火) 00:09:17.63
>>402
フィールドにしとくとJavaDocで出る位だと思う。
DI使うための場合もあるが、aaa = new AAA()してるんじゃ意味ないしな。
406デフォルトの名無しさん:2011/02/22(火) 00:11:54.98
>>394
EnumMap使うと、HashMapより高速にアクセスできるらしいからハッシュのキーとしても有用
ちなみにビットフィールド表現はEnumSetで。プリミティブのビット演算と速度の遜色が無いらしいが・・・まあコードはきれいになるな
ちなみにordinalは使ったらダメだからね

enumでスパゲティになるって・・・。まあそう思う奴のスキルだと、何をしてもスパゲティなんだろうけど、ちょっと損してるぞ
407デフォルトの名無しさん:2011/02/22(火) 00:28:57.85
JNIとかJNAやるときって
CのコードもEclipseで書くか、VisualStudioで書くかどっちがいいと思いますか?
408デフォルトの名無しさん:2011/02/22(火) 01:07:01.49
>>406
if文全てEnumに置き換えたらそれはただのEnum病のスパゲティだろ
409デフォルトの名無しさん:2011/02/22(火) 01:18:27.84
Enumに限らずポリモーフィズム病だな
ちょっとオブジェクト指向がわかってきた初心者が陥るやつ
410デフォルトの名無しさん:2011/02/22(火) 01:31:23.14
Enumを見たらそういう事してるんだろうってわかるから
慣れ
411デフォルトの名無しさん:2011/02/22(火) 01:32:53.53
>>410
見苦しいぞ
412デフォルトの名無しさん:2011/02/22(火) 03:52:27.00
なんでも極端はイクナイ
413デフォルトの名無しさん:2011/02/22(火) 07:44:34.07
最近は1レス/日以下がデフォな感じだったのにずいぶんと賑わっておりますな。
414デフォルトの名無しさん:2011/02/22(火) 08:21:28.97
>>408
だれがif文すべてって言ったんだよ、極端な奴だな
コーディングがダメなやつはやっぱ文章読むのもダメなんだな
415デフォルトの名無しさん:2011/02/22(火) 08:44:51.91
質問スレなんで、Javaできる人はちゃんと答えを書いてあげましょうね
416デフォルトの名無しさん:2011/02/22(火) 13:06:15.42
>>407
C、PHP、javaが全部入ったえくりぷすもあるよ
http://mergedoc.sourceforge.jp/
Ultimatetってのがそれです

でもなんか重たそう・・・
417デフォルトの名無しさん:2011/02/22(火) 13:11:04.40
てかJNIじゃなくて、JNAとか何か胸熱なんだけど
どんな感じでつかうの?
418デフォルトの名無しさん:2011/02/22(火) 13:21:36.01
>>407
各々慣れてる環境で書いたら?
419デフォルトの名無しさん:2011/02/22(火) 15:39:15.41
final static byte[] HEADER = {
(byte) 0xef,
(byte) 0xbb,
(byte) 0xbf,
(byte) 0x50,

(byte) 0x6f,
(byte) 0x6b,
(byte) 0x65,
(byte) 0x72,
};

いちいち (byte) ってキャストしてやらなきゃ、配列に値入らない
Type mismatch って言われるんだが、これは全くどうにもならないのか

見栄えが悪いのは嫌だなあ
420デフォルトの名無しさん:2011/02/22(火) 15:49:45.70
>>419
見栄えはいまいちだが短くて済む方法
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);
421デフォルトの名無しさん:2011/02/22(火) 15:56:24.08
>>420
サンキュー

やっぱり、キャストは必須なんだなあ
見れば 128 より小さいのは明らかなんだから、見逃してくれてもよさそうなもんだけど、


まあ、Java ではきょうび byte配列で比較なんてやらず文字列比較するだろうから、あんまりこういうので不便感じる人はいないんだろう それでもじゅうぶん速いし
422デフォルトの名無しさん:2011/02/22(火) 15:57:14.71
>>419
public 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");
423デフォルトの名無しさん:2011/02/22(火) 18:46:06.31
開発環境で実行出来ないクラスについて、
インターフェースだけのテストクラスみたいなのを用意して暫定的に開発しようとしてるのですが
このインターフェースだけのコードと本番用のコードとを自動的に切り替えるような手段って何かありますか?
Eclipseです。
424デフォルトの名無しさん:2011/02/22(火) 18:48:35.25
>>423
モックオブジェクトの使えるテスティングフレームワークを使えばいい
425デフォルトの名無しさん:2011/02/22(火) 20:47:08.37
netbeans糞杉w今日は”主クラスが見つかりません”とか出て起動すらできなくなったわww
426デフォルトの名無しさん:2011/02/23(水) 09:37:55.12
>>425
間違いなく糞なのはお前だから
427デフォルトの名無しさん:2011/02/23(水) 11:51:33.64
見栄え的には419が一番いいように思うのは俺だけ?
428デフォルトの名無しさん:2011/02/23(水) 12:00:49.71
>>427
俺も
429デフォルトの名無しさん:2011/02/23(水) 12:07:00.38
分かりやすいのが一番
430デフォルトの名無しさん:2011/02/23(水) 12:20:58.30
16進ダンプなつかすぃ
431デフォルトの名無しさん:2011/02/23(水) 12:26:25.39
>>425
HD死んでんじゃね?
432デフォルトの名無しさん:2011/02/23(水) 14:40:39.29
>>431
きっとパソコンが火を吹いてもNetBeansのせいにするタイプ
433デフォルトの名無しさん:2011/02/23(水) 15:46:15.49
javaでポスグレの共有ロックを明示的に取得するのってどうしたらいいですか?
434デフォルトの名無しさん:2011/02/23(水) 15:48:35.09
SQL発行すれば
435デフォルトの名無しさん:2011/02/23(水) 15:50:20.42
NetBeansのせいで裁判所が爆発したアル
436デフォルトの名無しさん:2011/02/23(水) 16:08:03.67
全てはOracleの陰謀だったんだよ!
437デフォルトの名無しさん:2011/02/23(水) 16:15:39.38
http://www-graphics.stanford.edu/~seander/bithacks.html
これのJava版って無いんですか?
あるいはこういう事をする系の何か。
438デフォルトの名無しさん:2011/02/23(水) 16:45:57.52
ネットビーンズには裁判所すらも爆発できちゃう機能があるのか・・・?
439デフォルトの名無しさん:2011/02/23(水) 17:53:59.83
ネットビーンズには裁判所すらも爆発できちゃう機能があるのか・・・?
440デフォルトの名無しさん:2011/02/23(水) 18:03:53.96
ネットビーンズには裁判所すらも爆発できちゃう機能があるのか・・・?
441デフォルトの名無しさん:2011/02/23(水) 18:15:03.04
プログラミング系の板は病んでるね
442デフォルトの名無しさん:2011/02/23(水) 18:16:33.89
仕事ないからな
443デフォルトの名無しさん:2011/02/23(水) 20:53:07.28
JavaからJNIでdll呼び出した時って
javaw.exeっていうプロセスにロードされて実行されてるの?
でもjavawもたくさん立ち上がってるからどれかわからん。
JNIのデバッグしたいのだけど
444 [―{}@{}@{}-] デフォルトの名無しさん:2011/02/23(水) 21:06:15.12
自作のpanelをパレットに追加してそのパレットをGUIの画面でframeに乗せるとGUIの画面がバグって操作できなくなるぽい
とりあえずソースコードをeclipseに移してソースコード直で編集していったら目的のプログラムができたわnetbeas糞杉ワロタww
445デフォルトの名無しさん:2011/02/23(水) 21:30:18.63
俺もそれなったな
446デフォルトの名無しさん:2011/02/23(水) 22:17:59.96
447デフォルトの名無しさん:2011/02/23(水) 22:25:06.96
実際netbeansは糞
448デフォルトの名無しさん:2011/02/23(水) 22:37:17.50
ろくな開発環境がないわ
449デフォルトの名無しさん:2011/02/23(水) 22:37:33.46
-Djava.library.path=
の設定の書式について教えてください。
複数指定する場合など。
そういったオプションの指定方法を説明しているWEBページを教えてください。
450 [―{}@{}@{}-] デフォルトの名無しさん:2011/02/23(水) 22:42:10.80
結局GUIなツール作ろうと思ったらmicrosoft製品使った方がいいのかなー
451デフォルトの名無しさん:2011/02/23(水) 22:45:48.88
だろうな。SWTのOSSとかたまに見るけど、ソース読むのが面倒くさい。
452デフォルトの名無しさん:2011/02/23(水) 23:04:07.19
eclipseだろうがmsだろうが、guiツールは信用しないな。
直ソースにアクセス出来ればそっちでやる。
453デフォルトの名無しさん:2011/02/23(水) 23:13:46.87
C#+VS使ったことあっていってるのか?
454デフォルトの名無しさん:2011/02/24(木) 00:15:03.95
VSのGUIの作りやすさはコンポーネント志向の設計+プロパティの存在に寄るところが大きい気がする。
Swingはコードで書くと結構いいライブラリだけどGUIビルダとの相性は悪いよ。
455デフォルトの名無しさん:2011/02/24(木) 00:43:18.76
eclipseのプラグイン色々と馴染めん
456デフォルトの名無しさん:2011/02/24(木) 00:47:49.48
VSのGUIはやってて笑う
GUIビルダドリブンで開発出来る
457デフォルトの名無しさん:2011/02/24(木) 06:46:50.07
それ、金とってるんだから楽チンなのは当然だろ
458デフォルトの名無しさん:2011/02/24(木) 07:47:24.04
いつの時代の話だ
今はタダで落とせるよ
459デフォルトの名無しさん:2011/02/24(木) 08:31:11.15
信者乙。GUIエディタ以外に欲しい機能が
片っ端から削除されてるExpressなんぞ、
まともな開発では役に立たん。
460デフォルトの名無しさん:2011/02/24(木) 08:39:30.23
MMDはExpressで作成されてるんだぞ
461デフォルトの名無しさん:2011/02/24(木) 09:46:33.92
以前C#メインでやってたけど
GUI以外はVSよりeclipseのほうが圧倒的に使いやすいな〜
もちろん同じ無料のExpressと比べてだけど
VSもeclipse風のアドイン入れればだいぶましになるのかも知れんけど
スレチだけどeclipseでどっとGUIも含めてネット使えると幸せなんだけどな
462デフォルトの名無しさん:2011/02/24(木) 09:56:56.54
日本語でおか
463デフォルトの名無しさん:2011/02/24(木) 11:24:17.48
GUIのレイアウトは、自分でコツコツ手打ちが一番

ウィンドウサイズ変わったときの挙動とか、細かい動きで
GUIツールにまかせて、うまくいかなくなったときが詰む

ちゃんと事前にレイアウトを決めていれば、時間そんなにかからんしね
464デフォルトの名無しさん:2011/02/24(木) 11:34:03.68
そりゃまともなGUIビルダ使ってないからだ
465デフォルトの名無しさん:2011/02/24(木) 11:42:43.42
道具のせいにして無駄な工数かけて共通のフローから外れた作業する老害は消えて欲しい
466デフォルトの名無しさん:2011/02/24(木) 12:43:42.06
ドットサイズのマウスさばきと眼力で、何とかGUIビルダへ念を伝えようと
キリキリしながらGUI作るよりも、ロジック的に大雑把作ったほうが簡単だろ

一部配置を変更する場合もGUIビルダだとすぐ、ぐちゃぐちゃになるし
レイアウトクラスとかに元から備わっている便利な機能とか使えずに
わざわざ人の手で個別にコンポーネントを調整とか面倒
467デフォルトの名無しさん:2011/02/24(木) 12:44:59.91
>>466
はいはい
468デフォルトの名無しさん:2011/02/24(木) 12:45:12.56
Javaならな
なんで需要はそれなりにあるはずなのに未だにゴミみたいなのしかないんだろう
469デフォルトの名無しさん:2011/02/24(木) 12:47:25.75
NetBeansのMatisseは優秀だし
それで業務でも十分回ってる
Eclipseは糞
470デフォルトの名無しさん:2011/02/24(木) 12:50:59.87
VSいいお^^
471デフォルトの名無しさん:2011/02/24(木) 12:54:18.46
まあVSが無かったら今でもJavaもGUI手打ちコード補完なしが普通だっただろうな
VSがユーザーのコード補完とGUIビルダの要求を引き上げまくってるのは事実
472デフォルトの名無しさん:2011/02/24(木) 12:59:13.21
473デフォルトの名無しさん:2011/02/24(木) 13:52:57.11
Matisseが優秀ってのは無いわ
そういう批評が多いのはあくまでEclipseとかJavaの世界のものと比べて
VSとは比較にならん
474デフォルトの名無しさん:2011/02/24(木) 14:01:48.78
vs.netのguiは特に何がいいの?
475デフォルトの名無しさん:2011/02/24(木) 14:09:08.74
特に何が良いというより、悪いところがないんだよ
GUIビルダーってバグだらけで不安定で信頼できないのが普通だけどVSは別格
476デフォルトの名無しさん:2011/02/24(木) 14:09:33.49
>>473
頭が悪いの?
ここはJavaのスレだよ?
477デフォルトの名無しさん:2011/02/24(木) 14:15:12.45
Character[]をザクッとStringに変換したいんですけど
どのようにすれば可能ですか?
478デフォルトの名無しさん:2011/02/24(木) 14:20:54.55
>>477
char hoge[] = {'h','o','g','e'};
String fuga = new String(hoge);
479477:2011/02/24(木) 14:27:20.51
charとCharacterって違うんですよね
ループで全部キャストしてから変換する以外の方法ってないのかなぁと
480デフォルトの名無しさん:2011/02/24(木) 14:40:18.73
>>478
どうしてもCharacterじゃなければいけない理由があるなら諦めろ
481デフォルトの名無しさん:2011/02/24(木) 16:24:12.73
>>463とか昔のダイアログエディタとかしか知らないんだろうな .
482デフォルトの名無しさん:2011/02/24(木) 16:38:40.64
ダイアログエディタってどういうのなの?
483デフォルトの名無しさん:2011/02/24(木) 19:32:01.90
javaチップってどうなったの?
484デフォルトの名無しさん:2011/02/24(木) 20:09:12.97
画面に関してはJavaFXに期待してたんだが、お亡くなりになってしまったのでどうしようも無い。
485デフォルトの名無しさん:2011/02/24(木) 21:09:43.44
無くなってないだろ。JavaFX Scriptが無くなるだけ。
APIとして作り込んでJRubyやJythonで開発させたいじゃねーの?
486デフォルトの名無しさん: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;
}
487デフォルトの名無しさん:2011/02/24(木) 22:15:59.09
//☆★☆★☆★☆★☆★☆★☆★☆★
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);
//☆★☆★☆★☆★☆★☆★☆★☆★
488デフォルトの名無しさん:2011/02/24(木) 22:18:49.94
>>487
スレ違いでしょうか? でしたらどちらに行けばいいでしょうか?

インデントが消えたので 全角スペースで置換しました。

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;
}
489デフォルトの名無しさん:2011/02/24(木) 22:56:39.93
質問です。
Amazonランクレットってどういうコードなんでしょうか?javascriptですよね?
ついでにjavascriptは触ったこと無いです。
490デフォルトの名無しさん:2011/02/24(木) 23:18:38.67
s2jdbcの話はこのスレであってますか?
不適な場合は誘導お願いします。

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はありませんとかなんとか…

どのように実装したらいいのでしょうか?
491デフォルトの名無しさん:2011/02/24(木) 23:34:12.84
>>486
new DataInputStream(in).readFully(buffer);
492デフォルトの名無しさん:2011/02/25(金) 01:04:32.56
不覚にも>>487
493デフォルトの名無しさん:2011/02/25(金) 01:47:23.26
>>492見るまで意味分からんかった
何か、ソースに適当にコメント追加して、
アスキーアートに変換できるツールとかないかな…
あったら、嫌いな納品先に使うのに…
494デフォルトの名無しさん:2011/02/25(金) 05:54:05.85
スルーしろ
495デフォルトの名無しさん:2011/02/25(金) 06:29:52.99
やっぱりジャヴァはもうだめぽ
496デフォルトの名無しさん:2011/02/25(金) 09:22:40.69
【javaプログラミング】JKが手探りでテトリス作る!【初見歓迎】 - ニコニコ生放送
http://live.nicovideo.jp/watch/lv41524401
497デフォルトの名無しさん:2011/02/25(金) 11:00:02.37
>>496
趣味でやってるんじゃなくてレポートでやってんのかよマジでカスすぎる
こんな奴にプログラミングやってほしくないわ
498デフォルトの名無しさん:2011/02/25(金) 11:01:24.09
>>496
JKの声ってかわいいなあ
499デフォルトの名無しさん:2011/02/25(金) 12:19:51.08
>>491
> >>486
> new DataInputStream(in).readFully(buffer);
それだとデータ長がbuffer.lengthの整数倍じゃないときに
末尾が捨てられちゃうな
500デフォルトの名無しさん:2011/02/25(金) 12:39:35.72
api の説明をよく読めよ
501デフォルトの名無しさん:2011/02/25(金) 12:55:42.41
アホしかいないんだからもっと簡単な質問にしてくれよ!
502デフォルトの名無しさん:2011/02/25(金) 15:34:53.11
アップデートの知らせのウインドウって、暫く放置してると
勝手にタスクトレイに戻されるんだな
503デフォルトの名無しさん:2011/02/25(金) 18:15:58.20
1.6javaです

ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
socket.close();

oosを明示的に閉じる必要ありますか?
504デフォルトの名無しさん:2011/02/25(金) 18:25:37.23
>>503
場合によるので何とも言えないが
その2行だけのプログラムなら必要ない
違うのならストリームは開けたら必ず閉じろ
505デフォルトの名無しさん:2011/02/25(金) 18:30:01.10
>>503
oosを閉じればsocketも閉じるのに、なんでそんな使い方するの?
506デフォルトの名無しさん:2011/02/25(金) 18:34:09.79
詳細かかないとね・・・
centOs5 64JRE

秒間0〜1,500回 newされるrun()の中で使い捨てます
windows 64JRE で確認したらメモリリークはない様なのですが
上記の場合を知りたいです

ソース見ろって話ですよね・・
507デフォルトの名無しさん:2011/02/25(金) 18:36:23.44
>>505
まじで? サンクス
socket.close()のステートメントが余計なんだね
508デフォルトの名無しさん:2011/02/25(金) 20:58:19.74
JavaScript IFrameで表示されたエリア内の
特定要素を非表示にする事は出来ますか?

具体的には、id="test"を持つブロックを非表示にしたいです。

<iframe>
<div id="test">
</div>
</iframe>
509デフォルトの名無しさん:2011/02/25(金) 20:59:25.06
>>507
気になるなら、JDKインストールディレクトリにあるsrc.zipを確認してみると吉。
510デフォルトの名無しさん:2011/02/25(金) 21:23:14.10
>>508
できます。
親フレームじゃないととか言う制限があったかもしれないけど。
jQueryとか使ったが早い。

JavaScriptのスレへどうぞ。
511デフォルトの名無しさん:2011/02/25(金) 21:46:10.89
>>508
帰れ愚民
512デフォルトの名無しさん:2011/02/26(土) 00:55:50.31
>>510
ありがとうございます。
試してみます。

>>511
死ね
チンカス
513デフォルトの名無しさん:2011/02/26(土) 03:06:30.22
>>479
そもそもCharacter[]自体みかけないからなぁ
514デフォルトの名無しさん:2011/02/26(土) 06:46:55.84
>>512
すれ違いは死ねよ
515デフォルトの名無しさん:2011/02/26(土) 07:43:42.96
おはようございます
マルチスレットでadd シングルスレッドでpullする場合に適した
Queueの実装はどこのどいつですか?
ConcurrentLinkedQueueとaddをロックオブジェクトで囲む場合も含めて
パフォーマンス第一でお願いします。


マルチスレッドでadd remove getできるSetも教えてください
removeはイテレータ内でやってます
516デフォルトの名無しさん:2011/02/26(土) 07:47:11.18
>>510
jQueryってJavaなんですか?
517デフォルトの名無しさん:2011/02/26(土) 11:09:13.17
>>516
>>510じゃないがJavaじゃないよ
だからJavaScriptのスレに誘導してるんだろ
518デフォルトの名無しさん:2011/02/26(土) 12:45:58.30
言語の質問じゃないけど、
jvisualvmに定期的にダンプを取る機能ってある?
519デフォルトの名無しさん:2011/02/26(土) 14:56:07.65
>>515
死ねば?
520デフォルトの名無しさん:2011/02/26(土) 14:57:56.32
>>518
jstat の出力を保存するのじゃダメ?
521デフォルトの名無しさん:2011/02/26(土) 16:19:12.44
JavaDBはJDKフルインストール時にインストールされると聞いたのですが
x64版のJDKには入っていないんでしょうか?
インストールしたのですが、確認出来ませんでした
522デフォルトの名無しさん:2011/02/26(土) 17:37:23.23
dom4jについて質問

Element element = root.addElement( "property" );
element.addText( "あああ" );

こんな感じでxmlに2バイトの要素を入れたいのだけど
2バイト文字列の部分がUTF-8にならなくて困ってます。

2バイト文字列の部分もUTF-8にする方法ってありますか。
523デフォルトの名無しさん:2011/02/26(土) 17:50:58.17
>>521
どこを確認して無かったの?
524デフォルトの名無しさん:2011/02/26(土) 18:12:04.47
>>522
おまえは何をいっているんだ?
XMLのencodingの部分はどうなってる?
それともUnicodeの\udddd 表記にしたいってこと?
525デフォルトの名無しさん:2011/02/26(土) 18:18:36.63
>>523
インストール時にインストールする内容が確認できる画面でもJavaDBの表示はされていませんでしたし、
本ではcのプログラムファイル下にsun\JavaDB...と作成されると書いてありましたが、作成されていませんでした
526522:2011/02/26(土) 18:44:21.09
>>524

もちろん、<?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>

こうしたいわけだ。
527デフォルトの名無しさん:2011/02/26(土) 18:46:43.69
秀丸に苦情いって迷惑かけてこい
528522:2011/02/26(土) 18:47:29.23
追加

テキストデータ自体はUTF-8になってるけど
2バイト文字列だけが、何故かshift-jisになってる。
529デフォルトの名無しさん:2011/02/26(土) 18:51:47.07
>>526
dom4jのことはしらんが、普通はElementノードの子にTextノードをぶらさげる
530522:2011/02/26(土) 18:55:02.02
あああ、解決した。

eclipse自体の文字コードが影響していた。
eclipse初期のMS932の文字コードで書き出されていたので
ダメだったらしい。
eclipseをUTF-8にして2バイト文字書き直してxml書き出したら正常だったよ。

情報不足だったし事故解決だったしで、なんかすみません。
時間使ってくれた方ありがとう!
531デフォルトの名無しさん:2011/02/26(土) 19:09:48.56
ウザイ
早く死ねよ
532デフォルトの名無しさん:2011/02/26(土) 19:14:03.26
>>521
誰か分かりませんでしょうか?
533デフォルトの名無しさん:2011/02/26(土) 19:20:38.35
どこで聞いたんだよ
534デフォルトの名無しさん:2011/02/26(土) 19:27:31.86
おはようございます
マルチスレットでadd シングルスレッドでpullする場合に適した
Queueの実装はどこのどいつですか?
ConcurrentLinkedQueueとaddをロックオブジェクトで囲む場合も含めて
パフォーマンス第一でお願いします。


マルチスレッドでadd remove getできるSetも教えてください
removeはイテレータ内でやってます
535デフォルトの名無しさん:2011/02/26(土) 19:30:07.28
536デフォルトの名無しさん:2011/02/26(土) 21:55:53.79
Javaでアプリケーションを作成しようと思っているのですが、
Javaのテキストなどで紹介されていGUIのプログラムの画面って、
なんだかボタンやテキストフィールドのレイアウトというか位置が独特ですよね。
なんだか画面を均等に分割して貼り付けているというイメージを持ちます。
ドット単位の座標でレイアウトをするのにはJavaは向いてないのでしょうか?
537デフォルトの名無しさん:2011/02/26(土) 22:26:53.85
Javaはマルチプラットフォーム意識してるから、
OS毎のUIの装飾の違いを吸収するために「代替この辺り」でレイアウトすることを推奨してる。
一応レイアウトマネージャにnullを設定したり、GroupLayoutを使うことで座標配置は可能
538デフォルトの名無しさん:2011/02/26(土) 22:35:55.76
Andoroid アプリの作成は、Windows アプリと同じ容量ですか?

また、Andoroidアプリの作成はEclipseいったくしかないですか?
539デフォルトの名無しさん:2011/02/26(土) 23:30:56.38
>>536
UIデザインの本でも読むんだな。ドット単位で並べることよりも考えないといけないことがあることを書いてあるかもしれないぞ。
540デフォルトの名無しさん:2011/02/26(土) 23:35:31.74
>>520
jmapで定期ダンプ取るようにしてるが、GUIでできる方法がないかなと…
541デフォルトの名無しさん:2011/02/26(土) 23:59:47.59
logbackを使ってるんだけど、
メインスレッドからしかログへの書き込みしてなければ
メインスレッドからSystem.exitしてログファイルとか壊れたりしない?
542デフォルトの名無しさん:2011/02/27(日) 17:53:38.92
100*100サイズのイメージ(バック黒)を作ってコンテントに追加してpack();してwindowもそのサイズでできあがり
後でイメージを200*200に拡大してresize(200,200);でwindowも拡大させてるんですが
100*100の領域はイメージが黒く表示され、その外側はグレーで何も表示されません。
MyPanelから描画されたのは元の大きさだけです。
200*200の領域をちゃんと表示させるにはどうすればいいんでしょうか?
543デフォルトの名無しさん:2011/02/27(日) 18:00:24.29
あ、MyPanelではちゃんと拡大されたサイズを描画しています。
544デフォルトの名無しさん:2011/02/27(日) 18:40:51.53
Javaで複数のSQL文やストアドプロシージャを記述したテキストファイルを読み込み、
それを1つずつ実行して別のテキストファイルに書き出す処理を実現したいです。
どのようにすれば、この機能を実現できるのでしょうか?

1行だけのSELECT文やINSERT文、UPDATE文、DELETE文を実行することはできていますが、
複数行のものやCREATE文、ストアドプロシージャが動きません。
どこかに分かりやすい参考サイトはありませんか?(もちろん自分でも探しています。)

なお、DBは、MySQL5.0を使用します。
545デフォルトの名無しさん:2011/02/27(日) 18:44:59.09
>>544
行頭か行末にスペース入れてみるとか
改行コードがおかしいとか

発行されたSQL文とか
エラー内容はどうなってんだ
546デフォルトの名無しさん:2011/02/27(日) 23:37:41.85
JDK1.6、Netbeansを使用しています。
List myList = new ArrayList();
myList.trimToSize();
とやると、メソッドが見つからないというエラーがでます。
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/ArrayList.html
を見る限り存在しているようなのですが、、、使い方が悪いのでしょうか。

547デフォルトの名無しさん:2011/02/27(日) 23:42:08.24
それはArrayListのメソッドであって、Listのメソッドではないからです
myListはList型なので、Listにはそのメソッドはありません
ArrayListにキャストするか、
((ArrayList) myList).trimToSize();
最初からmyListをArrayList型で宣言します
ArrayList myList = .....
548デフォルトの名無しさん:2011/02/27(日) 23:47:12.57
ありがとございます。
言われてみればその通りですね。
馬鹿でした。
549デフォルトの名無しさん:2011/02/27(日) 23:53:58.07
バーカ!バーカ!
550デフォルトの名無しさん:2011/02/28(月) 00:02:45.95
質問スレで罵るとか、お前の人生それでいいのか
551デフォルトの名無しさん:2011/02/28(月) 00:11:34.02
罵られるのも悪くないです。
ありがとございますになってるしね。
う、どこいったんだよ。
552デフォルトの名無しさん:2011/02/28(月) 00:36:41.46
553デフォルトの名無しさん:2011/02/28(月) 00:53:56.42
>>5
わーおwwwwww
554デフォルトの名無しさん:2011/02/28(月) 00:55:58.60
>>553
これはまちがい
ほんとは>>552
555デフォルトの名無しさん:2011/02/28(月) 09:42:15.01
>>543
本当か?
どう確認したのか知らんから疑うが、本当に描画しているか?
「そうプログラムしてあります」じゃ論外だぞ。
ウインドウのサイズが変わったらパネルのサイズも変わっているか?
それによってpaint(paintComponent)が適切なパラメータで呼ばれているか?
556デフォルトの名無しさん:2011/02/28(月) 13:10:41.17
LDAP接続でプールを使用しない設定にしていますが、必ず1つだけ接続が残っています。
どうもコンストラクタコール時に接続をしていて、それをコンテキストが破棄されるまでオープンしっぱなしになってます。
これは仕様なのでしょうか?それともバグ?

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);
557デフォルトの名無しさん:2011/02/28(月) 19:30:56.32
NIOを懇切丁寧に解説してくれているWebサイトか本が有れば教えて欲してちょ。
558デフォルトの名無しさん:2011/02/28(月) 23:58:18.79
Eclipse動かすほどじゃない
っていうようなソース読むとき用のエディタってないですか?
559デフォルトの名無しさん:2011/03/01(火) 00:00:32.20
めもちょう
560デフォルトの名無しさん:2011/03/01(火) 00:03:56.01
確かにメモ帳は軽い
軽いがこれでソース読む気力は無いわ
561デフォルトの名無しさん:2011/03/01(火) 00:14:08.66
Eclipseもそうだが、カレントポジションから前方/後方にしか進めない検索はクソすぎる
562デフォルトの名無しさん:2011/03/01(火) 00:14:58.80
カレントポジション言いたかっただけだな
563デフォルトの名無しさん:2011/03/01(火) 00:19:06.55
何かレスがレスポンスしたかと思えば、
オンリージャスト言いたかっただけとか、WTF!
564デフォルトの名無しさん:2011/03/01(火) 00:25:48.60
しかも最後に到着しましたのメッセージとともにポップアップとか
あれはうざい
565デフォルトの名無しさん:2011/03/01(火) 00:42:47.61
確かに芋臭いよね。クッサーって思う。
566デフォルトの名無しさん:2011/03/01(火) 01:07:37.35
基本的なクラスのロードが出来なくて困っています。

■LoadedClass.java
package loaderClasses;

public interface LoadedClass {
public void doIt();
}
567デフォルトの名無しさん:2011/03/01(火) 01:08:21.99
■SpeciallyLoadedClass.java
package loaderClasses;

public class SpeciallyLoadedClass implements LoadedClass {
public void doIt() {
System.out.println("doIt: Hello from " + getClass().getName());
}
}
568デフォルトの名無しさん:2011/03/01(火) 01:09:15.37
■LoaderMain.java(mainクラス)
import 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();
}
}
}
569デフォルトの名無しさん:2011/03/01(火) 01:10:40.21
■SimpleLoader.java
import 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) {

570542:2011/03/01(火) 02:00:48.16
何かがマスクして最初の100*100の外側を覆っているんですよねえ。
いろいろ試しましたが何がマスクしているのか見当がつきません。
571デフォルトの名無しさん:2011/03/01(火) 02:02:18.01
■SimpleLoader.java (続き)
try {
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;
}
572デフォルトの名無しさん:2011/03/01(火) 02:03:44.27
■SimpleLoader.java (続きの続き)

private 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;
}

}
573デフォルトの名無しさん:2011/03/01(火) 02:08:56.61
でmainの引数として置いてあるclassのパスを渡して実行できるはず
なのですが、■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);
に飛んでくる感じです。

説明下手で大変申し訳ございませんが、
どなたか上記現象について何かわかる方おられましたら、
ご教授のほどよろしくお願い致します。
574デフォルトの名無しさん:2011/03/01(火) 04:05:18.55
>>558
色分けできるエディタならなんでもいいと思うが
俺はWinではサクラエディタ使ってる。
ツリー解析して飛べるのが便利
575デフォルトの名無しさん:2011/03/01(火) 07:58:19.07
>>566
読みづらい。
↓こっちに貼ってくれ。
https://gist.github.com/
576デフォルトの名無しさん:2011/03/01(火) 08:37:02.03
>>570
描画をpaintでやってるか?
そいや少し前に宿題スレで、paint(g)以外で描画するサンプルを使ったものがあったが、その派生じゃないだろな。
577デフォルトの名無しさん:2011/03/01(火) 08:51:20.28
宿題スレの内容は知りません。通常の方法です。
>>543にあるようにpaintComponentに行かせ全サイズ描画してます。
そのイメージの上には何も置いてないので描いても100より右は何かに描画をクリップされて止められてる感じです。
578デフォルトの名無しさん:2011/03/01(火) 09:00:23.39
revalidate()
579デフォルトの名無しさん:2011/03/01(火) 09:04:59.69
入れるタイミングがよくわからないですが
MyPanel.revalidate();
もサイズ変えた後でいれてあるんです。
580デフォルトの名無しさん:2011/03/01(火) 09:52:02.94
お前の質問がよくわからないのですが
ソース貼れよクソが
581デフォルトの名無しさん:2011/03/01(火) 11:09:53.76
>>566
あるクラスをロードするにはその親クラスが必要なのだからそれらを読みに行くことについて不思議はないよな
問題はなぜjava.lang.Objectに対してfindSystemClassが失敗してるのかという一点じゃないのか
せっかく例外をcatchしてるんだから握りつぶさずに表示させてみたらどうよ
582デフォルトの名無しさん:2011/03/01(火) 12:13:56.85
>>579
そうだな、どうも説明だけじゃ見つかりそうもないから、一式アーカイブしてどこかにうpしてくれ。
583542:2011/03/01(火) 12:39:08.20
少し掴めました。 問題は setPreferredSize()
class 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に設定したものが固定されているようです。
584デフォルトの名無しさん:2011/03/01(火) 12:50:48.49
相談するつもりがないなら自分の日記でやってくれ
相談するつもりがあるなら必要な情報を隠さずに最初から全部書いてくれ
585デフォルトの名無しさん:2011/03/01(火) 13:08:49.72
それは最初からここに問題があるとはわかっていなかったので。
外から
setPreferredSize(new Dimension(Width,Height));
を変更するにはどう書けばいいのでしょうか?
586デフォルトの名無しさん:2011/03/01(火) 14:06:50.08
普通にそのパネルに対して setPreferredSize を呼べば上書きされる
だから今まで示された情報からでは問題を特定できそうにないと思われるので、>>582
587542:2011/03/01(火) 14:35:23.55
うpしてみました
pass:0123
ttp://www.rupan.net/uploader/download/1298957275.java

MyPanel.setPreferredSize()
の位置は外に出しています。(結果は変わってませんが)
588デフォルトの名無しさん:2011/03/01(火) 14:59:21.43
見た
setLayout(null); を消して resize(Width,Height); の代わりに pack();
setPreferredSize はレイアウトマネージャが使うものだからレイアウトマネージャが無かったら効果がない
フレームの resize はウィンドウ枠込みのサイズだから中身のサイズを 200, 200 にしたいならいまいち
589デフォルトの名無しさん:2011/03/01(火) 15:10:33.96
おお、できました。
そういう問題でしたか。
お手数かけました。
どうもありがとうございます。
590デフォルトの名無しさん:2011/03/01(火) 16:29:39.71
jspでのformでtext inputされた数値の文字列を
毎回doubleに変換するのめんどくさいのですが
自動でテキストから数値型に変換してくれる方法ないのでしょうか

strustには入力が数値かどうかチェックする機能あるのに
変換機能がないのって変じゃないのですか
591デフォルトの名無しさん:2011/03/01(火) 16:43:09.92
double 型から int 型への変換するとき
DecimalFormatでstringにしてからintに戻すのと

キャストで
int i = (int) d;というようにするのではどちらがいいのでしょうか?

とあるサイトではキャストは危険だから極力使わないほうがいいと書いてありましたので。
592デフォルトの名無しさん:2011/03/01(火) 17:05:45.96
プログラム板でも聞いたけど人あんまいないんで

double 型から int 型への変換するとき
DecimalFormatでstringにしてからintに戻すのと
キャストで
int i = (int) d;というようにするのではどちらがいいのでしょうか?
とあるサイトではキャストは危険だから極力使わないほうがいいと書いてありましたので。
593デフォルトの名無しさん:2011/03/01(火) 17:06:28.05
スレ間違えてたスマソ
594デフォルトの名無しさん:2011/03/01(火) 17:16:46.43
20分で人いない判断かよw
キャストは動的型変換なので静的チェックが十分利かずバグが入る可能性が高まるってだけで、
実際に何が行われるのか理解して使う分には何の問題もない。
ただ(int)はゼロ方向に丸められるので最近の整数に丸めたいとかならMath.roundでlongにしてからintへ等別手段を。
595592:2011/03/01(火) 17:22:40.59
>>594
ありがとうございます。
Math.roundでやってみます。
596566:2011/03/01(火) 19:29:30.36
>>575
ご教授ありがとうございます。こんなところがあるんですね。
https://gist.github.com/848928
として貼り付けました。

>>581
大変申し訳ございません。
この質問において

c = findSystemClass(name);

はコメントアウトしておりました。
と言いますのも、この演習においてclassファイルをbyte配列に読みこんで
defineClassによりクラスを取得ということをやりたかったのですが、
「LoadedClass」とか定義解決するには「package loaderClasses」を
外部クラスとして参照しなきゃいけない(?ここが既に間違ってますでしょうか。。?)

そうすると、必ずfindSystemClassで解決してしまう。

そうならないようにコメントアウトして、実行すると上記URLの
最下部のようになります。

そもそもの環境づくりが間違っているのかもしれませんが、
LoaderClassesパッケージを入れたディレクトリにObject.classファイルを
探しに行ってしまいます。。
597デフォルトの名無しさん:2011/03/01(火) 23:13:17.59
申し訳ありません、ここに質問していい内容なのか微妙なのですが、複数計算機構成でのJavaDBについて質問です。
Windows7(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と言われてしまいます。
ファイヤーウォールには穴を開けているため、何故接続できないのか分からず、悩んでいます。
ご回答下されば幸いです。
598デフォルトの名無しさん:2011/03/01(火) 23:30:08.50
>>597
telnetでつなげられないならJava関係なさそうだが

Windows側のファイアウォールじゃなくて
Linux側のファイアウォール的なものが開いてないんじゃない?
iptablesとかいじった?
599デフォルトの名無しさん:2011/03/01(火) 23:35:15.72
>>597
Linuxのファイヤーウォールは一応設定していて、

GNOMEのGUIの
システム→管理→セキュリティレベルとファイヤーウォールの設定
から、「その他のポート」に1527のTCPとUDPを指定しています。
ここに177を指定してXでログインできるようにしているので、反映されてると思ってるのですが、
現象面で見るとポートが開いていないように見えてしまって…

このスレに複数台の環境でDerbyを使っている人がいたら、同じような現象が発生してそれをクリアしてるのではないかと
期待した次第です。
600599:2011/03/01(火) 23:35:58.72
レス先間違いです。失礼しました

× >>597
○ >>598
601デフォルトの名無しさん:2011/03/02(水) 01:12:33.28
>>599
逆にWindowsにderby入れて
ファイアウォール開けてLinuxからは入れるかやってみたら?
十中八九Linuxの設定周りだと思うよ
602デフォルトの名無しさん:2011/03/02(水) 01:18:06.78
>>601
今確認してみたところ、同じようにrefuseされました。
いずれにせよ、通信設定周りの問題である可能性が濃厚ですので、
自分でしばらく試行錯誤してみます。

お付き合いいただきありがとうございました。
603602:2011/03/02(水) 01:19:06.45
あ、失礼しました。
>>602=597です。
604デフォルトの名無しさん:2011/03/02(水) 09:56:35.41
>>596
親ローダを差し置いてロードする変則クラスローダを作りたいわけでなく、
その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
ならクラスファイルを移動する手間が省ける。
何クラスを自作ローダでロードしたいのか辺りがはっきりしないのでこれでいいか分からんが。
605デフォルトの名無しさん:2011/03/02(水) 18:03:41.60
javaではassertはあまり使わず例外スローが美徳でしょうか?
606デフォルトの名無しさん:2011/03/02(水) 18:26:38.91
javaではキャッチアンドリリースが美徳です
607デフォルトの名無しさん:2011/03/02(水) 18:28:07.82
>>606
ありがとうございます。
例外を使ってきます。C,C++から来たのでついassert書きたくなるんですが
608デフォルトの名無しさん:2011/03/02(水) 18:49:30.56
いや書くだろ…プロジェクトによるだろうけど。
assertを判定処理代わりにするのは問題だと思うが、事前、事後条件はassertしたりしないか。
コメントで書くより有益だし。
609デフォルトの名無しさん:2011/03/02(水) 19:09:03.68
assertはErrorを投げるから、StackOverFlowとかOutOfMemoryぐらい予測できない現象をチェックするのに使う
コンパイル時の設定で消せるから、開発向けに使えばいいと思うよ
610596:2011/03/02(水) 19:27:25.33
>>604
ご教授ありがとうございます。
なんとなく理解でき、実行することができました。

LoaderMain.javaの型解決を行うには、
LoadedClassインターフェースしか必要無いんですね。。
すいません、根本的にここを理解してしませんでした。

で、SpeciallyLoadedClassはクラスパスから外して、
.classバイナリを読ませるようにして、その他

defineClassから再帰的にSimpleLoader#loadClass()を
呼んで要求される?
(ここがdefineClass()の内部を追えてないのでよくわからないんですが。。
 上記例のSpeciallyLoadedClass#doIt()を呼んだ際にも、
 勝手にSimpleLoader#loadClass()が呼ばれる。。)

loaderClasses.LoadedClass
java.lang.Object

は親にまかせてfindSystemClass()で処理すると。

丁寧なご教授ありがとうございました。
611デフォルトの名無しさん:2011/03/02(水) 23:21:00.43
assertは必ず成立する(はずの)ことに対して宣言する。

基本的に、手続き的な確認が容易な、
1つのファイル内で閉じている範囲で必ず成立することが確定できるようなものに対して
assert を使うというふうにするのが簡単。

例えば、配列やコレクションなどをフィールドに格納する場合は
防御コピー後に事前条件の確認を行わないと無意味なので、
内部ロジックの奥底でも例外を使う。
612デフォルトの名無しさん:2011/03/03(木) 00:15:48.34
JavaSE6とNetBeans6.9を使っているのですが、
例外処理にe.printStackTrace();と書くとNetBeansから
「Throwable#printStackTrace()を削除してください」と
警告されてしまいます。 実行できますが。

printStackTrace()は使っちゃいけないことになったのですか?
613デフォルトの名無しさん:2011/03/03(木) 00:27:40.30
成立するはずのことをチェックするはテストの役目でないの?
614デフォルトの名無しさん:2011/03/03(木) 00:29:57.79
>>612
標準出力に吐くなログを使えということ
615デフォルトの名無しさん:2011/03/03(木) 02:17:36.51
try{}
catch(Exception ex){ex.printStackTrace();}

javaの定石。アホだから
616デフォルトの名無しさん:2011/03/03(木) 02:21:15.22
駄目プログラマ乙
617デフォルトの名無しさん:2011/03/03(木) 02:25:24.81
awtの警告で
「シリアライズ可能クラス AWTTest は long 型の static final serialVersionUID フィールドを宣言していません」
で↓の記述を
private static final long serialVersionUID = 1L;
Serializableをインターフェース継承しているかららしいですが、
これはなぜIDの実装が必要なのですか?
618デフォルトの名無しさん:2011/03/03(木) 02:28:54.30
入門で教えたりするから今やコボラー以上のお荷物が大量生産されております
619デフォルトの名無しさん:2011/03/03(木) 04:29:35.06
>>617
そのIDがクラスのバージョンだから。
あとは自分で調べろ。
620デフォルトの名無しさん:2011/03/03(木) 11:49:10.33
antlrをバージョン2から3にあげると、何かうれしいことありますか?
今まで出来なかったすご技ができるとか
621デフォルトの名無しさん:2011/03/03(木) 16:18:45.53
>>615
チェック済み例外の是非をどうこう言うつもりはないが、
Webサイトや書籍のサンプルコードに平気でこんなものが出てくるのは
チェック済み例外のせいだよな
いくら「エラー処理は省略しています」と断ってあっても初心者はこれでいいんだと思ってしまう
622デフォルトの名無しさん:2011/03/03(木) 17:00:25.63
>609
コンパイル時でなく実行時な。パッケージやクラス単位でスイッチ可能。

基本、assert文は、コード修正やリビルドが必要なぐらい深刻な異常を
自己診断するとき用と割り切ってるけどなぁ。

ところで副作用付きassert文を弾き飛ばすPMDルールとか作ったら需要あるかな?
623デフォルトの名無しさん:2011/03/03(木) 17:59:25.02
そう思うなら、お前らが本でも書けよ
624デフォルトの名無しさん:2011/03/03(木) 18:02:44.90
最悪RuntimeExceptionでラップして投げ直すくらいやってくれたらよかったのに
625デフォルトの名無しさん:2011/03/03(木) 19:42:41.78
>>619
クラスにバージョンが必要なんて不思議ですぅ
ありがとうございました。
626デフォルトの名無しさん:2011/03/03(木) 20:03:02.22
>>624
自分で処理しないならErrorにした方がいいとか
627デフォルトの名無しさん:2011/03/03(木) 21:25:57.85
javaで3Dグラフィック扱いたいならどうすればいいでしょう?
628デフォルトの名無しさん:2011/03/03(木) 21:41:03.08
jogl使うといいでしょう
629625 :2011/03/03(木) 22:25:15.19
>>619
なるほど、たとえばファイルにクラス情報を書き出した後読み込むとき、
同じクラスでも変更があったりして、
書いたときのバージョンと違うと困るときがあるからIDつけておこう!
これで間違いがおきにくいね!やったね!ということですか。
わかりました。どうもです。
630デフォルトの名無しさん:2011/03/03(木) 22:44:27.34
わざわざserialVersionUIDを宣言しているってことは、
シリアライズに対して考慮しているってことを宣言しているのと同等

デフォルトに任せないで、ちゃんとreadObjectとか安全に実装しろよ?
631デフォルトの名無しさん:2011/03/03(木) 22:47:50.07
初心者です
ここのサンプル(kowaza.boo.jp/06mouse/onm-06.html)で
四文字熟語の部分を画像にして、
オンマウスで画像が変わり、更にリンク先をそれぞれ持たす。
そして、オンマウスで下に出てくる文字もそれぞれ画像にすることって可能ですか?
632625 :2011/03/03(木) 22:52:22.96
>>630
今はただの練習用なのでやらないですが、覚えておきます。
ありがとうございます。
633デフォルトの名無しさん:2011/03/03(木) 22:55:20.23
>>613
例えば

public void a(int i) {
if(i > 0) b(i);
}

private void b(int i) {
assert i > 0;
...
}

をどのようにテストするつもりかに興味がある。
private は外しちゃだめだよ?assertする根拠の一つなんだから。
634デフォルトの名無しさん:2011/03/03(木) 23:04:55.69
>>632
アプリケーションで閉じててシリアライズなんてやる予定なんてなければ
わざわざserialVersionUIDを宣言するよか
警告を無視する設定にした方が、マシと言いたかっただけだのだが

シリアライズをちゃんと実装するのは大変だぞ?
標準ライブラリのHashMapだって、抜けがあるし
635625 :2011/03/03(木) 23:18:52.10
>>634
なるほど、ありがとうございます。
警告無視設定にします。
636デフォルトの名無しさん:2011/03/03(木) 23:22:42.44
>>633
リフレクション使うとか
637デフォルトの名無しさん:2011/03/03(木) 23:54:55.70
質問!
GUIをnetbeansやwindows builderで作成して実行部分をJNIやJNAで実装できるモン?

またそんな人いる?
638デフォルトの名無しさん:2011/03/04(金) 00:23:23.43
例えば
2011年3月2日0:00をミリ秒で取得するにはどう書けばいいでしょうか?
639デフォルトの名無しさん:2011/03/04(金) 00:28:58.60
他人の質問はガン無視して自分の質問にだけは答えてくださいってか
640デフォルトの名無しさん:2011/03/04(金) 00:36:58.70
>>638
Calendar 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() );
641デフォルトの名無しさん:2011/03/04(金) 00:38:10.99
2ちゃんははじめてか坊や?w

642デフォルトの名無しさん:2011/03/04(金) 00:40:41.34
>>641
新参乙
643デフォルトの名無しさん:2011/03/04(金) 00:42:13.07
>>633
TDDならbのi > 0は自明だからaをテストすればコードカバレッジは100%
そうでないなら、非公開メソッドは使用する全ての公開メソッドが把握できるので、参照もとをテストすればカバレッジ100%。
644デフォルトの名無しさん:2011/03/04(金) 00:43:52.92
>>640
ありがとうございます

>>639
答えられないものは普通にスルーするでしょJK

645デフォルトの名無しさん:2011/03/04(金) 00:43:54.24
黙れよ鼻糞
646デフォルトの名無しさん:2011/03/04(金) 00:46:06.96
確実に答えてもらいたければはてなに行けばいいんじゃね
こんなところでレスもらえなくて逆切れするより
647デフォルトの名無しさん:2011/03/04(金) 00:49:03.64
本当に新参の巣かと思うくらい食いつくんだな。
アホなのかお前ら。
648デフォルトの名無しさん:2011/03/04(金) 00:50:48.50
ここ初心者スレでしょ^q^
649デフォルトの名無しさん:2011/03/04(金) 00:51:26.74
人間初心者はお断りです^p^
650デフォルトの名無しさん:2011/03/04(金) 00:53:08.96
>>645-649
自演ウザイです
651デフォルトの名無しさん:2011/03/04(金) 01:01:42.74
>>643
なんでここでTDDやカバレッジが出てくるのか分からんが
成立するはずの
assert i > 0;
をチェックするはテストなるものはどう書くのさ?

まあ、仮にテストが書けたとしても、
実行可能なメモ書きを書いてはいけないという理由にはならないから
どうでもいいんだけど
652デフォルトの名無しさん:2011/03/04(金) 02:00:38.08
どう書くというか、書く必要がないんじゃないの
bに渡す値が正しいか調べるのは、それは既にやってるようにbを呼ぶ直前に入れる
privateメソッドなら全ての呼んでる場所が解る、すべての呼び出しもとでチェックできる
呼び出しもとでテストカバレッジを100%にすればそのbは期待通り値が渡っていることになる
成立するはずのことはチェックできているので、そのassertは必要が無い
コンパイラぶっこわれたレベルを調べてる

TDDは余計だったけど、言いたいのは作られたprivateメソッドはリファクタリングの結果だから十分テストされていることになるのでassertは必要ないということ

プログラミングミスを拾いたいのであれば、ミスの時はillegalArgumentExceptionを投げさせて、
例外が正しく起きることをテストしておく
653デフォルトの名無しさん: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();
...
}

とかけとか?
654デフォルトの名無しさん:2011/03/04(金) 10:25:53.21
メソッドにいちいちそんな IllegalArgumentException 書くのは、
あんまりしないほうがいいな

コード書いてる途中で変な変数入れば、別のとこで、まあたとえば、
配列にアクセスしようとしたときとかに ArrayIndexOutOfException とか
何かしら例外投げるだろう

そういうのにまかせたほうがコード短くて済む 

(でも、たまに、バグの原因かわからなくなって変数チェックしないとデバッグ進まない感じが
したときとかは、そういうコード入れてもいいかもしれない)
655デフォルトの名無しさん:2011/03/04(金) 11:14:07.73
>>653
そう思うよ。@paramや@throwsでだめな呼び出し方があると文書化できるし、実行時にもわかる
正しく処理されてだめな時はだめになるかを成立しているかは、テストで確かめられる
assertはエラーだからVMレベルで実行不可能という意味で使いたいところかな。書くのは簡単なんだけど

>>654
「何かしら例外を投げるだろう」はコードの浅いところで起きた方がいいと思う
それに例外が無いということはすべての変数が受け入れ可能って仕様になるから
呼び出しミスなのにメソッドの実装ミスを意味させることになる
今回の場合設計上悪い呼び出し方があるって解っていることだし
コードは短い方がいいけど、間違いが解りやすくなってる方がよりいい
656デフォルトの名無しさん:2011/03/04(金) 11:28:32.50
つまらん
657デフォルトの名無しさん:2011/03/04(金) 12:53:39.03
>>654の書いたコードは使いたくないな…

基本的にはJavadocに書いた仕様を満たすようにすりゃ良いとは思う
引数の仕様にi <= 0はダメって書いてあるならIAE投げるのが普通だろ
658デフォルトの名無しさん:2011/03/04(金) 15:29:39.97
仕様と申されましても、

誰が使うか全くわからんくらいに大量配布するAPI作るってんならともかく、
ふつう目的の機能を動かすためにプログラミングするんだろう

どうせ投げない例外処理を書いてもしょうがない

(当たり前だが、失敗しそうなことに対して自動テスト書いてくことのほうが大事)
659デフォルトの名無しさん:2011/03/04(金) 15:35:49.46
>>658
素人さん?
660デフォルトの名無しさん:2011/03/04(金) 15:45:04.87
素人というより>>658は育った環境(会社/学校)が悪いんだろうな
そもそも自動テストを「失敗しそうな事」とやらの検証の為に書いている時点でおかしいだろ
自動テストは仕様通りの動作をする事を保証する為に書く物だ
その例外が発生しない事をお前はどうやって保証するつもりだよ
「ぼくがぼくの為に書いてぼくが使ってるAPIなんだから絶対大丈夫だよ!」とでも言うつもりか
661デフォルトの名無しさん:2011/03/04(金) 15:57:54.64
幾つかの標準APIに不正な値を入れると、IllegalArgumentExceptionではなく、ArrayIndexOutOfBoundsExceptionが戻ってくる事実。
662デフォルトの名無しさん:2011/03/04(金) 16:00:47.48
>>661
良く嫁
663デフォルトの名無しさん:2011/03/04(金) 16:25:09.24
パブリックAPIならきっちりチェックするのは当然
範囲外の値を引数に指定したらArrayIndexOutOfBoundsExceptionをスローするとドキュメントに書いてあるなら
別にそれはそれで構わないが、エラーを出さずに正しく動いているように見えてしまったり
後になってからエラーが出たりするのは最悪
664デフォルトの名無しさん:2011/03/04(金) 16:45:10.42
>>661
それはそういう仕様だとJavadocに書いてあったりしないか?
仮に書いていなかったとしても、標準APIでもある事例だからと言って
問題解決を複雑化したり、バグの温床になるようなコードを書く理由にはならない
Javaは上位互換を大事にしている言語だから
実際はその仕様はイケてないと思われているけれど
スローする例外の種類が変わると互換が崩壊するから
なおしたくてもなおせない可能性だってあり得るわけで
665デフォルトの名無しさん:2011/03/04(金) 16:52:49.18
パッケージ単位で統一されてりゃ不正なnullに対して
NullPointerException投げるんでもIllegalArgumentException投げるんでもどっちでもいい。

そーいやmethod(@NonNull String arg)みたいなアノテーションってどうなったんだっけ?
666デフォルトの名無しさん:2011/03/04(金) 17:01:45.67
>>665
JSR308が動いてないから無かった事になってるんじゃない?
667デフォルトの名無しさん:2011/03/04(金) 17:02:50.66
俺様仕様うざい
668デフォルトの名無しさん:2011/03/04(金) 17:05:00.32
どこから飛んでくるかわからない例外投げられる方がうざいな
669デフォルトの名無しさん:2011/03/04(金) 17:12:54.16
そんなことより野球しようようぜ
670デフォルトの名無しさん:2011/03/04(金) 17:57:36.22
>>654はすなおにごめんなさいすればいいとおもう
671デフォルトの名無しさん:2011/03/04(金) 19:01:09.60
バカjaver同士なんだから仲良くしろ
672デフォルトの名無しさん:2011/03/04(金) 19:44:29.52
仲良くしたいんだけど俺みたいなバカの相手してくれる人がいないんだよね
673デフォルトの名無しさん:2011/03/04(金) 19:53:20.67
>>665
そういう機能入れだしたら歯止めがきかなくなるんだよな
俺俺JavaだらけになってC++みたいになる
674デフォルトの名無しさん:2011/03/04(金) 21:59:25.33
>>673
似たような物でグーグルがインターフェイスでバリデーションかけれるフレームワークリリースしてたけど
あれはインターフェイスでバリデーションかけられるから良いんであって
@NonNullとか怖ろしい真似するのはやめて欲しいよな
675デフォルトの名無しさん:2011/03/04(金) 22:06:05.74
synchronizedの中でObject.wait(〜)する場合、waitが終わったスレッドから実行されるでOK?
676デフォルトの名無しさん:2011/03/04(金) 22:08:10.06
Javaで彼女を作ってくれ
677デフォルトの名無しさん:2011/03/04(金) 22:11:15.36
成立するはずのものは成立するはずだから、テストも書くなよ?
678デフォルトの名無しさん:2011/03/04(金) 22:23:35.85
>>675
synchronizedで他のスレッドが実行されてる時は
そのスレッドがロックを解除するまでwaitが維持される
679デフォルトの名無しさん:2011/03/04(金) 22:25:39.81
public void a(int i) {
if(i > 0) b(i);
}
private void b(int i) {
if(i <= 0) throws IllegalArgumentException();
...
}
この IllegalArgumentExceptionを投げる分岐はVMレベルで到達可能なのか?
680デフォルトの名無しさん:2011/03/04(金) 22:34:13.41
>>664
書いてはある。ただし明示的チェックはしていないとあるし、throwする例外だと宣言されているわけではない。>>654 と同じ方針だと思われる。

> 領域が境界内にない場合は、ArrayOutOfBoundsExceptionがスローされることがあります。ただし、明示的な境界チェックは必ずしも実行されません。

NullPointerExceptionとArrayOutOfBoundsExceptionは明示的にチェックされていないことが多い。
681デフォルトの名無しさん:2011/03/04(金) 22:35:43.39
a()以外のメソッドからb()が呼ばれる可能性を否定できないんじゃね?
仮にそのクラスにそれ以外メソッドがないとしても、リフレクション経由の呼び出しもあるし。
682デフォルトの名無しさん:2011/03/04(金) 22:39:18.88
>>678
Thread.sleepだと維持されるけど、Object.waitだとされないんだよ…
俺も今日試して知ったんだが…
683デフォルトの名無しさん:2011/03/04(金) 22:40:52.80
リフレクションでprivateメソッドをinvokeできたっけ?
684デフォルトの名無しさん:2011/03/04(金) 22:43:02.54
>>680
java.lang、java.io、java.utilあたりは真面目に境界チェックやnullチェックやってたような。
685デフォルトの名無しさん:2011/03/04(金) 22:44:23.12
>>683
setAccessibleすりゃできるよ。
686デフォルトの名無しさん:2011/03/04(金) 22:46:59.47
>>679
お前はその状態からbが呼ばれる複数の方法が想像できない程度のバカなのか?
仮にその二つのメソッドしかないプログラムならば、お前はそんなコードを書くバカなのか?
違うだろ?
687デフォルトの名無しさん:2011/03/04(金) 22:48:00.41
>>681
privateメソッドなのに
b()が呼ばれる可能性を否定できない!
とそのクラスを開いているエディタの前で頭抱えるのか?

ああ、リフレクションね。
そんなこと言ったら、Threadの推奨されないメソッドを使ったりすると
いつでもどこでもチェックされる例外が投げられる可能性があるから、
どこでも、Exceptionをキャッチしとかないとね。
688デフォルトの名無しさん:2011/03/04(金) 22:51:25.26
>>684
真面目にチェックしているAPIを呼ぶ前に、値のチェックをするべきかって話。
APIからにしろ、ユーザーコードにしろ、例外が投げられて処理を抜ける。
689デフォルトの名無しさん:2011/03/04(金) 22:53:58.28
>>679のコードは実在するならば書いた奴をクビにしたいレベル
690デフォルトの名無しさん:2011/03/04(金) 22:59:36.71
>>686
VMで到達不可能なところにassertを書くべきならば
IllegalArgumentExceptionを投げる分岐は到達不可能なのだから
IllegalArgumentExcpetionを投げるよりはassertを書くべきだろ

と主張したつもりだったのだが、
便所の落書にこんなにつらづらと書くのは面倒だし
意図は分かるだろうと手抜きをした俺は馬鹿なのか?
691デフォルトの名無しさん:2011/03/04(金) 23:08:38.78
>>690
>便所の落書に

真面目な返事を期待したのが(ry
692デフォルトの名無しさん:2011/03/04(金) 23:13:12.17
アサーションと例外どちらにするかを選択しようとしてる時点で間違ってるだろ
アサーションはあくまでテストの為の物なんだし
693デフォルトの名無しさん:2011/03/04(金) 23:20:16.25
アサーションは実行可能なコメントだろ。
694デフォルトの名無しさん:2011/03/04(金) 23:26:53.25
>>679だけ見てassertかIAEか、と読み取れる奴はエスパーとしか。
695デフォルトの名無しさん:2011/03/04(金) 23:29:45.75
あさーとなんて自動テスト書いてれば不要
696デフォルトの名無しさん:2011/03/04(金) 23:32:34.25
IAEは公開メソッドの事前条件チェックにおいてのみ使うべき。
事後条件、不変条件および非公開メソッドの事前条件はassertを使う。
697デフォルトの名無しさん:2011/03/04(金) 23:39:23.29
そもそも、assertとか使わん
698デフォルトの名無しさん:2011/03/04(金) 23:41:30.67
どうでもいいけどなんでassertをキーワードにしちゃったんだろう
もうちょっとマシなやり方あったんちゃうんかと
699デフォルトの名無しさん:2011/03/04(金) 23:45:05.34
assertとか使わん(キリッ とかいらんから。
そういう奴はjava.util.loggingは使わん(キリッって言ってんだろうな。
700デフォルトの名無しさん:2011/03/04(金) 23:45:11.46
>>697が全て
701デフォルトの名無しさん:2011/03/04(金) 23:45:45.86
うんこ
702デフォルトの名無しさん:2011/03/04(金) 23:48:24.54
>>699
ロガーも実際使わないだろ?
標準APIや言語機能であっても
イケてなければ代わりのものを使うのは
カッコ悪いことじゃないよ
703デフォルトの名無しさん:2011/03/04(金) 23:55:51.43
いや普通に使うが。
704デフォルトの名無しさん:2011/03/05(土) 00:09:50.34
そっすか
カッケーッスネ
705デフォルトの名無しさん:2011/03/05(土) 00:20:21.87
>>696
防御的コピーの前に事前条件チェックは意味ないし、
オブジェクトの責務を考えれば、防御的コピーはそれをフィールドに格納するクラスが行うべき。

したがって、非公開なメソッド(コンストラクタを含む)まで事前条件のチェックが遅延されるかもしれないし、
その場合そこでIAEを投げざるを得ない。

また、オブジェクト指向の意味を考えれば
オブジェクトは、そのメソッドの呼び出しかたや順序に依存せずに整合性を保つことを保証することで、
一度に考えなければならない複雑さを各オブジェクトに分散・カプセル化しているのだから、
privateなどでカプセルの内側でありオブジェクト指向の範囲外であることを明示でもしてない限り
渡されてくるオブジェクトに対して、事前条件のチェックがされているのか、それとも遅延されているのか
判断する材料をそのオブジェクトの外に求めるのは、カプセル化に逆行する。
706デフォルトの名無しさん:2011/03/05(土) 00:26:26.75
java virtual machine launcherによるエラーがOKして消してもまた出てきてしまうんだが、
対処法ある?
707デフォルトの名無しさん:2011/03/05(土) 01:05:01.82
>>706
プロセス殺したら?
708デフォルトの名無しさん:2011/03/05(土) 02:08:54.44
参考になるオープンソースプロジェクト教えてください
709デフォルトの名無しさん:2011/03/05(土) 02:25:32.10
SourceForge.JP: オープンソース・ソフトウェアの開発とダウンロード
http://sourceforge.jp/
710デフォルトの名無しさん:2011/03/05(土) 02:33:37.16
>>709
もっと具体的にお願いします
711デフォルトの名無しさん:2011/03/05(土) 02:44:59.95
>>705
> 防御的コピーの前に事前条件チェックは意味ないし、
意味不明
712デフォルトの名無しさん:2011/03/05(土) 12:29:29.79
>>679
ありえない。だから例外やassertは無くてもいい
privateメソッドは参照もとをテストすれば実装が正しいかわかるから
でもプログラミングミスを防ぐ目的なら入れてドキュメントを作るとなお良い
入れるとして、assertよりillegalArgumentExceptionの方が意味が合う
そもそもassertは、使われるかもしれないし使われないかもしれないから、チェックにならない

713デフォルトの名無しさん:2011/03/05(土) 12:38:49.59
>>712
だから、assertは実行することもできるというオマケつきのコメントだと
コメントは必要ないと主張するのか?
714デフォルトの名無しさん:2011/03/05(土) 12:43:02.93
するーしろ
715デフォルトの名無しさん:2011/03/05(土) 13:49:38.54
java.util.concurrent.locks.ReentrantReadWriteLockが遅くて泣ける。
716デフォルトの名無しさん:2011/03/05(土) 14:30:39.31
>>713
コメントに書くくらいならドキュメントに書け
情報分散させんなカス
717デフォルトの名無しさん:2011/03/05(土) 15:13:15.92
コメントに書いてjavadocで落としたらええがな
718デフォルトの名無しさん:2011/03/05(土) 15:41:03.36
とりあえず、到達可能か否かは無駄な議論じゃないか?
根本的にassertと例外を比較してるのが間違いだと俺も思う
assertはあくまで実行可能なコメントでありテスト用途だと思うし
コンパイル方法によっては実行されない以上は例外の代用たり得ない
コメントとしては、プログラミング中のミスも把握しやすいし悪くはないと思うよ
他の人がソース読んだ時も、条件が明示的に書いてあって見通しは良くなると思う
ただErrorで落とすようなものだし、一応Javadocにもその旨記載した方が良いんじゃない?
意図的にエラーで落とすプログラムってのが俺には想像付かないけど経験不足なんだろう
俺ならエラーで落とすくらいなら、例外投げてキャッチしてログ吐いてから終了って手順を取る
719デフォルトの名無しさん:2011/03/05(土) 15:42:56.92
とりあえず、枝豆
720デフォルトの名無しさん:2011/03/05(土) 16:24:27.25
引っかかったら自分自身が間違ってる、もしくは自分と利用者の関係が
直接「お前の使い方が間違ってる」と怒鳴りに行けるような関係ならポリシー次第でassertでもいい
代わりにコードに怒鳴らせる必要があるなら例外
721デフォルトの名無しさん:2011/03/05(土) 16:36:53.74
サンのジャバ・コンパイラはいつも優しくしてくれました
722デフォルトの名無しさん:2011/03/05(土) 16:43:25.34
質問すれなのにバカ自説披露するバカ
723デフォルトの名無しさん:2011/03/05(土) 16:55:00.38
>>722
assertと例外の質問があったからだろバカ
724デフォルトの名無しさん:2011/03/05(土) 17:35:47.45
正解もわからないバカが勝手に質問に答えて、自説披露するのがこのスレの伝統
725デフォルトの名無しさん:2011/03/05(土) 17:40:56.05
>>718が一般的だと思うよ
assertは例外の代わりにはならないし
例外もassertの代わりにはならない
726デフォルトの名無しさん:2011/03/05(土) 17:46:21.44
正解なんかねーよ
内部をどう作ろうが勝手。プロジェクトのポリシー次第。
約束の通じない不特定多数が使うライブラリに関しては、引数はきっちりチェックして例外を投げる。
727デフォルトの名無しさん:2011/03/05(土) 18:12:44.71
privateメソッドが成功するか確かめるのはテストにやらせれば良くて
例外にしろassertにしろコード中に書かなくてもいいってのを説明したのが元々
理解したのか知らんけど、テストでわかるのに到達するしないの話になるのも知らん

引数チェックはもちろん入れたっていい。でもテスト通れば一応期待通り動いてるのは解る
チェック入れるならassertより例外を使うのが通例で、入れたらドキュメント(コメント)は書けと言ってる
例外なら@throwsで定型のドキュメントが書ける
assertなら@throws AssertionErrorだろうけど、俺はテストライブラリ以外でこれを見たことが無い
728デフォルトの名無しさん:2011/03/05(土) 18:17:22.49
>>727
要は元々の質問を読んでないって事だよな?
元々の質問には>>725で良いと思う
729デフォルトの名無しさん:2011/03/05(土) 18:18:05.73
誰かStackOverFlowに投稿してくれないかな
730デフォルトの名無しさん:2011/03/05(土) 18:31:40.46
>>728
そうそう、元々の元はそれ
731デフォルトの名無しさん:2011/03/05(土) 18:45:27.17
今度のオラクルさんは優しいんでしょうか・・・?
732デフォルトの名無しさん:2011/03/05(土) 19:24:53.33
gc発生後のヒープダンプを一定期間ごとに自動で取る方法ってある?
733デフォルトの名無しさん:2011/03/05(土) 19:48:06.04
>>732
ある
734デフォルトの名無しさん:2011/03/05(土) 20:10:50.20
実装が仕様にしたがってなかったときの挙動を仕様に書けとか
735デフォルトの名無しさん:2011/03/05(土) 20:46:04.90
>>734
勘違い乙
736デフォルトの名無しさん:2011/03/05(土) 22:04:20.74
モジュール内のバグ発見のために
NullPointerExceptionやIllegalArgumentExceptionを発生させるってどうなのか?

外部から引数ありのpublicメソッドがNPEやIAEを投げてきたら
自分が渡した引数に問題があると思ってしまうのが自然じゃないのか?
737デフォルトの名無しさん:2011/03/05(土) 23:32:39.07
>>736
お前は何を言ってるんだ?
738デフォルトの名無しさん:2011/03/05(土) 23:50:14.93
739デフォルトの名無しさん:2011/03/06(日) 00:37:59.53
DbCを理解してない奴にassertのなんたるかを説いても無駄。
末端コーダーの手抜きコードなんてさわりたくもないな。
740デフォルトの名無しさん:2011/03/06(日) 00:53:49.63
バカjaver同士で喧嘩
741デフォルトの名無しさん:2011/03/06(日) 00:53:55.81
>>739
こんなことを言う奴のコードなんて触りたくもないな。
742デフォルトの名無しさん:2011/03/06(日) 00:59:22.13
ぬるぽ
743デフォルトの名無しさん:2011/03/06(日) 01:01:36.01
>>733
どうやるの?
744デフォルトの名無しさん:2011/03/06(日) 10:07:21.12
>>742
がっ
745デフォルトの名無しさん:2011/03/06(日) 12:45:17.88
public void doSomething throws Exception{
//タスク実行
}
を、タスク実行の部分を
Thread t = new Thread(new Runnable(){
//タスク実行
}
のように非同期に書き換えたのですが
Runnable#run()の中で発生する例外を呼び出し元で処理させるようにしたいのですが
一般的にはどのように書くのがよいのでしょうか?
746デフォルトの名無しさん:2011/03/06(日) 13:21:30.79
>>745 例外処理用のメソッドを、書いて呼ぶ。
747デフォルトの名無しさん:2011/03/06(日) 18:05:04.07
>>746
すいません、よくわからないです。。
748デフォルトの名無しさん:2011/03/06(日) 19:32:28.12
Stringのメソッドcontainsでint型のjをチェックしたいとき
contains("" + j)とするとできるのですが
この引数 "" + j がCharSequenceになるのはどういうことなのか
わかりません教えてください。
749デフォルトの名無しさん:2011/03/06(日) 19:37:23.08
文字列 + 数値 の結果は、数値を文字列に変換した後で2つの文字列を結合した文字列になる。
これは言語仕様でそう決まっている。
文字列はStringクラスのインスタンス。
StringクラスはCharSequenceインターフェイスを実装している。
だから文字列をCharSequence型として扱うことができる。
750デフォルトの名無しさん:2011/03/06(日) 19:40:57.19
>>749
分かりました。ありがとうございます。
751デフォルトの名無しさん:2011/03/06(日) 20:48:35.71
>>745
今時非同期処理はThreadじゃなくてconcurrencyユーティリティを使いな
Callableのcallにタスクを書いてExecutorService作ってsubmit
Futureオブジェクトが返るから、それをgetする時にcallで呼んだ例外が解る。
Swing GUI使うならSwingWorkerで、タスクをdoInBackgroundに実装する方が楽
752デフォルトの名無しさん:2011/03/06(日) 20:53:28.58
オブジェクト型のクラスで
newをしなくていいクラスと
newをしなくてはいけないクラスの違いって何?
753デフォルトの名無しさん:2011/03/06(日) 21:45:49.26
>>751
なるほど。。ありがとう
調べてみます。
754デフォルトの名無しさん:2011/03/06(日) 21:59:25.46
JSTLで、${var} の値が表示されず、そのまま「${var}」と表示されてしまって困ってます。
なにか原因に心あたりはありませんでしょうか。
たとえば
<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}がうまく展開されません。
755デフォルトの名無しさん:2011/03/06(日) 22:49:36.46
ecplipseのエラーで


!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)



おしえてちょんまんげ
756デフォルトの名無しさん:2011/03/06(日) 23:02:27.63
JavaでExcelを操作したりって出来ませんよね?
テキストファイルを1行ずつ読み込んでそれをセルに出力みたいな。
VBA使えってのは分かってます。
敢えてJavaでは出来ないのかなって。
そもそもJavaで特定アプリケーションやWindowsの機能とかって触れるのでしょうか?
757デフォルトの名無しさん:2011/03/06(日) 23:11:30.48
C#使えば簡単
ほとんどJavaと変わらん
758デフォルトの名無しさん:2011/03/06(日) 23:30:30.49
C#ってC言語系のMS版みたいなやつでしたっけ?
759デフォルトの名無しさん:2011/03/06(日) 23:41:02.68
>>756
出来るよ
poiとかfisshplateでググれ
fisshplateなら日本語でサポートも受けれる
760デフォルトの名無しさん:2011/03/06(日) 23:42:26.60
それはExcelファイルを出力してるだけ
操作してるわけじゃない
761デフォルトの名無しさん:2011/03/06(日) 23:44:45.22
>>758
JavaライクなMSの言語
Windowsとの親和性は非常に良い
Excel操作のようなCOM相互運用の類は自由自在
762デフォルトの名無しさん:2011/03/06(日) 23:47:54.52
>>756
カンマ区切りのテキストファイルに出力して Excel で読み込めば良いんじゃないかな
763デフォルトの名無しさん:2011/03/06(日) 23:48:35.57
あぁ、起動してるExcelに出力したいって事?
764デフォルトの名無しさん:2011/03/06(日) 23:51:22.69
Javaでやる意味は全く無いな
.NETでやるか、WSHのVBSにでも書いておいてJavaから呼び出せばいい
765デフォルトの名無しさん:2011/03/06(日) 23:53:04.37
excelのシートの入出力ならpoiとかfisshplateで事足りだろうけど
excelの動作を制御したいならJavaは厳しいだろうなぁ
766デフォルトの名無しさん:2011/03/07(月) 00:16:48.75
>>752
お前それJavaScriptの話じゃないのか?

>>756
Windowsオンリーで良いならJava-Comブリッジでがんばるとか
Javaにこだわるなら
767デフォルトの名無しさん:2011/03/07(月) 06:29:50.68
768デフォルトの名無しさん:2011/03/07(月) 08:33:50.33
VBScriptが妥当だな
769デフォルトの名無しさん:2011/03/07(月) 10:59:00.04
実行中のExcelへJavaアプリからDrag&Dropでデータを送信することなら出来なくも無い気はする
java.awt.dnd参照

JavaアプリからIEへのURL送信なら実績ある
770デフォルトの名無しさん:2011/03/07(月) 12:34:51.66
Fisshplaeteで複数の別々のシートを扱う方法ってありますか?
同じ内容の複数のシートの使い方はわかったんですけど
771デフォルトの名無しさん:2011/03/08(火) 10:51:24.44
ArrayListのアイテムをidで指定して取るようなクラスない?
772デフォルトの名無しさん:2011/03/08(火) 10:55:13.61
idとは?
773デフォルトの名無しさん:2011/03/08(火) 11:27:27.74
Mapのこと言ってるんじゃないの?
774デフォルトの名無しさん:2011/03/08(火) 16:15:54.58
775デフォルトの名無しさん:2011/03/08(火) 21:19:08.25
>>772
一意な数字
776デフォルトの名無しさん:2011/03/08(火) 21:21:57.91
>>773
mapはforで回して走査とかできないんじゃないっけ?
forで回して走査できて、アイテムを一意な数字とかでサッと取得できるようなクラスないかい?
777デフォルトの名無しさん:2011/03/08(火) 21:26:36.77
>>776
自作すれば?
778デフォルトの名無しさん:2011/03/08(火) 21:29:40.20
>>777
デフォでないのかと。
arraylistとhashmapを組み合わせればできそう?だけど。
779デフォルトの名無しさん:2011/03/08(火) 21:29:56.69
Iterator使って走査すれば良いのでは?
780デフォルトの名無しさん:2011/03/08(火) 21:33:14.99
>>776
Map#keySet()使えば拡張forは使えるけど
781デフォルトの名無しさん:2011/03/08(火) 21:36:46.33
>>779
mapにイテレーターなかった
782デフォルトの名無しさん:2011/03/08(火) 21:38:46.75
>>780
なるほど!
ありがと
783デフォルトの名無しさん:2011/03/08(火) 21:40:47.76
>>781
entrySet()
keySet()
values()

ここら辺の返り値に対してIterator(もしくは拡張for)を使えば良い。
用途によって使い分けてなー。
784デフォルトの名無しさん:2011/03/08(火) 21:46:11.84
>>783
あんがと!
785デフォルトの名無しさん:2011/03/08(火) 21:47:19.85
7865:2011/03/09(水) 14:08:38.28
とてつもなく今更ですが、>>5の原因が判明しました。
u23で修正された、java.io.tmpdirのbugfixによるものでした。
787デフォルトの名無しさん:2011/03/09(水) 14:19:11.17
tomcat再起動したら、急にHibernateDaoSupportがNoClassDefFoundErrorになったんだけど、同じこと起きた人いないかな
それまで何とも無かったんだけどね
788デフォルトの名無しさん:2011/03/09(水) 20:39:22.41
Tomcatに変更点が反映されたからだろ
789デフォルトの名無しさん:2011/03/09(水) 21:34:55.13
いやそういう変更はしてない
言ってみりゃprintln追加した程度のもんだ
ライブラリはちゃんとlibにはいっちょる
790デフォルトの名無しさん:2011/03/10(木) 17:52:34.28
1クラス(20万行)にある大半のメソッド(11万行)をコメントアウトしたいのですが、
大量のJavadocと干渉してブロックコメントが使えないときみなさんはどうしますか?
Eclipse動かせない貧弱な環境(RAM256MB)なのでEmEditorでしこしこ書いているのですが……

理想は「リファクタリングのための工数を1週間よこせ」なのですが、
それは夢物語なのでそれ以外でお願いします
791デフォルトの名無しさん:2011/03/10(木) 17:54:52.20
>>790
>大半の
これが怖い。
途中に何があるかわかったもんじゃないw
792デフォルトの名無しさん:2011/03/10(木) 17:59:37.48
>>790
選択範囲内を1行コメント化(+解除)みたいな機能使う。
EmEditorにその機能があるかは知らんけど。
793デフォルトの名無しさん:2011/03/10(木) 18:02:08.76
Javaの記述規定でクラスのみ先頭は大文字で書けということですが
変数やメソットは全く大文字だめですか?
例えば
CalcTestVer
とかは
calcTestVer
となるのでしょうか?
何かバランスが悪い感じがしますが。
794デフォルトの名無しさん:2011/03/10(木) 18:08:55.44
ソースを公開しない仕事で書いてるソースでもないってんなら自由にすりゃいい。

基本的には郷に入れば郷に従った方がいい。
795デフォルトの名無しさん:2011/03/10(木) 18:10:18.56
>>790
20万行のクラスって時点で吹いた
なんか代用出来る機能はありそうだが
コメントパーサを書く時間とどちらが早いかだね
/* // */ ""ぐらい考慮すればいいだけだろうし
796デフォルトの名無しさん:2011/03/10(木) 18:54:35.08
自分でプログラム書けよ
何行目から下の行全てに//つけるとか、
必要なメンバが分かってるならそれ以外につけるとか
797デフォルトの名無しさん:2011/03/10(木) 19:00:56.65
>>790
Perl でプログラムを書くかなぁ……
798デフォルトの名無しさん:2011/03/10(木) 19:11:17.83
JVMに関する書籍って何かないでしょうか?
↓があったけどだいぶ古そう…これより新しい物はない?

Java仮想マシン仕様
http://www.amazon.co.jp/exec/obidos/ASIN/489471356X
799デフォルトの名無しさん:2011/03/10(木) 19:17:49.39
ああそれ俺も図書館に買ってもらって読んだよ。
難しかったけど。画面出力のような命令はどうやってるのかよくわからなかったな。
自分でバイナリ書きだして実行させるのは俺には無理そうだとあきらめた。
800デフォルトの名無しさん:2011/03/10(木) 19:49:13.62
以下のサイトのサンプルプログラムを作ろうとしたのですが、
http://itpro.nikkeibp.co.jp/article/COLUMN/20100105/342883/?ST=android-dev&P=4
4ページ目のアクティビティの実装で、
エラーが検出されるのですが解決方法が分かりません。
ソースコードをコピペしていけば作れるのかと思ったのですが、
解決方法ご存知の方いらっしゃいましたらご教示願えないでしょうか。

環境はPleiadesを使っています。
801デフォルトの名無しさん:2011/03/10(木) 19:55:37.78
>>800
>ソースコードをコピペしていけば作れるのかと思ったのですが、解決方法ご存知の方


まず自分の頭で考えたらいいんじゃないでしょうか?
802デフォルトの名無しさん:2011/03/10(木) 20:50:17.69
>>801
どうも、ググッたほうが早かったみたいですね。
803 [―{}@{}@{}-] デフォルトの名無しさん:2011/03/10(木) 21:09:30.60
vimで開いて
qaI//<ESC>j200000@a
と打つだけジャン。

これだから文型のカスグラマわww
804 [―{}@{}@{}-] デフォルトの名無しさん:2011/03/10(木) 21:10:46.49
vimで開いて
qaI//<ESC>jq200000@a
と打つだけジャン。

これだから文型のカスグラマわww
805デフォルトの名無しさん:2011/03/10(木) 21:25:02.16
>>790
一週間でどうこうなるもんでもないだろすでにそれは
コメントアウトすれば解決するのだろうか? ありえない

しかも Eclipse 動かせないとか 無茶苦茶にもほどがある
806デフォルトの名無しさん:2011/03/10(木) 21:49:27.26
おまえら得意のclass Program だな
807デフォルトの名無しさん:2011/03/10(木) 21:51:58.00
public class Main {
 public static void main(
だろ
808デフォルトの名無しさん:2011/03/10(木) 21:57:09.48
>>805
割り当てメモリ1.5GBのEclipseで4万行ぐらいあるファイル編集した際にコード補完でぬるぽ連発した経験からいって
20万行のファイルは仮に開けてもまともに編集できないと思う。
809デフォルトの名無しさん:2011/03/10(木) 22:12:50.30
>>790
正規表現で行頭検索して置換文字を//にしてコメントアウトすりゃーいいんじゃないか?
viって手もあるけど
810デフォルトの名無しさん:2011/03/11(金) 00:49:05.72
>>793
だめではないけど「そういう記法が前提」で書かれているプログラムもある。
リフレクションで何かするようなクラスが入ったjarファイルを使う際は気をつけたほうがいいかも。

バランスが悪いかどうかは主観の問題。「このコードは美しいか否か」「このコードは
私の気分を害しない表記法か否か」位でしかないので、あきらめるほかないと思うよ。
まぁJavaプログラマーが

 private void DoAnything { ... }

とか見て「なんでdoAnythingじゃないんだ、キモイ」と思うのと同じだと思うけど。

>>790
正直驚愕した。
811デフォルトの名無しさん:2011/03/11(金) 00:52:53.64
JNIの質問。

C++側でjavaのメソッドを呼んだ時、実際には呼んだだけだから、javaの方でその処理が行われるの?
それともC++側で行われる?
812デフォルトの名無しさん:2011/03/11(金) 00:53:35.17
なんで20万行なんてことになったん
自動生成かなんか?
813デフォルトの名無しさん:2011/03/11(金) 00:57:40.06
>>798
JVMの仕様は安定しているから
今のところはそれで問題ないはず
814デフォルトの名無しさん:2011/03/11(金) 02:27:46.60
1.5以降には対応してないはず
815デフォルトの名無しさん:2011/03/11(金) 05:54:24.95
ここ暫くjavaなんてつかってなかったので再履修的な感じで今勉強してるんですが、finalって何のためにあるんでしょうか?
あんまり使いどころないきがするんですが・・・。
816デフォルトの名無しさん:2011/03/11(金) 09:31:16.91
クラスやメソッドにつけることはないな
定数宣言するときに
public static final String HOGE_HOGE = "";
みたいなのはすごくよくやる
817デフォルトの名無しさん:2011/03/11(金) 09:36:31.80
クラスやメソッドにもほんとはきちんと付けたほうがいいんだけどな
オーバーライドや継承されたらまずいものっていうのは意外と多い
818デフォルトの名無しさん:2011/03/11(金) 09:46:17.90
>>811
Java側。JVM起動してその中で処理を行う。
819デフォルトの名無しさん:2011/03/11(金) 10:05:20.68
>>815
そこはあんまり、神経質になるとこじゃないな

そりゃまあ、一度定義したら変更しない変数は、プログラム書いてたら
いっぱいあるだろうが、無名クラスで、final つけないと参照できないとか
必要になったときだけ書いてればいいよ。

あとは、final static int XXX = 999; みたいに書いてあると、これはどこかで
使われる定数なのだなと人間にわかりやすくていい。
820デフォルトの名無しさん:2011/03/11(金) 10:06:07.26
>>798
第三版は出てないから、出版されてる中ではそれが最新。
とはいえ内容が最新ってわけではなくて追加や修正の情報も出てる。
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
821デフォルトの名無しさん:2011/03/11(金) 10:09:33.80
>>815
スレッドプログラミングをする時に
変数の中身を確実に保証する為にはfinalにしないといけない
822デフォルトの名無しさん:2011/03/11(金) 10:20:10.70
equalsオーバーライドして全メンバ比較とかやってるなら
それは暗に継承されないことを前提にしてるのでクラスにfinal付けたほうがいい
でないとequalsの実装に要求されるx.equals(y) == y.equals(x)を満たせない
イミュータブルなクラス作るときもクラスをfinalにしないと変更されないことは保障されない
823デフォルトの名無しさん:2011/03/11(金) 10:27:31.37
>>815
どうしても必要なのはインナークラスからクラス内のローカル変数を参照する時。
他は、再代入禁止とか継承禁止とかオーバライド禁止といった禁止事項を指定するもの。
オブジェクトの変数なんて滅多に再代入しないので、再代入を意識しているものだけ指定できた方が便利だと思う。
824デフォルトの名無しさん:2011/03/11(金) 10:41:28.09
>>815
まとめ
定数の時使う、enumで代用する人も居るけどな
インナークラスからクラス内の変数を参照しなければならない時に
該当の変数にfinalを付けても問題ない時に付ける
問題がある時は設計を見直す
スレッドを使う時に中身を保証したい時はfinal一択
825デフォルトの名無しさん:2011/03/11(金) 11:05:46.46
20万行もあるソースをコンパイルできることに驚いた。
826デフォルトの名無しさん:2011/03/11(金) 14:45:22.03
行単位で仕事の報酬を決定するような仕組は変えていかないと・・・
827デフォルトの名無しさん:2011/03/11(金) 17:22:23.37
>>793
前前から気になっていたんですけど、どうして.NETでは大文字にしてるんですか?
言語仕様か何かなんですか?
828デフォルトの名無しさん:2011/03/11(金) 17:27:42.71
自分がどうして違う方法をしてるかを考えてから、
世の中にどんな記法があるか調べればいいと思う
829デフォルトの名無しさん:2011/03/11(金) 17:38:40.42
calc_test_verみたいな流儀もある
公開APIの名前を全部先頭大文字にするのはMSの昔からの慣習
C/C++ではJavaのような先頭小文字と並んでわりとよくあるスタイル
830デフォルトの名無しさん:2011/03/11(金) 17:50:39.40
調べてみたんですけど、結局MSが作るのは大文字なのはどうしてですか?
831デフォルトの名無しさん:2011/03/11(金) 17:56:50.25
MSに限らず関数/メソッド名先頭大文字スタイルはJava以外の世界ではよくある。
どういうスタイルを採用するかは勝手だけど統一するのが大事。
.NETやJavaにはそれぞれガイドラインがある。
832デフォルトの名無しさん:2011/03/11(金) 17:59:20.54
Java以外の世界とういうと具体的には?
833デフォルトの名無しさん:2011/03/11(金) 18:17:04.55
先頭大文字
C++(特に決まっていないが先頭大文字スタイルはよく使われる),
Delphi, .NET など

全部小文字やアンダースコア区切り
C/C++(標準ライブラリ), Python, Ruby, Perl, PHP
834デフォルトの名無しさん:2011/03/11(金) 18:20:51.97
どうして先頭大文字なんか採用するようになったんですか?
835デフォルトの名無しさん:2011/03/11(金) 18:23:29.33
どうして小文字先頭を採用したんですか?
836デフォルトの名無しさん:2011/03/11(金) 18:25:56.28
どうしてというならdo_anything、DoAnything、doAnythingの中では
doAnythingが一番不自然でしょ
そういうことに決めているから、としか
837デフォルトの名無しさん:2011/03/11(金) 18:26:41.16
いまどき行単位で値段きまらんやろ
838デフォルトの名無しさん:2011/03/11(金) 18:32:32.28
一応javaの世界では一部のset,getなどはbeans仕様なんですけど。
839デフォルトの名無しさん:2011/03/11(金) 18:34:14.49
shiftキー押す分とくだから
840デフォルトの名無しさん:2011/03/11(金) 18:34:59.06
逆。既存のスタイルにあわせてbeans仕様を決めた。
841デフォルトの名無しさん:2011/03/11(金) 18:42:06.95
javaが長いとMSのスタイルはどうしても大昔のBASICのままでパラライムとしての進歩がないように感じる。
842デフォルトの名無しさん:2011/03/11(金) 18:45:38.75
好みの問題。郷に従え。
843デフォルトの名無しさん:2011/03/11(金) 18:47:51.86
VB.NETの世界ってなんかホモとかゲイの人が多そうじゃないですか?(なんとなく)
844デフォルトの名無しさん:2011/03/11(金) 18:56:16.35
名前の良し悪しでいうならPOSIXみたいな昔のUNIX系のスタイルが最悪
845デフォルトの名無しさん:2011/03/11(金) 18:59:31.07
というか、命名の規則はライブラリで統一してればいいけどね。
beansじゃないけど関数名一覧とかregexpでの処理に便利でしょ。
846デフォルトの名無しさん:2011/03/11(金) 19:02:12.39
関係ないけどUNIXのコマンドのネーミングが最悪だな Linuxも同じだけど
こんな感じだからMSから移りたくない
847デフォルトの名無しさん:2011/03/11(金) 19:05:55.00
来なくていいです
いつまでもMSの世界に居てください
848デフォルトの名無しさん:2011/03/11(金) 20:14:17.13
さすがゴックだ
なんともないぜ
849デフォルトの名無しさん:2011/03/11(金) 23:02:54.77
>>846
おいてめーcreatさんディスってんじゃねーぞ
850デフォルトの名無しさん:2011/03/12(土) 02:12:31.73
>>834
そりゃあ「クラス名大文字にして変数名小文字にしたら、どっちがクラス名なのか変数名なのか
分かりやすいんじゃね?」という発想があったからだわ。
現実問題として言えば、プログラマーならンなこと気にしなくても分かるっつっちゃわかる。
(誤解版の)ハンガリアン記法っぽいわな。その辺は。

>>843
そう思うなら別にいいと思うが、俺の見た限りホモもゲイもいなかったな。
VB界は99%のDQNと1%のマジGODの世界だと思うよ。
VBほどはっきり天才とバカが見分けつく言語は珍しいと思う。
アレだ、チャーハンとかC言語とかみたいに当人の腕が一発で分かるんだよ。
ただVBはCよりもっと分かりやすい。

>>846
あれは「シェルスクリプトを書くこと」が前提のネーミング。
コマンドが長いとタイプするのがめんどくせぇのさ。
Windows界の「基本的にアイコンをダブルクリックしてアプリ起動」の世界とは
また違う文化だという程度でしかない。
851デフォルトの名無しさん:2011/03/12(土) 02:14:19.20
>>846
つ alias
852デフォルトの名無しさん:2011/03/12(土) 02:36:44.39
dirよりlsのほうが格好いいぉ
853デフォルトの名無しさん:2011/03/12(土) 02:40:05.26
短さより自然に覚えやすいというのが大切な要素という気が
854デフォルトの名無しさん:2011/03/12(土) 02:46:52.37
>>853
そうだな。
ls じゃなく

showDirectoryContents

にするべきだなw
855デフォルトの名無しさん:2011/03/12(土) 02:48:53.94
覚えにくいじゃん
856デフォルトの名無しさん:2011/03/12(土) 02:50:08.49
そのまんまだから憶え易いじゃん
857デフォルトの名無しさん:2011/03/12(土) 02:51:06.75
そうだな〜系はたいてい駄レス
858デフォルトの名無しさん:2011/03/12(土) 02:54:36.35
スマソ。駄レスして良い話題だと思ったが失礼した。

↓以下、駄レスじゃない話題をお楽しみください。
859デフォルトの名無しさん:2011/03/12(土) 02:55:15.40
>>850
そんなあなたは一生 MS VISUAL BASIC
860デフォルトの名無しさん:2011/03/12(土) 03:02:44.18
VB java COBOL
三大バカ言語
861デフォルトの名無しさん:2011/03/12(土) 09:40:40.30
えっHSPは?
862デフォルトの名無しさん:2011/03/12(土) 11:25:55.05
バカな言語といわれたら、
APLより、Rubyより、
何をおいてもC++だと思うんだけど…
863デフォルトの名無しさん:2011/03/12(土) 12:50:39.59
単にお前には難しすぎるだけ
864デフォルトの名無しさん:2011/03/12(土) 12:59:46.85
>>863
平凡なコーダーが「難しい」って感じるなら、バカ言語なんじゃね?
865デフォルトの名無しさん: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行目はエラーにならない?
866デフォルトの名無しさん:2011/03/13(日) 12:51:32.95
>>865
>3:    byte b = 7;
が暗黙裡にキャストされてるだけでしょ。リテラルだから。
867デフォルトの名無しさん:2011/03/13(日) 12:52:21.03
7がbyteの範囲に収まるのはコンパイル時に明らかなので、
3行目はコンパイラの判断で byte b = (byte)7; と解釈される。
確かに4行目もオーバーフローしないのはコンパイル時に明らかなんだけど、そこまでは面倒見てくれない。
868デフォルトの名無しさん:2011/03/13(日) 13:37:17.17
>>866>>867
レスありがとう。
だいたい理解できました。

コードに直接書いた数値は、整数であればintとして扱われる。
変数を使用せずに、直接コードに書いた数値だけならば、演算が含まれていても暗黙的にキャストしてくれる。
ただし、キャスト対象の型の範囲内に収まらない場合、型の不一致としてエラーになる。

■以下は検証結果。コメントが無い行はエラーにならない。
int i = 1;
byte b = 127;
byte b2 = 128;     //型の不一致:int型からbyte型には変換できません。
byte b3 = 10*4/3;
byte b4 = i;       //型の不一致:int型からbyte型には変換できません。
869デフォルトの名無しさん: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)
870デフォルトの名無しさん:2011/03/13(日) 22:07:58.02
>>869
parseIntからエラー出てるんだろ?"志賀太郎"を数値項目にねじ込もうとしたんじゃねーの?
871デフォルトの名無しさん:2011/03/14(月) 15:21:34.02
質問です
ファイルをドラッグアンドドロップしてjarファイルを起動することはできないのでしょうか

バッチファイルを別に用意して
@echo off
java -jar Hoge.jar %1
などとすれば同等のことは実現できたのですが、もっと上手い方法はないのかなと思っている次第です
872デフォルトの名無しさん:2011/03/14(月) 15:43:36.65
exeを作る
873デフォルトの名無しさん:2011/03/14(月) 16:11:11.35
シェルを自作してExplorerを置き換える
874デフォルトの名無しさん:2011/03/14(月) 16:43:09.19
exeでラップしてやるのが現実的かー
マニフェストで何か設定したりとかでできないかと思ったけど、まぁ役割違うもんな
ありがとうございました
875デフォルトの名無しさん:2011/03/15(火) 16:48:02.09
JPAのEntityManagerって毎回open, closeすべきなの?
EntityManagerFactoryは生成コストが高いから
アプリの起動時に生成とopenして
アプリの終了時にcloseすると思うけど。。。
876デフォルトの名無しさん:2011/03/15(火) 17:14:17.86
外人の教えてGooみたいなの見て解決しました^^;
スドッレー
877デフォルトの名無しさん:2011/03/15(火) 21:53:43.45
>>876
解決した答えを書いとくのがネット使う際のマナーな
878デフォルトの名無しさん:2011/03/15(火) 22:25:19.52
entity manager ファクトリは標準的には、アプリケーション初期化時点に作成されて、
アプリケーションの終了時に閉じられます。その作成は経費のかかるプロセスです。
Hibernate に慣れ親しんでいるユーザーには、entity manager ファクトリはとても
セッションファクトリに似ていることが分かるでしょう。実際、entity manager ファクトリは
セッションファクトリの上にあるラッパーなのです。
entityManagerFactory への呼び出しは スレッドセーフです。

ファクトリは使い回せってことですね。
ファクトリ≒DataSource、エンティティマネージャ≒Connectionなんだろ、内部的には。
879デフォルトの名無しさん:2011/03/16(水) 00:34:35.97
java SDKのインストールをしようとしたらこのようにウィンドウがぼやけてしまいます
先日version6 Update24のJREにアップデートしてからだと思うのですが、javaで動作するソフトもこのようにぼやけるようになっていました。
一度JREを全てアンインストールしてからSDKをいれようとしてもこの有様です

どうしたら正常な表示に戻せるでしょうか

Windows7の64Bitです
880879:2011/03/16(水) 01:04:32.39
画像貼ってませんでした…
ttp://imepita.jp/20110316/017860
881876:2011/03/16(水) 01:17:04.18
>>877
>>878

E・M・Factoryは重いがスレッドセーフのためアプリに1つあればよい
一方でEntityManagerはセーフではないためスレッドごとに生成する必要があるみたい。

つまり一般的には必要な直前で生成してopenしてトランザクション終わったら
ささっとcloseするみたいだけど

スレッドの開始時に生成&open()、スレッドの終了時にclose()するようにして
1スレッド内で1つのE・Managerつかいまわしてもいいみたい。

ただし外人が言うには最後のcommit()が確実に実行されるように
一般的なやり方が良いとのこと。

http://stackoverflow.com/questions/3393186/keeping-jpa-entitymanager-open
882デフォルトの名無しさん:2011/03/16(水) 12:27:26.56
1.Eclipseで外部ライブラリの追加を行う。
2.Antビルドで実行する
3.1で追加したパッケージが見つからないと怒られる
な…何故…。
ソース上ではちゃんと反映されてるし…
883デフォルトの名無しさん:2011/03/16(水) 12:33:10.92
Antの実行環境にそのライブラリが含まれていないのだろう。
884デフォルトの名無しさん:2011/03/16(水) 12:50:02.31
>>883
即レスありがたや・・・。
まさにそのとおりでした。
885デフォルトの名無しさん:2011/03/16(水) 17:33:30.51
CSVを二次元配列にするクラスを作っているのですが、うまくいきません。
もとの文字列は囲み文字無し、タブ区切りで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;

}

}

よろしくお願いします。
886デフォルトの名無しさん:2011/03/16(水) 17:37:59.57
>>885
>for(int y =0;y==row-1;y++){
条件式おかしくね?
887デフォルトの名無しさん:2011/03/16(水) 17:42:34.45
>>886
y<row;にしたら多分うまくいきました。ありがとうございました。
888デフォルトの名無しさん:2011/03/16(水) 17:51:38.63
>>885
aryCSV[y]=new String[4];
この行いらなくないか?
889デフォルトの名無しさん:2011/03/16(水) 17:52:40.94
>>888
なくても動きました。
ありがとうございます。
890デフォルトの名無しさん:2011/03/16(水) 18:59:13.66
コンストラクタと初期化について質問です。
Test2クラスと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: }


■備考
コンストラクタはインスタンスが生成された時に動くものだと学びました。
コメントの@で記した行はよくわかりませんが、動作を見る限りではインスタンスが生成された時に初期化されているように見えます。
891デフォルトの名無しさん:2011/03/16(水) 19:26:38.33
Test2のコンストラクタはpublicであるので別パッケージから呼べますが
Test3のコンストラクタはpublicでないので別パッケージから呼べません
892デフォルトの名無しさん:2011/03/16(水) 19:42:22.20
>>890
何をもって完全に同じと見るかだな。
a()の時点でint値は同じならいいのか?
バイナリコードが違うならJVMの動きは当然違うわけだが。
それとコンストラクタはインスタンスが生成されてから動くのではなく、生成されるときに動く。
この違いは地味に意味がある。
893デフォルトの名無しさん:2011/03/16(水) 20:11:30.13
>>890
int testInt = 3; //@
の後にコンストラクタで
4:  Test3() {
5:   testInt = 2;
6:  }
とやると2で上書きされるかな?
そしたら違うと言えば違う。

Youが同じと言ってるのはたまたま設定した値が同じという意味じゃないか?
894デフォルトの名無しさん:2011/03/16(水) 20:12:42.01
ご回答ありがとうございます。

>>891
Test2もTest3も外部からコンストラクタを呼び出しってゆうと・・・
newするときに使いますが、明示的に呼び出すことはできないので、振る舞いは同じでは?

>>892
ちょっと質問の仕方がおかしかったかもしれません。
私は初期化を行う場合は、final staticな定数以外は、全てコンストラクタを使って初期化しています。
しかし、見る場所が変数を定義した場所と、コンストラクタ内の処理の2箇所になってしまいますし、
コンストラクタをオーバーロードしている場合、同じ処理を何度も書かなければいけません。

そこで、変数宣言時に値を入れてしまってもいいんじゃないかなと思って書きました。
何か発生しうる問題があれば教えて欲しいです。
895デフォルトの名無しさん:2011/03/16(水) 20:14:14.31
宣言時に代入できるならその方がいいよ
コンストラクタで代入するより宣言的で好ましい
896デフォルトの名無しさん:2011/03/16(水) 20:18:59.09
インスタンス変数宣言時の代入はコンストラクタの頭での代入とバイトコード的に同じだよ。
897デフォルトの名無しさん:2011/03/16(水) 20:23:11.92
>>893
私の質問の仕方が悪かったんですが、私が考えている事と少し違います。

>>895
おぉ、そうゆうものでしたか。
今度から宣言時に初期化することにします。

ありがとうございました。
898デフォルトの名無しさん:2011/03/16(水) 20:28:23.50
>>894
newするときに使うから、つまり別パッケージのクラスではnew Test2();ができるけどnew Test3();はできないんだよ
899デフォルトの名無しさん:2011/03/16(水) 20:46:16.37
コンストラクタが省略された場合は暗黙的に public なデフォルトコンストラクタが
定義されるのが言語仕様だよ。一度逆コンパイラでも使ってみな。

$ 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
900デフォルトの名無しさん:2011/03/16(水) 23:08:05.98
>>899
そんな当然の事を言われましても…
901デフォルトの名無しさん:2011/03/16(水) 23:12:26.48
同じソースでNetBeansとEclipseで動作の違いがおこった。
ファイルをバイト単位で読んだ時に128以上がEclipseではマイナス扱いで読まれた。
こういうことってあるんですね。
902デフォルトの名無しさん:2011/03/16(水) 23:19:32.68
>>900
>>291,298
903デフォルトの名無しさん:2011/03/16(水) 23:20:27.44
>>891,898
904デフォルトの名無しさん:2011/03/16(水) 23:21:33.60
JDKのkeytoolについて質問です
OSはvistaで「キーストアのパスワードを入力して下さい」とカーソル表示が出た後、キーボードの文字が打てなくなります
enterは押せます
905デフォルトの名無しさん:2011/03/16(水) 23:24:22.44
打てなくなるんじゃなくてエコーバックが無くなるだけだからちゃんと入力は行われている。
906デフォルトの名無しさん:2011/03/16(水) 23:26:19.25
>>901
再現できる最小ソースまたはそれぞれのクラスファイルを。
まぁ昔から Eclipse で動かすコンパイラはちょっと変な動きをするけどな。
907デフォルトの名無しさん:2011/03/16(水) 23:38:15.18
>>905
ありがとおおおおおおお
次進めたよ
908デフォルトの名無しさん:2011/03/16(水) 23:41:05.03
>>906
br=new BufferedReader(new InputStreamReader(new FileInputStream(new File("FileName"))));
d=br.read();

で同じファイルを読んだ時値がNBでは全て正の数だったのに
ECでは負の数が含まれて動作異常がおこり気がついた。
詳しいところは調査中で混乱してます。
909デフォルトの名無しさん:2011/03/16(水) 23:51:49.26
>>908
その程度は言語仕様通りに動きます。
多分あなたの勘違いでしょう。
910デフォルトの名無しさん:2011/03/17(木) 01:01:50.49
ですかねえ。
バイナリエディタで書いた値をEclipse側で読ませた結果
80〜FFが全て65533になったり
たまに前後のbitに影響受けたり受けなかったりで
なんだかわからなくなってしまいました。
911デフォルトの名無しさん:2011/03/17(木) 01:31:37.31
デフォルトのエンコーディングが違うだけの予感
バイナリの値をReaderで読むな
912デフォルトの名無しさん:2011/03/17(木) 02:56:12.87
Eclipseの内部コンパイラを信用するなってのは有名な話だカス
913デフォルトの名無しさん:2011/03/17(木) 03:24:07.34
>>902
>>903
すまんかった…
そんな事も知らずに質問に答えようとする奴がいるとは…
914デフォルトの名無しさん:2011/03/17(木) 14:21:16.25
>910
65533てのはたぶん文字U+FFFDのことだ。
nioのCharsetDecoder各種実装は、変な文字読ませるとよくこういう字を返す。

>911の言うとおり、おそらくReader使うこと自体間違ってる。
IDEによって各種Readerのデフォルトエンコードが違うのはありふれた話。
915デフォルトの名無しさん:2011/03/17(木) 20:10:40.60
このスレは何もわからない奴がわけわからん回答すんのが伝統
916デフォルトの名無しさん:2011/03/17(木) 23:09:04.09
http://hogehoge.com/ほげほげ がURLEncoder.encodeだと
http%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 にするのはどうすればよいですか?
917デフォルトの名無しさん:2011/03/17(木) 23:24:47.92
ほげほげだけエンコードしてからつなげる。
918デフォルトの名無しさん:2011/03/18(金) 00:13:51.82
>>916
URI#toASCIIString()の出番だろ
919デフォルトの名無しさん:2011/03/18(金) 06:10:43.30
MySQLで、これからInsertするデータ例えばプライマリーキーが「hoge」が既にデータベース上にある場合はInsertを回避したいんですが、
データベース上に同じスキーマが既にあるかどうかを返すにはどうしたらいいでしょうか?

select文で「hoge」をとって、結果がnullだったら分岐、のようにやったり、
getString("hoge")がnullだったら、などを試したのですがだめでした。

どなたかわかるかたアドバイスよろしくお願いします。
920デフォルトの名無しさん:2011/03/18(金) 06:11:50.19
javaのアドオンについて質問があります

java自体はアンインストールしたんですが
アドオンの「Java(tm) Plug-In 2 SSV Helper」が消えずに残ってしまいました

削除のボタンも押せない状態になっていて、詳細を見ても利用不可となっています
このアドオンを削除する方法をご存知の方がいましたらアドバイスお願いします
921デフォルトの名無しさん:2011/03/18(金) 10:13:51.34
>>919
データベース上に同じスキーマが既にあるかどうかを返すにはどうしたらいいでしょうか?

スキーマ?? プライマリーキーでいいの??

select count(*) from hoge_tabel where id = 'hoge';
で件数取得すればいいんでない?
922デフォルトの名無しさん:2011/03/18(金) 16:42:17.59
今までC++(C)を業務で数年使用していました。

Java、SQL(DB)の勉強をしてみたく、仲間内で利用できる簡単なSNSを作成しようと思っています。
データベース構造を参考にしたいのですが、参考にできるサイトとかないでしょうか?
923デフォルトの名無しさん:2011/03/18(金) 16:51:34.61
>>922
正規化とかちゃんと意識すれば
自然に構造は決まってくるけど。

基本は第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
924922:2011/03/18(金) 17:15:19.98
>> 923
ありがとうございます。一読してみます(^^
925デフォルトの名無しさん:2011/03/18(金) 20:41:34.11
>>919
Connection#getMetaData()で拾えない?
926879:2011/03/19(土) 00:54:05.44
879ですが解決しました
RADEONのグラボを使用していて、ドライバソフトのCatalystControlCenterの設定で形態学的フィルタリングをオンにするとこの症状になりました
927デフォルトの名無しさん:2011/03/19(土) 18:56:44.23
public class Main extends JFrame {
public static void main(String args[]) {
Main m = new Main();
m.start();

初歩的な質問です。よくある出だしですが。
まず静的クラスとしてMainが実行され
中で自己のインスタンスmが作られる…のはわかるのですが
またそのmのMainの中でmが作られる…の永久ループにならないのは何故なんでしょうか。
928デフォルトの名無しさん:2011/03/19(土) 19:24:45.10
Mainのインスタンス作ってもMainのmainは実行されないから
929デフォルトの名無しさん:2011/03/19(土) 19:34:24.56
なるほどインスタンスが作られて実行されるのはインストラクタだけで
mainが実行されるのはクラスの時なんですね。
930デフォルトの名無しさん:2011/03/19(土) 19:48:01.88
何故なんでしょうねぇ?
931デフォルトの名無しさん:2011/03/19(土) 19:58:29.14
Mainのクラスイニシャライザ
Mainのmain
Mainのコンストラクタ

2番目のはjava.exe Mainってやったから呼ばれてるだけ
932sage:2011/03/19(土) 20:34:28.69
eclipseってJavaで作ってあるという話だけど、
Eclipseの「パッケージエクスプローラー」のツリーってどうやってつくってるの?
なんとなくJTREEではない様な気がするんだけど。
あんなツリー表示のアプリを作ってみたくて。
933デフォルトの名無しさん:2011/03/19(土) 20:57:43.32
swtとか
934デフォルトの名無しさん:2011/03/19(土) 21:01:47.95
Javaじゃないんだよ
ネイティブコードで作ってJavaから使ってるだけ
935932:2011/03/19(土) 21:16:10.84
>933
AWTとSWING以外のSWTって初めて知った。

>934
そういう方法もあるんだ。

2人ともありがと。
936デフォルトの名無しさん:2011/03/19(土) 21:23:37.03
というかSWTがまさに>>934の方法
937デフォルトの名無しさん:2011/03/20(日) 11:05:16.67
Javaってグローバル変数ないんですか??
どうやって複数の関数内の変数を受け渡しすればいいですかね?
938デフォルトの名無しさん:2011/03/20(日) 11:08:24.35
引数にすればいいだろ
939デフォルトの名無しさん:2011/03/20(日) 11:10:54.70
なるほど、ありがとうございます
940デフォルトの名無しさん:2011/03/20(日) 11:20:52.38
public staticなフィールドを作ればいいよ
static importも使えばそれっぽくなる
941デフォルトの名無しさん:2011/03/20(日) 12:42:52.34
メソッドをstaticメソッドに変更したら
やはり this の部分がエラーになってしまいました。
ここは何に置き換えればいいですか?
クラス名ではだめでした。
942デフォルトの名無しさん:2011/03/20(日) 13:06:08.33
おまえじゃ無理
もう諦めれ
943デフォルトの名無しさん:2011/03/20(日) 13:09:08.95
上の人とは違うんだけど
944デフォルトの名無しさん:2011/03/20(日) 13:22:06.69
staticについて勉強しなおすといいよ
945デフォルトの名無しさん:2011/03/20(日) 17:38:50.71
コンフィグとか設定系のメカニズムに、定石なり定番ライブラリなりないもんですかね。

ブロパティファイルを読み込んで適用、ってだけじゃなくて、
・コンフィグ適用ロジックと、モデルが強結合しないための仕組み
・firefoxのabout:configと設定ダイアログのような、即時適用とバッチ適用の仕組み
・cisco iosでいうところのrunning-configとstartup-configを泥臭くなく実現する仕組み
あたり。
イメージどしてはasn.1で書いたコンフィグモデルとアプリケーションドメインモデルの間をつなぐ感じ。
946デフォルトの名無しさん:2011/03/20(日) 17:40:25.15
>>937
もう、どこまで知ってるのか知らないのか想像も出来ない。
どうやったらこういう思考でプログラムを作ろうというヤツになるんだ。
947デフォルトの名無しさん:2011/03/20(日) 17:40:39.16
日本語でおか
948デフォルトの名無しさん:2011/03/20(日) 19:58:20.20
ManagedBeanにできてCDIに出来ない事って何かあります?
949デフォルトの名無しさん:2011/03/21(月) 04:43:10.32
JSF2?
950デフォルトの名無しさん:2011/03/21(月) 12:44:58.42
データベースのテーブルのように扱えるクラスはありませんか?

sqlまで発行させろとは言いませんが、列を指定して行を検索したりしたいです。
951デフォルトの名無しさん:2011/03/21(月) 15:54:31.94
>>950
データベースのどの側面が欲しいかによると思う。
・機能なのか (SELECTでのカラム入れ替え、JOIN、ORDER BYなど)
・性能なのか (複雑なクエリに対する性能劣化が小さいこと)
・インターフェイスなのか (SQL文)

とりあえず、SqlJetでin memoryにどうでしょか。
952デフォルトの名無しさん:2011/03/21(月) 17:19:23.65
JavaHelpという化石APIを試しているのですが、
これのHTML表示部の文字コード指定方法分かる方いますか?
HTMLファイル冒頭のcharset指定はどうも無視されるようなので…
953デフォルトの名無しさん:2011/03/21(月) 21:06:55.34
intの値130を1バイトのバイト配列として扱いたいのですが、
下記のコードでは2バイトとなってしまいます。
修正が必要、またはそもそも間違っているのかご指摘お願いいたします。

int in = 130
Integer.toHexString(in);
byte[] by = hex.getBytes("SJIS");
954デフォルトの名無しさん:2011/03/21(月) 21:07:51.71
>>953
コードが誤っていましたので修正です。
int in = 130
String hex = Integer.toHexString(in);
byte[] by = hex.getBytes("SJIS");
955デフォルトの名無しさん:2011/03/21(月) 21:16:36.48
>>952
Integer#toHexString(int) は10進数の130を16進数の文字列に変換するので
Integer.toHexString(130) は "82" になる。

1バイトだけなら byte[] by = { (byte)130 }; でいいんじゃね?
複数バイトなら>>420-422あたりにある。
956デフォルトの名無しさん:2011/03/21(月) 21:23:37.79
java の byte は符合無し?
957デフォルトの名無しさん:2011/03/21(月) 21:31:19.79
Javaに符号無し整数はありません
958デフォルトの名無しさん:2011/03/21(月) 21:35:49.33
byteが255じゃないから俺も苦心したわ
959デフォルトの名無しさん:2011/03/21(月) 21:55:48.12
>>957
char
960デフォルトの名無しさん:2011/03/21(月) 22:11:11.94
>>955
ありがとうございます!
キャストすると0〜255の範囲で扱えるとは知りませんでした。
ただし、キャストだと文字コード指定できませんので、
>>420のgetBytesを使う方法になりそうです。
ただ、getByteに必要なStringとして130を渡す必要があるため、
Integer.toHexStringを使ってStringを生成していますが
正しいのかよくわかっていないため調べてみます。
961デフォルトの名無しさん:2011/03/21(月) 23:27:01.75
javaのライセンスについて教えてください。

現在、Androidアプリを作成中なのですが、JDK1.5のいくつかのソースコードを改変して
アプリに組み込もうと思っております。

javaのライセンスは確かGPLだったと思うので、作成したアプリの
ソースコードを公開してしまえば、問題なかったでしょうか?
よろしくお願いします。
962デフォルトの名無しさん:2011/03/21(月) 23:32:14.95
オラクルのJDKはGPLじゃないよ
OpenJDKの方
963デフォルトの名無しさん:2011/03/21(月) 23:57:16.43
そうだったんですか。調べ方が足りなかったみたいで、
JAVAのライセンスは結構ややこしいですね。。。

ライセンスのことをもう一度調べてみようと思います。
ありがとう御座いました。
964デフォルトの名無しさん:2011/03/22(火) 02:05:09.11
Object型の変数に入れたTimestamp型のデータはどうやって取り出せばいいでしょうか?
Object型の変数.toString()ではClassCastExceptionになりました。
965デフォルトの名無しさん:2011/03/22(火) 03:16:18.53
アンドロイドのjavaはアパッチライセンスじゃなかったか?
966デフォルトの名無しさん:2011/03/22(火) 09:34:09.30
JDK1.5のソースって言ってるからDalvikのライセンスは関係ないんじゃないか
967デフォルトの名無しさん:2011/03/22(火) 09:44:04.90
OracleっつかSunのソースだと1.5でGPLってあったっけか?
GPLで配布されてるOpenJDKは今のところ1.6と1.7だけだったような
968デフォルトの名無しさん:2011/03/22(火) 10:42:18.71
>>960
「キャストだと文字コードが指定できない」とか、表現からすると、やりたいこととやってることに勘違いが重なっているように見えるんだが。
「int値"130"を要素1個のバイト配列にする」のに文字コードなんて関係ないだろ。
「SJISコード'130'の入ったint変数をバイト配列にしなさい」とかいうおバカな課題でも出されたのか。
969デフォルトの名無しさん:2011/03/22(火) 14:04:37.66
RandomAccessFileでファイルサイズ以上の位置にseekしwriteした場合、
書き込み前のファイル末尾〜書き込み開始位置までは0で埋められるのでしょうか?
それとも、書き込み前のファイル末尾から書き込まれるのでしょうか?
970デフォルトの名無しさん:2011/03/22(火) 15:09:34.80
>>969
> それとも、書き込み前のファイル末尾から書き込まれるのでしょうか?
少なくともRandomAccessFile#write(int)、RandomAccessFile#write(byte[])の
API仕様の記述に反する振る舞いだから基本的にないと思っていい。

> 書き込み前のファイル末尾〜書き込み開始位置までは0で埋められるのでしょうか?
API仕様には直接的な記述はなかったはず。
RandomAccessFile#setLength(long) には
> length により返されたファイルの現在の長さが newLength 引数よりも小さい場合、
> ファイルは拡張されます。この場合、ファイルの拡張部分の内容は定義されていません。
って書いてあるから、これに準じた振る舞いをするんじゃないかと。
ちなみに、Windowsで元々大きかったファイルを再拡張した場合に、
元々の内容がそのまんま残ってたりする事もある。
971デフォルトの名無しさん:2011/03/22(火) 16:09:52.49
今、java.com 繋がりますか?
972デフォルトの名無しさん:2011/03/22(火) 16:28:18.48
973デフォルトの名無しさん:2011/03/22(火) 16:56:16.23
java.comの件、解決しました。
グローバルIPが弾かれていました。
頭が1.から始まるとアクセス出来ないそうです。
失礼しました。
974デフォルトの名無しさん:2011/03/22(火) 16:59:09.12
えっ、俺133.xxx.xxx.xxxだよ?
そういう事じゃない?
975969:2011/03/22(火) 19:21:10.02
>>970
ありがとうございます。
仕様に定義されていない以上、安全のため0で埋める独自処理を入れることにします。
976デフォルトの名無しさん:2011/03/22(火) 20:19:23.78
なんでAppletは使われなくなったの?
一種のクラナドやん
977デフォルトの名無しさん:2011/03/22(火) 20:36:28.38
JREが必要だから
Flashのようなプラグイン式に比べてユーザーの負担や嫌悪感が非常に大きい
978デフォルトの名無しさん:2011/03/22(火) 21:32:26.64
Java初心者の高校生です。今タイピングゲームを作っています。
以下のような、クラス内で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メソッドが呼び出されてしまったということなのでしょうか?
どなたか解説お願いします!
979デフォルトの名無しさん:2011/03/22(火) 23:12:01.37
offi.getGraphics()がnullを返してるんじゃね
980デフォルトの名無しさん:2011/03/23(水) 02:34:24.84
4スレ消費毎ぐらいの周期で発狂したり鎮まったりしてるよねこのスレ
ここ見てるPG/SEの帰宅時間に関係があったりして
981デフォルトの名無しさん:2011/03/23(水) 03:49:18.33
Jakarta のサイトから JSTL がダウンロードできなくなってるんだけど何なの?
SVN 以外での配布やめたの?
http://tomcat.apache.org/taglibs/standard/
982デフォルトの名無しさん:2011/03/23(水) 08:50:37.11
>>981
以下のようにあるから、恐らく開発中。
> not yet JCP approved
983デフォルトの名無しさん:2011/03/23(水) 08:52:58.24
>>978
初心者にしては珍しく具体的な情報が多くて良い質問だなぁ。

main()とEDTは別プロセスだから、mainの実行中にswingのオブジェクトツリーに追加されるような操作(setVisible(true)とか)すると、以降非同期にEDTからpaint等が呼ばれる可能性があるような。

JFrameってコンストラクタでsuper()しなくていいんだっけ?
984デフォルトの名無しさん:2011/03/23(水) 08:59:39.60
スーパークラスにデフォルトコンストラクタが定義されていれば
暗黙的にそれが呼ばれます。
985デフォルトの名無しさん:2011/03/23(水) 09:04:55.04
>初心者にしては珍しく具体的な情報が多くて良い質問だなぁ。
>JFrameってコンストラクタでsuper()しなくていいんだっけ?

自分が初心者のくせになに言ってんだw
986デフォルトの名無しさん:2011/03/23(水) 09:49:22.52
どうせ鼻糞だろ
相手にするな
987デフォルトの名無しさん:2011/03/23(水) 10:01:09.16
自分を上級者と勘違いしてる基礎もわかってない初心者が、頼まれてもいないのに質問に珍回答で応答しちゃうのがこのスレ
988デフォルトの名無しさん:2011/03/23(水) 13:30:12.60
978です。解答ありがとうございます。
現在はダブルバッファリングの実装を必要としない方法に書き換えました。

質問の状態ではsetVisible(true)をXXXのコンストラクタ内に記述していたのですがこれがいけなかったのでしょうか。
ということはつまり、JFrameのインスタンスを生成する際にはコンストラクタ内の処理とpaintメソッド内の処理のどちらが先に行われるかはわからないということでしょうか?

また、
>JFrameってコンストラクタでsuper()しなくていいんだっけ?
についてできれば詳しく教えていただきたいです。
989デフォルトの名無しさん:2011/03/23(水) 15:11:35.05
そんなのサンプル落としてくる方が早いぞ
990デフォルトの名無しさん:2011/03/23(水) 15:32:22.96
>>988
コンストラクタの処理とpaintの処理については、StringBuilderのようなフィールドにそれぞれの呼び出しで別の値を追加するようにすればわかるんじゃないかな?
で、Javaはコンストラクタの先頭で明示的にsuperを指定しないと引数なしの superが自動的に呼び出される。
991デフォルトの名無しさん:2011/03/23(水) 16:14:20.21
Servletでブラウザに複数のファイルをダウンロードさせたいのですが
サーバー側で複数ファイルをzipなどで圧縮して1ファイルにし
ブラウザにダウンロードさせ、それを解凍してもらうしかないでしょうか?
992デフォルトの名無しさん:2011/03/23(水) 16:58:12.40
>>978
オフスクリーン用 Graphics は paint 内で作るとよい。
if (offg == null) offg = offi.getGraphics();
993デフォルトの名無しさん:2011/03/23(水) 17:08:39.65
>>992
んなことせんでも Swing は最初からダブルバッファ機構あるから
自前でやる必要まったくない

なにもしなくてもおけ

paintComponent(Graphics g)

これオーバライドして、適切なタイミングで repaint 呼び出すだけでよい
ちなみに repaint は、ちゃんと再描画の範囲を指定してやると無駄な処理が少なくなっていい
994デフォルトの名無しさん:2011/03/23(水) 20:16:20.23
>>978
JFrame のサブクラスでなにかを描画するプログラムを
書くよりは、まず JComponent のサブラクス作って、そこに描画
のプログラム書いて、

そのパネルを main メソッドの中で JFrame#setContentPane とかして、
表示させるのがいい

コードが整理されて見やすいし、アプレットとかにも転用できる
995デフォルトの名無しさん:2011/03/23(水) 20:30:15.37
何年経っても、メインスレッドからSwingコンポーネントを触る人間が絶滅しないな
996デフォルトの名無しさん:2011/03/23(水) 22:11:39.11
>>993
オライリーのSwingHacksとかでも、描画関連の処理はpaintComponentでやれって書いてたな
SwingHacksは、ちょっと古いけどSwingの描画まわりはかなり詳しく解説されてた
Swingを本気でやるならオススメだ

>>995
Swing自体、複雑だしわかりにくいからな
その辺りを解消するために、Swing Application Frameworkとか開発されてたけど、
今、どうなってるか知ってる人いる?
997デフォルトの名無しさん:2011/03/23(水) 22:38:12.51
>>996
SWTみたく別スレッドからアクセスしてきたから
即例外エラー出さないからねえ

しかし、それでも、コンポーネントの組み替えとか
必要なところだけ SwingUtilities.invokeLater(doRun)
やればいいだけだろう、そんなに難しい話じゃない
998デフォルトの名無しさん:2011/03/24(木) 04:51:30.65
つぎすれ
999983:2011/03/24(木) 07:54:24.69
>>984
> スーパークラスにデフォルトコンストラクタが定義されていれば
>暗黙的にそれが呼ばれます。
そうだっけ。
最近そういうの全然意識してなかったうえに、swing使ってた頃はJFrameは引数付けて呼んでたもんで、確認せずに適当に書いた。
984以降指摘してくれた各位と質問者にお礼とお詫びする。
ありがとう。混乱させてすまなかった。


ついでに埋め。
1000デフォルトの名無しさん:2011/03/24(木) 10:07:02.51
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。