- 1 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 20:17:08.87 ID:N8MsK2gr0.net]
- Java初心者のためのスレッドです。
※前スレ Java入門・初心者質問スレ Part.7 mevius.5ch.net/test/read.cgi/tech/1515549964/ VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured
- 701 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 20:45:41.22 ID:GFYQON7a0.net]
- 難しい。
でも、頑張る
- 702 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 22:23:02.20 ID:gfMerkhba.net]
- 標準入力
0 1 で sc.nextとかsc.nextIntとかで 0を読み込んで また、読み込んだら 1になるけど 読み込んでも次の文字に移動しないで 0のまま読み込みできるような 方法ってありませんか?
- 703 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 09:54:01.25 ID:xNl+FZA5a.net]
- プログラミングは面倒なものだ。
でも頑張る。
- 704 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 11:22:14.61 ID:TktsfVtm0.net]
- プログラミング学習において一番やっちゃいけないこと
それはただやみくもに学習を続ける事
- 705 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 11:24:12.48 ID:qIK5QusDd.net]
- ここにいる人が最初に何作ったか気になる
- 706 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 11:53:41.32 ID:yLOLSFfea.net]
- 高校生の頃に簡単なシューティングゲーム作った
- 707 名前:デフォルトの名無しさん [2018/10/30(火) 12:30:56.41 ID:8/9eZ6sC0.net]
- 歴史年表をデータ化して
ランダム4択クイズみたいの作ってたなあ 当時はDBなんて知らないから ソースにベタ書きだが
- 708 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 14:16:50.97 ID:u5gp0FkU0.net]
- 自動釣銭機のファームウェアだったわ
- 709 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 19:16:14.83 ID:u4NMPEb2d.net]
- >>677
スッキリJavaの入門終わったくらいなんだけど、そこからだとどういう知識付けていったら作れるかな フレームワークとかまだよくわかってなくて
- 710 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 19:53:26.35 ID:yLOLSFfea.net]
- >>680
Javaではゲーム作ったことないからよく分からんけど、 Java ゲーム とかでググるとそれっぽい本がいくつか出てくるからそこらへんを適当に一冊選んで丸写ししてみればいいんじゃないかな
- 711 名前:デフォルトの名無しさん [2018/10/30(火) 20:45:03.24 ID:xkGCjv5u0.net]
- >>673
標準ライブラリには用意されてないんで自作する感じで https://paiza.io/projects/qS8nTKNW3exoY87rvTwdsg?language=java
- 712 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 21:34:59.67 ID:29XJYIaEa.net]
- >>682
ご丁寧にありがとうございます m(_ _)m 私はまだまだ勉強しなきゃいけない事が多いようですw
- 713 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 22:19:01.39 ID:tLch1bmf0.net]
- YouTube にある、T Umezawa の動画が有名
【Java】ゲームプログラミング超入門 https://youtu.be/FsRHdL_r0pE?list=PLJ86MSrhnFKVQPf-E8y0FZKv7uzR4L4Dt Windows8.1とJava8の組み合わせによる最新版:youtu.be/Wp34YbKfWag C#版: https://youtu.be/zSiER0sxexw 次:youtu.be/_MY7yPD58JE
- 714 名前:デフォルトの名無しさん [2018/10/31(水) 12:51:34.27 ID:umCB7isma.net]
- 最初に?というとこんなやつかな。
10 PRINT "*"; 20 GOTO 10
- 715 名前:デフォルトの名無しさん [2018/10/31(水) 15:52:18.08 ID:P9zyHHGGM.net]
- *
* * * * * * * * * BREAK AT 10 ロ
- 716 名前:デフォルトの名無しさん [2018/10/31(水) 17:19:04.35 ID:umCB7isma.net]
- マイコンの素晴らしさに感動。
これがあればなんでもできる。 と、本気で思った。
- 717 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 17:35:46.14 ID:WYczTFcia.net]
- Javaがあれば何でも叶う!
- 718 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 17:38:20.63 ID:WYczTFcia.net]
- Javaで夢が広がる!
- 719 名前:デフォルトの名無しさん mailto:sage [2018/11/03(土) 16:41:01.50 ID:5ctS1VyRa.net]
- 才能ないけど頑張ってます。
- 720 名前:デフォルトの名無しさん [2018/11/04(日) 11:32:46.08 ID:hQdPSgHl0.net]
- ブリッジパターンの応用手順のブログみたい。パッケージを開発する時を前提にしているね。
https://blogs.yahoo.co.jp/kamyu_2010/35480077.html
- 721 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 11:56:02.10 ID:BezIGIRZa.net]
- 定期的にクソ見辛いブログをステマしていくやつなんなの
- 722 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 13:56:16.32 ID:66vK87J40.net]
- 全くの未経験で転職先でjavaを使用するという事で学習していこうと思ってるんだけど
先にHTML、CSSからやっていかないとダメな感じ?
- 723 名前:デフォルトの名無しさん [2018/11/04(日) 15:02:34.71 ID:eEexL0w40.net]
- \ ∩─ー、
\/ ● 、_ `ヽ / \( ● ● |つ | X_入__ノ ミ 俺は釣られないクマ ・・・ 、 (_/ ノ \___ノ゙ / 丶' ⌒ヽ::: / ヽ / /::: / /へ ヘ/ /::: / \ ヾミ /|::: (__/| \___ノ/:::
- 724 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 17:42:51.19 ID:hcv1KEF/a.net]
- 頑張ります!
- 725 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 23:00:14.19 ID:l3etVQHq0.net]
- javascriptがjavaの仲間だと思っていた時期が俺にもありました…
- 726 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 09:00:32.02 ID:SxXiYgd60.net]
- 今でもそう思ってます
- 727 名前:デフォルトの名無しさん [2018/11/05(月) 09:20:20.54 ID:fSW0Oxfca.net]
- 悔い改めよ
- 728 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 10:40:33.26 ID:9O10s3S2d.net]
- むしろ今となってはjavascriptのほうが使いやすい
- 729 名前:デフォルトの名無しさん [2018/11/05(月) 11:13:59.19 ID:fSW0Oxfca.net]
- 慣れの問題と何を作るかの問題だな。
- 730 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 11:22:08.13 ID:/yhagSUO0.net]
- ブラウザと周辺ライブラリの進歩がデカイ
- 731 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 00:13:10.82 ID:lOm/SiQT0.net]
- わからん。。。
嫌になる でも、頑張る
- 732 名前:デフォルトの名無しさん [2018/11/11(日) 21:19:15.74 ID:ajreNdVSa.net]
- ttps://pastebin.com/5QkYYhdg
Stringのインデックスエラーが出るのですが、何かいけないのでしょうか?
- 733 名前:デフォルトの名無しさん [2018/11/11(日) 21:22:14.23 ID:B3f/927da.net]
- Java有料化で仕事無くなるかもなのに頑張るのか。。。
- 734 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 21:28:16.21 ID:/etMYVvT0.net]
- 無くなるの?
- 735 名前:デフォルトの名無しさん [2018/11/11(日) 21:56:52.92 ID:B3f/927da.net]
- Java有償化まとめ
https://mevius.5ch.net/test/read.cgi/tech/1532325790/
- 736 名前:デフォルトの名無しさん [2018/11/11(日) 23:54:14.92 ID:/c5AFHPv0.net]
- >>703
charIndexがリセットされないのがいけない "123456"を表示するときにcharIndexは0から5に増えて "7"を表示するときにcharIndexは5だからNG
- 737 名前:デフォルトの名無しさん [2018/11/12(月) 19:49:08.82 ID:x1RQowFZa.net]
- >>707
ありがとうございます。 breakの前にcharIndex=0を設定することでエラーは解消されました!
- 738 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 07:04:39.94 ID:F2s/LBqta.net]
- 同じ文字を含まないっていう正規表現があるなら教えて欲しいです。
例 マッチする abc acb bac bca cab cba マッチしない aab cbc
- 739 名前:デフォルトの名無しさん [2018/11/15(木) 07:19:32.06 ID:xSjlziKZ0.net]
- >>709
ないです、素朴に数えましょう
- 740 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 07:27:10.15 ID:AxNEuJ7Oa.net]
- そうですか残念です。
- 741 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 08:34:12.11 ID:g74yzjtM0.net]
- Ruby なら、uniq で、配列内の重複した要素を削除できるから、それで文字数を数えて比較すれば?
split で1文字ずつ、配列の要素にする str = "abca" str.length #=> 4 str.split( "" ).uniq.length #=> 3
- 742 名前:デフォルトの名無しさん [2018/11/15(木) 09:43:30.75 ID:RDhHOc3na.net]
- >>709
同じ文字を含むなら (.).*\1 でできると思うので、プログラムの側でこれにマッチしないものを処理すれば良いのではないかな。
- 743 名前:デフォルトの名無しさん [2018/11/15(木) 13:03:21.57 ID:lNkjj0jra.net]
- >>709
重複要素の無いコレクション https://docs.oracle.com/javase/jp/8/docs/api/java/util/Set.html >>712 Rubyならじゃねえ。 Javaに同じ機能無いかくらい調べやがれ。 こちとら10年くらいJava触ってねーぞ。
- 744 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 15:12:37.43 ID:pPH/bz/I0.net]
- >>713
ありがとうございます。 参考にさせてもらって、その正規表現の効果をぐぐって見て 自分でもいけそうな気がしたのですが。 NGになってしまいます。 何が間違えてますか・・・ String a ="aac"; if(a.matches("(.).*\1")){ System.out.println("OK"); }else{ System.out.println("NG"); } >>712 >>714 ありがとう、ございます。 それらとは別のやり方ですがヒントになりました。 特定の文字をAllreplaceで""にして原本とのlength()の差で 選別する感じでひとまずいけました。
- 745 名前:114 [2018/11/15(木) 15:16:26.15 ID:lNkjj0jra.net]
- >>715
解決したようで何より。
- 746 名前:デフォルトの名無しさん [2018/11/15(木) 15:17:43.39 ID:RDhHOc3na.net]
- >>715
\ 記号はエスケープ文字なので \\ にする。
- 747 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 15:32:48.07 .net]
- ありがとうございます。
\\でもNG出て if(a.matches(".*(.).*\\1.*")){ にさせてもらったら 期待通りの結果がでるようになりました。 ありがとうございました。
- 748 名前:デフォルトの名無しさん [2018/11/15(木) 16:12:34.80 ID:RDhHOc3na.net]
- あー。そうか。matches() は前後に暗黙の ^$ が入るんだったな。
- 749 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 19:45:12.42 ID:y/xxNwdx0.net]
- 配列変数の宣言と配列を作成する文において、配列の型を2回記述しないと
いけない理由は何ですか? 例) int[] array = new int[5]; インスタンス変数の宣言文と似ていますが、もしかして配列においても 多態性が使えるんですか?
- 750 名前:デフォルトの名無しさん [2018/11/15(木) 20:07:38.69 ID:RDhHOc3na.net]
- 元々Javaは型推論しない言語だからなあ。
- 751 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 20:56:36.68 ID:zE6igjOyd.net]
- bronzeの問題見てるけどインクリメントの後置やらfor文のブロック省略やら、引っ掻けたいだけの問題多すぎない?
- 752 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 21:05:38.09 ID:cJq6eeYEa.net]
- >>720
理由と言われても、そう言う言語仕様だから。もう20年以上前に設計された言語だから、今の基準で見たら冗長な表現が多々ある。 あと配列においても多態性が〜、の部分は何が言いたいのか分からない。
- 753 名前:720 mailto:sage [2018/11/16(金) 00:48:09.83 ID:weOG1xUa0.net]
- >>723
ありがとうございます。 その部分は勝手な憶測なので気にしないで下さい。 例えば、int型はdouble型に型変換されることもあり得るので、 例) double[] array2 = new int[5]; のような記述が出来るのかな?と思っただけです。
- 754 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 06:24:36.92 ID:cFUtGW68a.net]
- >>724
それは多態性というか暗黙的なキャストだな。 Javaではそれは出来ない。暗黙的キャストは便利なこともある反面、意図しないキャストでバグを生み出す可能性があるからJavaの設計思想とは相容れない。
- 755 名前:デフォルトの名無しさん [2018/11/16(金) 07:10:27.50 ID:tlDZCd2g0.net]
- >>724
子の型の代入を認めるのを共変というのだけれども 配列の型は共変だから型が継承関係にあるならば代入できるよ Number[] a; a = new Integer[5]; a = new Double[5];
- 756 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 08:33:57.46 ID:mPcqV91P0.net]
- >>722
まぁ自分が何気なく書いて意図した結果にならなくて混乱するようなことになるなよってことだと思う
- 757 名前:デフォルトの名無しさん [2018/11/16(金) 16:52:39.39 ID:OkLwTKGUM.net]
- >>722
プログラミング言語の資格はそういうもの。 そもそもC言語の影響を受けた言語では細かい部分を知っていないと、他人が書いたコードが読めない。
- 758 名前:720 mailto:sage [2018/11/16(金) 18:52:17.01 ID:weOG1xUa0.net]
- >>725
ありがとうございます。 >>726 ありがとうございます。プリミティブ型は継承関係に無いから駄目ですね。
- 759 名前:デフォルトの名無しさん mailto:sage [2018/11/17(土) 17:43:14.07 ID:/eM8wfkM0.net]
- https://qiita.com/syu_chan_1005/items/46f94412f7493d6e60eb
このサイトに従ってBuild ArtifactsまでしてコマンドプロンプトでIdeaProjects\test\out\artifacts\test_jarから 「java test」 と実行したのですが 「エラー: メイン・クラスtestが見つからなかったかロードできませんでした」 と言われ実行できません。どのようにすればよろしいでしょうか。
- 760 名前:デフォルトの名無しさん mailto:sage [2018/11/17(土) 17:58:07.43 ID:/eM8wfkM0.net]
- >>730
自己解決しました。 .jarをjavaで走らそうとしたのが問題だったみたいで、 java -jar test.jarと入力したら無事出力されました。
- 761 名前:デフォルトの名無しさん mailto:sage [2018/11/18(日) 13:21:56.54 ID:KOW7JXzwa.net]
- やだ〜へこむ〜
- 762 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 17:22:08.06 ID:ZS5AqKuz0.net]
- スッキリわかるJava入門の第8章の練習問題を解き、以下のような
Clericクラスを作ったのですが、 https://pastebin.com/EZdvVESb 英語にすると訳が分からなくなる言葉もあったので、それらはローマ字に した結果、英単語とローマ字が混在するコードになってしまったのですが、 問題でしょうか?
- 763 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 18:13:02.26 ID:vHw2N8A80.net]
- >>733
自分1人しか弄らないなら好きにすればいいよ。 どうせならローマ字じゃなくて漢字や平仮名を使って日本語でそのまま命名することもできるから試してみるといい。 ただし一般論、というか仕事でやる開発なら英語で統一するのが普通なのでそれは忘れちゃいけない。
- 764 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 18:31:24.19 ID:Je8g3va9d.net]
- 入門に出てくるようなクラス名は普通に出てくる単語ばっかだろうからさっさと覚えたほうがいいでしょ
- 765 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 18:39:15.60 ID:97DIZmBta.net]
- >>733
ソース見たけど、確かにkaifukuryoとか死ぬほど読みにくいから、これならいっそ「回復量」の日本語でもいいと思うw
- 766 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 18:40:59.11 ID:97DIZmBta.net]
- うちの社内システムは何年も前から部分的に日本語変数名も使ってるけど、特に問題が起きたことはないよ
ただこの話題で議論が紛糾して荒れるのをネットで見かけるから、何がなんでも絶対に許さない人達がいるのは間違いないw
- 767 名前:デフォルトの名無しさん [2018/11/19(月) 20:51:25.27 ID:C68x9bSia.net]
- うちの会社でうっかりそんなことしたら中国語で溢れるよ。あとドイツ語と英語。
あ、英語はいいのかw
- 768 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 23:59:34.33 ID:qLcuYLw7a.net]
- 総称型配列を生成したい…リフレクション使えばいける?
- 769 名前:733 mailto:sage [2018/11/20(火) 00:24:59.86 ID:n8v7mGgD0.net]
- 答えてくれた方、ありがとうございました。
なるべく英語で行くようにしたいと思います。
- 770 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 00:28:00.33 ID:MPotoW9R0.net]
- ローマ字は特に気にしないけどおかしな英語だとモヤる
登録でregistってなんやねん
- 771 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 01:25:13.23 ID:+ftLPXCpa.net]
- >>739
Array.newInstanceの結果をダウンキャスト 警告が出るが気にしない 外から引数でClass<T>を受け取るようにすれば多少はタイプセーフ風な雰囲気を醸し出せるかもしれない Javaのジェネリックがハリボテの糞と呼ばれる所以だ
- 772 名前:デフォルトの名無しさん [2018/11/20(火) 01:33:24.00 ID:8KtihEK80.net]
- >>741
すまん。昔量産してしまった 区分フラグとかも
- 773 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 01:42:27.99 ID:MPotoW9R0.net]
- >>743
まあモヤるレベルだから別にいいんだけどさ 終わりの見えない関数とか、読み解くと結局意味のない処理とか、Objectに全てを詰め込み中身を変えまくる黒魔術に比べたら可愛いもんさ、ハハハ…… []- [ここ壊れてます]
- 775 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 01:55:25.40 ID:X8QFm2fdM.net]
- Javaのジェネリクスが単なるObjectのシンタックスシュガーであることを考えると、
総称型の配列などというものは存在自体が常に虚偽であり明らかに矛盾していることがわかるだろう Javaで総称型の配列が欲しいときは、ArrayList<>(これは実はObject[]をラップしている)を使うか、 単にObject[]を使っておいて辻褄合わせが必要なときに要素を適宜ダウンキャストしてやるかのどちらかだ Javaのジェネリクスでは型の整合性を維持するのはジェネリックなメンバやクラスを作るプログラマの責任なんだよ 通常のアプリケーションコードで積極的に作るものではない
- 776 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 22:41:13.06 ID:QYuuoNJVd.net]
- silverの問題集の解説見ながら勉強してるけどコンスタントプールってのがあるんだなぁ(こなみかん)
- 777 名前:デフォルトの名無しさん [2018/11/23(金) 21:42:39.82 ID:UR66aWLO0.net]
- cyclopsを使ってダサいTRY-CATCHを改善してみたがカッコイイ
public static javafx.scene.image.Image loadImageFromFile(@NotNull Path path, double w, double h) { return Try.withResources(() -> new FileInputStream(path.toFile()), stream -> new javafx.scene.image.Image(stream, w, h, true, true), IOException.class) .onFail((e) -> GUICommon.debugMessage("loadImageFromFile >> File not found : " + path.toString())) .get() .orElse(null); } public static javafx.scene.image.Image loadImageFromURL(@NotNull URL url, double w, double h) { return Try.withCatch(url::openConnection) .peek(conn -> conn.setRequestProperty("User-Agent", "Wget/1.13.4 (linux-gnu)")) .peek(conn -> conn.setRequestProperty("Referer", customReferrer(url, null))) .flatMap(conn -> Try.withResources(conn::getInputStream, stream -> new javafx.scene.image.Image(stream, w, h, true, true), IOException.class)) .onFail((e) -> GUICommon.debugMessage("loadImageFromURL >> Cannot get image from : " + url.toString())) .get() .orElse(null); }
- 778 名前:デフォルトの名無しさん mailto:sage [2018/12/01(土) 03:52:43.89 ID:dszPmHpM0.net]
- clone()メソッドについて質問です。
https://pastebin.com/iabGmAun 上記のBookクラスにおいて、フィールドに、Date型のpublishDateがあるのですが、 これをclone()でコピーするにあたっては深いコピーにする必要があるみたいなのですが、 String型は浅いコピーでよくてDate型は深いコピーにしないといけない理由は 何故でしょうか?
- 779 名前:デフォルトの名無しさん [2018/12/01(土) 11:04:34.18 ID:5cBxQ4wD0.net]
- >>748
Date型は状態を変えられるから たとえば単純にコピーするだけだと こうなる Book ┬ Date ─ 2018/12/01 Book ┘ Date.setTimeで状態を変えることができて コピー先のBookの日付を変えると コピー元のBookの日付も変わる Bookごとに日付が異なるなら BookをコピーするときにDateをコピーしないといけない Stringは状態を変えられないから 同じものを参照しても問題ない
- 780 名前:748 mailto:sage [2018/12/01(土) 12:12:49.53 ID:dszPmHpM0.net]
- >>749
丁寧にありがとうございました。
- 781 名前:デフォルトの名無しさん mailto:sage [2018/12/02(日) 19:47:16.98 ID:6vF3BQAf0.net]
- 何でもいいから例外をなげたいんですけど
例外で調べても catch のサンプルばかりで投げ方がわかりません
- 782 名前:デフォルトの名無しさん [2018/12/02(日) 19:48:34.29 ID:4+IlSjWZ0.net]
- >>751
throw new Exception("テスト"); これでおk
- 783 名前:デフォルトの名無しさん mailto:sage [2018/12/02(日) 20:02:05.39 ID:6vF3BQAf0.net]
- >>752
new でふつうにclassみたいに作れるんですね ありがとうございました
- 784 名前:デフォルトの名無しさん [2018/12/02(日) 21:44:32.63 ID:324yNEli0.net]
- 基礎からのサーブレット Servlet/jsp 2009
この本で勉強するのは古すぎか?
- 785 名前:デフォルトの名無しさん mailto:sage [2018/12/03(月) 07:20:06.09 ID:ygSmLhmHa.net]
- >>753
みたいにっていうか、クラスだから。 Exceptionを継承して独自の例外クラスも作れる。
- 786 名前:デフォルトの名無しさん mailto:sage [2018/12/03(月) 07:21:19.23 ID:ygSmLhmHa.net]
- >>754
古すぎる。古文書レベル。 役に立たないどころか現代ではやってはいけないとされてるやり方が載ってる可能性もあるから、それを覚えてしまってむしろマイナスになるまであり得る。
- 787 名前:デフォルトの名無しさん mailto:age [2018/12/03(月) 08:28:43.59 ID:sGONNGUuM.net]
- エスアイアーではまだ十分役に立つよ
- 788 名前:デフォルトの名無しさん mailto:sage [2018/12/03(月) 18:42:47.05 ID:C4qy2S1/0.net]
- 列挙型のフィールドを持つクラスを作ったのですが……
同じ列挙型を2つ持たせる場合があるものの、1つのみ持つ場合もあることで問題が発生しています コンストラクタ引数で列挙型指定する際に、必ず1つ指定するが、2つ目は(言うなら)nullでも構わない 列挙型の中にnull相当のものを追加してもよいと思ったのですが、それが1つ目に指定されてしまうと困るので追加したくない……という状態です 具体的には、いくつかの属性を列挙型で指定し、サブ属性は(同じ内容+(サブ属性なし))というかたちにしたいのです サブ属性用に(同じ内容+なし)の列挙型を追加するしかないでしょうか……
- 789 名前:デフォルトの名無しさん [2018/12/03(月) 19:43:01.66 ID:SSwMcRlR0.net]
- >>758
引数チェックして例外投げればいんじゃない? https://paiza.io/projects/smPMtDarEAoBp1uNWPYm8w?language=java
- 790 名前:デフォルトの名無しさん mailto:sage [2018/12/03(月) 20:03:14.72 ID:YDqptBck0.net]
- >>754
つか、古すぎてその本に書いてあるバージョンの開発環境を用意する時点で挫折すると思う。
- 791 名前:デフォルトの名無しさん mailto:sage [2018/12/03(月) 20:22:15.78 ID:C4qy2S1/0.net]
- >>759
そうか、1つ目にnull入れられないようにチェック入れりゃよかったんですね エラーを使う発想がなかった
- 792 名前:デフォルトの名無しさん [2018/12/03(月) 20:50:22.63 ID:6IhUZ/y0a.net]
- >>758
どういう状況なのかよくわからない。 同じメソッド名で一つの引数のやつと二つの引数のやつ作れば良いだけってことない? つまりメソッドのオーバーロード。
- 793 名前:デフォルトの名無しさん mailto:sage [2018/12/03(月) 21:24:42.76 ID:C4qy2S1/0.net]
- >>762
それだと後々面倒だという理由があったような気がするんだけどむしろ後々表示するときに処理考えたほうが簡単に済みそうな気もしてきました…… こういう設計?ってどういう順番でやってくもんなんでしょうか
- 794 名前:デフォルトの名無しさん mailto:sage [2018/12/03(月) 21:29:04.09 ID:C4qy2S1/0.net]
- データを呼び出して表示する目的だったので、とりあえずtoStringのオーバーライドができてからデータ登録用のコンストラクタを調整していくことにしました
- 795 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 07:39:08.42 ID:aQtlFGVia.net]
- 拡張for文って配列でもコレクションでも動作しますよね?
ということは、双方に共通するクラスなりインターフェースなりがあるのでしょうか? 配列またはコレクションを引数に取る関数を作りたくて、内部処理は同じなので、オーバーロードではなく一つの関数で済ませたいのですが
- 796 名前:デフォルトの名無しさん mailto:age [2018/12/05(水) 08:50:55.63 ID:uTDw63xLM.net]
- >>765
共通のインターフェースは存在しないです コンパイラがIterableか配列か判断して処理します オーバーロードを使いましょう
- 797 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 12:36:33.07 ID:1UnNMx3Qa.net]
- >>766
ありがとうございます それともう一つ質問させてください リストを引数に取ってリストを返す関数で、よく public <T> List<T> hoge(List<T> list){ // 何らかの処理 } のように書きますが、この引数のリストがArrayListならArrayListを、LinkedListならLinkedListを、といったように、引数と同じ型のインスタンスを返したいです ポリモーフィズムというよりは型クラスのイメージです 境界化して public <A extends List<T>, T> A<T> piyo(A<T> list){} のように書いてみましたが、「型Aは総称ではありません」とエラーになりました。 ワイルドカードなどを使えばいいのでしょうか? というかあまりJava的な書き方ではないですかね?
- 798 名前:デフォルトの名無しさん mailto:age [2018/12/05(水) 13:09:26.62 ID:uTDw63xLM.net]
- >>767
引数の型と戻り値の型をAにすればいんじゃないでしょうか 私はそういうの必要になったことがないです List返すぜヒャッハーなコードしか書いたことないです Javaでそういうの書きまくってる世紀末ジェネリック伝説 みたいな人もいると思いますけど
- 799 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 15:53:00.93 ID:1UnNMx3Qa.net]
- >>768
何度もありがとうございます 混乱させるのも嫌なので普通の書き方に準拠します Javaは慣れてないので勉強します
- 800 名前:デフォルトの名無しさん [2018/12/05(水) 16:52:13.39 ID:ifntcr/4a.net]
- >>767
LinkedListってArrayListやListと用途が違う気が。。。 素直に?オーバーロードで良いんじゃ無いか? 多態性はジェネリックだけにあらずよ? (と言うか、Java初期にはジェネリック無かったし)
|

|