Java初心者のためのスレッドです。
※前スレ
Java入門・初心者質問スレ Part.4
http://mevius.2ch.net/test/read.cgi/tech/1498828456/
探検
Java入門・初心者質問スレ Part.5©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/09/29(金) 17:53:25.24ID:XnizQSCA
283デフォルトの名無しさん
2017/10/23(月) 02:54:14.67ID:c0Vu/KQR こちとら仕事でこんなもんじゃないレベルのウンコを相手にしてるからな
本来いらないスキルだからお前は真っ当に育ってくれ
本来いらないスキルだからお前は真っ当に育ってくれ
284デフォルトの名無しさん
2017/10/23(月) 03:03:23.53ID:Zv+DKPlp >>282
反論の余地もないです。これからも精進します…
反論の余地もないです。これからも精進します…
285デフォルトの名無しさん
2017/10/23(月) 03:04:25.94ID:Zv+DKPlp >>283
センスないと言われたらそこまでですが、将来IT系で働きたいと考えているのですがどう思いますか?ちな理系です。
センスないと言われたらそこまでですが、将来IT系で働きたいと考えているのですがどう思いますか?ちな理系です。
286デフォルトの名無しさん
2017/10/23(月) 03:11:54.62ID:c0Vu/KQR287デフォルトの名無しさん
2017/10/23(月) 03:19:06.59ID:Zv+DKPlp >>286
なるほど、ありがとうごさいます
なるほど、ありがとうごさいます
288デフォルトの名無しさん
2017/10/23(月) 04:09:38.68ID:H84xHXVr >>281
完成については最初に問題を見た直後に大半のやつはわかっていて、
それだからクソだと言っていたのだ。この程度は誰でも慣れてくると
すぐに頭に浮かぶようになる。というか見た直後にまず違和感を覚える。
それからその違和感の原因はなんだろうと心の中を探り、それから
ソースを二度見して気づく。
完成については最初に問題を見た直後に大半のやつはわかっていて、
それだからクソだと言っていたのだ。この程度は誰でも慣れてくると
すぐに頭に浮かぶようになる。というか見た直後にまず違和感を覚える。
それからその違和感の原因はなんだろうと心の中を探り、それから
ソースを二度見して気づく。
289デフォルトの名無しさん
2017/10/23(月) 04:25:40.26ID:yUlbauj/ ネットで色々調べ物してたら大学生とか院生でも仕事でjavaってる奴よりも
遥かに賢いコード書いてる奴が腐るほどいるのに
大学で出る課題がこれでそれに悪戦苦闘してる奴が仕事とか夢見すぎだろ
遥かに賢いコード書いてる奴が腐るほどいるのに
大学で出る課題がこれでそれに悪戦苦闘してる奴が仕事とか夢見すぎだろ
290デフォルトの名無しさん
2017/10/23(月) 05:17:21.22ID:c0Vu/KQR 初心者が突然理解してたら勉強する意味ないだろ
291デフォルトの名無しさん
2017/10/23(月) 08:14:26.60ID:uG4wXav9 >>289
皆出来るような事は仕事にはならない。
皆出来るような事は仕事にはならない。
292デフォルトの名無しさん
2017/10/23(月) 12:06:33.05ID:Lz0ZCAGx 初歩中の初歩的なことで申し訳ないんですが、Windows 10上でのJava開発環境の構築は
a. JDKインストール → Eclipseインストール →Pleiades プラグインインストール (一般的?)
b. Pleiades All in One [Eclipse 4.7] Java (Full Edition)
どちらの方法がお勧めでしょうか?最近まで開発にMacを使っていたものでどうすべきか悩んでいます。
後者は最初からよく使うプラグイン類が導入済で便利とは聞きますが...
a. JDKインストール → Eclipseインストール →Pleiades プラグインインストール (一般的?)
b. Pleiades All in One [Eclipse 4.7] Java (Full Edition)
どちらの方法がお勧めでしょうか?最近まで開発にMacを使っていたものでどうすべきか悩んでいます。
後者は最初からよく使うプラグイン類が導入済で便利とは聞きますが...
293デフォルトの名無しさん
2017/10/23(月) 12:18:29.77ID:QxUDS6F0294デフォルトの名無しさん
2017/10/23(月) 16:12:01.87ID:QKnEuIrp 必要ないプラグインは外せる
だからプラグインと呼ぶ
学校でのプログラミングの課題はあくまで穴埋め的に特定手法の記憶度を見るものであり
独習時の問題とも業務実習時の課題とも違うものだから出来不出来は気にしないのがよい
ネイティブだろうがプロ翻訳家だろうが「学校の」英語「習熟度ドリル」は満点取れなかったりするものだ
だからプラグインと呼ぶ
学校でのプログラミングの課題はあくまで穴埋め的に特定手法の記憶度を見るものであり
独習時の問題とも業務実習時の課題とも違うものだから出来不出来は気にしないのがよい
ネイティブだろうがプロ翻訳家だろうが「学校の」英語「習熟度ドリル」は満点取れなかったりするものだ
295デフォルトの名無しさん
2017/10/23(月) 16:23:54.92ID:t7W7X0PH あー。帰国子女で日本語片言のやつがなぜか満点取れないと。
296デフォルトの名無しさん
2017/10/23(月) 17:06:17.83ID:8jJ9zkLD 日本人が全員国語満点じゃないのと一緒
297デフォルトの名無しさん
2017/10/23(月) 18:36:46.88ID:NKAmnKE1 この課題はインスタンス変数とクラス変数の違いを知るためのものだから
こういう間違えをして調べるのを期待してるんだろ
こういう間違えをして調べるのを期待してるんだろ
298デフォルトの名無しさん
2017/10/23(月) 19:16:35.52ID:YIhcz2Te ま、しかし、もうちょっとましな課題作れないもんだろうか。
疲れてたのかな。
疲れてたのかな。
299デフォルトの名無しさん
2017/10/23(月) 19:31:38.35ID:Pe+98mGG300デフォルトの名無しさん
2017/10/23(月) 19:40:11.90ID:YIhcz2Te あー。そうか。スレを活性化させるために投下された燃料だったのか。
301デフォルトの名無しさん
2017/10/23(月) 20:12:20.31ID:y4/LHG7i 一般的にこういう課題ってam[0]の箇所を
自分なりに修正して提出したら減点対象になるの?
もしそうなら大学レベルの教育方法ではないよね
自分なりに修正して提出したら減点対象になるの?
もしそうなら大学レベルの教育方法ではないよね
302デフォルトの名無しさん
2017/10/23(月) 20:22:05.75ID:YIhcz2Te わからんな。先生の気分次第なんじゃないか?
303デフォルトの名無しさん
2017/10/24(火) 00:45:00.97ID:MROfWTvM 配列ってホッチキスで止められた書類みたいなもんだから最近嫌いだわ
304デフォルトの名無しさん
2017/10/24(火) 01:07:41.88ID:37YlkQhq List使えばいいじゃん。
これにて一件落着
これにて一件落着
305デフォルトの名無しさん
2017/10/24(火) 02:48:33.95ID:UVHXr0A6 [[[[[[[[[
306デフォルトの名無しさん
2017/10/24(火) 23:49:49.40ID:++BilNP+ >>304
要素一つ一つaddする地獄もなくなったし、これからはListの時代
要素一つ一つaddする地獄もなくなったし、これからはListの時代
307デフォルトの名無しさん
2017/10/25(水) 06:04:04.53ID:ZfgKJLFw 質問です。
ファイル圧縮処理を行う下記のコードで、
https://ideone.com/PFwyTI
close処理をfinally文ではなくcatch文の中に記述されているのですが、
問題無いのでしょうか?
ファイル圧縮処理を行う下記のコードで、
https://ideone.com/PFwyTI
close処理をfinally文ではなくcatch文の中に記述されているのですが、
問題無いのでしょうか?
308デフォルトの名無しさん
2017/10/25(水) 07:05:25.56ID:KHRIvL/L309デフォルトの名無しさん
2017/10/25(水) 09:26:51.00ID:Q7ime0JM closeとセットで作るようにしないといつかclose忘れ起こすと思うけど
310デフォルトの名無しさん
2017/10/25(水) 09:39:29.54ID:nJqgcJg9 try-with-resources でやるのが良い
http://www.task-notes.com/entry/20150504/1430708400
http://www.task-notes.com/entry/20150504/1430708400
311デフォルトの名無しさん
2017/10/25(水) 09:44:49.84ID:ZmgYAolO まあ実際的にも教育的にも「closeなんてしなくていいよ」ということはないな
自動でcloseしてくれる普段使い用コンビニエスメソッドが本家でもあるべきではあるが
自動でcloseしてくれる普段使い用コンビニエスメソッドが本家でもあるべきではあるが
312デフォルトの名無しさん
2017/10/25(水) 10:10:23.11ID:QmdhvvJR Javaってc#のusingみたいな構文ないんだっけ?
313デフォルトの名無しさん
2017/10/25(水) 11:01:31.98ID:lQVA76dW >>311,312
直前のレスくらい読もうぜ
直前のレスくらい読もうぜ
314デフォルトの名無しさん
2017/10/25(水) 18:36:25.22ID:9pgp/kzo プログラミング完全初心者でこれから始めようと思っているんですが
何を何からやれば良いでしょうか
お勧めの本やサイト等もご教授ねがいます
OSはLinux Mintでとりあえずeclipseというのとopen java8というのを入れました
何を何からやれば良いでしょうか
お勧めの本やサイト等もご教授ねがいます
OSはLinux Mintでとりあえずeclipseというのとopen java8というのを入れました
315デフォルトの名無しさん
2017/10/25(水) 18:38:25.23ID:0GYD+24d316デフォルトの名無しさん
2017/10/25(水) 18:44:11.98ID:MjxzUPyN C#と座間林が話題になってたからそっちのほうがいいのかも
317デフォルトの名無しさん
2017/10/25(水) 18:54:09.43ID:ZmgYAolO >>314
>何を何からやれば良いでしょうか
>お勧めの本やサイト等もご教授ねがいます
全部おんぶに抱っことかアフィかッ!
やんわりマジレスすると最初の最初はJavaでないほうがいいよ
これはたとえ小難しくても業務でカッチリ書けるという面が重宝された言語だから、個人がいきなり趣味でやるとしんどい
ひょっとしたらアンドロイドアプリが頭にあるかもしれないけど、もしゲームならUnityがいいよ
>何を何からやれば良いでしょうか
>お勧めの本やサイト等もご教授ねがいます
全部おんぶに抱っことかアフィかッ!
やんわりマジレスすると最初の最初はJavaでないほうがいいよ
これはたとえ小難しくても業務でカッチリ書けるという面が重宝された言語だから、個人がいきなり趣味でやるとしんどい
ひょっとしたらアンドロイドアプリが頭にあるかもしれないけど、もしゲームならUnityがいいよ
318デフォルトの名無しさん
2017/10/25(水) 19:02:06.72ID:ZmgYAolO 環境見てなかったwwww
もしリッチなマシンがLinuxマシンしかなく、それでもGUIアプリを世に出したいのだとしたらJava...しかないかなあ
アンドロイドアプリをLinuxで作りたいなら実質Java/Kotlinしかないよ
ただ、あなたの中では知名度ないかもしれないけど Python をやるという手もあるよ
よかったら検討してくれ
もしリッチなマシンがLinuxマシンしかなく、それでもGUIアプリを世に出したいのだとしたらJava...しかないかなあ
アンドロイドアプリをLinuxで作りたいなら実質Java/Kotlinしかないよ
ただ、あなたの中では知名度ないかもしれないけど Python をやるという手もあるよ
よかったら検討してくれ
319デフォルトの名無しさん
2017/10/25(水) 19:08:59.03ID:9pgp/kzo ありがとうございます
webアプリ作成、Androidアプリ作成、機械学習をやってみたいと考えております
調べていてpythonというのも候補には挙がったんですが
javaをやると基礎がしっかりつくと聞いてjavaにしてみようかなと思いました
学生で新しいパソコンを買う余裕がなく、お下がりのにlinuxを入れて使っています
webアプリ作成、Androidアプリ作成、機械学習をやってみたいと考えております
調べていてpythonというのも候補には挙がったんですが
javaをやると基礎がしっかりつくと聞いてjavaにしてみようかなと思いました
学生で新しいパソコンを買う余裕がなく、お下がりのにlinuxを入れて使っています
320デフォルトの名無しさん
2017/10/25(水) 19:37:30.37ID:9pgp/kzo すいませんちょっと嘘つきました
お金がないよりも、勉強の邪魔になるからって買わせて貰えない
の方が正しかったです
お金がないよりも、勉強の邪魔になるからって買わせて貰えない
の方が正しかったです
321デフォルトの名無しさん
2017/10/25(水) 19:47:59.66ID:ZmgYAolO 学生さんならJavaなんてやるのは勿体ないよ
あとLinuxでのアンドロイドアプリ作成はメモリ4GB必要だから気をつけてね
あとLinuxでのアンドロイドアプリ作成はメモリ4GB必要だから気をつけてね
322307
2017/10/25(水) 20:18:00.51ID:ZfgKJLFw 何件かレスを頂き、ありがとうございます。
仕事でJavaを使う際、catch文の中にclose処理を入れるのは有りなんでしょうか?
引き続きで恐縮ですが、皆様の見解をよろしくお願いします。
仕事でJavaを使う際、catch文の中にclose処理を入れるのは有りなんでしょうか?
引き続きで恐縮ですが、皆様の見解をよろしくお願いします。
323デフォルトの名無しさん
2017/10/25(水) 20:28:08.31ID:lZypkF1g >>322
規約と契約による
あなたの会社がしても良いといえばどっかのJavaのエラい人がなんと言おうとあなたの会社では正しいし
Javaのエラい人が顔をしかめネットで炎上し掲示板で荒らし扱いされる手法であっても上司がそのようにしてくれと言えばあなたはその書き方をすべきである
規約と契約による
あなたの会社がしても良いといえばどっかのJavaのエラい人がなんと言おうとあなたの会社では正しいし
Javaのエラい人が顔をしかめネットで炎上し掲示板で荒らし扱いされる手法であっても上司がそのようにしてくれと言えばあなたはその書き方をすべきである
324デフォルトの名無しさん
2017/10/25(水) 20:30:59.72ID:zzC6q5u4325デフォルトの名無しさん
2017/10/25(水) 20:36:12.40ID:zzC6q5u4 あ、ごめん。リロード忘れてた。なんでLinuxか書いてあったな。
まあでもLinux入れてまで使おうとするやつはもはや初心者ではないと思うが。
まあでもLinux入れてまで使おうとするやつはもはや初心者ではないと思うが。
326デフォルトの名無しさん
2017/10/25(水) 20:40:19.16ID:lZypkF1g >>324
まーなんだ、「小難しい」のは間違いないな
1行実行するために10行書くような言語だ
IDEがあるとはいえ学生さんにはもっと前のめりな言語で遊んでほしいところ
あと君が何歳かは知らないけど今のデスクトップ用Linuxのインストールと使用はスマホの設定変更くらいの難易度だぞ
まーなんだ、「小難しい」のは間違いないな
1行実行するために10行書くような言語だ
IDEがあるとはいえ学生さんにはもっと前のめりな言語で遊んでほしいところ
あと君が何歳かは知らないけど今のデスクトップ用Linuxのインストールと使用はスマホの設定変更くらいの難易度だぞ
327デフォルトの名無しさん
2017/10/25(水) 20:56:31.41ID:zzC6q5u4 >>326
いや、今時のLinuxはインストール始めれば後はだいたいマウスポチポチ押してればなんとかなる事は知ってる。
しかしPC初心者は普通はLinuxの存在すら知らない。あるいはWindowsの上で動くソフトだと誤解していたりする。
そういう誤解がないということはそれなりにわかっていると考えて良かろう。
いや、今時のLinuxはインストール始めれば後はだいたいマウスポチポチ押してればなんとかなる事は知ってる。
しかしPC初心者は普通はLinuxの存在すら知らない。あるいはWindowsの上で動くソフトだと誤解していたりする。
そういう誤解がないということはそれなりにわかっていると考えて良かろう。
328デフォルトの名無しさん
2017/10/25(水) 21:17:12.51ID:QmdhvvJR >>327
いまはWSLあるしなー
いまはWSLあるしなー
329デフォルトの名無しさん
2017/10/25(水) 21:45:19.10ID:/TUaBfz7 314です
泥アプリの作成にもRAM4GB必要だそうなので何とかしてもうちょっと新しいPC手に入れて出直してきます
ありがとうございました
泥アプリの作成にもRAM4GB必要だそうなので何とかしてもうちょっと新しいPC手に入れて出直してきます
ありがとうございました
330デフォルトの名無しさん
2017/10/25(水) 22:42:58.25ID:RILf1WwA 泥アプリ開発ならvsでxamarinとかブラウザでmonacaみたいな選択肢もあるし
一旦言語選択から考え直してみたら
一旦言語選択から考え直してみたら
331スッキリ厨
2017/10/25(水) 23:26:15.55ID:M2TcZ1xf >>314-321
まずこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014
その後、この2冊をこの順に読む
たのしいRuby 第5版、2016
みんなのPython 第4版、2017
ここまでが基礎で、実際にアプリを作れるようになるには、数年掛かる。
アルゴリズム・OS・環境構築運用で、少なくとも数年は掛かる
まずこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014
その後、この2冊をこの順に読む
たのしいRuby 第5版、2016
みんなのPython 第4版、2017
ここまでが基礎で、実際にアプリを作れるようになるには、数年掛かる。
アルゴリズム・OS・環境構築運用で、少なくとも数年は掛かる
332デフォルトの名無しさん
2017/10/26(木) 00:28:50.10ID:qkSUMYmO クラス名からインスタンスを生成して、
そのインスタンスが保持するフィールドにダミーの値をセットする機能を作りたいのですが、
privateなメンバ変数にも値をセットすることはリフレクションで出来ますか?
class Entity{
@getter @setter
private Long age;
}
があったときnew Entity()のインスタンスとその中のageに何か数値が入っている状態にしたいです
そのインスタンスが保持するフィールドにダミーの値をセットする機能を作りたいのですが、
privateなメンバ変数にも値をセットすることはリフレクションで出来ますか?
class Entity{
@getter @setter
private Long age;
}
があったときnew Entity()のインスタンスとその中のageに何か数値が入っている状態にしたいです
333デフォルトの名無しさん
2017/10/26(木) 00:42:22.95ID:qkSUMYmO 自己解決した ありがとう
334デフォルトの名無しさん
2017/10/26(木) 01:29:13.40ID:N/UTfD1S335デフォルトの名無しさん
2017/10/26(木) 09:58:09.89ID:/KWiwsxI >>333
どうやって解決したかを書け
どうやって解決したかを書け
337デフォルトの名無しさん
2017/10/29(日) 00:13:25.42ID:jaLMlrXm H2 Databaseに接続するプログラムをコンパイルし実行したいのですが、
クラスパスを何て書けばいいか調べても分かりません。
どなたか教えて頂けませんでしょうか?
クラスパスを何て書けばいいか調べても分かりません。
どなたか教えて頂けませんでしょうか?
338デフォルトの名無しさん
2017/10/29(日) 11:34:08.81ID:oFRxn/Jf >>337
ここにいきなりこう書いてあるが?
http://www.h2database.com/html/quickstart.html
Add the h2*.jar to the classpath (H2 does not have any dependencies)
ここにいきなりこう書いてあるが?
http://www.h2database.com/html/quickstart.html
Add the h2*.jar to the classpath (H2 does not have any dependencies)
339337
2017/10/29(日) 12:46:42.34ID:jaLMlrXm >>338
レスありがとうございます。
具体的には、javac -cp h2*.jar Main.java (Main.javaはクラス名)と入力し、
java -cp h2*.jar Main と入力すればいいんですか?
レスありがとうございます。
具体的には、javac -cp h2*.jar Main.java (Main.javaはクラス名)と入力し、
java -cp h2*.jar Main と入力すればいいんですか?
340デフォルトの名無しさん
2017/10/29(日) 13:08:40.31ID:cRJ4aa/x 今時クラスパスを手動で解決するとは
mavenとかgradle使え
mavenとかgradle使え
341デフォルトの名無しさん
2017/10/29(日) 13:18:28.37ID:oFRxn/Jf342337
2017/10/29(日) 15:33:37.93ID:jaLMlrXm コンパイルは通るのですが、実行できませんでした…。
ClassNotFoundExceptionとSQLExceptionが発生してしまいます。
どなたかヒントを下さい。
ソースコードは以下です。
https://ideone.com/4xrmgz
ClassNotFoundExceptionとSQLExceptionが発生してしまいます。
どなたかヒントを下さい。
ソースコードは以下です。
https://ideone.com/4xrmgz
344デフォルトの名無しさん
2017/10/29(日) 15:57:54.47ID:0Uo9CHxR345デフォルトの名無しさん
2017/10/29(日) 16:23:24.35ID:oFRxn/Jf >>342
コンパイル時と同じ classpath にしてもダメなの?
コンパイル時と同じ classpath にしてもダメなの?
346337
2017/10/29(日) 16:26:53.49ID:jaLMlrXm >>344
はい。それは分かります。javacと同じクラスパスをjava実行時にも付けています。
実は根本的に、h2*.jarファイルがどこにあるのかよく分かってない気もするんですが、
H2 DatabaseのホームページからDL出来るh2-setup-2017-06-10.exeファイルの
中にあるんですよね?
はい。それは分かります。javacと同じクラスパスをjava実行時にも付けています。
実は根本的に、h2*.jarファイルがどこにあるのかよく分かってない気もするんですが、
H2 DatabaseのホームページからDL出来るh2-setup-2017-06-10.exeファイルの
中にあるんですよね?
347337
2017/10/29(日) 16:32:10.42ID:jaLMlrXm348デフォルトの名無しさん
2017/10/29(日) 17:11:13.08ID:0Uo9CHxR >>346
知らないけど
それは自己解凍ファイルなのかな
検索して実際のjarファイルを探してみればいい
コンパイル時はインタフェースさえわかればいいから
その実装のclassには通ってない可能性がある
ちゃんと何してるかから理解した方がいいと思うぞ
知らないけど
それは自己解凍ファイルなのかな
検索して実際のjarファイルを探してみればいい
コンパイル時はインタフェースさえわかればいいから
その実装のclassには通ってない可能性がある
ちゃんと何してるかから理解した方がいいと思うぞ
349337
2017/10/29(日) 20:16:42.57ID:jaLMlrXm >>348
あれからいろいろ調べて、Cドライブを検索した結果、h2*.jarファイルが
見つかりました!やはり.exeファイル内には無かったようです。
クラスパスを更新したら実行(javaコマンド)も無事成功しました。
回答して頂いた方々、ありがとうございました。
あれからいろいろ調べて、Cドライブを検索した結果、h2*.jarファイルが
見つかりました!やはり.exeファイル内には無かったようです。
クラスパスを更新したら実行(javaコマンド)も無事成功しました。
回答して頂いた方々、ありがとうございました。
350デフォルトの名無しさん
2017/10/29(日) 22:13:14.03ID:ZPOHC70p コンストラクタで引数チェックをし、例外を投げることは設計上良くないのでしょうか?例えば
class hoge {
private final int i;
hoge(int i) {
if(i >= 0)
this.i = i;
else
throw new IllegalArgumentException
}
}
フィールドiに負の数を持たせたくない場合このようにするのが自然かなと考えたのですがいかがでしょうか?
class hoge {
private final int i;
hoge(int i) {
if(i >= 0)
this.i = i;
else
throw new IllegalArgumentException
}
}
フィールドiに負の数を持たせたくない場合このようにするのが自然かなと考えたのですがいかがでしょうか?
351デフォルトの名無しさん
2017/10/29(日) 23:14:29.92ID:ILWFk/IO352デフォルトの名無しさん
2017/10/30(月) 00:07:29.30ID:RKfFK5VC353デフォルトの名無しさん
2017/10/30(月) 00:34:24.41ID:EdHEI0+x 空のオブジェクト作って後でsetter使って入れるのも微妙だしコンストラクタで値チェックとかしていいと思うぞ
俺ならPattern.compileメソッドみたいに自分自身を返すstaticメソッドで価チェックする
俺ならPattern.compileメソッドみたいに自分自身を返すstaticメソッドで価チェックする
354デフォルトの名無しさん
2017/10/30(月) 00:44:57.12ID:sRaOGV/D >>350
有り得ない状態で存在できるより良い
有り得ない状態で存在できるより良い
355デフォルトの名無しさん
2017/10/30(月) 00:45:02.55ID:eddodMAs356デフォルトの名無しさん
2017/10/30(月) 01:04:31.28ID:JH+/yPWP357デフォルトの名無しさん
2017/10/30(月) 01:12:17.89ID:RKfFK5VC Hibernate Validatorみたいなバリデーションフレームワークは一般的に作ってから確認する方式
そもそも作らせないようにするのは”always valid”と呼ばれてる
“always valid model”とかで検索すれば参考になるサイトが出てくる
長所短所を理解して使い分ける
そもそも作らせないようにするのは”always valid”と呼ばれてる
“always valid model”とかで検索すれば参考になるサイトが出てくる
長所短所を理解して使い分ける
358デフォルトの名無しさん
2017/10/30(月) 01:16:09.26ID:ImI1HNcW 俺だったらPositiveNumberみたいなジェネリッククラスを作るか、@positiveみたいなアノテーション作る
359デフォルトの名無しさん
2017/10/30(月) 01:51:11.96ID:eddodMAs360デフォルトの名無しさん
2017/10/30(月) 02:19:42.12ID:sRaOGV/D コンストラクタとセッタに同じことを示す文が複製されるのもちょっと良くないな
361デフォルトの名無しさん
2017/10/30(月) 03:04:30.08ID:nQXUW6Dj >>351
クソ?しかし API にも new した時に例外出すやつ沢山あるわけだが、そういうのは全部クソ?
クソ?しかし API にも new した時に例外出すやつ沢山あるわけだが、そういうのは全部クソ?
362デフォルトの名無しさん
2017/10/30(月) 07:16:59.94ID:fX/oTiYO363デフォルトの名無しさん
2017/10/30(月) 07:22:42.37ID:b9ZBDRTb >>355
オブジェクト作る前にValidatorクラスでチェックするだけ
オブジェクト作る前にValidatorクラスでチェックするだけ
364デフォルトの名無しさん
2017/10/30(月) 07:24:54.59ID:b9ZBDRTb365デフォルトの名無しさん
2017/10/30(月) 08:14:47.50ID:JH+/yPWP インスタンス変数(やクラス変数)は
そのオブジェクトに付属するデータだから
コンストラクタなどでデータチェックの責務を
オブジェクト自身に持たせるのはおかしくない
ただしチェックが複雑化したときに
責務を委譲するのもアリ
そのオブジェクトに付属するデータだから
コンストラクタなどでデータチェックの責務を
オブジェクト自身に持たせるのはおかしくない
ただしチェックが複雑化したときに
責務を委譲するのもアリ
366デフォルトの名無しさん
2017/10/30(月) 08:43:10.77ID:5RpC60IR >>365
そのただしが問題
検証はシステムの関心ごとだから
集約するべきでオブジェクト毎に持つものじゃない
コンストラクタはオブジェクトを初期化するという
特別な処理であってここでデータチェックが必要になるのは
責務の分離ができてないシグナルみたいなもの
staticメソッドでtryCreateという名前なら100歩譲ってオーケーだ
そのただしが問題
検証はシステムの関心ごとだから
集約するべきでオブジェクト毎に持つものじゃない
コンストラクタはオブジェクトを初期化するという
特別な処理であってここでデータチェックが必要になるのは
責務の分離ができてないシグナルみたいなもの
staticメソッドでtryCreateという名前なら100歩譲ってオーケーだ
367デフォルトの名無しさん
2017/10/30(月) 08:54:32.49ID:5RpC60IR 負の値を持たせたくないのは業務の要件なんですよ!!
368デフォルトの名無しさん
2017/10/30(月) 08:55:34.55ID:JH+/yPWP >>366
>検証はシステムの関心ごとだから
>集約するべきでオブジェクト毎に持つものじゃない
責務を分離するのは重要だがそのオブジェクトの
規模が大きくなって複雑化するにつれて分けていくもの
たとえば生成の責務をファクトリに分離してもいいが
何でもかんでも全部ファクトリにする必要はない
だからコンストラクタでチェックしてもいいし
バリデータみたいのに分離してもいい
>検証はシステムの関心ごとだから
>集約するべきでオブジェクト毎に持つものじゃない
責務を分離するのは重要だがそのオブジェクトの
規模が大きくなって複雑化するにつれて分けていくもの
たとえば生成の責務をファクトリに分離してもいいが
何でもかんでも全部ファクトリにする必要はない
だからコンストラクタでチェックしてもいいし
バリデータみたいのに分離してもいい
369デフォルトの名無しさん
2017/10/30(月) 08:56:23.29ID:5RpC60IR 思わず激昂してしまいましたがとにかく小生が言いたいのはコンストラクタで例外投げるのおかしいですよということなんです
370デフォルトの名無しさん
2017/10/30(月) 09:00:29.54ID:5RpC60IR >>368
どっちでもいいなんていうそんな優柔不断で玉虫色な考えに真実があるわけない、あなたは思考を放棄しているに等しい、ここにはこういう値しか保持したくないんです、立派な業務要件でしょうが!!
じゃあその要件をまとめましょうよ、システムの関心ごととして切り出しましょうよ
どっちでもいいなんていうそんな優柔不断で玉虫色な考えに真実があるわけない、あなたは思考を放棄しているに等しい、ここにはこういう値しか保持したくないんです、立派な業務要件でしょうが!!
じゃあその要件をまとめましょうよ、システムの関心ごととして切り出しましょうよ
371デフォルトの名無しさん
2017/10/30(月) 09:01:41.86ID:4hMzyEUs >>367
業務要件で例外処理を考えてるってなかなかおもしろいね
業務要件で例外処理を考えてるってなかなかおもしろいね
372デフォルトの名無しさん
2017/10/30(月) 09:04:21.57ID:5RpC60IR >>371
どういうこと?
どういうこと?
373デフォルトの名無しさん
2017/10/30(月) 09:06:06.45ID:5RpC60IR もっと具体的にちゃんと説明して
小生良い事言ってるからそれちゃんと説明して
小生良い事言ってるからそれちゃんと説明して
374デフォルトの名無しさん
2017/10/30(月) 09:12:06.74ID:JH+/yPWP >>370
いやそれは極端でしょ
OOPの要素はどれも使い分けじゃないの?
複雑化したら切り出すが抽象化にはキリがないので
IF文を全部ポリモーフィズムにするわけでもないし
最初から全部デザパタにするわけでもない
いやそれは極端でしょ
OOPの要素はどれも使い分けじゃないの?
複雑化したら切り出すが抽象化にはキリがないので
IF文を全部ポリモーフィズムにするわけでもないし
最初から全部デザパタにするわけでもない
375デフォルトの名無しさん
2017/10/30(月) 09:17:39.73ID:5RpC60IR376デフォルトの名無しさん
2017/10/30(月) 09:21:09.70ID:JH+/yPWP377デフォルトの名無しさん
2017/10/30(月) 09:22:44.13ID:5RpC60IR コンストラクタでチェックして例外投げるのは
ようわからんけどオブジェクト作ってみるわー
でけへんかったわーゲヘヘーと言ってるようなもの
文明人のやることじゃない
アサートを使うべき
アサートは本番では動かさないからね
検証は専用のオブジェクトでやりましょう
ようわからんけどオブジェクト作ってみるわー
でけへんかったわーゲヘヘーと言ってるようなもの
文明人のやることじゃない
アサートを使うべき
アサートは本番では動かさないからね
検証は専用のオブジェクトでやりましょう
378デフォルトの名無しさん
2017/10/30(月) 09:25:45.46ID:5RpC60IR379デフォルトの名無しさん
2017/10/30(月) 09:46:48.33ID:JH+/yPWP アサートでもいいが例外投げてもいい
つーかコンストラクタで例外投げるのが大問題なら
Javaの言語仕様でできないようにするだろ……
普通に考えて2ちゃんの一個人より
Java(API)のやり方の方がいいわ
つーかコンストラクタで例外投げるのが大問題なら
Javaの言語仕様でできないようにするだろ……
普通に考えて2ちゃんの一個人より
Java(API)のやり方の方がいいわ
380デフォルトの名無しさん
2017/10/30(月) 10:01:28.68ID:5RpC60IR >>379
ファイナライザでは例外投げないようにしましょう
というのがベストプラクティスだけど言語仕様ではできるでしょうに
言語仕様ってその程度のものですよ
コンストラクタでも例外投げるのやめましょうよ
2chネラーだから信用しないっていうのは権威主義的というか誰が言ってるかより中身で判断していただきたい、小生絶対良い事言ってるから!!
ファイナライザでは例外投げないようにしましょう
というのがベストプラクティスだけど言語仕様ではできるでしょうに
言語仕様ってその程度のものですよ
コンストラクタでも例外投げるのやめましょうよ
2chネラーだから信用しないっていうのは権威主義的というか誰が言ってるかより中身で判断していただきたい、小生絶対良い事言ってるから!!
381デフォルトの名無しさん
2017/10/30(月) 10:21:49.81ID:0VAyPn/2 どっちがキチガイかは一目瞭然だな
ありがとう
ありがとう
382デフォルトの名無しさん
2017/10/30(月) 10:37:40.45ID:5RpC60IR それでええんか?
議論って考えを広げるためにあるんやで
キチガイとレッテルを張っておしまいでほんとにええんか?
小生が可哀想だと思わない?罪悪感を感じない?お前のお母さんもお前には優しい人に育ってほしいと思ってたのじゃないか?
議論って考えを広げるためにあるんやで
キチガイとレッテルを張っておしまいでほんとにええんか?
小生が可哀想だと思わない?罪悪感を感じない?お前のお母さんもお前には優しい人に育ってほしいと思ってたのじゃないか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- マンション高層階から「泥団子」投げた小学生を児童相談所へ通告 男性が大けが 熊本県警 [香味焙煎★]
- 日産 追浜と湘南の2工場閉鎖へ…7工場削減計画 海外はメキシコや南アフリカなど [蚤の市★]
- 【芸能】にゃんこスター・アンゴラ村長、初写真集でランジェリーショット公開 昨年はデジタル写真集が異例の大ヒット [湛然★]
- 24年の出生率、民間試算「過去最低の1.15」 少子化に歯止めかからず ★6 [蚤の市★]
- 反撃の中居正広「こんなはずじゃなかった…」受け入れられない性暴力者の烙印 世間に性犯罪者のように見られることに耐えられず★6 [Ailuropoda melanoleuca★]
- トランプ大統領、各国に「米での事業費用」提示へ 近く書簡送付 [香味焙煎★]
- 【速報】米高騰の犯人、卸業者と判明 備蓄米に7600円上乗せ (22年産は2200~4600円) 打ちこわし始まるぞ… [402859164]
- 【日本仕草】自衛隊事故で「もの」や「遺体」と発言しただけで大臣が謝罪することに😫 [583597859]
- 日産、神奈川の追浜と湘南の2工場閉鎖へ [419054184]
- 元ジャンポケ斉藤、バームクーヘン事業が早くも息切れ…客足は途切れ途切れ😲 [861717324]
- 自分のやった事ない競技を観戦して楽しいもんなの?
- 【画像】セブン「うちは7倍だぞ!7倍!」 →なぜか炎上してしまう