[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 04/05 15:43 / Filesize : 271 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者】Java質問・相談スレッド103【大歓迎】



1 名前:デフォルトの名無しさん [2007/06/27(水) 07:23:27 ]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。pc10.2ch.net/hp/

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
【初心者】Java質問・相談スレッド102【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1180419689/

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

次スレは>>980あたりで。

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

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

class Hoge {

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


889 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:06:50 ]
静的初期化子の中のcatch節の終了の}が無い

891 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:13:33 ]
>>890
取り急ぎ書いたんで抜けた。すまん。他にも "baz" の終わりの " が抜けたりしてる。
手元のコードはちゃんとしてるから大丈夫。

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

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

というメッセージです。

894 名前:888 mailto:sage [2007/07/24(火) 03:20:11 ]
解決しますた。

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

895 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:21:33 ]
>>892
import java.sql.DriverManager;してる?



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

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

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

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


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

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

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

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

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


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



906 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 10:37:36 ]
>>905
>>900

907 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 10:51:50 ]
遅くならないの?

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

909 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 11:04:52 ]
あーそうだね
やっとわかった
ごめんね

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

911 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 17:00:45 ]
全然分かってないじゃないか

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

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

914 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 19:33:39 ]
import a.*;
import b.*;

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

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



916 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 19:56:13 ]
クラスサイズが大きくなるってのは?

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

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

919 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 23:06:32 ]
import * ワロタ
どこの都市伝説だよw

920 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 23:43:08 ]
import *;

永遠に compile oh what a night in jamaica!

921 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 23:43:17 ]
すべてのパッケージからクラスを探し出すのか

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

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


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

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




926 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 03:39:37 ]
いろんな苦労の末に入ったばっかりなんじゃないかなー

927 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 08:37:36 ]
Rhinoって何て読む?
アール日野?

928 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 08:39:34 ]
サイさんは英語でなんと言うのでしょう赤坂?

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

930 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 12:52:40 ]
J2EEとJavaは何が違うんですか?

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

932 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 13:03:05 ]
>>931いやいやいやw

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

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

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

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



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

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

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

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

939 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 00:45:52 ]
エスパーが来るまでお待ちください。

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

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

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

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

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

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

944 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 01:35:17 ]
プログラム内からrmiregistryを立ち上げたいのですが、
www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36623&forum=12&7
itpro.nikkeibp.co.jp/article/COLUMN/20061208/256374/?ST=develop
を見て、sun.management.Agent内でその処理を行っているのはわかったのですが
このソースのどこで立ち上げてるかさぱり分かりません。
誰がわかる人がいたら解説お願いします。

945 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 10:35:56 ]
>>945
Outer.this

947 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:24:44 ]
class Inner はstatic finalのほうがよくね?

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

949 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 15:41:37 ]
>>948
java.lang.reflect.Field

950 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 15:42:49 ]
>>948
private で宣言されたメンバは継承されない

getter 用意してアクセスしろ

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

952 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:08:39 ]
継承はされるだろ

953 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:22:11 ]
>>952
java.sun.com/docs/books/jls/third_edition/html/classes.html#8.2
> 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 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:33:06 ]
>>951
1.4でも使えるけど、セキュリティマネージャが許可しない場合は使えない。
例えばアプレットとかだと、Field#setAccessible() が許可されないはず。

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



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

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

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

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

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

960 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 19:11:50 ]
long

961 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 19:16:38 ]
>>957
ソース

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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


972 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 23:51:39 ]
サーブレットについて質問。

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

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

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

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

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

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

ttp://up.spawn.jp/file/up36584.txt

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



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

977 名前:968 mailto:sage [2007/07/27(金) 07:48:59 ]
レスどーも

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

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

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

978 名前:968 mailto:sage [2007/07/27(金) 07:51:55 ]
ちなみに今はnetbeans使用

979 名前:968 mailto:sage [2007/07/27(金) 08:00:03 ]
なんかこんなのあるな
journal.mycom.co.jp/news/2007/07/20/006/index.html

980 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 08:47:09 ]
次スレ立てました。

【初心者】Java質問・相談スレッド104【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1185493592/

981 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 09:55:44 ]
>>976
cron

982 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 10:33:24 ]
Eclipseならプラグインがあったんだが。

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

991 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 16:12:31 ]
規約嫁としか

992 名前:968 mailto:sage [2007/07/27(金) 16:35:58 ]
JAVAアプリケット関係ない
つーかJAVAアプリケットて何?w

993 名前:968 mailto:sage [2007/07/27(金) 16:37:02 ]
あ、名前消すの忘れてたw

994 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 17:45:49 ]
>>992
インストロールみたいなものじゃないの?

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

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



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

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

Hoge hoge.hoge();

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

997 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 20:40:28 ]
>>996
hoge

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

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

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

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






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<271KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef