- 1 名前:デフォルトの名無しさん mailto:sageteoff [2017/09/29(金) 17:53:25.24 ID:XnizQSCA.net]
- Java初心者のためのスレッドです。
※前スレ Java入門・初心者質問スレ Part.4 mevius.2ch.net/test/read.cgi/tech/1498828456/
- 321 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 18:36:25.22 ID:9pgp/kzo.net]
- プログラミング完全初心者でこれから始めようと思っているんですが
何を何からやれば良いでしょうか お勧めの本やサイト等もご教授ねがいます OSはLinux Mintでとりあえずeclipseというのとopen java8というのを入れました
- 322 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 18:38:25.23 ID:0GYD+24d.net]
- >>315
プログラミングで何をやりたいの? 学ぶ目的は?
- 323 名前:デフォルトの名無しさん [2017/10/25(水) 18:44:11.98 ID:MjxzUPyN.net]
- C#と座間林が話題になってたからそっちのほうがいいのかも
- 324 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 18:54:09.43 ID:ZmgYAolO.net]
- >>315
>何を何からやれば良いでしょうか
- 325 名前:>お勧めの本やサイト等もご教授ねがいます
全部おんぶに抱っことかアフィかッ! やんわりマジレスすると最初の最初はJavaでないほうがいいよ これはたとえ小難しくても業務でカッチリ書けるという面が重宝された言語だから、個人がいきなり趣味でやるとしんどい ひょっとしたらアンドロイドアプリが頭にあるかもしれないけど、もしゲームならUnityがいいよ [] - [ここ壊れてます]
- 326 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 19:02:06.72 ID:ZmgYAolO.net]
- 環境見てなかったwwww
もしリッチなマシンがLinuxマシンしかなく、それでもGUIアプリを世に出したいのだとしたらJava...しかないかなあ アンドロイドアプリをLinuxで作りたいなら実質Java/Kotlinしかないよ ただ、あなたの中では知名度ないかもしれないけど Python をやるという手もあるよ よかったら検討してくれ
- 327 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 19:08:59.03 ID:9pgp/kzo.net]
- ありがとうございます
webアプリ作成、Androidアプリ作成、機械学習をやってみたいと考えております 調べていてpythonというのも候補には挙がったんですが javaをやると基礎がしっかりつくと聞いてjavaにしてみようかなと思いました 学生で新しいパソコンを買う余裕がなく、お下がりのにlinuxを入れて使っています
- 328 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 19:37:30.37 ID:9pgp/kzo.net]
- すいませんちょっと嘘つきました
お金がないよりも、勉強の邪魔になるからって買わせて貰えない の方が正しかったです
- 329 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 19:47:59.66 ID:ZmgYAolO.net]
- 学生さんならJavaなんてやるのは勿体ないよ
あとLinuxでのアンドロイドアプリ作成はメモリ4GB必要だから気をつけてね
- 330 名前:307 mailto:sage [2017/10/25(水) 20:18:00.51 ID:ZfgKJLFw.net]
- 何件かレスを頂き、ありがとうございます。
仕事でJavaを使う際、catch文の中にclose処理を入れるのは有りなんでしょうか? 引き続きで恐縮ですが、皆様の見解をよろしくお願いします。
- 331 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 20:28:08.31 ID:lZypkF1g.net]
- >>323
規約と契約による あなたの会社がしても良いといえばどっかのJavaのエラい人がなんと言おうとあなたの会社では正しいし Javaのエラい人が顔をしかめネットで炎上し掲示板で荒らし扱いされる手法であっても上司がそのようにしてくれと言えばあなたはその書き方をすべきである
- 332 名前:デフォルトの名無しさん [2017/10/25(水) 20:30:59.72 ID:zzC6q5u4.net]
- >>318
え?Javaってそんなに難しいか? まあでも元の質問してる人はOSがLinuxなので多分何も知らない初心者じゃないと思うぞ。 多分他の言語はわかるんじゃないか?
- 333 名前:デフォルトの名無しさん [2017/10/25(水) 20:36:12.40 ID:zzC6q5u4.net]
- あ、ごめん。リロード忘れてた。なんでLinuxか書いてあったな。
まあでもLinux入れてまで使おうとするやつはもはや初心者ではないと思うが。
- 334 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 20:40:19.16 ID:lZypkF1g.net]
- >>325
まーなんだ、「小難しい」のは間違いないな 1行実行するために10行書くような言語だ IDEがあるとはいえ学生さんにはもっと前のめりな言語で遊んでほしいところ あと君が何歳かは知らないけど今のデスクトップ用Linuxのインストールと使用はスマホの設定変更くらいの難易度だぞ
- 335 名前:デフォルトの名無しさん [2017/10/25(水) 20:56:31.41 ID:zzC6q5u4.net]
- >>327
いや、今時のLinuxはインストール始めれば後はだいたいマウスポチポチ押してればなんとかなる事は知ってる。 しかしPC初心者は普通はLinuxの存在すら知らない。あるいはWindowsの上で動くソフトだと誤解していたりする。 そういう誤解がないということはそれなりにわかっていると考えて良かろう。
- 336 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 21:17:12.51 ID:QmdhvvJR.net]
- >>328
いまはWSLあるしなー
- 337 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 21:45:19.10 ID:/TUaBfz7.net]
- 314です
泥アプリの作成にもRAM4GB必要だそうなので何とかしてもうちょっと新しいPC手に入れて出直してきます ありがとうございました
- 338 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 22:42:58.25 ID:RILf1WwA.net]
- 泥アプリ開発ならvsでxamarinとかブラウザでmonacaみたいな選択肢もあるし
一旦言語選択から考え直してみたら
- 339 名前:スッキリ厨 mailto:sage [2017/10/25(水) 23:26:15.55 ID:M2TcZ1xf.net]
- >>315-322
まずこの本で、オブジェクト指向を学ぶ スッキリわかる Java入門 第2版、2014 その後、この2冊をこの順に読む たのしいRuby 第5版、2016 みんなのPython 第4版、2017 ここまでが基礎で、実際にアプリを作れるようになるには、数年掛かる。 アルゴリズム・OS・環境構築運用で、少なくとも数年は掛かる
- 340 名前:デフォルトの名無しさん [2017/10/26(木) 00:28:50.10 ID:qkSUMYmO.net]
- クラス名からインスタンスを生成して、
そのインスタンスが保持するフィールドにダミーの値をセットする機能を作りたいのですが、 privateなメンバ変数にも値をセットすることはリフレクションで出来ますか? class Entity{ @getter @setter private Long age; } があったときnew Entity()のインスタンスとその中のageに何か数値が入っている状態にしたいです
- 341 名前:デフォルトの名無しさん [2017/10/26(木) 00:42:22.95 ID:qkSUMYmO.net]
- 自己解決した ありがとう
- 342 名前:デフォルトの名無しさん [2017/10/26(木) 01:29:13.40 ID:N/UTfD1S.net]
- >>315
Progate行ってこい やれそうだと思ったらスッキリ入門編
- 343 名前:デフォルトの名無しさん [2017/10/26(木) 09:58:09.89 ID:/KWiwsxI.net]
- >>334
どうやって解決したかを書け
- 344 名前:307 mailto:sage [2017/10/26(木) 20:11:51.32 ID:DirVuC/B.net]
- >>324
分かりました。ありがとうございました。
- 345 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 00:13:25.42 ID:jaLMlrXm.net]
- H2 Databaseに接続するプログラムをコンパイルし実行したいのですが、
クラスパスを何て書けばいいか調べても分かりません。 どなたか教えて頂けませんでしょうか?
- 346 名前:デフォルトの名無しさん [2017/10/29(日) 11:34:08.81 ID:oFRxn/Jf.net]
- >>338
ここにいきなりこう書いてあるが? www.h2database.com/html/quickstart.html Add the h2*.jar to the classpath (H2 does not have any dependencies)
- 347 名前:337 mailto:sage [2017/10/29(日) 12:46:42.34 ID:jaLMlrXm.net]
- >>339
レスありがとうございます。 具体的には、javac -cp h2*.jar Main.java (Main.javaはクラス名)と入力し、 java -cp h2*.jar Main と入力すればいいんですか?
- 348 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 13:08:40.31 ID:cRJ4aa/x.net]
- 今時クラスパスを手動で解決するとは
mavenとかgradle使え
- 349 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 13:18:28.37 ID:oFRxn/Jf.net]
- >>340
いや、h2*.jar が入っているディレクトリごと指定しないと普通はダメなのでは? カレントディレクトリにあるならそれでも良いのかも知れんが。
- 350 名前:337 mailto:sage [2017/10/29(日) 15:33:37.93 ID:jaLMlrXm.net]
- コンパイルは通るのですが、実行できませんでした…。
ClassNotFoundExceptionとSQLExceptionが発生してしまいます。 どなたかヒントを下さい。 ソースコードは以下です。 https://ideone.com/4xrmgz
- 351 名前:337 mailto:sage [2017/10/29(日) 15:35:28.67 ID:jaLMlrXm.net]
- >>341
すいません、今回はコマンドプロンプトで書かせて下さい。
- 352 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 15:57:54.47 ID:0Uo9CHxR.net]
- >>343
javacで取り込むわけではないので javaで実行時にもCLASSPATHを通して見つかるようにしてやる必要がある
- 353 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 16:23:24.35 ID:oFRxn/Jf.net]
- >>343
コンパイル時と同じ classpath にしてもダメなの?
- 354 名前:337 mailto:sage [2017/10/29(日) 16:26:53.49 ID:jaLMlrXm.net]
- >>345
はい。それは分かります。javacと同じクラスパスをjava実行時にも付けて
- 355 名前:います。
実は根本的に、h2*.jarファイルがどこにあるのかよく分かってない気もするんですが、 H2 DatabaseのホームページからDL出来るh2-setup-2017-06-10.exeファイルの 中にあるんですよね? [] - [ここ壊れてます]
- 356 名前:337 mailto:sage [2017/10/29(日) 16:32:10.42 ID:jaLMlrXm.net]
- >>346
はい。 なのでjarファイルの位置指定がそもそも間違ってるんじゃないかと思い始めて いるんですが…。.jarという拡張子のファイルが見当たらないんです。
- 357 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 17:11:13.08 ID:0Uo9CHxR.net]
- >>347
知らないけど それは自己解凍ファイルなのかな 検索して実際のjarファイルを探してみればいい コンパイル時はインタフェースさえわかればいいから その実装のclassには通ってない可能性がある ちゃんと何してるかから理解した方がいいと思うぞ
- 358 名前:337 mailto:sage [2017/10/29(日) 20:16:42.57 ID:jaLMlrXm.net]
- >>349
あれからいろいろ調べて、Cドライブを検索した結果、h2*.jarファイルが 見つかりました!やはり.exeファイル内には無かったようです。 クラスパスを更新したら実行(javaコマンド)も無事成功しました。 回答して頂いた方々、ありがとうございました。
- 359 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 22:13:14.03 ID:ZPOHC70p.net]
- コンストラクタで引数チェックをし、例外を投げることは設計上良くないのでしょうか?例えば
class hoge { private final int i; hoge(int i) { if(i >= 0) this.i = i; else throw new IllegalArgumentException } } フィールドiに負の数を持たせたくない場合このようにするのが自然かなと考えたのですがいかがでしょうか?
- 360 名前:デフォルトの名無しさん [2017/10/29(日) 23:14:29.92 ID:ILWFk/IO.net]
- >>351
クソだと思う 値をチェックする責務は専用のクラスに任せて それ以外のクラスに持ち込むべきじゃない
- 361 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 00:07:29.30 ID:RKfFK5VC.net]
- >>351
別にいいと思うぞ 作ってからIsValidで確認するか そもそも作らせないようにするかの違い どっちのやり方も良し悪しがある
- 362 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 00:34:24.41 ID:EdHEI0+x.net]
- 空のオブジェクト作って後でsetter使って入れるのも微妙だしコンストラクタで値チェックとかしていいと思うぞ
俺ならPattern.compileメソッドみたいに自分自身を返すstaticメソッドで価チェックする
- 363 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 00:44:57.12 ID:sRaOGV/D.net]
- >>351
有り得ない状態で存在できるより良い
- 364 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 00:45:02.55 ID:eddodMAs.net]
- >>352
値チェック専用のクラスを作る場合どのように作るべきでしょうか 値チェッククラスでOKだった数値(正の数)をどのようにhogeのコンストラクタに渡すのかいまいち正しいイメージがつかめません 値チェッククラスのインスタンスをhogeの内部に持たせる(フィールドとコンストラクタの引数を変更する)のが良いのでしょうか? とんちんかんな質問かもしれませんがよければお答えいただけると嬉しいです >>353 なるほど isValidメソッドであとからチェックするというのは思い付きませんでした
- 365 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 01:04:31.28 ID:JH+/yPWP.net]
- >>351
>コンストラクタで引数チェックをし、例外を投げる 問題ない バグでおかしくなるのが一番の問題
- 366 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 01:12:17.89 ID:RKfFK5VC.net]
- Hibernate Validatorみたいなバリデーションフレームワークは一般的に作ってから確認する方式
そもそも作らせないようにするのは”always valid”と呼ばれてる “always valid model”とかで検索すれば参考になるサイトが出てくる 長所短所を理解して使い分ける
- 367 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 01:16:09.26 ID:ImI1HNcW.net]
- 俺だったらPositiveNumberみたいなジェネリッククラスを作るか、@positiveみたいなアノテーション作る
- 368 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 01:51:11.96 ID:eddodMAs.net]
- >>354
ありがとう >空のオブジェクト作って後でsetter使 >って入れるのも微妙だし 私もそう思ったのですがコンストラクタで例外を投げるのは良くないというような
- 369 名前:意見をどこかで目にしたので聞いてみました
>>358 ふむふむ 個人的にはそもそも作らせないって方が好みな感じがします 調べてみます情報ありがとう [] - [ここ壊れてます]
- 370 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 02:19:42.12 ID:sRaOGV/D.net]
- コンストラクタとセッタに同じことを示す文が複製されるのもちょっと良くないな
- 371 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 03:04:30.08 ID:nQXUW6Dj.net]
- >>352
クソ?しかし API にも new した時に例外出すやつ沢山あるわけだが、そういうのは全部クソ?
- 372 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 07:16:59.94 ID:fX/oTiYO.net]
- >>361
コンストラクタで最初に値をセットして後から変更できないようにsetterは持たせないというつもりでした (フィールドをfinalにしているのはそのためです)
- 373 名前:デフォルトの名無しさん [2017/10/30(月) 07:22:42.37 ID:b9ZBDRTb.net]
- >>356
オブジェクト作る前にValidatorクラスでチェックするだけ
- 374 名前:デフォルトの名無しさん [2017/10/30(月) 07:24:54.59 ID:b9ZBDRTb.net]
- >>362
全部クソ。 オブジェクトの責務をわかっていない。
- 375 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 08:14:47.50 ID:JH+/yPWP.net]
- インスタンス変数(やクラス変数)は
そのオブジェクトに付属するデータだから コンストラクタなどでデータチェックの責務を オブジェクト自身に持たせるのはおかしくない ただしチェックが複雑化したときに 責務を委譲するのもアリ
- 376 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 08:43:10.77 ID:5RpC60IR.net]
- >>366
そのただしが問題 検証はシステムの関心ごとだから 集約するべきでオブジェクト毎に持つものじゃない コンストラクタはオブジェクトを初期化するという 特別な処理であってここでデータチェックが必要になるのは 責務の分離ができてないシグナルみたいなもの staticメソッドでtryCreateという名前なら100歩譲ってオーケーだ
- 377 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 08:54:32.49 ID:5RpC60IR.net]
- 負の値を持たせたくないのは業務の要件なんですよ!!
- 378 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 08:55:34.55 ID:JH+/yPWP.net]
- >>367
>検証はシステムの関心ごとだから >集約するべきでオブジェクト毎に持つものじゃない 責務を分離するのは重要だがそのオブジェクトの 規模が大きくなって複雑化するにつれて分けていくもの たとえば生成の責務をファクトリに分離してもいいが 何でもかんでも全部ファクトリにする必要はない だからコンストラクタでチェックしてもいいし バリデータみたいのに分離してもいい
- 379 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 08:56:23.29 ID:5RpC60IR.net]
- 思わず激昂してしまいましたがとにかく小生が言いたいのはコンストラクタで例外投げるのおかしいですよということなんです
- 380 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 09:00:29.54 ID:5RpC60IR.net]
- >>369
どっちでもいいなんていうそんな優柔不断で玉虫色な考えに真実があるわけない、あなたは思考を放棄しているに等しい、ここにはこういう値しか保持したくないんです、立派な業務要件でしょうが!! じゃあその要件をまとめましょうよ、システムの関心ごととして切り出しましょうよ
- 381 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 09:01:41.86 ID:4hMzyEUs.net]
- >>368
業務要件で例外処理を考えてるってなかなかおもしろいね
- 382 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 09:04:21.57 ID:5RpC60IR.net]
- >>372
どういうこと?
- 383 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 09:06:06.45 ID:5RpC60IR.net]
- もっと具体的にちゃんと説明して
小生良い事言ってるからそれちゃんと説明して
- 384 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 09:12:06.74 ID:JH+/yPWP.net]
- >>371
いやそれは極端でしょ OOPの要素はどれも使い分けじゃないの? 複雑化したら切り出すが抽象化にはキリがないので IF文を全部ポリモーフィズムにするわけでもないし 最初から全部デザパタにするわけでもない
- 385 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 09:17:39.73 ID:5RpC60IR.net]
- >>375
ifの話じゃないだろ なんでもかんでも一緒にするな 極端なのはそなたの方 こなたが言いたいのはとにかくコンストラクタでチェックするのおかしくないですかってこと
- 386 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 09:21:09.70 ID:JH+/yPWP.net]
- >>376
コンストラクタでチェックするのはおかしくない JavaのAPIでやってるくらいなんだから むしろやるなって方が押しつけ
- 387 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 09:22:44.13 ID:5RpC60IR.net]
- コンストラクタでチェックして例外投げるのは
ようわからんけどオブジェクト作ってみるわー でけへんかったわーゲヘヘーと言ってるようなもの 文明人のやることじゃない アサートを使うべき アサートは本番では動かさないからね 検証は専用のオブジェクトでやりましょう
- 388 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 09:25:45.46 ID:5RpC60IR.net]
- >>377
アホかお前は、お前はアホか JavaのAPIははっきり申し上げてクソでござる クソがやってるから大丈夫なんだとはならんだろうが どこがクソかはお前に任せるよ
- 389 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 09:46:48.33 ID:JH+/yPWP.net]
- アサートでもいいが例外投げてもいい
つーかコンストラクタで例外投げるのが大問題なら Javaの言語仕様でできないようにするだろ…… 普通に考えて2ちゃんの一個人より Java(API)のやり方の方がいいわ
- 390 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 10:01:28.68 ID:5RpC60IR.net]
- >>380
ファイナライザでは例外投げないようにしましょう というのがベストプラクティスだけど言語仕様ではできるでしょうに 言語仕様ってその程度のものですよ コンストラクタでも例外投げるのやめましょうよ 2chネラーだから信用しないっていうのは権威主義的というか誰が言ってるかより中身で判断していただきたい、小生絶対良い事言ってるから!!
- 391 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 10:21:49.81 ID:0VAyPn/2.net]
- どっちがキチガイかは一目瞭然だな
ありがとう
- 392 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 10:37:40.45 ID:5RpC60IR.net]
- それでええんか?
議論って考えを広げるためにあるんやで キチガイとレッテルを張っておしまいでほんとにええんか? 小生が可哀想だと思わない?罪悪感を感じない?お前のお母さんもお前には優しい人に育ってほしいと思ってたのじゃないか?
- 393 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 10:38:44.40 ID:5RpC60IR.net]
- ありがとうの後にはございますを付けろ、それが礼儀だ
- 394 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 10:39:13.84 ID:5RpC60IR.net]
- 礼儀正しく優しい人になって欲しい
- 395 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 10:46:46.93 ID:5RpC60IR.net]
- コンストラクタでデータチェックしない人になって欲しい
- 396 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 12:29:49.28 ID:ich1HAGc.net]
- >>378
何が悪いか分からん。 オブジェクトの生成失敗も業務メソッドの実行失敗も、中断すべき状況になったら例外飛ばして何が悪いのか。 コンストラクタで例外飛ばすなって話はC++ならメモリの回収がややこしくなるんで一利あるけど、JavaやC#なら問題ない。
- 397 名前:デフォルトの名無しさん [2017/10/30(月) 12:30:44.96 ID:FeUZMDfY.net]
- >>365
オブジェクトの責務とは?
- 398 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 12:38:10.73 ID:OufZdVP7.net]
- 遡及IDは嘘つかないな
ソノトキ何をしたかよりもソノアト何をしたかが一目瞭然である 便利でよろしい
- 399 名前:デフォルトの名無しさん [2017/10/30(月) 12:38:19.13 ID:FeUZMDfY.net]
- >>368
なんというか、それそのものは Java 自体の問題のようにも思えるね。 つまり、unsigned が型として用意されてないからとか、PASCALみたいに数値の範囲を指定した新たな型を作れないからとかね。 まあそういう数値型のクラスを自作してしまえば良いだけかも知れないが。
- 400 名前:デフォルトの名無しさん [2017/10/30(月) 12:47:31.30 ID:FeUZMDfY.net]
- >>386
そんなにそれを求めるなら最初からそれができない新言語作れば? 大丈夫。君にも作れるよ。実装までできなくても言語仕様考えてネットで晒してフォーラム作って議論してまとめ直してから作ってくれる人募集すればその内なんとかなるだろう。全てを君が作る必要はない。
- 401 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 12:53:44.32 ID:6Zg8+NGr.net]
- Google Apps Scriptで
www.pre-practice.net/2017/10/line-bot_22.html?spref=tw ここを参考にLINEBOTを作っていて、 文章中の特定の文字列に反応して返答するようにしたのですが、 else if (strpos(input_text, "寒い") !== false ) { reply_text = "もう冬だね"; } これを挿入しても反応してくれません。 何がいけないのでしょうか教えてください。 あと質問場所が適切でなければどこで聞けばいいか教えてください お願いします。
- 402 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 13:41:37.04 ID:3rz3HBcW.net]
- たまに生成されたクラスファイルが分割されることがあるんですがどういう条件で起きるんですかね?
ファイル容量の問題かと思いきや大きいものでも分割されてなかったり…
- 403 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 13:52:19.55 ID:4hMzyEUs.net]
- >>393
1ファイルに複数のクラスを書いてるんじゃない?
- 404 名前:391 mailto:sage [2017/10/30(月) 14:17:58.64 ID:6Zg8+NGr.net]
- >>392
これがPHPというのがわかりました スレ汚し失礼致しました。
- 405 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 15:15:46.44 ID:y0GY6LFV.net]
- >>393
インナークラスの悪寒… $付いてない?
- 406 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 15:50:40.06 ID:3rz3HBcW.net]
- >>395,396
色々調べてみたらどうもシリアライズ可能なクラス?というのが原因みたいでした… お手数おかけしました
- 407 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 18:18:23.77 ID:sRaOGV/D.net]
- >>363
final見逃してただけだった それなら尚更コンストラクタだね
- 408 名前:デフォルトの名無しさん [2017/10/31(火) 08:25:04.95 ID:OmcraJl8.net]
- >>360
範囲外の入力値エラーだろ private、つまりクラス内では、戻り値でエラーを示すが、 public、つまりクラス外では、例外でエラーを示す なぜなら、クラス内をコーディングしているのは、普通は同じ会社だから、 その会社内で規定したエラー値を使っても、見落としが少ない でも、クラス外の場合は、クラスをコーディングした会社と、異なる会社が使うから、 そのクラス内で規定したエラー値を使っては、いけない。 なぜなら、他社の人は、クラスのドキュメントを読まずに、クラスを使うから つまり、クラス外部の人に対しては、絶対にエラーが起こるように、例外を使う クラス内をコーディングする人と、そのクラスを使う人は、 異なる会社を想定している。 他社の場合は、クラスのドキュメントを読まないことを想定すべき 「スッキリJava」にも書いてある。 クラスを使う側と、フレームワークなど、他社が使うクラスを作る側の、 コーディングの違い。 他社を想定している場合は、全く違う この辺は、品質管理をやってないと知らないはず
- 409 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 08:35:40.63 ID:BBLfUUwS.net]
- >>399
どうしてもスッキリの宣伝をしなきゃ気が済まないようだな その一節がなけりゃいいのに
- 410 名前:398 mailto:sage [2017/10/31(火) 09:49:23.34 ID:OmcraJl8.net]
- 「スッキリJava」では、クラスの責務を、明確に分けている
前半は、クラスを使う側の知識で、 上級編はフレームワークなど、他社が使うクラスを作る側の知識 フレームワークを作る側では、検査例外を使って、コンパイルエラーにしないと、 ドキュメントを読まずに実行した客が、実行時エラーを起こして、 電話をかけてくるから、商売にならない 本を読んで、実行時エラーを起こした客が、出版社に電話をかけてくるだろ。 それと同じで、商売にならない だから例外にして、その例外をキャッチしない人は、実行できないようにする サポート契約をしない、無料相談の客をはじかないといけない。 無料で見積もりさせる客も
- 411 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 12:09:41.25 ID:QuyL7alo.net]
- 経営の話か
- 412 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 21:22:09.98 ID:BSBih/VQ.net]
- javaでWebアプリ作ってるのですがグラフ表示をしたいです
jfreechartとかchart.jsとか出てくるんですがおすすめとかってありますか?
- 413 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 21:22:56.96 ID:BSBih/VQ.net]
- 質問スレと間違えましたすみません。
- 414 名前:デフォルトの名無しさん [2017/11/02(木) 02:18:26.07 ID:BShD5IWlq]
- JavaでWEBアプリ作りたいんだが、やっぱJSP+サーブレットってやつをやるべき?
DBの処理(クエリとか)はサーブレットで、JSPは結果表示のみ、みたいに分ける方がいいの?
- 415 名前:デフォルトの名無しさん [2017/11/02(木) 15:08:48.76 ID:BShD5IWlq]
- WEBプログラミング板ってのがあるんすね。すま
- 416 名前:350です mailto:sage [2017/11/03(金) 17:28:51.99 ID:AmIWbkAj.net]
- >>381
しばらく2ちゃんを見れない状況だったので亀レスとなってしまいましたが、コンストラクタで例外投げるのが良くない理由をできれば聞きたいです
- 417 名前:デフォルトの名無しさん [2017/11/03(金) 17:36:15.65 ID:lQ0XoM3e.net]
- >>407
責務の分離ができてない証拠だから
- 418 名前:デフォルトの名無しさん [2017/11/03(金) 17:39:40.36 ID:lQ0XoM3e.net]
- コンストラクタっていうのはオブジェクトを初期化する特別な処理を書くところ
渡された値をそのまま何の加工もせずにフィールドにお納めするのが義務なんです
- 419 名前:デフォルトの名無しさん [2017/11/03(金) 17:42:31.79 ID:lQ0XoM3e.net]
- どうしても例外を投げたいならtryCreateというスタティックメソッドを作って
例外投げますよ作れないかもしれないですよということをメソッド名で 陽に示すべきだ、この処理は検証も含んでいますよと示すべきだ なぜならば検証も含むからだ、オブジェクトを作るメソッドなのにだ
- 420 名前:デフォルトの名無しさん [2017/11/03(金) 18:39:37.30 ID:lQ0XoM3e.net]
- FileStreamもコンストラクタで例外を投げるが
あの設計も大間違いだから コンストラクタでリソース確保しようとするのが完全に間違ってる closeの処理でリソースを解放するならばリソースを確保するのはopenだ openの責務をFileStreamは持つべきでそれはオブジェクトを初期化する コンストラクタとは役割が根本的に100憶パーセント異なるわけ
- 421 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 19:04:39.65 ID:9CXEo34m.net]
- >>409
何もしなかったら意味ないだろ…… 直通のゲッターセッターと同じただのお飾り
|

|