☆★Java質問・相談スレッド174★★at TECH
☆★Java質問・相談スレッド174★★ - 暇つぶし2ch893:デフォルトの名無しさん
15/10/11 19:53:50.37 /K+UgrZV.net
同じくtomcatのservletを書いているのですが、例外はどこで受け止めてログに出せばよいでしょうか
明らかにここで処理して上に投げない という場所があればそこでログを出すか、又は処理したから出さない選択肢を取れるのですが
とりあえず上に投げとこ。投げとこ を繰り返してロガーに残らず落ちてしまいました。
doGetメソッド全体をtry{hogehogehoge...}catch(Exception e){logger.error(e);throw e;}で囲うしか無いのでしょうか

894:デフォルトの名無しさん
15/10/11 20:10:50.27 xslSO3l/.net
例外キャッチ用のフィルターを作っておけば良い
ここを例外の最終到達点にすれば、あとはどんな処理でもできる

895:デフォルトの名無しさん
15/10/11 21:52:06.20 cfPF8ERb.net
なるほど、勉強になる

896:デフォルトの名無しさん
15/10/11 22:47:35.34 AcvU8gg7.net
普通、ログレベルを設定してファイルに書き出すだろ。
エラーが発生してそれを追えないなんてありえない。

897:デフォルトの名無しさん
15/10/12 11:28:14.88 IvlFe/vj.net
サーブレット直接触ることなくなって久しい。せいぜいデバッグでリクエストやレスポンスの中身覗く程度になってる。
他の人達はどんなFW使ってるの?
うちは今はspring-boot(spring-mvc 4.x)メインなんだけど、業務系ならEE5や6が多いのかな。

898:デフォルトの名無しさん
15/10/12 14:10:57.09 TzA4wVPG.net
ライブラリJarを作成しようかと思っているのですが、そのライブラリの中で他のライブラリを利用する場面が出てきてしまいます。
これを配布する場合、ライブラリJarの中に他のライブラリを含める事になってしまうと思うのですか、これは正しいやり方なんでしょうか?

899:デフォルトの名無しさん
15/10/12 14:14:57.11 PAJ/NWkj.net
データベースに接続する際、
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
とするのが普通みたいなのですが、newInstance()の戻り値はどこへ行っているのでしょうか?また、
oracle.jdbc.driver.OracleDriver driver = new oracle.jdbc.driver.OracleDriver();
とするのとは、何が違うのでしょうか?

900:デフォルトの名無しさん
15/10/12 14:52:45.68 5OGIyOb6.net
>>899
newInstance()の戻り値は使われてないね。newInstance()がなくても動くはずよ。
Class.forNameしたときにOracleDriverのstaticイニシャライザが呼ばれてその中で
ドライバのインスタンスが作成されてDriverManagerに登録される。
Class.forNameとnew OracleDriver()は、ドライバを文字列で示すか、
識別子で示すかの違いでしょね。文字列で示すと、外部のファイルから
その文字列を受け取るようにしておけばプログラムを変えずにドライバを
入れ替えることができる。DBを変える予定ないんてないし、ドライバも変えません
ってことならnew oracle.jdbc.driver.OracleDriver()でも問題ないかと。

901:デフォルトの名無しさん
15/10/12 15:37:37.95 qTM2HYkT.net
>>898
jar自体は分けた状態で配布した方がいいんじゃないかな。
ライブラリを利用する人が、バージョン違いの同じ依存ライブラリを利用する時に、クラスパスの指定によって変なエラーが出たりするので。

902:デフォルトの名無しさん
15/10/13 16:10:38.77 Ii59yWoc.net
BufferedImageとImgageIO.writeを使ってインターネット上の画像をダウンロードして保存するプログラムを書いているのですが、アニメーションgifの場合保存されるのは最初の1フレームだけで、アニメーションになりません。
URL url = new URL("URLリンク(example.gif"));
URLConnection connection = url.openConnection();
BufferedImage bufferedImage = ImageIO.read(connection.getInputStream());
File saveFile = new File("example.gif"); ImageIO.write(bufferedImage, "gif", saveFile);
アニメーションをアニメーションとして保存する方法はありませんでしょうか?

903:デフォルトの名無しさん
15/10/13 16:33:26.79 9OilHHIY.net
>>902
単にファイルで保存したら?
java url ファイル保存 でぐぐれ

904:デフォルトの名無しさん
15/10/13 16:56:15.26 jHF5mps7.net
BufferedImage にした時点で単一画像しか扱えないんじゃないかな
よみこんだ InputStream をそのまま FileOutputStream に書き出せばいいと思う

905:デフォルトの名無しさん
15/10/13 19:23:18.69 vTSCKgfc.net
>>903
>>904
ありがとうございます。
ダウンロードしたものを表示するのにBufferedImageを使いたかったのでこのコードを使っていたのですが、表示には一度キャッシュしたものロードして使う事にしたいと思います。

906:デフォルトの名無しさん
15/10/13 20:49:09.71 jHF5mps7.net
URLリンク(www.javainthebox.net)
javax.imageio.ImageReader#read(index)
ってのを使えば複数画像データの何番目を読むとかできるみたいね

907:デフォルトの名無しさん
15/10/14 20:32:27.43 oEpS0TI9.net
正規表現で
「"abc":」「"defghi":」「"pq123"」
みたいに"hoge":の文字列を指定するにはどうすればよいでしょうか?
"^¥"$¥":" では間違いですよね?
よろしくお願いします

908:デフォルトの名無しさん
15/10/14 21:19:40.30 qepmoyFz.net
"\"[a-zA-Z1-9]+\":"とかそんなん

909:デフォルトの名無しさん
15/10/15 16:19:54.07 uSf6jKZU.net
samegameの隣あったマスの削除の判定を再帰使わずに実装する方法がわかんねぇ

910:デフォルトの名無しさん
15/10/15 17:00:09.51 QWsMOM9x.net
そりゃこまったねぇ

911:デフォルトの名無しさん
15/10/15 19:20:28.39 EQ6PpGqU.net
>>909
for文じゃだめかな

912:デフォルトの名無しさん
15/10/15 19:49:50.51 8HLDhcsw.net
.Net Frameworkのリファレンスと比べて、Java APIのドキュメントの日本語が読みづらいのは異常ですか?仕様ですか?

913:デフォルトの名無しさん
15/10/15 19:53:58.22 hO11ftzh.net
君の日本語が読み辛い

914:デフォルトの名無しさん
15/10/15 20:32:43.98 r3qFDNAG.net
有料と無料を比べてドヤ顔 MS厨

915:デフォルトの名無しさん
15/10/16 01:26:33.07 Hw46kEBB.net
非常に低レベルな質問で申し訳ないんですが
最近javaの勉強を始めユークリッドの互除法を使って最大公約数を求めるプログラムを組んだのですが
変数aとbが割り切れない数字の時に処理が終わらないプログラムになってしまいました
そういった場合に1を返すようにプログラムをしたいのですがいまいち方法が思いつきません
どういった手法があるかご教授いただけると助かります
短いのでクソース画像
URLリンク(minus-k.com)

916:デフォルトの名無しさん
15/10/16 01:56:51.94 Bu3hht9P.net
>>915
試してないけど、xとyの大小関係が逆転したらbreakするとか。

917:デフォルトの名無しさん
15/10/16 02:41:56.43 o+L9gctV.net
i=x%y は最初の1回しか実行されないよ
for(A; B; C)
のA最初の1回のみで変数宣言が可能
Bは終了条件でfalseになるとループ脱出
Cはループの最後に毎回実行される
答えかくのは簡単だけど自分で考えたほうがいいからまた動かなかったらおいで

918:デフォルトの名無しさん
15/10/16 03:51:49.75 EhkfcKR/.net
>samegameの隣あったマスの削除の判定を再帰使わずに実装する方法がわかんねぇ
4近傍のラベリング処理ってやつで塊ごとに固有番号振ればいいだけだよ
消すときは同一の番号のやつを消せばいいだけ
ぷよぷよとかも同じやりかたで行ける

919:デフォルトの名無しさん
15/10/16 04:11:49.24 AUXmOgsp.net
androidやWEBアプリをつくっていて、SQL文がSQLを学べる本とは違って
selectionなどの引数を用いておこなうメソッド経由での文だらけで、仕組みがよくわからない。
あれを練習したいが何点検索するといいんでしょうか。生のSQL文は理解してるから
1時間もあったらすぐわかるだろうけど

920:デフォルトの名無しさん
15/10/16 04:57:29.58 gPHlhu4r.net
>>919
日本語でおk

921:デフォルトの名無しさん
15/10/16 05:08:13.11 AUXmOgsp.net
SQLの本
SELECT * FROM 2ch
みたいな書き方だけど
プログラムは
.query(selection. order)
みたいに書くということです、後者の練習がしたいが該当項目が出てくる検索方法がわからない

922:デフォルトの名無しさん
15/10/16 05:23:26.71 scZWB8TV.net
いまテザインパターンの本を読んで感動しまくっているんですが
仕事でJavaを使ってる人ってどのくらいの人がデザインパターンを理解してるんですか?
ごく少数の数パーセントくらいですか?
それともこのくらいは理解できないと仕事できないからほぼ100パーセントですか?
あるいはJavaの仕事してる人でも半分くらいの50パーセントくらいですか?

923:デフォルトの名無しさん
15/10/16 05:59:45.15 VmTs2xyV.net
>>909>>911
for文で書けたぞ!
URLリンク(paiza.io)

924:デフォルトの名無しさん
15/10/16 06:15:33.66 VmTs2xyV.net
再帰なんかよりfor文のほうがスッキリするよな

925:デフォルトの名無しさん
15/10/16 08:07:11.04 jXGfcQ6G.net
>>921
C#のLinqを知っているかい?
LinqもSQL文を、プログラムで処理しやすいように、
関数風に書く

926:デフォルトの名無しさん
15/10/16 14:47:59.79 pkP/rzhV.net
>>922
どれ位の人が知ってるかは、周りの環境次第としか言えない。
他人のコードレビューする立場なら主要なパターンは当然知ってるべきかな。
経験上外注から上がってくるコードは割とクソが多い。
マイナーなパターンは使うべき状況にあまり遭遇しないから存在と概要だけ覚えとけばいいと思う。
個人的にはパターンを使うよりも、ちゃんと責務分割されててコメントや命名が分かりやすいコードになってるかが重要かな。
その上で適切にパターン使ってるならもう言うことなし。

927:デフォルトの名無しさん
15/10/16 16:27:51.82 nJkk2TZw.net
>>922
受け入れがたいだろうが貴方はデザパタを理解していない
そして、周りの人も理解していない
デザパタはそれを必要とする人がコソコソと用いるだけのものであって
多くの人のために開かれたものではない
多くの人にとっては無用の長物、ネコに小判

928:デフォルトの名無しさん
15/10/16 16:47:35.49 wRaOrUW4.net
カルト教かよ
お前は理解してんのか?説明してみろ

929:デフォルトの名無しさん
15/10/16 18:20:06.85 GetQEbg4.net
魔法の杖はありません

930:デフォルトの名無しさん
15/10/16 21:26:56.45 QAbFpyNL.net
デザパタって左足ブレーキみたいなもんで
ニワカが嬉しがっちゃう用途になりがち
本当に必要で分かってる人だけがコッソリそれをすればいい
聞きかじりのメリットとやらを宣伝しなくていいし
ブログに書いたり掲示板で話題にしたりしなくていい
ヘンに使命感をもって学習しようとしたりもしなくていい

931:915
15/10/16 22:24:00.58 FdWAXHN2.net
解決しました
ありがとうございます!

932:デフォルトの名無しさん
15/10/16 23:16:22.55 e8+chBx7.net
ソースコードの何割も占める様な技術ではない


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