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


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

☆★Java質問・相談スレッド173★★



1 名前:デフォルトの名無しさん mailto:sage [2015/04/22(水) 22:35:19.67 ID:XG+QDGZC.net]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    pc11.2ch.net/hp/
Webプログラミング pc11.2ch.net/php/
をご利用下さい。

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

質問時の心得
・コンパイルエラーか実行時エラーか、エラーではないが意図しない動作なのかはっきりしろ。あとエラーメッセージちゃんと読め。
・前提条件としてOS、開発環境、バージョン、使用フレームワーク等を明記。

前スレ
★★Java質問・相談スレッド172★★
peace.2ch.net/test/read.cgi/tech/1419490897/

62 名前:デフォルトの名無しさん mailto:sage [2015/04/29(水) 22:24:40.21 ID:QAdAm9ZE.net]
御検討のほどお願いいたします

63 名前:デフォルトの名無しさん mailto:sage [2015/04/29(水) 22:36:11.49 ID:GTRb0R5n.net]
ファミコンレベルのゲームでも個人で作り上げたらすごい

64 名前:デフォルトの名無しさん [2015/04/29(水) 22:38:06.90 ID:yS7XkpTB.net]
>>56
ずっと撮りっぱなしで、撮った動画をムービーメーカーで編集すればいいだけのことに、時間をかけて自動化するのは時間の無駄。

65 名前:デフォルトの名無しさん [2015/04/29(水) 22:41:12.45 ID:yS7XkpTB.net]
>>62
いやそんなことはない。

いまはゲームの基本的なアルゴリズムもネットに転がってる。

66 名前:デフォルトの名無しさん mailto:sage [2015/04/29(水) 23:01:13.50 ID:JT3oEeCM.net]
>>63
余計なことをw

67 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 00:05:08.13 ID:TbeYBX30.net]
オラクルのJAVAプログラマって
BLONZEとSILVERって難易度どれくらい違うの?
JAVA勉強して2ヶ月くらいだけどざっと本屋で見たら
範囲も似てるし違いが分かりにくかったけど
いきなりSILVERからでも合格できるもの?
業務経験もまだなし

68 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 00:38:09.88 ID:dY612GzE.net]
|||演算子が分かればOK

69 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 00:42:26.56 ID:kxc9bPGZ.net]
>>67
ググっても出てこないんだけどそれ何?
||なら分かるけど。

70 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 00:44:03.29 ID:gmFD8Zyh.net]
そんなものはJava language specificationに無い



71 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 00:51:12.37 ID:1bDV0hxV.net]
皆さんの意見を聞かせて下さい。

定数って、どうしてますか?
@クラスに定数を定義している(定数クラスにしている)
Aインターフェースに定数を定義している
BEnumクラスとして定義している

どれですか?
Bは普通に普及してるんでしょうかね?

そして、定数と言っても、
分類・種類ごとに分けて定義したい場合はどうしていますか?

例えば、定数クラスを利用している場合は
定数クラスを分類・種類ごとに複数の定数ファイルを作るのか?
それとも、一つの定数クラスの中に複数の内部クラスを作って、
その中に定数定義しているのか?
それとも、一つの定数クラスに定数という定数は、全部まとめて定義して、コメントで分類・種類ごとの定数がわかるようにしているのか?

どんな感じでやってますか?

それとも、定数ごときに、特にこだわりは無いですか?

72 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 00:54:17.66 ID:An0AllEV.net]
定数クラス=低能の証

73 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 01:20:16.31 ID:kG6pwhRy.net]
>>70
定数ってのが例えば円周率みたいに列挙されないものなら
適当なユーティリティクラスにstatic finalにして置いとくけど。
もっとも円周率の場合はdoubleの精度に不満ない限りはMath.PI使うけど。

男/女とか曜日みたいに列挙されるものの場合も
自前で定義するよりどっかで定義されてないかを探して
定義されてたらそっちを使えないか検討するかな。

単一クラスでしか使用されないならクラス内Enumとかstatic finalにするし、
単一パッケージまで範囲が広がるなら定数クラス作ったりもする。
複数パッケージに範囲が広がるようなら自前で定義する前に
もう一度他所で定義されてないか探しに行くとか設計見直したほうがいい。

74 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 01:49:39.37 ID:xzdiOqtI.net]
>>70
あまり練りすぎずシンプルに考えよう
あとJavaAPIいろいろ見るとちょっと解決するかもしれない

> 分類・種類ごとに分けて定義したい場合はどうしていますか?
わけて定義したいんだからわけて定義したほうがきっとすっきりする
でもインナークラスにする必要はないよね
> それとも、一つの定数クラスに定数という定数は、全部まとめて定義して、
これはキモいし他のクラスも破綻してそうでこわい
> コメントで分類・種類ごとの定数がわかるようにしているのか?
種類ではなく役割や意味をコメントに残すことは重要ですね

75 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 03:06:54.67 ID:Y52/4nU8.net]
定数クラス
ユーティリティークラス
commonクラス
まともな設計の出来ないJAVAドカタ3種の神器

76 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 07:07:50.60 ID:sJbFrREA.net]
ドカタを馬鹿にしすぎ。一つのクラスにフィールドが大量でコードも大量。ある意味よくこんなもの作り上げて管理してるよな。俺なら発狂ものだけど、やつらは精神力あるのだろう。

77 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 12:41:42.28 ID:XY0F0CkV.net]
サーブレットやStrutsのコントローラのフィールドに変数置いてるのに比べたら、全然許せる。
webだから複数人でマルチスレッドでアクセスされるのを意識してない人が多すぎる。

不幸になるから、javaはそろそろ卒業したい。

78 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 12:47:34.53 ID:XY0F0CkV.net]
そもそも、使用するクラスが、シングルトンでマルチスレッド対応してないとnewばかりすることになって重くなって駄目だけどね。

まあ、逃げたくなってくるわな。

79 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 13:16:08.00 ID:kplqX2qa.net]
>>77
なに言ってんだこいつ

80 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 14:22:42.80 ID:XY0F0CkV.net]
>>78
言ってる意味が分からないなら、Java終わっとる。



81 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 15:38:06.87 ID:tatd8m3J.net]
分からん
[解釈1] クラスがシングルトンであり、かつ、マルチスレッドに対応していない(or対応してる)
→シングルトンならnewできないので矛盾
[解釈2] クラスがシングルトンでなく、かつ、マルチスレッドに対応していない
→newすればマルチスレッドに対応できるクラスは即ちマルチスレッド対応なので矛盾

82 名前:80 mailto:sage [2015/04/30(木) 15:44:41.95 ID:tatd8m3J.net]
ああ、書いてから気付いたけど、インスタンスがスレッドセーフかどうかを
マルチスレッド対応の基準として定義(複数インスタンスを作って別のスレッドで使うのは問題ない)すれば、
解釈2で意味が通るのか
これで正解?

83 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 15:46:51.27 ID:tFMwWIJd.net]
馬鹿を相手にするだけ無駄

84 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 15:49:21.61 ID:AQ41eVqd.net]
わからん
ブロックしないからタイミングによっては、インスタンスが複数できるってことかな。
でもサーブレットなら、最初のリクエストがインスタンス生成するまでの間だけでnewばかりにならないよね。
そんなリクエスト多い時に再起動でもするのかな。
しかも最初のインスタンスは参照なくなるから、消えるものかも知れないよね。何がそんなに重いんだろう。重ければすぐ気付けるし、問題なさそうだ。

85 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 16:58:02.38 ID:/MKjDc8q.net]
なに言ってるのか全然わからんな
新しいインスタンスを作るのはなるべく避けてスレッドセーフなシングルトンに
するべきってことを言ってる?

86 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 19:23:23.10 ID:LQ/wqWPzk]
g.drawStringが反映されなく悩んでいます(正確にはg.〜全てが)
元々ソースコードが長くなってきたため分割できないかとググったらクラスを使い分割できるとあったので挑戦してみました
paintaは分割前のソースコード内でクラス化した状態で表示されたのを確認しています
ファイル名SampleData.java
package hoge;
import fuga;
public class SampleData extends Canvas2 {
SampleData(int v){
super(v);
}
Graphics g = getGraphics();
public void paint(Graphics g) {}
public SampleData () {}
public int painta (int a) {
int x = a;
g.setColor(Graphics.getColorOfName(Graphics.RED));
g.drawString("test(painta)" , 10 , 100);
return x;
}
}
書籍やサイトを便りにいろいろ試して
やっとコンパイルが通るようになりましたが
エラーは出ませんがg.drawStringが反映されないため画面に何も表示されません
・なぜ表示されないか
・ソースコードの分割としてこの書き方はどこがいけないか

javaには朗報?
米Microsoft、iOSやAndroidアプリをWindowsアプリ化できる新SDK
今回開発者向けに発表されたSDKは、「Webサイト」「.NETおよびWin32」「Android(Java/C++)」「iOS(Objective C)」の4種類で、アプリの既存コードをベースに、Windowsストアのユニバーサルアプリを制作できる。

87 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 22:01:38.89 ID:u4a/i5d8.net]
>>84
サーブレットの処理の途中で使うクラスは、内部的にはシングルトンの方が良いだろ。
性能上げたい場合は、スレッド増やして待ち合わせれば良いし。

アクセス数が増えた時に性能となって現れる。

88 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 22:03:39.52 ID:Sh0aGYP5.net]
>サーブレットの処理の途中で使うクラスは、内部的にはシングルトンの方が良いだろ

へー
そう妄想する根拠ぐらい書いたらどうだ

89 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 22:04:06.99 ID:u4a/i5d8.net]
javaなんて使うより、node.jsにしてマルチプロセスにした方が気が楽だと思うけどね。

90 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 22:11:54.55 ID:u4a/i5d8.net]
今はPM2とかredisとかあるし、すごく楽になってる。



91 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 22:16:20.00 ID:kteIyMJw.net]
馬鹿と馬鹿で盛り上がりw

92 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 22:46:41.83 ID:u4a/i5d8.net]
単体テストでマルチスレッドの、テストやるべきだと思うけど、どうよ?

93 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 23:00:05.34 ID:AQ41eVqd.net]
>>91
必要ならやれよ。
必要ないならコストかけんなよ。

94 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 23:00:06.98 ID:u4a/i5d8.net]
クラスの定義書にも、スレッドセーフがどうかの記述が欲しいし。

95 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 23:06:51.88 ID:u4a/i5d8.net]
Java8で並行ストリーム使えるようになっちから、さらに重要になるな。

96 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 23:07:51.66 ID:kteIyMJw.net]
馬鹿は気にせんでよろし

97 名前:デフォルトの名無しさん mailto:sage [2015/04/30(木) 23:16:10.30 ID:u4a/i5d8.net]
>>92
ソフトにコストとか関係ないし。

98 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 00:04:40.11 ID:WFSf5HfO.net]
クラスの定義書w

99 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 00:40:41.90 ID:5OsBEZuX.net]
>>96
ノーコストでテストできるの?
すごいね!

100 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 00:57:42.01 ID:ceZ5f6sY.net]
1こづつなら
ArrayListで保存できます
では1つのlong変数を保存するときどうやったらいんですか?

1、2,3,4とやるとそれぞれの順番の
2つのペアの双方がとれるようにしたい



101 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 00:58:36.03 ID:ceZ5f6sY.net]
2つのlong変数です

new long[][]

ArrayList<long[][]>

っていうやりかたはかっこわるいですか?

102 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 01:14:05.59 ID:FhMIHRkt.net]
>>100
Javaはクラスベースのオブジェクト指向言語だから、

2つのlong変数をメンバーに持つクラス LongPair を定義して、

class LongPair {
 public long longA;
 public long longB;
}

それを他の場所で使うところで

ArrayList<LongPair> list = new ArrayList<>();

とかやって呼び出して使うのが「らしい」かな。

まあ、オブジェクト指向的な設計方法なので、慣れないうちは、発想できなくとも仕方がない。

103 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 01:16:41.62 ID:Fqv7I7fh.net]
小学生の日本語みたい
ハンディキャップ持ってそう

104 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 01:43:25.42 ID:F6BqBnaC.net]
>Javaはクラスベースのオブジェクト指向言語

クラスベース
っていう言葉を使ってみたかった

105 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 02:34:14.89 ID:UKdd3lbg.net]
>>100 はいどうぞ。
import java.util.AbstractMap.SimpleEntry;
import java.util.ArrayList;
...
ArrayList<SimpleEntry<Long,String>> arr = new ArrayList<>();
arr.add( new SimpleEntry<>( 10L, "Hello" ) );
arr.add( new SimpleEntry<>( 666L, "World" ));
arr.add( new SimpleEntry<>( 999L, "End" ));
System.out.println(arr.get(0).getKey());
System.out.println(arr.get(2).getValue());

車輪を再発明する必要はない

106 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 03:10:02.28 ID:gQdwZtFs.net]
2つのlong変数だからLongPairっていうのは
オブジェクト指向を愚弄している。
しかし二つの変数を覚えるためにマップのエントリーを持ち出すチキガイには敵わない

107 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 03:33:39.21 ID:dc8dj3Ft.net]
マップのエントリー持ち出すってのは
箸の代わりにえんぴつ2本を使って食事するみたいなもんだな

108 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 03:43:09.05 ID:FhMIHRkt.net]
>>105
命名にいちいち丹精込めてられるかよ。
今は>>100に一つの主旨を伝達するのが目的。

>>104みたいな、絶対に伝わらんレベルの相手に、自己満回答するの見てわかったようにね。

109 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 04:49:21.84 ID:qjfm/az+.net]
>>98
フィールドに変数置いた時点で、スレッドセーフのテストをやるべきでしょ。

コストで逃げるのは無責任。

110 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 08:26:48.01 ID:xlHiidVT.net]
ドカタに責任追求すんなよ
仕様もマトモに満たさないんだから
ボクのパソコンでは動きました



111 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 11:14:52.92 ID:5OsBEZuX.net]
>>108
趣味たけてやってるやつはいいな。

112 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 11:37:15.81 ID:/JhMC04n.net]
jQueryや iPhone等の単語をクラス名の先頭に使う場合、大文字小文字どうしてますか?

113 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 12:15:10.38 ID:hlalZqNG.net]
>>110
webアプリで使えることが保証されてない、部品に何の意味があるのかと。

114 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 12:16:47.73 ID:hlalZqNG.net]
バッチならスレッドセーフじゃなくても良いけど。

バッチ専用www。

115 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 12:45:39.64 ID:5OsBEZuX.net]
>>112
使わないことが保証されてるとかもあるんだよ。
最近、マルチスレッドを理解して、誰かに話したかったのかなー

116 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 13:29:13.83 ID:WFSf5HfO.net]
>>112
状態を持たなければいいだけの話。
逆に、状態を持つオブジェクトならスレッドセーフな設計にするより都度インスタンス化したほうがいいでしょ。

117 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 13:32:46.15 ID:7K8JNkP3.net]
>>112
キチガイでwebしか脳が無いオマエには価値がないのかもな

118 名前:デフォルトの名無しさん [2015/05/01(金) 13:56:18.19 ID:werns+CW.net]
Java8がインストールできなくて7はできたデス!
8インストールするにはどうしたらいいデース?

119 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 14:08:02.83 ID:hlalZqNG.net]
>>115
それだけで済むはずがない

120 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 14:14:55.31 ID:97GggSGT.net]
>>117
インストールできたと思われるものをすべてアンインストールしてプログラミングのことは諦めよう



121 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 14:23:50.17 ID:HxX2ojlD.net]
8インストールした後に7インストールしてJAVA_HOME上書きされただけでしょ

122 名前:デフォルトの名無しさん [2015/05/01(金) 14:52:25.04 ID:werns+CW.net]
よくわかんないけどJava7使ってマース!

123 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 15:59:47.54 ID:5OsBEZuX.net]
できないとか、できるとか、なんで主観でしか物を言わないんだ。

124 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 16:00:48.57 ID:zDZULSSe.net]
LinuxのCUIコンソールやWindowsのコマンドプロンプトからJavaアプリケーションを起動した際に、そのコンソールに表示される文字列長や行数を取得するにはどうすればいいのでしょうか。

125 名前:デフォルトの名無しさん mailto:sage [2015/05/01(金) 19:55:10.24 ID:UKdd3lbg.net]
wcコマンドで済む話ではないの?

126 名前:デフォルトの名無しさん mailto:sage [2015/05/02(土) 09:32:45.89 ID:eWVxg4yO.net]
JAVAのBRONZEって自宅でオンラインで受けられるってことは
参考書カンニングできるの?

127 名前:デフォルトの名無しさん mailto:sage [2015/05/02(土) 10:39:58.02 ID:5+kdHKSu.net]
真板でやれよ

128 名前:デフォルトの名無しさん mailto:sage [2015/05/02(土) 15:07:13.78 ID:jUtO03f6.net]
java.time.format.DateTimeFormatter#ofPatter って存在するのでしょうか?
https://ideone.com/LD7Q3I

docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#ofPattern-java.lang.String-
どうやってもこれを呼び出せない‥おっかしーなー

129 名前:デフォルトの名無しさん mailto:sage [2015/05/02(土) 15:07:50.52 ID:jUtO03f6.net]
失礼
java.time.format.DateTimeFormatter#ofPattern です.

130 名前:デフォルトの名無しさん mailto:sage [2015/05/02(土) 15:30:08.44 ID:nszzo0zn.net]
>>127
ideone.com/zdBCFX

staticメソッドだからnewが余分やね



131 名前:デフォルトの名無しさん mailto:sage [2015/05/02(土) 15:38:16.26 ID:nszzo0zn.net]
あとyyyy/MM/ddだと2015/5/2のparseに失敗するね
yyyy/M/dにしたらparse出来る

2015/05/02だったらyyyy/MM/ddでparse出来る

132 名前:デフォルトの名無しさん mailto:sage [2015/05/02(土) 16:28:55.75 ID:jUtO03f6.net]
>>129
>>130
ありがとうございます!確認できました。
インスタンスメソッドじゃない方だったんですね、javac のエラーメッセージの読み方が今やっとわかりました
まだまだ初学者ですが、これからもよろしくお願いいたします m(_ _)m

133 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 03:54:46.48 ID:AX1fII9R.net]
最近Javaの勉強をし始めました
CUIでRPGのようなものを作りながらやっています
全モンスター(武器でもアイテムでも何でも)リストを表示したいのですが、

List<Monster> monsters = new ArrayList<Monster>(Arrays.asList(new モンスターA,new モンスターB,new モンスターC,…));

とやっていけば全モンスターが入っているリストは完成しますし、あとは簡易for文でも回せば表示は出来ます
モンスターを追加するときも、クラスを作ってここだけを変更すれば他のところを全くさわらなくても大丈夫な気もします
でも、何か分からないけど何かが違う気がします
何かをリスト化するときにもっと良い方法はありますか?

134 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 04:27:58.29 ID:5I8c2lfE.net]
まーた棒人間RPGの奴か

135 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 06:42:20.63 ID:a1Nd+3H1.net]
データベースを使う(白目)

136 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 09:28:29.17 ID:LDSjGwbx.net]
棒人間のRPGの人です。
>>132は違う人です。

137 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 10:11:18.45 ID:PDSHhx++.net]
>>132
設定でどのクラスを追加するか指示する。
メタプログラミングで特定のパッケージのあるインターフェースを実装したクラスを全て追加する。

138 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 10:17:22.82 ID:40ee8aRr.net]
オブジェクト指向の学習に励んでるところ悪いけど、
モンスターの種類ごとにクラス作るなんて普通やらないよ
ちゃんと仕様さえ決めれば、データが違うだけでほとんど一緒だ

139 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 20:39:08.34 ID:hIDbeKPv.net]
Cliborってソフト定型にSystem.out.println();とかtry{Thread.sleep();}catch(InterruptedException e){}を入れておくと凄く便利。

140 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 20:45:11.70 ID:40ee8aRr.net]
>>138
いやEclipseのスニペット使えばいいでしょ



141 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 20:48:49.35 ID:hIDbeKPv.net]
>>139
Eclipseってそんな機能あるんだ。
NetBwans使ってるから知らなかった。

Eclipse使ったほうがいいのかな?

142 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 20:52:04.14 ID:40ee8aRr.net]
>>140
NetBeansにもその程度の機能は当然ある
あと、定型句コピペの使用は極力避けて
決まったコードはメソッドにすることを心がけた方がいいよ

143 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 20:53:54.18 ID:ScRGBqdT.net]
>>137
モンスター毎にスペシャルな処理を実装する気満々なんじゃ

144 名前:デフォルトの名無しさん [2015/05/04(月) 20:56:26.06 ID:TjfyY4D6.net]
>>142
dqnplus.6

145 名前:.ql.bz/cgi-bin/img-box/img20111121211956.jpg []
[ここ壊れてます]

146 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 21:02:29.19 ID:hIDbeKPv.net]
>>141
面倒な例外処理などはメソッドとして作っておけばいいと言う事ですか?
あと気になっていたんですがThread.sleep()ってどのような例外が発生するんですか?

147 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 21:15:39.45 ID:40ee8aRr.net]
>>144
他のスレッドからinterruptすることでsleepを中断させることができる
その際にInterruptedExceptionが発生する
メソッドを作るのはいいが、安易に例外を握り潰すと後でデバッグしづらくなって地獄を見る

148 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 21:23:31.06 ID:hIDbeKPv.net]
>>145
と言う事は通常使う分には問題ないと言う事ですね。ループの途中で呼び出されました警告も基本無視で良さそうですね。
例外は基本的に何らかの処理をしたほうがいいと言う事ですか?
System.out.println(e);だけだとマズいでしょうか?

149 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 21:50:53.40 ID:/90islqK.net]
自動テストって、どんな事を書けばいいの?

Exceptionをハンドルして、例外をファイルに書き込むメソッドを作ってみたんだけど
何書けばいいのかよくわからんorz

ソースはこちら
climbi.com/b/4058/0

150 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 22:10:24.12 ID:40ee8aRr.net]
>>147
こんなもん実際に普通に動かして確認でいいよ
やるとしたらuncaughtExceptionの中身をメソッドに切り出して
それをテストすることになるだろうけど、そのときのテストケースって
・引数に渡した例外のメッセージが出力されていること
・その時点のスタックトレースの文字列が出力されていること
だろ?
実際にこれでテスト書いてみりゃわかるけど、
メソッドの実装と同じコードをテストで繰り返すことにしかならないので意味ない
それに、どうせ異常時のデバッグ用なんだからどうでもいいでしょ



151 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 22:59:32.10 ID:/90islqK.net]
>>148
回答ありがとうございます。

システムの共通部分って、普通テストするもんなんですか?
業務システムの共通部分ってほとんど、画面周りの制御だったりする気がします。

152 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 23:04:10.84 ID:/RiyGk+g.net]
これはひどいw

153 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 23:07:15.46 ID:F4f6sgNa.net]
影響範囲は全部テストしようや

154 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 00:10:21.36 ID:pcpJvysD.net]
そもそも、テストってクラスを全部書き終わった後に書くべきなの?
メソッドを作ったら、テスト書くほうが現実的な気がする

そして、テストに書く内容なんだけど、今までは目視でやってた事をコードに落とせばいいんだよね
自動テストしない場合:メソッド作る → 動かす → メソッド修正
だったけど
自動テストする場合:メソッド作る→自動テスト作る→自動テストする→メソッド修正

みたいな感じ?

155 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 00:54:42.07 ID:P8IV0u4y.net]
いや本来はテストを先に書く
テストのみを仕様として認めるというところまで突き詰めるなら、
テストを書いたらとにかくそのテストを通るようにメソッドを無理矢理実装し、
それに対抗してテストを修正し、また実装を修正し、…を繰り返す

156 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 01:57:34.93 ID:i6lTVV+i.net]
ソフトウェアテスト
ja.wikipedia.org/wiki/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%86%E3%82%B9%E3%83%88

157 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 02:18:46.75 ID:AHzpMzOz.net]
>>152
TDD、テストファーストだと、先にテスト作って、テストが失敗することを確認しておくことも。
で、テストが通るようになったら、そのメソッドは完成。

テストしやすいような設計も要求される。

158 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 02:24:58.72 ID:i6lTVV+i.net]
ところで話ガラリと変わるんだけど
スレッドってどういうところでどういう処理をするときに使う?
プログラム自体の挙動全体をスレッド化する?それとも特定の関数だけスレッド化する?

159 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 02:25:00.49 ID:HU33fwDL.net]
むしろテストを突破するだけのニセコード書くドカタが多すぎて危険

160 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 02:27:19.95 ID:HU33fwDL.net]
>>156
サブスレッド実行したい時としか言いようがない
プログラム全体とかメソッドだけとかいう発想はない



161 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 02:35:26.00 ID:i6lTVV+i.net]
例えば「ある重たい処理を走らせるときに,画面が固まっている状態を防ぐために
プログレスバーを出すとする。この時,主処理とは別にプログレスバーを動かす処理を
同時に動かす必要がある。これはマルチスレッドで実現する」みたいな話がある。

つまり,今まで作ってた処理だとどうも動きがよろしくないな,という時に
マルチスレッドで作ってみてはどうか,という選択が生まれるという感じで認識してればOK?
未だにマルチスレッドでプログラムを本格的に作ったことがなくて
そういう機会がないだけなのかよく分からなくてさ

162 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 03:14:30.12 ID:AHzpMzOz.net]
>>156
何もしなくても1つはスレッド走ってるだろ。
並列化したいところはマルチスレッドにする。
サーバーとか、複数人を相手にするものを作ってみればわかるんじゃないか。






[ 続きを読む ] / [ 携帯版 ]

前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