【初心者】Java質問・相談スレッド103【大歓迎】at TECH
【初心者】Java質問・相談スレッド103【大歓迎】 - 暇つぶし2ch771:デフォルトの名無しさん
07/07/19 17:50:23
>>763
クライアント側のミキサーにアクセスしようとしてるんだと思うが?

772:デフォルトの名無しさん
07/07/19 17:58:17
だったらそれでもいいだろ
難しく考えすぎ

773:デフォルトの名無しさん
07/07/19 18:16:19
盗聴のような真似ができるから今問題になってるね

774:755
07/07/19 19:00:25
どなたか(´;ω;`)

775:デフォルトの名無しさん
07/07/19 19:03:44
読み込んだあと該当箇所のエスケープシーケンスを消す
そのあと保存

776:デフォルトの名無しさん
07/07/19 19:04:45
1行ずつよみこんで新たなファイルに書き込む。該当行はスキップ。

777:デフォルトの名無しさん
07/07/19 20:23:58
特定の文字列に対して正規表現がマッチしている、みたいなのはできたのですが、
正規表現を指定してそれにマッチする文字列をランダムで作成する、みたいなことってできないでしょうか。
仕事なんでできないとだめなんですが、ご意見いただけないでしょうか。

778:デフォルトの名無しさん
07/07/19 21:10:16
>>777
ランダムで文字列を作成して、正規表現にマッチしていればループを抜ける

779:デフォルトの名無しさん
07/07/19 21:17:15
正規表現を逆解析して、適切なテストデータを流すDBからデータとってくるとかかな
むかーし、そんな感じのテストツール作ろうかと考えたこともあった。

780:デフォルトの名無しさん
07/07/19 21:30:12
正規表現の逆なんて正規表現でのマッチングよりも難しいんじゃないか?
適当に使用する文字を絞り込んでから778の言うようにランダムに作成してマッチングかけるのが手っ取り早そうだ

仕事なんで出来ないとダメってのは何かおかしいと思うぞ
出来ないものは出来ないと言うべきだ

781:デフォルトの名無しさん
07/07/19 21:38:22
>>778
最初それで考えたんだが、文字数だとかが絡んだりするとそう簡単にはいかんことに気付き断念

>>780
普通はそうなんだろうが、そうもいかない会社はいくらでもあるのよ。

とりあえず対応できそうな構文のみでいってみるか・・・

782:デフォルトの名無しさん
07/07/19 21:43:34
>>781
だいたい何の用途で使うんだ?
正規表現って言ってもどこまで対応するかによってとんでもなく面倒だぜ

783:754・757
07/07/19 21:51:25
>>758
なるほど、これでだいぶ理解できました
ありがとうございます
>>760
全くの初心者です
今日、早速本を買ってきました
これから勉強していこうと思います
ありがとうございました。

784:デフォルトの名無しさん
07/07/19 22:27:57
>>774
特にAPIは無いんじゃないの?


785:デフォルトの名無しさん
07/07/19 22:32:00
>>781
1.
ある表現から固定の決まったシーケンスを出すようにする
[a-z]* なら aaa
[0-9]* なら 000
2.
あるシーケンスの正規表現マッチングを崩さないような変更を行うメソッドを
いろいろ(対応する正規表現分だけ)用意する
例:
[a-z]* の aaa を aab にするとか、 aaにするとか。

3.
1.に対して2.を適当な回数適用する

どう?
まぁできあがる表現に偏りはできると思うがね。
ランダムの定義が曖昧だしこれでいいよな?
1.のシードをある程度余分に作っておけばそれなりにばらけるかもしれないし。

786:デフォルトの名無しさん
07/07/19 22:57:47
こういうときこそSnobolですよ、奥さん。
自然言語マッチ用言語の本領発揮!

787:デフォルトの名無しさん
07/07/19 23:07:05
>>781
まずは対応できる正規表現のパターンを絞り込む事が重要だな
絞り込んじまえばたいしたことはないと思うが、全てに対応しろといったら1プロジェクトだろう

788:デフォルトの名無しさん
07/07/19 23:52:46
1.4のプログラムを1.5のGenericsを使った記述に変更してますが、
よく分かりません。

例えば、配列の偶数要素をキー、奇数要素を値とするMapを生成するメソッド
public static Map arr2map(Object[] arr)
のMapをGenericsを使った記述にする場合、

(1)public static Map<Object,Object> arr2map(Object[] arr)
(2)public static Map<?, ?> arr2map(Object[] arr)
(3)public static <K, V> Map<K, V> arr2map(Object[] arr)

などが考えられますが、どれがいいものでしょうか。
なにか、ガイドラインとなる書籍、URL等ありましたら教えてください。


789:デフォルトの名無しさん
07/07/20 00:00:27
>>788
言っている意味も考えられる選択肢もワカラネ
そもそもObject[]の時点で終わってるのでGenericsに対応しない方がいいんじゃね?

キーの型がKey、値の型がValueであるならば
public static Map<Key, Vaue> arr2map(Object[] arr)
が正しい。
キーも値も決まってないならば、
public static Map<Object, Object> arr2map(Object[] arr)
となるけど、それならば
public static Map arr2map(Object[] arr)
のままでいいんじゃね?ww


790:デフォルトの名無しさん
07/07/20 00:03:01
総称型使ってClassCastExceptionを起こすのはナンセンス

791:デフォルトの名無しさん
07/07/20 00:14:43
>>788
Map<? extend foo, ? extend bar>かMap<K, V>だろうねぇ。

けど、>配列の偶数要素をキー、奇数要素を値とする
なんて非OOなレコードの持ち方が変。
keyとvalueのペアを持つエントリクラス作ってそれを持っておくだろ。

static Map arr2map(Object[])なんて変換関数用意するんじゃなくて初めからmapやsetで持ってkeyだけ・valueだけ詰めた配列返すメソッド用意する。
とか、こういう設計の方が自然。


792:デフォルトの名無しさん
07/07/20 00:18:16
>>789みたいな非OOな考え方ができない奴も居るし、ループ回す時複雑だし・・・

793:788
07/07/20 00:37:15
>>789-792

引数のObject[]が非非OOな持ち方なので、無理に総称型
使う必要は無い(ClassCastExceptionに起こしかねない)と
いうことですね。

設計考え直してみます。
ありがとう。


794:デフォルトの名無しさん
07/07/20 00:45:13
>非非OOな持ち方なので、無理に総称型
使う必要は無い(ClassCastExceptionに起こしかねない)
いや、違う自分の良いように考えすぎ。
アプローチ間違ってますよってだけ。
キャストで例外出すってのはまた別の話。

795:デフォルトの名無しさん
07/07/20 00:58:01
>>788
俺だったら、こんな感じかなぁ

/** 今後はこっち使ってください */
public static <K, V> Map<K,V> arr2map(Object[] arr, Class<K> keyType, Class<V> valueType) {
  Map<K,V> map = new HashMap<K,V>();
  for(int i = 0; i < arr.length - 1; i+=2){
    map.put(keyType.cast(arr[i]), valueType(arr[i+1]));
  }
  return map;
}

/** 互換性のため */
@Deprecated
public static Map<?, ?> arr2map(Object arr) {
  return arr2map(arr, Object.class, Object.class);
}

796:デフォルトの名無しさん
07/07/20 00:59:06
×    map.put(keyType.cast(arr[i]), valueType(arr[i+1]));
○    map.put(keyType.cast(arr[i]), valueType.cast(arr[i+1]));

× public static Map<?, ?> arr2map(Object arr) {
○ public static Map<?, ?> arr2map(Object[] arr) {

797:デフォルトの名無しさん
07/07/20 01:21:25
String.format("%02X", byte) の逆をやるにはどうするのが普通なんですかね。
つまり文字列"00"からは0x00、"79"からは0x79、"80"からは-0x80、
"81"からは-0x79、"FF"からは-0x01のbyte値を生成したいんです。

798:デフォルトの名無しさん
07/07/20 01:25:58
int val = (byte)Integer.parseInt(str, 16);

799:797
07/07/20 01:43:51
>>798
なるほど! ありがとうございます。

800:デフォルトの名無しさん
07/07/20 06:16:29
>>739
遅レスだが、ソケットを閉じる

801:755
07/07/20 10:32:14
レスくれた方どうも有難う御座います。
ググっても適当なメソッドや関数が見つからないと思ったら本当に無いんですか・・・
凄く冗長な気がしますが大人しくファイル二つの間でコピーし合う事にします

802:デフォルトの名無しさん
07/07/20 10:41:05
for( int i = 0; i < 10; i++ ) {
int j = i;
}

こんな風にループ内で変数の宣言していると、回るたびに変数分のメモリを消費していく?
int型の4バイト(?)づつ浪費することになる?

803:デフォルトの名無しさん
07/07/20 10:42:22
>>802
intはオブジェクトじゃないからならない。

804:デフォルトの名無しさん
07/07/20 10:54:28
>>803
オブジェクトだとどんどん消費するってことですか?

class Hoge {

public static void main( String[] args ) {
while( 1 ) {
xxx();
}
}

public void xxx() {
// ここでオブジェクトの宣言
}

上のようにやればxxx()が終了した時点でオブジェクトのメモリは解放?されると思ってるんですが合ってますか?

805:デフォルトの名無しさん
07/07/20 10:58:38
オブジェクトは xxx が終了した時点で
ガベージコレクタによってメモリを開放される条件を満たすようになるが、
実際にメモリが開放されるのはそれ以降でガベージコレクタが実際に走った時。

806:デフォルトの名無しさん
07/07/20 10:58:56
xxx() が終わった時点で参照が外れてGCの対象にはなるが、
その後いつメモリが開放されるかどうかはGCまかせ。

807:デフォルトの名無しさん
07/07/20 11:20:42
レスありがとうございます。

ループ内でオブジェクトを宣言する場合は>>804のやり方で大丈夫でしょうか?
メモリ周りを気にしています。
一番いいのはループ内でオブジェクトは宣言しないことですよね・・・

軽くGCを調べたら「GCはマルチスレッドで動く」ってあったので期待したい。

808:デフォルトの名無しさん
07/07/20 12:14:44
>>807
変数宣言は、できるだけスコープを小さくした方がいい。
この場合なら、ループ内で変数宣言した方がいい。
変数のスコープが小さいときは、
最適化されて変数がレジスタのみ使用し、スタックメモリを消費しなくなる。
オブジェクトの生成はそういうわけにはいかず、
newの度にヒープを消費することになる。

809:デフォルトの名無しさん
07/07/20 12:47:38
いまどきはエスケープ解析されて、スタックに詰まれる。

810:デフォルトの名無しさん
07/07/20 13:46:12
メモり周りをシビアに使いたいなら Java じゃない方がいいんじゃないかなあ

811:デフォルトの名無しさん
07/07/20 14:10:46
でも管理は楽

812:デフォルトの名無しさん
07/07/20 15:19:29
レジスタにのっけるかどうかのアルゴリズムって5.0のままだっけ?6で変わらなかった?

813:デフォルトの名無しさん
07/07/20 15:20:37
>>812
レジスタにのっけるかどうかのアルゴリズム自体が 6.0 で追加されたんじゃなかったか?

814:デフォルトの名無しさん
07/07/20 16:08:12
JDBCリクエストをラップして、
DB の多重化を簡易的に行えるライブラリはありませんでしょうか。

例えば、アプリケーション層のノードが二つ(A,Bとします)
DBノードも二つ(X,Y とします)あるとすれば、

A,B ともラッパー経由で更新していれば X,Y に格納されており、
もし JDBC リクエストで X が落ちたら、Y のみに要求する、と言う形です。

この例であれば X への更新をプールして、X が復活したのを検出したら
流していってくれると最高ですが、この部分は X を復帰させる手続きと
して手動でやれということでも構いません。


815:814
07/07/20 16:15:52
C-JDBC, Sequoia あたりはそうなんですかね…
いまいち、一般的に使われているかどうかが分かりません。

816:デフォルトの名無しさん
07/07/20 16:43:41

フォントの実際の大きさを求めるにはどうすればいいのでしょうか。

 JFrameにJTextAreaを乗せてデータを表示していましたが、一部の文字の色を
変える為に、JTextAreaからJTextPaneへ変更しました。しかし、JTextPaneでは
JTextAreaのように行数と列数を指定できません。それはJTextPaneのフォント
サイズが可変な為だと思います。けれでも私のプログラムのフォントは等幅で
大きさは全て等しく、色が一意でないだけなので、一文字の実際の高さと幅が分
かれば列数、行数ともに算出可能なはずです。そうすれば
setPreferredSize(Dimension d)を使って出来上がりです。

 そこで調べてみたところ、FontMetricsクラスを使えば期待する動作が行えそう
です。FontMetricsは抽象クラスなので、Graphics.getFontMetrics(Font f)を使
ってインスタンスを生成しなければいけませんが、そのGraphicsクラスを使う方
法が分かりません。Canvs.paint(Graphics g)を使えばできますが、それだけの為
にCanvasクラスを使うのは違う気がしました。

817:デフォルトの名無しさん
07/07/20 17:12:03
>>816
使用するフォントを実際に指定できているわけだから
そのフォントを表すFontクラスのインスタンスは得ることができるよね?
そしたらあとはJComponent#getFontMetrics(Font)でFontMetricsのインスタンスを得ればいいじゃない

818:デフォルトの名無しさん
07/07/20 20:51:39
質問です。

OutputStream out = new OutputStream();
DataOutputStream dout = new DataOutputStream(out);
という風にDataOutputStreamを作って、

dout.close(); を行うと、
out.close()も勝手にやってくれるのでしょうか?

819:デフォルトの名無しさん
07/07/20 20:57:47
JavaDocを見なさいって。基本中の基本。
見るのはFilterOutputStreamの方だというヒントは教えとく。

820:デフォルトの名無しさん
07/07/20 20:59:40
>>818
> dout.close(); を行うと、
> out.close()も勝手にやってくれるのでしょうか?
一応やってくれるけど、
例外食らった場合は out.close() してない可能性もある。

821:デフォルトの名無しさん
07/07/20 21:10:51
javaってどんなところに使われてるの?

822:818
07/07/20 21:10:58
>>819
>>820
ありがとうございます。

823:デフォルトの名無しさん
07/07/20 21:13:54
>>821
国防

824:デフォルトの名無しさん
07/07/21 00:42:06
>>821
火星

825:デフォルトの名無しさん
07/07/21 01:01:23
参考書とりあえずやったんですけど、どうすればいいですか?
後はAPIっていうのを見ながらやるんですか?

826:デフォルトの名無しさん
07/07/21 01:04:09
>>126は具体的にどのように実装するのか教えていただけませんか。

827:デフォルトの名無しさん
07/07/21 01:43:16
>>825
何か作りたいから Java 勉強したんじゃないの?

828:デフォルトの名無しさん
07/07/21 03:09:46
>>825
やったのは単なる入門書で文法を学んだだけじゃないの?
参考書ってのは何かを作るときに参照するものだよ

特に作りたいものがないならばゲームでも作ってみるのがいいんじゃね
GUI関連は業務じゃ使う機会少ないけど、デザインパターンとか設計力を鍛えるには一番だとばっちゃんが言ってたよ


829:デフォルトの名無しさん
07/07/21 03:53:11
>>825
この辺りで宿題解いてみるのもいいと思うよ。
★★ Java の宿題ここで答えます Part 62 ★★
スレリンク(tech板:1-100番)

830:825
07/07/21 12:52:27
>>828
>>829
ありがとうございます。参考になりました。

831:788
07/07/21 14:44:46
>>795-796
レス遅くなりましたが、
これ使わせてもらいます。
ありがとう。


832:デフォルトの名無しさん
07/07/21 15:22:58
サーブレットを覚えたてです、家でも勉強しようと思って、tomcatをインストールしたのですが
どうしてもindexに繋がりません、過去に習ってた時の学校では自分でインストールできたのに
スタートさせてもアイコンはミドリの▲になるのに、右クリックをするとストップStopではなくStartが押せる状態になっています

Tomcatは5.5、Javaは1.5
OSは2000XPでも2000Proでもどちらも同じ現象でダメでした
XPのファイアーウォールを無効にしても無理でした
環境設定のPathは教室でインストールした時に、テキストファイルで貰っていたのをコピペしなおしても無理でした
これ以上どう足掻いていいのか分かりません

833:デフォルトの名無しさん
07/07/21 15:29:56
//A
class Hoge{
static void piyo(){}
public static void main(String[] arg){
piyo();
}

//B
class Hoge{
Hoge(){
piyo();
}
void piyo(){}
public static void main(String[] arg){
new Hoge();
}

Aのように書かずBのように書けば、piyoメソッドにstatic修飾子をつけなくてもよくなりますよね
こう書くことになにか問題はありますか?

834:デフォルトの名無しさん
07/07/21 15:57:32
>>833
修飾子についての理解が不十分
staticをつけたメソッドはインスタンス化しないでも使えるが、
Bのpiyoメソッドはインスタンス化しないと使えない。

835:デフォルトの名無しさん
07/07/21 17:36:23
>>832
Eclipse上?
今のTomcatなんてインストーラーに従ってインストールするだけだろ?

836:デフォルトの名無しさん
07/07/21 17:37:18
ちなみに環境変数のPathだのCLASS_PATHは下手にいじるなよ

837:デフォルトの名無しさん
07/07/21 18:05:10
>>834
うまく言えんけど、おそらく833は
「mainメソッドで呼ぶ」という理由だけでstatic修飾子をつけるのはおかしいのでは?
と考えた結果思いついたんじゃないか?
833への答えは持ってないけど、834の答えが的外れな気がしたんで口出し
834のであってたらすまん

838:デフォルトの名無しさん
07/07/21 18:20:47
>>833
たしかにAもBもpiyo()が実行されるという一点では同じなんだけど、
piyo()は本当にコンストラクタ内で処理すべき機能なのか考えるべき。
AとBではpiyo()やHogeクラスの意味合いが異なってくる。
piyo()が単にstaticメソッドから呼ばれるだけの下請け的存在ならAで十分だし、
Hogeをインスタンス化する必要がありかつpiyo()がインスタンス生成段階で必要な処理ならB。
class Hoge{
void piyo(){}
public static void main(String[] arg){
Hoge h = new Hoge();
h.piyo();
}
}
こう書くのが適切な場合だってある。
何を実現するためにどうクラス設計をするかを考えてpiyo()の立ち位置を決めておくれ。

839:デフォルトの名無しさん
07/07/21 18:24:31
優等生的回答

class Hoge{
public static void main(String[] arg){
Hoge hoge = new Hoge();
hoge.piyo();
}
void piyo(){}
}


840:デフォルトの名無しさん
07/07/21 18:42:46
newってのが何者かを勉強するといいと思う
単純にfor文とif文を駆使したプログラム入門ならば、全部staticでnewは配列作るときくらいしか使わないでOK
クラスとか勉強する段階でnewを覚えるべきだが

841:デフォルトの名無しさん
07/07/21 19:07:22
>>832
URLリンク(localhost:8080)

でだめだったのかい?

URLリンク(localhost:8080)

ではどうだい?


842:デフォルトの名無しさん
07/07/21 19:13:53
>>835
私もそう思ってたのでびっくりです
>>836
CLASSPATHを作ってservlet-api.jar;.の位置を入れました
↑は自分で打ったけど、パソコンに入れたのは成功した教室のPCからのコピペなんで間違いはないと思います
>>841
そこ自体がダメです
タスクのアイコンがスタート状態になってても、ストップできずスタートがあるということは、スタートできてないんだと思う



843:デフォルトの名無しさん
07/07/21 19:21:23
>>842
CLASS_PATHを消せ
次にコマンドプロンプトからjava -version を打ってversionを確認せよ
その上で再インストールして来い
スタートできないならばログも嫁

844:デフォルトの名無しさん
07/07/21 19:29:52
>>843
おかげで使えるようになりました
ありがとうございました

前に入れたバージョンが残っててそっちを設定してたっぽい
ゴメンナサイ
私は、恥かしい間抜けです


845:デフォルトの名無しさん
07/07/21 21:23:30
                            ,===,====、
                            _.||___|_____||_
..                        / /||___|^ l
..    答えろ ぶち殺すぞ!>  (・ω・`)//||   |口| ||ω・` )
.                   ./(^(^ .//||...||   |口| |⊂ )
.                    /   //  ||...||   |口| ||し      新スレです
. あ?てめぇどこ中だよ>(    )//....  ||...||   |口| ||        楽しく使ってね
               /(^(^ //  ....  .||...||   |口| ||        仲良く使ってね
       ""    :::'' |/   |/ '' "  :::  ⌒  :: ⌒⌒⌒ :: ""  `
       :: ,, ::::: ,, ; ̄ ̄ ̄  "、 :::: " ,,

846:デフォルトの名無しさん
07/07/21 22:10:34
サーブレット書いてるんだけど、

doGetとdoPostあるじゃん。
どちらか一方に処理全部書いて、もう一方にはdoPost()かdoGet書けば
いいだけなんだろうけど。
これでいいのか?

てゆうか、分けて書くことってあるの?

847:デフォルトの名無しさん
07/07/21 22:18:16
>これでいいのか?
いい。

>てゆうか、分けて書くことってあるの?
使い方による。

848:デフォルトの名無しさん
07/07/21 22:41:17
例えばリクエストにGetを許可しないケース

849:デフォルトの名無しさん
07/07/21 23:00:41
初心者です。javaのGUIアプリケーションってデザイン的によくないイメージがあるのですが、
見た目にこった実装ってできるのでしょうか?
例えば、ウィンドウを3D間隔で操作できるとか、swingコンポーネント等でも
デザインが柔軟に変更できるとか。OS依存でも構わないです。(できればWindows)
その他なんでもよいのですが、おもしろいデザインにするための技術情報など教えていただきたいです。



850:デフォルトの名無しさん
07/07/21 23:04:51
LookAndFeel(ようはスキン)を自作することはできる。
Swing synthでぐぐってみたら?

851:デフォルトの名無しさん
07/07/21 23:06:04
>>849
やろうと思えば3Dだろうとなんだろうと可能だが、簡単に出来るわけじゃない
単純に派手なUIが欲しいってのならば方向性は違うだろうね

Eclipseで使われているSWTなんかを使えば簡単にWindows風のUIも可能
Swingだって6.0で大幅にパフォーマンスも向上しているから捨てたもんじゃない
ただし、作るにはそれなりのセンスと時間が必要

852:デフォルトの名無しさん
07/07/21 23:26:17
>>850
htmlとcssみたいな関係なのでしょうか?調べてみますm(__)m

>>851
javaを勉強し始めてから早一年経ちましたが、人の作ったライブラリを呼び出すだけの人になってますorz
ちなみに最近netbeansを使ってGUIの作成ってやってみたのですが、VBチックで楽だなぁと思ったのですが
同じようなものなのかな? SWTなるもの調べてみますm(__)m


853:デフォルトの名無しさん
07/07/21 23:54:31
>>852
SwingなりSWTはツールを使わずに習得した方がいい
自然とOOPでの設計力が付くぞ

854:デフォルトの名無しさん
07/07/21 23:54:58
programming base .javaとか言うのを学校で使って
家でもちょっとやりたいと思ってるのですが、
家では開けず、あぁーなんかダウソしないといかんのかぁー。となっとります。
ほんとに初歩の初歩の質問で申し訳ないのですがどなたか教えて頂けるとありがたいです。
えー、ちなみに void on Idle とか使ってた奴です。(何だこの説明。。。

855:デフォルトの名無しさん
07/07/21 23:57:39
JRE Version 6 Update 2 のインストーラーで質問。
URLリンク(www.java.com)
↑ここから辿ってダウンロードできる jre-6u2-windows-i586-p-s.exe と
URLリンク(java.sun.com)
↑ここの「Java Runtime Environment (JRE) 6u2」のダウンロードから辿って
ダウンロードできる jre-6u2-windows-i586-p.exe の違いが分かる人いますか?
両方ダウンロードするとどちらも 14,566,808 バイトだけど、バイナリ比較すると一致しない…

856:デフォルトの名無しさん
07/07/22 00:15:19
>>853
ですね。。正直今の段階だと自動生成されたソースが何をやっているのか分からない状態です。
GUI開発が熟練してからツール使うことにします^^;


857:デフォルトの名無しさん
07/07/22 01:12:13
>>854が釣りかエスパーか判断できないので誰か支援頼むw

>>856
まあ、netbeansの吐くコードは汚いね。

いまさらSWT使う利点なんてないよ。
5.0/6のVMは早いし、SwingのSystemLnFもネイティブコードの呼び出し増えて見栄えもかなり近いし。
普通に使う分にはVMのメモリを多めに取ればSwingもSWTもたいして速度変わらん。
それに今時Swingで十分な速度でない環境だとjavaそのものが遅いし。
ここら辺のおかげでnetbeansがかなり使えるようになった。

SWTはjava風じゃないところがあるからまずはjavaを覚えた方が良い。

858:デフォルトの名無しさん
07/07/22 01:49:52
これを応えられるほどの凄腕エスパーは世界に3人といないだろう

859:デフォルトの名無しさん
07/07/22 02:55:56
SWTって自分でメッセージループ回してるところがWindouzuっぽくて嫌だ

860:デフォルトの名無しさん
07/07/22 09:19:55
ちゃんと授業を聞いている学校のクラスメートだったら分かるんだろうな

861:816
07/07/22 14:51:24
>>817
おお、うまくいきました。
Graphicsクラスからしか取得できないと思っていました。
ありがとうございました。

862:デフォルトの名無しさん
07/07/22 15:01:53

JFlexとJacでちょっとしたもの作ろうとおもってるんだけど、
ビルドをeclipse上で自動化したい場合ってどうすればいいの?

863:デフォルトの名無しさん
07/07/22 15:03:05
×jac
○jay

864:862
07/07/22 17:47:46
申し訳ございません。
eclipseのスレがありましたのであちらで質問します。
ありがとうございました。

865:デフォルトの名無しさん
07/07/22 20:10:02
英語と日本語が混ざった長文をテキストエリアなどに表示される場合、
正確に一画面文の文字数をカウントすることをご教授願います。
フォントサイズから一画面の文字数を数える場合、
英文が入るを正確にカウントできません


866:デフォルトの名無しさん
07/07/22 20:14:06
できるよ。
文字数を読むメソッドがある


867:デフォルトの名無しさん
07/07/23 02:05:51
>>846
通常、POSTとGETは使い分けるよ。使う目的も違うし、HTTPにおけるパラメータの
送信方法も異なってくる。また、Tomcatの場合はHttpServletRequestのsetCharacterEncodingは
GETパラメータには利かない。(※いくつかの設定は存在する)

Servletを学習するなら、同時にHTTPについて学習するのはすごく有意義だし、Web上に色々参考に
なる記事が沢山落ちてるから、まずはPOSTとGETは具体的に何が違うのかを学習すると良いと思うよ。

868:デフォルトの名無しさん
07/07/23 09:13:08
ちょっとでも、お役に立てれば。

URLリンク(www.yukinko-net.jp)

869:デフォルトの名無しさん
07/07/23 12:23:50
Rhinoの質問いいですか。
Rhinoでコマンドライン用のスクリプトを書こうとしているのですが、
コマンドライン引数の取り方が分かりません。
RubyでいうところのARGVです。
Rhino argv で検索しても C のソースしか引っかからないし。
どなたかお願いします。

870:デフォルトの名無しさん
07/07/23 12:32:59
args

871:デフォルトの名無しさん
07/07/23 12:57:16
>>869
RhinoはJavaによるJavascriptの実装だから、実装内容に関わるような話ならこのスレかもしれないが、
単なるスクリプトプログラミングについてここで聞くのはスレ違い。
ある言語について質問する時に、その言語の処理系が何で実装されているかに関わらず、
普通はその言語のスレで質問するだろ?

872:デフォルトの名無しさん
07/07/23 12:57:53
>>870
argsは定義されていないようです。

print(args); //=> ReferenceError: "args" is not defined.

Rhinoは1.6R5です。

873:デフォルトの名無しさん
07/07/23 13:01:36
>>871
JavaScript一般の話ではなく、あくまでRhino固有の話なので、JavaScript関連のスレではなくここで質問しました。
Rhino専用のスレはないし、RhinoはJava6から標準装備ですし、ここが一番適切ではないでしょうか。

874:デフォルトの名無しさん
07/07/23 13:39:30
>>871
JavaScriptのスレでこんなもんわかるやついるわけないだろ。Javaスレ行けっていわれるのがオチ。

875:デフォルトの名無しさん
07/07/23 13:53:57
>>874
じゃあお前が答えてやれよ
俺はRhinoは嫌いだ

>>869
arguments

876:デフォルトの名無しさん
07/07/23 14:07:55
>>869
jrunscript で実行してるなら arguments で取れるはず。

そうでない場合は、自前でScriptEngineにセットしないとダメなんじゃね?
scriptEngine.getBindings(ScriptContext.ENGINE_SCOPE).put("arguments", args);

877:デフォルトの名無しさん
07/07/23 14:26:41
>>875,876
argumentsでとってこれました。ありがとうございました。
ちなみにこういった情報はどこで見つけるものなんでしょうか。

878:デフォルトの名無しさん
07/07/23 14:30:03
>>877
URLリンク(java.sun.com)

879:デフォルトの名無しさん
07/07/23 15:59:42
>>874
呼んだ?
おまえら少しはEcma Scriptスレに顔出して上げてください。
ネタがないんで普段は実装と仕様の差異の話で盛り上がっとりますよ。

SpiderMonkyが人気ないからRhinoで持ちきりなんだが・・・。
java6のRhino劣化品。いらない子。

>>878
それmozillaのdocの劣化コピペだからmozillaの開発者向けサイトかRhinoのdocに全部書いてある。


880:デフォルトの名無しさん
07/07/23 16:28:58
>>879
一応別のツールだから劣化コピペとは言い切れないんじゃね?

Rhino のツールでは -l でスクリプト言語指定したりできないっしょ。

881:デフォルトの名無しさん
07/07/23 18:51:12
いやjdk6に入ってるjs.jarはスループット優先でRhinoの機能かなりとっぱらってサイズ減らしてるんだよ。
さらにコンパイラ省かれてるから一切最適化されてない純粋なインタープリタで動いてる。

Rhinoのドキュメントに組み込みガイドがあって
そこにスループット優先でビルドする手順が書かれてるんだけどそれと同じ事してる。+JavaAdaptorが劣化。

jrunscriptはそのRhinoのScripting APIに従った純粋なラッパー。

Rhinoの殆どの実装クラスがjavax.script.*じゃなくてcom.sun.*にあるから自分でJSオブジェクト実装とかクラスシャッターでセキュリティ制限とかできない問題もある。
ecmaスレで詳しい話題が出てるよ。

882:デフォルトの名無しさん
07/07/23 20:26:28
>>881
javax.script は Rhino とは別物だよ。
で、jrunscript と org.mozilla.javascript.tools.shell も別物。
だから jrunscript の、より詳しいドキュメントとして mozilla のドキュメント読めというのはダメ。

883:デフォルトの名無しさん
07/07/23 23:29:23
>>869はjrunscriptとはいってないだろ。
Rhino1.6R5と言っただけ。Rhinoがjavaの実装で6から標準装備だからこっち来たと。

>>876が勝手にjrunscriptと言い出しただけだろ。だからecmaスレ行けって。

884:デフォルトの名無しさん
07/07/23 23:37:36
>>883
俺は >>879 にレスつけただけなんだが。なんで >>869 の話が出てくるんだ?

885:デフォルトの名無しさん
07/07/24 01:27:16
Rhinoってなに?


886:デフォルトの名無しさん
07/07/24 01:39:57
どっかの誰かさんが作ったjavaのライブラリ

887:デフォルトの名無しさん
07/07/24 02:51:47
>>884おまえ上の流れくらい読めよ。馬鹿だろ?

888:デフォルトの名無しさん
07/07/24 02:53:20
jdbcのドライバのロードを static { } 内に記述して一度だけ実行するようにしたいんだけど、
これって可能なんでしょうか。コードは以下のような感じ。

class Hoge {

static {
try {
Class.forName("org.postgresql.Driver");


889:デフォルトの名無しさん
07/07/24 03:00:58
誤爆

class Hoge {
  static {
    try {
      Class.forName("org.postgresql.Driver");
    } catch (ClassNotFoundException e) {
      throw new InternalError(e.getMessage());
  }

  public static Connection open() {
    Connection conn = DriverManager.getConnection("foo", "bar", "baz);
    return conn;
  }

  // 以下略
}

コンパイルエラーは以下。
[javac] シンボル: 変数 DriverManager
[javac] 場所 : Hoge の クラス
[javac] Connection conn = DriverManager.getConnection("foo", "bar", "baz");
[javac] ^
[javac] エラー 1 個


890:デフォルトの名無しさん
07/07/24 03:06:50
静的初期化子の中のcatch節の終了の}が無い

891:デフォルトの名無しさん
07/07/24 03:07:07
>>889のソースコード、改めてみるとなかなかひどい抜けがあるけど勘弁してくれ。

クラスパスが通ってないのかなと思って servlet-api.jar にも classpath を通してみて
HttpServlet を継承しただけのコードを書いてみたけど、こちらは問題なかった。
ビルドに用いている ant の build.xml のクラスパスの部分は以下。lib/ 内には
postgresql.jar が配置されている。

<target name="compile">
<mkdir dir="${bin.dir}" />
<javac srcdir="${src.dir}" destdir="${bin.dir}">
<classpath>
<!-- <fileset dir="lib">
<include name="*.jar" />
</fileset>-->
<pathelement location="lib/postgresql.jar" />
<pathelement location="/usr/share/tomcat5.5/common/lib/servlet-api.jar" />
</classpath>
</javac>
</target>



892:デフォルトの名無しさん
07/07/24 03:13:33
>>890
取り急ぎ書いたんで抜けた。すまん。他にも "baz" の終わりの " が抜けたりしてる。
手元のコードはちゃんとしてるから大丈夫。

893:デフォルトの名無しさん
07/07/24 03:17:47
そして>>889にはったエラーメッセージに肝心のエラーメッセージがはってないな。
DriverManagerに対して

「シンボルを見つけられません。」

というメッセージです。

894:888
07/07/24 03:20:11
解決しますた。

DriverManagerってずっと postgresql.jar の中にあるクラスと思ってたら java.sql.DriverManager
だったのな。。。

895:デフォルトの名無しさん
07/07/24 03:21:33
>>892
import java.sql.DriverManager;してる?

896:デフォルトの名無しさん
07/07/24 03:23:38
遅かったorz 解決して何より
まあシンボルが見つからないエラーは完全名を指定できていないミスが多いからね

897:デフォルトの名無しさん
07/07/24 03:23:59
まさに今同じミスをやらかして修正に追われていた。
Eclipseの補完機能に頼りすぎておんなじ名前のメソッド入った
パッケージがこんがらがるとこういうことになる。

898:デフォルトの名無しさん
07/07/24 04:14:49
設計時に使うパッケージは大方分かってるからワイルドカードでインポートして
クラス名が被るのは限定名でアクセスしてあとから「インポートの編集」すると混乱が減るよ。

899:デフォルトの名無しさん
07/07/24 06:42:38
インポートのワイルドカード嫌う人おおいみたいだけどなんで?
コンパイル遅くなるから?
実行時にも遅くなる?
import *;
ができないからどっちもどっち?


900:デフォルトの名無しさん
07/07/24 07:30:15
importの意味を知っていれば実行時に遅くなるなんて台詞は出てこないはずだぞ。

901:デフォルトの名無しさん
07/07/24 07:44:01
>>899
importは「このクラスはこいつらに依存してますぜ」というある意味クラスの設計情報みたい
なもの。仕様変更やデバッグするときに鬼のようにimport hoge.*;とか書かれまくっていきな
りプログラム中でクラスが使用されているとどのクラス追いかけたらいいのかわからなくなる。
でっかいシステムなら尚のこと。
俺の場合作る手間より直す手間を減らすため、かなぁ。

902:デフォルトの名無しさん
07/07/24 10:00:23
importなんて久しく意識してないな。eclipseが勝手に完全名書いてくれるからねえ

903:デフォルトの名無しさん
07/07/24 10:03:03
import hoge.* でもIDEのサポートでどのパッケージはわかるから別に困らんし、
使うオブジェクト全部をimportで指定するのは面度だが、
これもIDEのサポートでさほど手間でもない。
どっちでもいい気がするが、プロジェクトのやり方に合わせるのが基地。

904:デフォルトの名無しさん
07/07/24 10:16:44
入門向け書籍でサンプルコードを1行でも削るために使用されてるだけじゃね?>import の *


905:デフォルトの名無しさん
07/07/24 10:31:57
importで*を使うと実行速度が低下するって聞いたんだけど本当?

906:デフォルトの名無しさん
07/07/24 10:37:36
>>905
>>900

907:デフォルトの名無しさん
07/07/24 10:51:50
遅くならないの?

908:デフォルトの名無しさん
07/07/24 10:54:42
コンパイル時に解決されるのに、実行時に影響があるわけが

909:デフォルトの名無しさん
07/07/24 11:04:52
あーそうだね
やっとわかった
ごめんね

910:デフォルトの名無しさん
07/07/24 16:56:27
けど無駄なリンクが発生するから要らないリンク時間がかからない?javaって動的リンクだし。
まあ、無駄なアクセスがあればの話だけど。

911:デフォルトの名無しさん
07/07/24 17:00:45
全然分かってないじゃないか

912:デフォルトの名無しさん
07/07/24 17:02:19
importじゃなくabbreviateとかそんな予約語だったほうが良かったのかな

913:デフォルトの名無しさん
07/07/24 18:12:23
>>910
hoge.Hegeクラスを参照しているソースファイル中で、
import hoge.*;
とやった場合と、
import hoge.Hege;
とやった場合でコンパイル後のclassファイル中のHegeクラスの名前の指定の相違点を確認。

914:デフォルトの名無しさん
07/07/24 19:33:39
import a.*;
import b.*;

とかなってるときに、
パッケージ b 内にしかなかったクラスの名前と同じクラスをパッケージ a に追加すると、
追加したところとは異なるところからコンパイルエラーが発生してびびる
もっとも、たまたまシグネチャが合ってエラーが発生しなかったらと思うともっと心配かも

915:デフォルトの名無しさん
07/07/24 19:38:57
無駄なリンクが発生するので、たぶん
要らないリンクに時間が掛かります(コンパイルに)

916:デフォルトの名無しさん
07/07/24 19:56:13
クラスサイズが大きくなるってのは?

917:デフォルトの名無しさん
07/07/24 20:11:12
ならないよ
コンパイラの名前解決時に影響するだけ
コンパイル後はまったく一緒、クラスファイルにはフルネームで格納される

918:デフォルトの名無しさん
07/07/24 20:15:09
>>915-916
無駄なリンクなんて発生しねえしサイズも大きくならねえよ
importは単にこのクラスもしくはパッケージからクラス定義を拾ってこいっていうコンパイラへの指令
コンパイラの実装次第でワイルドカードを使った時のクラス検索の効率に差が出るかもしれんが

919:デフォルトの名無しさん
07/07/24 23:06:32
import * ワロタ
どこの都市伝説だよw

920:デフォルトの名無しさん
07/07/24 23:43:08
import *;

永遠に compile oh what a night in jamaica!

921:デフォルトの名無しさん
07/07/24 23:43:17
すべてのパッケージからクラスを探し出すのか

922:デフォルトの名無しさん
07/07/25 00:11:46
結局クラスパス上になければコンパイルエラーだし
クラスパス上にあるなら import *; でも探すことはできるはず。
importってコンパイルを手助けしてあげるためにあるのか?
>>901の意味合いももちろんわかるけど。

923:デフォルトの名無しさん
07/07/25 00:15:11
Javaのバージョンを変えてリコンパイルし直すと、ソースいじってないのにファイルサイズ増えるよね。
これってバージョンがあがってリンク先が増えたからだと思ってた。
富○通正社員の俺
協力会社の新人に笑われたorz


924:デフォルトの名無しさん
07/07/25 00:18:12
大丈夫落ち込むほどYOUの会社の評価は高くない。

925:デフォルトの名無しさん
07/07/25 03:05:55
そしてなにより板の空気をよめない
923は最悪


926:デフォルトの名無しさん
07/07/25 03:39:37
いろんな苦労の末に入ったばっかりなんじゃないかなー

927:デフォルトの名無しさん
07/07/25 08:37:36
Rhinoって何て読む?
アール日野?

928:デフォルトの名無しさん
07/07/25 08:39:34
サイさんは英語でなんと言うのでしょう赤坂?

929:デフォルトの名無しさん
07/07/25 09:27:12
>>923
落ち目だからな・・・。

930:デフォルトの名無しさん
07/07/25 12:52:40
J2EEとJavaは何が違うんですか?

931:デフォルトの名無しさん
07/07/25 12:56:24
>>930
それは関西と大阪は何が違うかという質問に近い。

932:デフォルトの名無しさん
07/07/25 13:03:05
>>931いやいやいやw

関西と関西弁の違い、と思う

933:デフォルトの名無しさん
07/07/25 13:25:59
日本人と関西人の違いだろ
企業と企業広報の違いでも有るかな

934:デフォルトの名無しさん
07/07/25 20:57:24
Javaで動画や音声のストリーミングって出来ますか?
動画はともかく、ねとらじとかをJavaから利用できないかな?

935:デフォルトの名無しさん
07/07/25 21:05:11
やろうと思えばできる、やるかどうかは別だが

936:デフォルトの名無しさん
07/07/25 21:06:21
>>930
ファミコンとディスクシステムのような関係

937:デフォルトの名無しさん
07/07/25 21:36:59
>>934
さがせばストリーミングライブラリがいくらでもある。

J2EEの名称はもう使われてないな。

938:デフォルトの名無しさん
07/07/26 00:41:29
JAVAアプレットのプログラムを作ってるんですが
Mainのプログラムから描画の処理のところだけ切り出して
別のクラスにかきだしたいのですがいくらやってもうまくいきません
どうすればいいですか?
どなたか教えて下さい

939:デフォルトの名無しさん
07/07/26 00:45:52
エスパーが来るまでお待ちください。

940:デフォルトの名無しさん
07/07/26 00:49:37
>>938
どうすればいいかは、
あなたが考えれば一番うまくいくでしょう。

941:デフォルトの名無しさん
07/07/26 00:57:00
まあパッシブレンダリングだと混乱するのも分かるけどな。

942:デフォルトの名無しさん
07/07/26 01:23:16
javaのパッシブ/アクティブレンダリングはそういう使い方するもんか?
GUIにタイミング任せるか、プログラムで自分でやるかの話だろ?

アプレットはエントリポイントが違うってんなら分かるが。

>>938
せめてソースくらい上げましょうぜ旦那?

943:デフォルトの名無しさん
07/07/26 01:28:40
>>938
描画処理?
とりあえずソースだな。

944:デフォルトの名無しさん
07/07/26 01:35:17
プログラム内からrmiregistryを立ち上げたいのですが、
URLリンク(www.atmarkit.co.jp)
URLリンク(itpro.nikkeibp.co.jp)
を見て、sun.management.Agent内でその処理を行っているのはわかったのですが
このソースのどこで立ち上げてるかさぱり分かりません。
誰がわかる人がいたら解説お願いします。

945:デフォルトの名無しさん
07/07/26 10:21:31
Java って、内部クラスから外側のクラスの this ポインタを取得することってできないの?

class Outer {
  void Hoge() {
    Inner inner = new Inner();
    inner.Foo();
  }
  class Inner {
    void Foo() {
      // ここで Outer の this がほしい。
    }
  }
}

コンストラクタで明示的に外側のクラスの this を渡すしかない?


946:デフォルトの名無しさん
07/07/26 10:35:56
>>945
Outer.this

947:デフォルトの名無しさん
07/07/26 14:24:44
class Inner はstatic finalのほうがよくね?

948:デフォルトの名無しさん
07/07/26 15:25:23
派生元のクラスでprivateで定義されているメンバ変数に
それを継承したクラスの方からアクセスするにはどうしたらよいですか?

949:デフォルトの名無しさん
07/07/26 15:41:37
>>948
java.lang.reflect.Field

950:デフォルトの名無しさん
07/07/26 15:42:49
>>948
private で宣言されたメンバは継承されない

getter 用意してアクセスしろ

951:デフォルトの名無しさん
07/07/26 16:02:25
>>949
ありがとうございます
1.4でも使えますか?

952:デフォルトの名無しさん
07/07/26 16:08:39
継承はされるだろ

953:デフォルトの名無しさん
07/07/26 16:22:11
>>952
URLリンク(java.sun.com)
> Members of a class that are declared private are not inherited by subclasses of that class.
> Only members of a class that are declared protected or public are inherited by subclasses
> declared in a package other than the one in which the class is declared.

継承されてたら言語仕様に反する。

954:デフォルトの名無しさん
07/07/26 16:33:06
>>951
1.4でも使えるけど、セキュリティマネージャが許可しない場合は使えない。
例えばアプレットとかだと、Field#setAccessible() が許可されないはず。

955:デフォルトの名無しさん
07/07/26 18:01:23
JAVAさんってC#くんが嫌いなんですか?

956:デフォルトの名無しさん
07/07/26 18:12:42
普通設計段階でprotectedにするだろ。そういうの。

>>955
ゲイツ君がpure javaさんを嫌いで古臭いjavaさんの実行モデルを元に「・・・頼むよ君」と呼んできたのがC#くん。

957:デフォルトの名無しさん
07/07/26 18:33:30
>>938なんですが
もう一度質問します。アプレットのメインクラスの中にある
描画処理・・・・たとえば↓
public void paint(Graphics g){ 
   //描画処理
  }
を別のクラスに作って描画処理を丸々引き渡したいのですが
別のクラスから描画処理をやろうとするとウィンドウに描画処理が反映されません。
メインクラスからだと反映されるのですが・・・。
描画処理をほかのクラスに引き渡すにはどうしたらいいですか?
たびたび質問してしまって申し訳ありません。

958:デフォルトの名無しさん
07/07/26 18:49:04
paintの引数のGraphics gを使えば、同じクラスだろうが別のクラスだろうが関係無くちゃんと描画されるハズ。
使ってるつもりなのに描画されないなら、多分つもりなだけで実際には使われて無いんだろう。
問題のコードをどっかにうpした方が回答がつきやすいと思うよ。

959:デフォルトの名無しさん
07/07/26 19:08:29
INT型の変数が2147483647を超えるとマイナスになってしまいますが、これを防ぐにはどうしたらいいものでしょうか

960:デフォルトの名無しさん
07/07/26 19:11:50
long

961:デフォルトの名無しさん
07/07/26 19:16:38
>>957
ソース

962:デフォルトの名無しさん
07/07/26 19:31:25
>>960
わかりました。long使ってみます
ありがとうございました

963:デフォルトの名無しさん
07/07/26 19:41:33
すみません・・・
long b = Integer.parseInt(line);
このようにlineを取り込むとlongでも小数点以下がなくなってしまいます
longで取り込むにはどうしたらいいのでしょうか

964:デフォルトの名無しさん
07/07/26 19:48:59
longもintも整数を保持する型
doubleは小数を保持する型
ってかlongに変えたんならInteger.parseInt()使うなよ
long用にはLong.parseLong()がある
doubleを使う場合はDouble.parseDouble()とかもある
これらを実行してどうなるか試してごらん

965:デフォルトの名無しさん
07/07/26 20:05:07
なるほど
いろいろ種類があるんですね
おかげさまで何とか動くようになりました!ありがとうございました

966:デフォルトの名無しさん
07/07/26 20:10:25
>>958
できました
ちょっとしたミスでした
どもです^^;

967:デフォルトの名無しさん
07/07/26 20:42:31
>>947
親クラスの非staticなメンバに直接アクセスするような
インナークラスだとstaticクラスじゃ無理。
たとえば、Iterableを実装するようなクラスがそれにあたる。

>>945のケースだとOuterのthisを要求しているからstaticじゃ面倒だね。

そうじゃない場合、ただの別クラスがたまたまインナークラスになっている場合、
staticにしないとnewするのにいちいち、
new Outer().new Inner();
とかいうわからないコードを書かないといけないハメになる。

まあ、内部に非staticクラスしのばせるのもいいけど、
メソッド内にクラス定義書くのも乙だと思うけどな。かなり嫌われるけど。

968:デフォルトの名無しさん
07/07/26 21:00:58
JUnitをさわりだしたんだけど、これって基本的にpublicな関数・変数のみを
対象にするって感じでいい?

本当はprivateな関数のテストもしたいし、privateな変数にアクセスして
チェックもしたいんだけど。
それともprivateを使わないで全部protectedにしてるとか?

969:デフォルトの名無しさん
07/07/26 21:16:31
>>968
JUnitは単なるツール
どんなテストを行うかは別の問題

970:デフォルトの名無しさん
07/07/26 21:17:16
>>968
(1)リスク駆動で。気になったところからチェックする。
単純な getter や setter などトリビアルなものに対するテストを考えるくらいなら、
もっとやるべきことがあるはずだ、たぶん

(2)protected にするくらいなら、パッケージプライベートで

(3)どうせなら、テストファーストがお勧め
テストを書こうとするだけで、モジュールの独立性や使い勝手などが
設計にフィードバックされる

971:デフォルトの名無しさん
07/07/26 21:59:18
>>956
わたしもprotectedにするべきだと思うんですが
提供されているソースをみるとそうなってなかったんですね


972:デフォルトの名無しさん
07/07/26 23:51:39
サーブレットについて質問。

コンテナに登録されているロール名の一覧を取得する
方法はない?
あるロール名が登録されているかどうかを判別する
だけでもいい。

コンテナはGlassfish v2 Beta 3だが、JEE汎用の方法が
嬉しい。

973:デフォルトの名無しさん
07/07/26 23:53:26
publicなり、protectedのテストがきちんとかかれていれば、privateメソッドもテストされるんでない?
jcoverageとか使ってみれば?

974:デフォルトの名無しさん
07/07/27 01:33:53
for文が上手く動いてくれないです
while(true){}でやるとちゃんと動くですが、どんな条件を入れても動いてくれません
他にもfor文とかの繰り返しはたくさんあるのですが、これだけ動いてくれません

■java 2 SDK SE v1.4.2_14
■WinXP Home

for文の中にprintlnを書いても全く表示されませんでした。
何が原因なのでしょうか?

URLリンク(up.spawn.jp)

975:デフォルトの名無しさん
07/07/27 01:43:11
(´・ω・`)自己解決しました

976:デフォルトの名無しさん
07/07/27 06:26:15
Java(Struts)で、10分に一回、あるテーブルのデータをチェックするという
プログラムを作るにはどうすればよいのでしょうか?
ずっと、そのチェックをはしらせときたいのです。

977:968
07/07/27 07:48:59
レスどーも

>>969
一般的にどんな感じでテストしてるか知りたい。

>>970
JUnitは単体テストなので実装依存(ソースにべったり)のテストコードを
作るのか、あるいは外部から見える範囲内(内部での細かい動作まではテストしない)
なのかを知りたいところ。
リスク駆動と言うのであれば、やはりprivateな変数・オブジェクトレベルでも
チェックしたいかなーと思ったんだけど、普通はそこまではしないもんなのかな。
クラスや関数はパッケージローカルでいいとは思うけど。

>>973
とりあえずjcoverage見てみたけどよくわからんw
IDEと連動しにくいツールは手を出しにくいかも。

978:968
07/07/27 07:51:55
ちなみに今はnetbeans使用

979:968
07/07/27 08:00:03
なんかこんなのあるな
URLリンク(journal.mycom.co.jp)

980:デフォルトの名無しさん
07/07/27 08:47:09
次スレ立てました。

【初心者】Java質問・相談スレッド104【大歓迎】
スレリンク(tech板)

981:デフォルトの名無しさん
07/07/27 09:55:44
>>976
cron

982:デフォルトの名無しさん
07/07/27 10:33:24
Eclipseならプラグインがあったんだが。

>>979
ちょっと試してみたが、なかなか面白そうなツール。
要するに、テスト対象のコードをいじって、テストがそれを検出できるかを調べるツール。
カバレッジとはまた別の視点で単体テスト品質を計測するようだ。

983:デフォルトの名無しさん
07/07/27 10:51:34
文字コード変換について質問です。
開発環境の文字コードはEUCなのですが、

String sample= "さんぷる";
String sjSample = new String( sample.getBytes( "SJIS" ), "SJIS" );

上の処理でSJISに変換されるんでしょうか?
変換された事を確認することってできないんでしょうか?

984:デフォルトの名無しさん
07/07/27 10:55:46
>>983
> 上の処理でSJISに変換されるんでしょうか?
一瞬だけ。

> 変換された事を確認することってできないんでしょうか?
sample.getBytes("SJIS") の戻り値を確認。

985:デフォルトの名無しさん
07/07/27 11:36:56
>>984
>一瞬だけ。
プログラム実行中は変換されたままですよね?

>sample.getBytes("SJIS") の戻り値を確認。
戻り値を確認してみたら [B@ed0338 でした。
変換されたのはなんとなくわかりますけど、こういうもんですか?

986:デフォルトの名無しさん
07/07/27 11:43:53
>>985
> プログラム実行中は変換されたままですよね?
no。すぐにGC可能状態になる。

> 戻り値を確認してみたら [B@ed0338 でした。
toString()が確認に使えるか、もチェックしてから使え。
sample.getBytes("SJIS") で戻ってきた配列の中身を確認しろ。

987:デフォルトの名無しさん
07/07/27 11:44:28
>>983,985
ソースコードを EUC で書いても、String は Unicode です
getBytes("SJIS") で SJIS に変換されるけど、String に戻したらまた Unicode です

988:デフォルトの名無しさん
07/07/27 12:33:10
>>986
配列の中身まではみていませんでした。
確認したら数値が入っていたので調べてみます。

>987
内部コードってやつですか・・・SJISで扱えるのはgetByte("SJIS")の戻り値だけってことですね。

すいません、質問を変えさせてください。
URLConnectionを使って相手先に複数のパラメータを送ろうとしているのですが、
日本語を扱うパラメータはSJISに変換することになっています。
この変換が上手くいかず、今はEUCで送ってしまっている状態です。
日本語パラメータをSJISで送るにはどうすればいいんでしょうか?

SJISに変換した文字列を送ろうと思って最初の質問をしていました。

989:デフォルトの名無しさん
07/07/27 12:49:59
>>988
java.net.URLEncoder.encode("文字列", "SJIS");

990:デフォルトの名無しさん
07/07/27 15:02:02
無料ホームページスペースを使って、JAVAアプリケットをおいてJAVAアプリケットから誰でもそのホーム
ページのFTPに入ってパスワードを入れて
ファイルを書き換えることはしてもいいんですか?

991:デフォルトの名無しさん
07/07/27 16:12:31
規約嫁としか

992:968
07/07/27 16:35:58
JAVAアプリケット関係ない
つーかJAVAアプリケットて何?w

993:968
07/07/27 16:37:02
あ、名前消すの忘れてたw

994:デフォルトの名無しさん
07/07/27 17:45:49
>>992
インストロールみたいなものじゃないの?

995:デフォルトの名無しさん
07/07/27 17:59:24
>SJISに変換することになっています。
分かりづらい地味な嫌がらせだな。せめてUTF-8にしてやればいいのにw

>>990
鯖の規則読んで出来るか確認してjavaアプレットから
どうやってFTP叩くかまで出来てからのご来場をお待ちしております。
じゃなきゃエスパー待ちになるぞ。

996:デフォルトの名無しさん
07/07/27 19:37:43
synchronized 指定されたメソッド呼び出しをしたら、
オブジェクトにたいしてロックが入るの?
それともメソッドだけ??

class Hoge {
public synchronized int hoge(){...}
...
}

Hoge hoge.hoge();

↑ こうやったときに 別のスレッドからはhoge()だけ呼び出しできないのか、
それともhogeに対するアクセスは全部ロック解除待ちになるの?

997:デフォルトの名無しさん
07/07/27 20:40:28
>>996
hoge

998:デフォルトの名無しさん
07/07/27 20:40:39
synchronizedメソッドはsynchronized(this){}と同じ意味だった気がする
だからhogeの他のsychronizedメソッドもロックされるな

999:デフォルトの名無しさん
07/07/27 20:44:21
メソッドは呼び出しできないけどオブジェクトにはアクセスできたと思う
オブジェクトをロックする方法は別にあったはずだし

1000:デフォルトの名無しさん
07/07/27 20:45:07
ガチでか
勘違いしてたぜ(´ー`;)

1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch