プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理 http://pc11.2ch.net/hp/
Webプログラミング http://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質問・相談スレッド182★★
https://mevius.5ch.net/test/read.cgi/tech/1542595026/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
★★Java質問・相談スレッド183★★
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 7f9f-FhGp)
2020/05/06(水) 22:12:08.99ID:q8N1X/Ij0490デフォルトの名無しさん (ワッチョイ d32c-G8Sl)
2020/09/30(水) 11:27:11.40ID:/dbaz1tV0 未経験なら、Ruby 一択!
他の言語は、挫折確率が非常に高い。
だから、全ての学校は、Rubyばかり教える
そして、ベンチャー企業は、Ruby on Rails ばかり採用する
他の言語は、挫折確率が非常に高い。
だから、全ての学校は、Rubyばかり教える
そして、ベンチャー企業は、Ruby on Rails ばかり採用する
491デフォルトの名無しさん (アウアウカー Sa87-vZte)
2020/09/30(水) 12:15:11.36ID:NNWpaWfqa >>485
自分も40過ぎです、いっしょにJavaやりませう
自分も40過ぎです、いっしょにJavaやりませう
492デフォルトの名無しさん (ワッチョイ c3f1-buUt)
2020/09/30(水) 12:55:51.77ID:xxSg96Gs0 >>485
オレは30代のハゲです。いっしょにJavaやろうじゃないか。
オレは30代のハゲです。いっしょにJavaやろうじゃないか。
493デフォルトの名無しさん (ワッチョイ cfda-2+Dn)
2020/09/30(水) 14:47:17.30ID:wi0xobvb0 >>490
頭はげるぞ
頭はげるぞ
494デフォルトの名無しさん (ブーイモ MMe7-VUFZ)
2020/09/30(水) 15:15:57.62ID:/J4p2JyLM >>490
お前新潟で降機させられて逮捕連行されてたんじゃないの?
お前新潟で降機させられて逮捕連行されてたんじゃないの?
495デフォルトの名無しさん (テテンテンテン MM7f-qoK8)
2020/09/30(水) 15:47:07.60ID:nu6JtwLBM >>490
どこの学校もPythonだぞ
どこの学校もPythonだぞ
496デフォルトの名無しさん (ワッチョイ 9f40-ZhtZ)
2020/10/18(日) 16:27:46.35ID:/wBkmO6c0 数学の「型付きラムダ計算」とは?
javaのラムダは型付き?
v -> v.toString()
こんな風に書いたとき、引数vもtoString()の返値も型を持ってるけど、
そのことなんだろうか?
javaのラムダは型付き?
v -> v.toString()
こんな風に書いたとき、引数vもtoString()の返値も型を持ってるけど、
そのことなんだろうか?
497デフォルトの名無しさん (ワッチョイ 4bda-lr1q)
2020/10/18(日) 17:00:24.67ID:0AL6/NwJ0 つぶやきはtwitterにでも書いておけ
498デフォルトの名無しさん (ワッチョイ fb01-ntOo)
2020/10/18(日) 21:03:23.09ID:oU6L/1KQ0 世界最強のユーチューバー、2019年の年収は約76億円 ゲーム実況でブレイク
https://www.wwdjapan.com/articles/994609
7歳児が年俸25億円!「ユーチューバー」収益の仕組みを全解剖
https://diamond.jp/articles/-/194240
月収8億超えのYouTuberは6歳の女の子!世界各国で最も人気のYouTuberをマップにしてみた
https://news.yahoo.co.jp/articles/ec9f6e431ac8bdcfdfe02e21220888e59583f475
個人としては史上初のチャンネル登録者数1億人超えYouTuberが誕生
https://gigazine.net/news/20190827-pewdiepie-youtube-100-million-subscribers/
20歳のYouTubeスターが購入、約8億円の豪邸を拝見
https://www.businessinsider.jp/post-107308
『2ヵ月で20億円』集めろ!有名ユーチューバーたちの「地球規模」の活動に寄付殺到
https://www.excite.co.jp/news/article/Frontrow_79b68120b00f0fdcefb17b65e2a6b0d70dceee3d/
24歳ユーチューバーはどうして大学卒業後に就職せず、フルタイムのインフルエンサーになったのか
https://www.businessinsider.jp/post-203042#cxrecs_s
食事をするだけで30万? 料理を作るだけで10万? アイデアで何気ない日常を副業にするユーチューバーの世界
https://www.sanspo.com/geino/news/20200131/prl20013110020028-n1.html
世界のYoutuber年収ランキング10選!超弩級に稼ぎまくり!
https://cambridge-india.org/sekai-youtuber-nensyu/
https://www.wwdjapan.com/articles/994609
7歳児が年俸25億円!「ユーチューバー」収益の仕組みを全解剖
https://diamond.jp/articles/-/194240
月収8億超えのYouTuberは6歳の女の子!世界各国で最も人気のYouTuberをマップにしてみた
https://news.yahoo.co.jp/articles/ec9f6e431ac8bdcfdfe02e21220888e59583f475
個人としては史上初のチャンネル登録者数1億人超えYouTuberが誕生
https://gigazine.net/news/20190827-pewdiepie-youtube-100-million-subscribers/
20歳のYouTubeスターが購入、約8億円の豪邸を拝見
https://www.businessinsider.jp/post-107308
『2ヵ月で20億円』集めろ!有名ユーチューバーたちの「地球規模」の活動に寄付殺到
https://www.excite.co.jp/news/article/Frontrow_79b68120b00f0fdcefb17b65e2a6b0d70dceee3d/
24歳ユーチューバーはどうして大学卒業後に就職せず、フルタイムのインフルエンサーになったのか
https://www.businessinsider.jp/post-203042#cxrecs_s
食事をするだけで30万? 料理を作るだけで10万? アイデアで何気ない日常を副業にするユーチューバーの世界
https://www.sanspo.com/geino/news/20200131/prl20013110020028-n1.html
世界のYoutuber年収ランキング10選!超弩級に稼ぎまくり!
https://cambridge-india.org/sekai-youtuber-nensyu/
499デフォルトの名無しさん (ワッチョイ fb02-rsky)
2020/10/29(木) 13:28:54.77ID:5PDD4zWJ0 JavaDoc に tl;dr 項目入れてくれ
正確で詳細な仕様が必要な場面より、
パット見で理解できる要約文や具体例が必要な場面のほうが多い
正確で詳細な仕様が必要な場面より、
パット見で理解できる要約文や具体例が必要な場面のほうが多い
500デフォルトの名無しさん (ワッチョイ 919c-w6bb)
2020/10/29(木) 15:51:38.63ID:2rpDqgej0 それはいいね
最近はIDEでJavadocポップアップするのが当たり前になってるから
要約ブロックがあればJavadocポップアップにも適していると思う
最近はIDEでJavadocポップアップするのが当たり前になってるから
要約ブロックがあればJavadocポップアップにも適していると思う
501デフォルトの名無しさん (ワッチョイ fb02-rsky)
2020/10/30(金) 08:40:24.61ID:5ayF+PMf0 Reflection とか Annotation とか使いだして整理しようとすると、
Generics で型情報が消去されるのがほんとうんkですね…
将来的にどうにかできんのですかね…
互換性っていうけど、どの部分の互換性が崩れるんだろ
List<String> list;
みたいな宣言から、String は取り出せるんだけど
List<T>
みたいな宣言から、実行時にはじめて決定する型情報を引き出そうとすると無理になる
引数に Class<?> 渡せば良いんだけど、もにょる
stream の toArray とかも、配列 new せんとあかんのかいってなるよね…
Generics で型情報が消去されるのがほんとうんkですね…
将来的にどうにかできんのですかね…
互換性っていうけど、どの部分の互換性が崩れるんだろ
List<String> list;
みたいな宣言から、String は取り出せるんだけど
List<T>
みたいな宣言から、実行時にはじめて決定する型情報を引き出そうとすると無理になる
引数に Class<?> 渡せば良いんだけど、もにょる
stream の toArray とかも、配列 new せんとあかんのかいってなるよね…
502デフォルトの名無しさん (ワッチョイ fb02-rsky)
2020/10/30(金) 09:01:16.26ID:5ayF+PMf0 でも原理的に取り出すのが無理ってわけではないよね
class ファイルにも型情報ないし、その総称型のコードの実行部分でも、そのオブジェクトの指すポインタからは(List の中身がつまってなければ)型はわからないけど
コンストラクタなり、メソッドの呼び出し側は実際の型を知ってるよね多分
callGenericMethod(List<T> arg);
ってメソッドがあったとして、呼び出し側クラスのフィールドに、
List<String> list
って宣言があればスタックを戻っていけば型情報とれるけど、例えば、
void hoge() {
callGenericMethod(new ArrayList<String>());
}
みたいなメソッド内の呼び出しでも、Stack 探せば型情報ってあるよね
Reflection でローカル変数の情報引き出せないとすると、デバッガ関連のAPI で、コード領域のメモリ検索してみたいなことしないといかんのか
JVM 側にそういう機能があれば可能になるんじゃなかろうか
デバッガ全部実装ってなると処理重いだろうけど、こういう局所的な機能だとどうなんだろ
無理なんかな
class ファイルにも型情報ないし、その総称型のコードの実行部分でも、そのオブジェクトの指すポインタからは(List の中身がつまってなければ)型はわからないけど
コンストラクタなり、メソッドの呼び出し側は実際の型を知ってるよね多分
callGenericMethod(List<T> arg);
ってメソッドがあったとして、呼び出し側クラスのフィールドに、
List<String> list
って宣言があればスタックを戻っていけば型情報とれるけど、例えば、
void hoge() {
callGenericMethod(new ArrayList<String>());
}
みたいなメソッド内の呼び出しでも、Stack 探せば型情報ってあるよね
Reflection でローカル変数の情報引き出せないとすると、デバッガ関連のAPI で、コード領域のメモリ検索してみたいなことしないといかんのか
JVM 側にそういう機能があれば可能になるんじゃなかろうか
デバッガ全部実装ってなると処理重いだろうけど、こういう局所的な機能だとどうなんだろ
無理なんかな
503デフォルトの名無しさん (ブーイモ MMcb-Ezn+)
2020/10/30(金) 09:52:16.84ID:5giIBuWJM genericsがなかったとき、Listの要素はすべてObjectだった。その頃との互換性。
今でもListをコンパイルするとObjectのリストになる。
実行時の型情報はgetClassで取得できると思うけど
今でもListをコンパイルするとObjectのリストになる。
実行時の型情報はgetClassで取得できると思うけど
504デフォルトの名無しさん (ワッチョイ f99f-wWLy)
2020/10/30(金) 09:59:28.66ID:EBRgydAT0 型消去の利点はコンパイル結果のclassファイルの互換性を保ち仕様変更を抑えられるところ
Java5で書いたコードを1.4以前の環境でも動かせたりする
classを相手にしないといけないツールやミドルウェアへのインパクトが小さい
型消去で妥協したからこそJava5でgenericsを導入できたしダメならJavaはより早く衰退していた可能性もある
Java5で書いたコードを1.4以前の環境でも動かせたりする
classを相手にしないといけないツールやミドルウェアへのインパクトが小さい
型消去で妥協したからこそJava5でgenericsを導入できたしダメならJavaはより早く衰退していた可能性もある
505デフォルトの名無しさん (テテンテンテン MMeb-z5gY)
2020/10/30(金) 11:10:49.23ID:hrZSGYbOM それはよくある迷信というか当時のSunの詭弁
そもそもジェネリクスを使うにはJava1.5以降のランタイムが必要なんで、Javaを利用する立場ではバイトコードの互換性には実質的に何の意味もないのよ
ジェネリクスが残念仕様になったのはひとえに当時のSunに金がくてJVMに手を出せなかったからで、事実Oracleになって金に余裕ができてからはJVMは拡張されまくってる
そもそもジェネリクスを使うにはJava1.5以降のランタイムが必要なんで、Javaを利用する立場ではバイトコードの互換性には実質的に何の意味もないのよ
ジェネリクスが残念仕様になったのはひとえに当時のSunに金がくてJVMに手を出せなかったからで、事実Oracleになって金に余裕ができてからはJVMは拡張されまくってる
506デフォルトの名無しさん (ワッチョイ 53f0-8n4k)
2020/10/30(金) 11:19:13.86ID:6jWcOHsG0 1.4以前のgenerics使ってない過去のコード資産を
1.5以降のgenerics環境でも使えるようにするのか、それとも綺麗サッパリ捨てるのかって話であって
1.4以前でもgenerics使ってるコードを動かせるようにするって話じゃないんよ……
1.5以降のgenerics環境でも使えるようにするのか、それとも綺麗サッパリ捨てるのかって話であって
1.4以前でもgenerics使ってるコードを動かせるようにするって話じゃないんよ……
507デフォルトの名無しさん (テテンテンテン MMeb-z5gY)
2020/10/30(金) 11:21:27.39ID:hrZSGYbOM そっちの互換性は.NETでは普通に実現できてたから、それが理由ならSunに技術力がないということになるよ
508デフォルトの名無しさん (ワッチョイ fb01-fr3W)
2020/10/30(金) 11:28:02.04ID:9RgBA+ge0 ドトネトーは型消去じゃなくない?
509デフォルトの名無しさん (ワッチョイ fb01-fr3W)
2020/10/30(金) 11:32:55.20ID:9RgBA+ge0 ドトネトは後発だからなーJavaよりも先に作られてて
Generics導入前との互換性が完全に保証されてるなら
MSはSunよりも技術力があると認めてやってもいいけどちがうじゃんか
Generics導入前との互換性が完全に保証されてるなら
MSはSunよりも技術力があると認めてやってもいいけどちがうじゃんか
510デフォルトの名無しさん (ワッチョイ fb01-fr3W)
2020/10/30(金) 11:43:29.96ID:9RgBA+ge0 ドトネトは互換性を切り捨てて言語の進化を優先した
言語が作られたばかりで利用者が少なく既存プログラムが少なかったからできたことだよ
.NET Framework 4.5と下位バージョンの互換性がカオス
https://freesoft.tvbok.com/tips/os/net_framework_45.html
言語が作られたばかりで利用者が少なく既存プログラムが少なかったからできたことだよ
.NET Framework 4.5と下位バージョンの互換性がカオス
https://freesoft.tvbok.com/tips/os/net_framework_45.html
511デフォルトの名無しさん (ブーイモ MMcb-Ezn+)
2020/10/30(金) 11:43:30.17ID:5giIBuWJM c#が登場したのは2000年。リリース時点でgenericsを考慮してなかったら、むしろmicrosoftの技術力を疑うわ。
実際、microsoftがgenericsの前身の研究を始めたのは1999年だし
実際、microsoftがgenericsの前身の研究を始めたのは1999年だし
512デフォルトの名無しさん (ワッチョイ 53f0-8n4k)
2020/10/30(金) 11:49:04.45ID:6jWcOHsG0 そいやJVMの拡張って具体的には何の事言ってんの?
バイトコードレベルっつーか命令セットレベルではinvokedynamicぐらいしか変更なかったと思うけど……
バイトコードレベルっつーか命令セットレベルではinvokedynamicぐらいしか変更なかったと思うけど……
513デフォルトの名無しさん (ワッチョイ fb02-rsky)
2020/10/30(金) 12:59:09.57ID:5ayF+PMf0 スーパー過疎スレだし、日記はブログに書けって言われるか、もしくは反応0かと思ったけど、
歴史的なうんぬんとかいろいろ書いてくれる人いてありがたい
ちゃんとウォッチしてる人もいるんだねここ
歴史的なうんぬんとかいろいろ書いてくれる人いてありがたい
ちゃんとウォッチしてる人もいるんだねここ
514デフォルトの名無しさん (ワッチョイ fb02-rsky)
2020/10/30(金) 13:04:14.88ID:5ayF+PMf0 型消去って、JVM や class ファイルの仕様だから、
Kotlin とか Groovy とかの後発JVM言語とかでも型消去はされるんよね?
その辺のスクリプトってランタイムにいろいろいじくれる印象だけども
基本的にリフレクションのAPIをごちゃごちゃいじって出来ないことは、Kotlin Groovy でもできないってことなんかな
Kotlin とか Groovy とかの後発JVM言語とかでも型消去はされるんよね?
その辺のスクリプトってランタイムにいろいろいじくれる印象だけども
基本的にリフレクションのAPIをごちゃごちゃいじって出来ないことは、Kotlin Groovy でもできないってことなんかな
515デフォルトの名無しさん (ワンミングク MMd3-z5gY)
2020/10/30(金) 13:20:07.36ID:6vdzB2yYM >>514
型消去はあくまでJava言語の仕様
型消去はあくまでJava言語の仕様
516デフォルトの名無しさん (ワッチョイ 0bda-Wesc)
2020/10/30(金) 16:23:21.36ID:cq+PI2bI0 >>513
ちらしの裏にでも書いておけ
ちらしの裏にでも書いておけ
517デフォルトの名無しさん (ワッチョイ 397f-0JDN)
2020/10/31(土) 00:09:05.40ID:gxLrKFoA0518デフォルトの名無しさん (ワッチョイ fb02-rsky)
2020/10/31(土) 00:24:22.47ID:P3yvSdO+0 >>517
回答ありがとう
lombok の @Builder @Singular がカスタマイズ性低くて不満だったから、
Builder パターンのソースコードを自分で自動生成できないかなと思ったんだよね
ASD とか使ってやるのが正統派なんだろうけど、使い方覚えるのとか時間かかりそうだし、
そのままデフォで用意されてるリフレクション使ってパッと作れないかなと
とある対象クラスの1つがジェネリクス使ってて、困ったなどうしようかなって感じです
回答ありがとう
lombok の @Builder @Singular がカスタマイズ性低くて不満だったから、
Builder パターンのソースコードを自分で自動生成できないかなと思ったんだよね
ASD とか使ってやるのが正統派なんだろうけど、使い方覚えるのとか時間かかりそうだし、
そのままデフォで用意されてるリフレクション使ってパッと作れないかなと
とある対象クラスの1つがジェネリクス使ってて、困ったなどうしようかなって感じです
519デフォルトの名無しさん (ワッチョイ fb02-rsky)
2020/11/01(日) 10:20:30.19ID:XNBfCucM0 Producer extends Consumer super ってのは頭にあるけど、
これいつもこんがらがる
これいつもこんがらがる
520デフォルトの名無しさん (ワッチョイ fb02-rsky)
2020/11/02(月) 14:20:31.77ID:xsbidkkO0 EnumSet の 3値版みたいなのってデフォでは用意されてないですよね?多分
true false ともう一個くらい欲しい
あるインスタンスに関して、include するか exlude するか ignore するかみたいなフラグ
そして、その3値のフラグがいっぱい欲しいとき
EnumSet は、1bit で 1 flag だけど、2bit で 1flag みたいなの(これだと4値まで扱えるけど)
true false ともう一個くらい欲しい
あるインスタンスに関して、include するか exlude するか ignore するかみたいなフラグ
そして、その3値のフラグがいっぱい欲しいとき
EnumSet は、1bit で 1 flag だけど、2bit で 1flag みたいなの(これだと4値まで扱えるけど)
521デフォルトの名無しさん (ブーイモ MM8d-Ezn+)
2020/11/02(月) 14:40:30.21ID:WBPd1VYFM OptionalBooleanとか?
522デフォルトの名無しさん (ワッチョイ fb02-rsky)
2020/11/02(月) 14:51:03.37ID:xsbidkkO0 ありがとう
たしかに、boolean の代わりにつかのならいいかもしれませんね OptionalBoolean
だけど、bit flag 的な動作(=EnumSet のような仕様)のクラスは多分自作しないとない感じですよね
たしかに、boolean の代わりにつかのならいいかもしれませんね OptionalBoolean
だけど、bit flag 的な動作(=EnumSet のような仕様)のクラスは多分自作しないとない感じですよね
523デフォルトの名無しさん (ワッチョイ 919c-Mqft)
2020/11/02(月) 16:05:39.50ID:4GAxhcsF0 だってあなた true と false ともう1つって言ったじゃない
524デフォルトの名無しさん (ワッチョイ fb01-fr3W)
2020/11/02(月) 16:29:57.67ID:LqVECFSh0 enumでいいじゃん
525デフォルトの名無しさん (ワッチョイ fb01-fr3W)
2020/11/02(月) 16:30:24.97ID:LqVECFSh0 イナム
526デフォルトの名無しさん (ワッチョイ fb02-rsky)
2020/11/02(月) 16:45:21.07ID:xsbidkkO0 boolean の 3値版 は OptionalBoolean、3値以上ほしければ、enum だけど
EnumSet の 3値版
EnumSet の 3値版
527デフォルトの名無しさん (ワッチョイ fb02-rsky)
2020/11/02(月) 16:45:23.03ID:xsbidkkO0 boolean の 3値版 は OptionalBoolean、3値以上ほしければ、enum だけど
EnumSet の 3値版
EnumSet の 3値版
528デフォルトの名無しさん (ワッチョイ fb02-rsky)
2020/11/02(月) 17:07:10.68ID:xsbidkkO0 よくよく考えたら HashMap のラッパみたいなので事足りそうかも
すまそ
すまそ
529デフォルトの名無しさん (ワッチョイ fb02-rsky)
2020/11/02(月) 17:10:46.96ID:xsbidkkO0 でもよくよく考えたら、機能的にはそれでいいけど、内部的に bit flag 的な動作になってないから
もともとの目的達成してないわ…すまそ
もともとの目的達成してないわ…すまそ
530デフォルトの名無しさん (ワッチョイ f99f-wWLy)
2020/11/02(月) 17:32:32.99ID:O692h/lZ0 細かいけどOptionalBooleanというクラスはありそうで存在しない
Optional<Boolean>になる
Optionalをメンバとして使うのはSerializabeあたりの理由で微妙だしIGNOREという具体的な値をemptyで代用するのもまた宜しくない
素直にタイプセーフenumを使って恩恵を得るのが可読性と汎用性と、実用面で十分な効率を満足すると思う
あとこの三値のお題でEnumSetに言及しているのは謎
Setではフラグをいっぱい持つことはできないぞ
高効率なListのような仕様を期待しているのだろうか
Optional<Boolean>になる
Optionalをメンバとして使うのはSerializabeあたりの理由で微妙だしIGNOREという具体的な値をemptyで代用するのもまた宜しくない
素直にタイプセーフenumを使って恩恵を得るのが可読性と汎用性と、実用面で十分な効率を満足すると思う
あとこの三値のお題でEnumSetに言及しているのは謎
Setではフラグをいっぱい持つことはできないぞ
高効率なListのような仕様を期待しているのだろうか
531デフォルトの名無しさん (ワッチョイ f99f-wWLy)
2020/11/02(月) 17:39:42.45ID:O692h/lZ0 いやEnumSet的なもののインスタンスをたくさん持ちたいから高効率が希望ということか
なら普通にEnumSetでいいと思う
なら普通にEnumSetでいいと思う
532デフォルトの名無しさん (ワッチョイ fb02-rsky)
2020/11/02(月) 18:35:01.57ID:xsbidkkO0 ありがとう
一応、いまは2つ使ってやってます。
1つの EnumSet で 3値判定できれば楽かなって思ったんだけど、変なクラス作ってもわかりにくくなるし、これでいきます。
EnumSet<ItemType> excludes
EnumSet<ItemType> includes
一応、いまは2つ使ってやってます。
1つの EnumSet で 3値判定できれば楽かなって思ったんだけど、変なクラス作ってもわかりにくくなるし、これでいきます。
EnumSet<ItemType> excludes
EnumSet<ItemType> includes
533デフォルトの名無しさん (ワッチョイ 53f0-8n4k)
2020/11/02(月) 19:08:13.39ID:MdMNZpD/0 それ includes も excludes もそれぞれ A or B or C の何れかの状態しか取らないみたいなコード?
もしそうなら君が欲しいのは EnumSet じゃなくてボツった Enhanced Enum 的なものかもよ?
もしそうなら君が欲しいのは EnumSet じゃなくてボツった Enhanced Enum 的なものかもよ?
534デフォルトの名無しさん (ワッチョイ f99f-wWLy)
2020/11/02(月) 22:35:35.24ID:O692h/lZ0 そういうデータ構造だったのか
状態が排他的ならEnumMap<ItemType, X>でXを2値か3値のenumにするのもいいと思う
状態が排他的ならEnumMap<ItemType, X>でXを2値か3値のenumにするのもいいと思う
535デフォルトの名無しさん (ワッチョイ fb02-rsky)
2020/11/03(火) 09:16:21.62ID:8Mdr3goE0 問題説明するときには、断片でもいいからコード提示しないとダメなんだなつくづく思った
こっちは○○って言ってるのに、なんで見当違いな答えなの?
とか思ってしまうけど、具体例出してないのが悪いんよな
数学物理でもこういう質問と答えの行き違いみたいなの結構ある
こっちは○○って言ってるのに、なんで見当違いな答えなの?
とか思ってしまうけど、具体例出してないのが悪いんよな
数学物理でもこういう質問と答えの行き違いみたいなの結構ある
536デフォルトの名無しさん (ワッチョイ fb02-rsky)
2020/11/03(火) 18:16:01.83ID:8Mdr3goE0 eclipse のゴミ箱ボタン(GCボタン)押して思ったんだけど、Java の GC でマウスカクつくのな
普通 UI スレッドで長時間タスクって、その アプリの UI が固まるだけだけど
どういうスレッドの使い方したらこうなるんだろう
もちろん、GC の設定や環境によるものはあると思うけど
普通 UI スレッドで長時間タスクって、その アプリの UI が固まるだけだけど
どういうスレッドの使い方したらこうなるんだろう
もちろん、GC の設定や環境によるものはあると思うけど
537デフォルトの名無しさん (ワッチョイ 3602-2NH9)
2020/11/07(土) 07:34:51.13ID:lCK2kmHa0 ライブラリの著者が使ってほしくない機能をユーザーが使えないのってダメだよね
リフレクションじゃなくても、ちょっと設定すれば普通に private メソッドもフィールドも使えるようにしてほしいわ
中身ちょっと直したい時に、全部 pull して修正するの面倒
リフレクションじゃなくても、ちょっと設定すれば普通に private メソッドもフィールドも使えるようにしてほしいわ
中身ちょっと直したい時に、全部 pull して修正するの面倒
538デフォルトの名無しさん (ワッチョイ 5559-93sb)
2020/11/07(土) 10:35:21.34ID:BzysXMDS0 痒いところに手が届かないならライブラリの熟成度が低いかライブラリの設計が悪い可能性はあると思う
仮に開発に参加している初心者が簡単にprivateのカプセル化のメリットを破壊して回れるような方式だとしたらOOP言語としての信頼自体を損ないかねない
デメリットやリスクを理解した上で使う仕組みとしてリフレクション程度の面倒くささは悪くない采配だと思う
仮に開発に参加している初心者が簡単にprivateのカプセル化のメリットを破壊して回れるような方式だとしたらOOP言語としての信頼自体を損ないかねない
デメリットやリスクを理解した上で使う仕組みとしてリフレクション程度の面倒くささは悪くない采配だと思う
539デフォルトの名無しさん (ワッチョイ 3602-2NH9)
2020/11/08(日) 05:54:45.69ID:QaJs4UOf0 チームで作業してる時に、ポンコツが private メソッドいじっちゃうってなら、
ポンコツがいじれない箇所に設定を書けるようにすりゃいいだけだと思うけどな
コンパイラフラグとかJVMフラグとか
Groovy とかは、息をするように private メソッド呼ぶよね
ポンコツがいじれない箇所に設定を書けるようにすりゃいいだけだと思うけどな
コンパイラフラグとかJVMフラグとか
Groovy とかは、息をするように private メソッド呼ぶよね
540デフォルトの名無しさん (ワッチョイ 92ad-t1Nk)
2020/11/08(日) 15:13:38.03ID:iVjroALJ0 Kotlin もよろしく
541デフォルトの名無しさん (ブーイモ MMd5-T5d5)
2020/11/08(日) 16:23:08.51ID:CoeB3H6oM うちの会社のハゲはポンコツで
チームで作業してる時に、ハゲが private メソッドいじっちゃうってなら、
ハゲがいじれない箇所に設定を書けるようにすりゃいいだけだと思うけどな
コンパイラフラグとかJVMフラグとか
Groovy とかは、息をするように private メソッド呼ぶよね
チームで作業してる時に、ハゲが private メソッドいじっちゃうってなら、
ハゲがいじれない箇所に設定を書けるようにすりゃいいだけだと思うけどな
コンパイラフラグとかJVMフラグとか
Groovy とかは、息をするように private メソッド呼ぶよね
542デフォルトの名無しさん (JP 0H65-mMcf)
2020/11/08(日) 17:42:51.72ID:E458/dQkH うちの会社のハゲはチンポコで
チームで作業してる時に、チンポコが private メソッドいじっちゃうってなら、
チンポコがいじれない箇所に設定を書けるようにすりゃいいだけだと思うけどな
コンパイラフラグとかJVMフラグとか
Groovy とかは、息をするように private メソッド呼ぶよね
チームで作業してる時に、チンポコが private メソッドいじっちゃうってなら、
チンポコがいじれない箇所に設定を書けるようにすりゃいいだけだと思うけどな
コンパイラフラグとかJVMフラグとか
Groovy とかは、息をするように private メソッド呼ぶよね
543デフォルトの名無しさん (ワッチョイ 23ad-lcRl)
2020/11/11(水) 04:29:14.67ID:tSmBr0jI0 >>536
OSが変なのでは?
OSが変なのでは?
544デフォルトの名無しさん (ワッチョイ 1592-OoW6)
2020/11/11(水) 07:10:32.18ID:W2duQ0fU0545デフォルトの名無しさん (ワッチョイ 1b02-aWbd)
2020/11/11(水) 14:40:10.48ID:CiBMow/l0 カプセル化はわかってるけど、ライブラリ使い込んでいくにつれて、中身のそれいじらせろってなる事が多かったって話
ライブラリの設計が完璧なら必要ないのは分かるけど、そんなライブラリ現実にはほとんどない
ライブラリの設計が完璧なら必要ないのは分かるけど、そんなライブラリ現実にはほとんどない
546デフォルトの名無しさん (ワッチョイ cd9c-tKQa)
2020/11/11(水) 16:49:47.12ID:fIiehboa0 privateにする理由
・将来の互換性の維持(公開したメソッドは変更しずらくなる)
・privateのほうが実行速度はわずかに速い
・将来の互換性の維持(公開したメソッドは変更しずらくなる)
・privateのほうが実行速度はわずかに速い
547デフォルトの名無しさん (ワッチョイ 9b02-Y0tO)
2020/11/11(水) 17:23:52.36ID:ZZXoiZzr0 最初はみんな private で、それを継承したクラスを作り始めると元のクラスの private がどんどん protected になる。
548デフォルトの名無しさん (テテンテンテン MM4b-iaQn)
2020/11/11(水) 18:10:53.76ID:A+vlMwuMM どんどんって言うほどだとクラスかパッケージの設計が不味いんじゃね
549デフォルトの名無しさん (オイコラミネオ MMab-OoW6)
2020/11/12(木) 08:50:23.78ID:2UsfwbwTM このスレにまともなJavaプログラマーいないのか...
誰かprivateの利用方法に突っ込めよ
誰かprivateの利用方法に突っ込めよ
550デフォルトの名無しさん (オイコラミネオ MMab-OoW6)
2020/11/12(木) 09:01:47.04ID:2UsfwbwTM やっぱりなんでもない。
もう人それぞれでいいや。
privateはクラスのメソッドや変数に対して外からアクセスしてほしくないことを明確化するくらいの認識があればそれでいいよ。
もう人それぞれでいいや。
privateはクラスのメソッドや変数に対して外からアクセスしてほしくないことを明確化するくらいの認識があればそれでいいよ。
551デフォルトの名無しさん (ワッチョイ cd9c-tKQa)
2020/11/12(木) 10:07:00.95ID:8AT56phj0 >>550
そうだよ
Javaのprivateはセキュリティではなく非公開の意思表示に過ぎない
だから開発者が公開したくないとしてもリフレクションで簡単に抜けられる
つまり開発者の使わせたくない意思よりも利用者の使いたい意思が最終的には優先されるの
それならリフレクション使わずともprivate呼べる手立てを用意しといてよというのが最初の主張なんじゃないかな?
少なくとも元発言者がJavaのprivateを理解してない初心者だとは思えない
そうだよ
Javaのprivateはセキュリティではなく非公開の意思表示に過ぎない
だから開発者が公開したくないとしてもリフレクションで簡単に抜けられる
つまり開発者の使わせたくない意思よりも利用者の使いたい意思が最終的には優先されるの
それならリフレクション使わずともprivate呼べる手立てを用意しといてよというのが最初の主張なんじゃないかな?
少なくとも元発言者がJavaのprivateを理解してない初心者だとは思えない
552デフォルトの名無しさん (テテンテンテン MM4b-iaQn)
2020/11/12(木) 10:14:56.40ID:0HPTF3ezM 簡単に抜けられるならそれでいいだろ
ってのが答えだろうね
ってのが答えだろうね
553デフォルトの名無しさん (ワッチョイ 1b01-5VKD)
2020/11/12(木) 11:20:34.03ID:VX9X1ew10 君たちにプライベートなどないのだよ
554デフォルトの名無しさん (ワッチョイ 1b02-aWbd)
2020/11/12(木) 14:38:22.65ID:svuT5wEO0 リフレクションで全部解決するならそれでいいんだけど、解決しないときもあるから
少なくとも性能面で格段に落ちる
少なくとも性能面で格段に落ちる
555デフォルトの名無しさん (ワッチョイ 1b46-Y0tO)
2020/11/15(日) 21:24:45.76ID:wTz3BYxz0 javaとオブジェクト指向がごっちゃ?
リフレクションを多用したプログラムは基本的にバグの追跡が困難になって
システム全体の保守拡張性が失われていく
そもそもそういう事態を避けるためのオブジェクト指向なんだけどな
だからリフレクションを使う場面は
「公知され依存範囲も最小限の明示さえた範囲にとどまる場合」
に限るべきだと思う
リフレクションを多用したプログラムは基本的にバグの追跡が困難になって
システム全体の保守拡張性が失われていく
そもそもそういう事態を避けるためのオブジェクト指向なんだけどな
だからリフレクションを使う場面は
「公知され依存範囲も最小限の明示さえた範囲にとどまる場合」
に限るべきだと思う
556デフォルトの名無しさん (ワッチョイ 1b02-aWbd)
2020/11/16(月) 11:28:08.49ID:UaonMcvo0 いうて最近の言語はリフレクション相当のことが簡単にできるものばっかだし
557デフォルトの名無しさん (JP 0H93-iaQn)
2020/11/16(月) 11:33:16.32ID:vXUZo3CGH それがいいとは思わないけどな
558デフォルトの名無しさん (ワッチョイ 1b46-Y0tO)
2020/11/17(火) 18:58:02.35ID:MFEhUl1R0 オブジェクト指向で綺麗にシステム作っても
システムを拡張する時に依存性を無視して
勝手にデータベースから別ルートでデータを扱ったり
そんなことされたらもうおしまい
システムを拡張する時に依存性を無視して
勝手にデータベースから別ルートでデータを扱ったり
そんなことされたらもうおしまい
559デフォルトの名無しさん (ワッチョイ e2ad-b6az)
2020/11/23(月) 15:23:37.29ID:QcOiDeXE0 >>558
そういうことを防止するためにはそういうことができないような仕様の言語を新たに作るしかないでしょうな。
そういうことを防止するためにはそういうことができないような仕様の言語を新たに作るしかないでしょうな。
560デフォルトの名無しさん (ワッチョイ 0e02-wHXD)
2020/11/23(月) 15:37:21.97ID:orFN3nO80 アプリケーションの番人としていつまでも居座る、という手もある
ボランティアになるかもしれないけど
ボランティアになるかもしれないけど
561デフォルトの名無しさん (ワッチョイ 0e02-RToZ)
2020/11/24(火) 01:47:50.63ID:vl9hZWNY0562デフォルトの名無しさん (ワッチョイ c2ab-v2z3)
2020/12/04(金) 19:01:31.00ID:aixg0GRb0 junitの質問ってこちらで大丈夫でしょうか。
引数がinterfaceだったりabstractだったりするメソッドのテストってどうするんでしょう?
引数がinterfaceだったりabstractだったりするメソッドのテストってどうするんでしょう?
563デフォルトの名無しさん (ワッチョイ ac59-HWCG)
2020/12/05(土) 08:28:14.85ID:rfXr7q6U0 スタブとして自前で実装して引数に渡すか、Mockitoのようなライブラリを利用してモックテストする
564デフォルトの名無しさん (ワッチョイ dfab-PKMK)
2020/12/09(水) 17:38:11.52ID:3MRHajAc0 >>563
やっぱ実装しないとダメなんですね…。ありがとうございました。
やっぱ実装しないとダメなんですね…。ありがとうございました。
565デフォルトの名無しさん (ワッチョイ 8759-u7CM)
2020/12/09(水) 17:43:20.81ID:4HmF+HCx0 いやMockitoを使えば実装は要らない
知らないものを見ないふりしているといつまでも初心者のままだよ
知らないものを見ないふりしているといつまでも初心者のままだよ
566デフォルトの名無しさん (ワッチョイ bf01-4pnK)
2020/12/09(水) 18:23:23.41ID:1rAAexgP0 偉そうにw
567デフォルトの名無しさん (ワッチョイ 8759-u7CM)
2020/12/10(木) 01:15:30.07ID:Ylu2UlWn0 でも図星でしょ?
質問の回答に知らない言葉が出てきたからその部分をググりもせずにスルーした
そこが本当は必要としてた知識だったのに
質問の回答に知らない言葉が出てきたからその部分をググりもせずにスルーした
そこが本当は必要としてた知識だったのに
568デフォルトの名無しさん (ワッチョイ bf01-4pnK)
2020/12/10(木) 10:11:22.54ID:/iej8cKu0 一般化して説教かますのはただのアホだと思うw
569デフォルトの名無しさん (ワッチョイ bf01-4pnK)
2020/12/10(木) 10:12:29.29ID:/iej8cKu0 信号を無視したら信号無視だよと言ってるようなもの
チン次郎論法の亜種だな
チン次郎論法の亜種だな
570デフォルトの名無しさん (ワッチョイ bf01-4pnK)
2020/12/10(木) 10:13:39.91ID:/iej8cKu0 説教厨
571デフォルトの名無しさん (ワッチョイ bf01-4pnK)
2020/12/10(木) 10:15:17.13ID:/iej8cKu0 そんなに説教がしたいか
そんなに偉ぶりたいか
そんなに自分の立ち位置を確認したいのか
そんなに偉ぶりたいか
そんなに自分の立ち位置を確認したいのか
572デフォルトの名無しさん (ワッチョイ bf01-4pnK)
2020/12/10(木) 10:19:43.99ID:/iej8cKu0 読み直してみたけどMockito使うことを実装するって言ってるだけなんじゃない?
573デフォルトの名無しさん (ワッチョイ bf01-4pnK)
2020/12/10(木) 10:20:37.95ID:/iej8cKu0 > 565 :デフォルトの名無しさん (ワッチョイ 8759-u7CM) [↓] :2020/12/09(水) 17:43:20.81 ID:4HmF+HCx0 [PC]
> いやMockitoを使えば実装は要らない
> 知らないものを見ないふりしているといつまでも初心者のままだよ
一生許さないから
> いやMockitoを使えば実装は要らない
> 知らないものを見ないふりしているといつまでも初心者のままだよ
一生許さないから
574デフォルトの名無しさん (オッペケ Srb3-9wp+)
2020/12/22(火) 10:55:13.03ID:EExbCgorr PCをゲーム機のようにしか扱って来なかった人間ですが、3週間でサーティファイのJava能力2級を取得することは可能でしょうか?
スレッド処理やら例外やらは大まかに分かりましたが、インターフェースがビックリするくらい理解できないです
スレッド処理やら例外やらは大まかに分かりましたが、インターフェースがビックリするくらい理解できないです
575デフォルトの名無しさん (ワッチョイ 0f9c-+dzo)
2020/12/22(火) 11:08:00.09ID:fGHiXn/20 インターフェース=共通規格の仕様
って考えるといいかもね
あるインターフェースを実装しているクラスのインスタンスは共通規格に準拠しているから共通規格のメソッドを呼べる
そのクラスのインスタンスをインターフェース型変数に代入することができる
って考えるといいかもね
あるインターフェースを実装しているクラスのインスタンスは共通規格に準拠しているから共通規格のメソッドを呼べる
そのクラスのインスタンスをインターフェース型変数に代入することができる
576デフォルトの名無しさん (ワッチョイ 0f9c-+dzo)
2020/12/22(火) 11:12:00.11ID:fGHiXn/20 ゲームで例えるとこうだ
USBゲームパッド仕様=インターフェース
PS4コントローラー=USBゲームパッド仕様を実装したクラス
XBoxコントローラー=USBゲームパッド仕様を実装したクラス
どちらのコントローラーも固有の機能を持っているがPCに繋げばUSBゲームパッドとして使える(振る舞える)
USBゲームパッド仕様=インターフェース
PS4コントローラー=USBゲームパッド仕様を実装したクラス
XBoxコントローラー=USBゲームパッド仕様を実装したクラス
どちらのコントローラーも固有の機能を持っているがPCに繋げばUSBゲームパッドとして使える(振る舞える)
577デフォルトの名無しさん (オッペケ Srb3-9wp+)
2020/12/22(火) 11:23:31.03ID:EExbCgorr >>576
わざわざゲームで分かりやすく例えてくれてありがとうございます
わざわざゲームで分かりやすく例えてくれてありがとうございます
578デフォルトの名無しさん (ワッチョイ eaa5-tzJm)
2020/12/22(火) 11:24:06.79ID:AK8G7vhK0 ちげぇなぁ
こういう奴の言ってることは大抵こう
「クラスはなんとかギリギリ理解した(ような気がするけど)、その後のインタフェイスになってもう完全に分からなくなった理解不可能助けて」
こういう奴の言ってることは大抵こう
「クラスはなんとかギリギリ理解した(ような気がするけど)、その後のインタフェイスになってもう完全に分からなくなった理解不可能助けて」
579デフォルトの名無しさん (オッペケ Srb3-9wp+)
2020/12/22(火) 11:58:57.97ID:EExbCgorr >>578
確かに理解出来てないものは多々ありますが、運や勘でもとにかく資格を取得するのが大事なので上のインターフェースについて概要を軽く説明して貰った方が飲み込みやすくて助かります
確かに理解出来てないものは多々ありますが、運や勘でもとにかく資格を取得するのが大事なので上のインターフェースについて概要を軽く説明して貰った方が飲み込みやすくて助かります
580デフォルトの名無しさん (ワッチョイ eaa5-tzJm)
2020/12/22(火) 12:05:53.62ID:AK8G7vhK0 サーティファイのテキストの説明がよっぽどおかしいのか?
どうなってんだ
どういう駄文が書き連ねてあるんだ?
そもそも何見て分からんと言ってるんだ?
どうなってんだ
どういう駄文が書き連ねてあるんだ?
そもそも何見て分からんと言ってるんだ?
581デフォルトの名無しさん (ワッチョイ bb40-uMNi)
2020/12/25(金) 13:39:16.56ID:cslSq7u80 eclipseとかでhashcode, equalsを自動作成できるけど
「未作成のクラスを検索する」とか
「自動生成と異なった実装になっているクラスを検索する」
みたいなことできないの?
メンバー変数を書き換えた時に作り直し忘れるとバグになるし面倒だよね
Lombokで自動生成するという手段があるらしいけどLombok使いたくないし
「未作成のクラスを検索する」とか
「自動生成と異なった実装になっているクラスを検索する」
みたいなことできないの?
メンバー変数を書き換えた時に作り直し忘れるとバグになるし面倒だよね
Lombokで自動生成するという手段があるらしいけどLombok使いたくないし
582デフォルトの名無しさん (ワッチョイ 3f59-t/Xm)
2020/12/25(金) 18:46:16.26ID:z1tztk6g0 クラスの代わりにRecordを使えば解決
ただし正式に使えるのはJava16から
ただし正式に使えるのはJava16から
583デフォルトの名無しさん (ワッチョイ 0bab-JtRj)
2020/12/26(土) 22:32:49.92ID:5jiSe6u40 馬鹿には無理
584デフォルトの名無しさん (ワッチョイ b101-L4wC)
2020/12/28(月) 18:23:31.38ID:LMTdakKW0 Intellijでクラスの中に書いたメソッドを実行するにはそのクラスの中にmain関数を作ってメソッド呼び出す処理を書いてrunする以外にありますか?色んなクラスにmainができてしまうので、普通はどうやるのか知りたいです。
585デフォルトの名無しさん (テテンテンテン MM97-mp7J)
2020/12/28(月) 22:23:00.13ID:h8cHolFuM586デフォルトの名無しさん (ワッチョイ 7fa5-cNR3)
2021/01/08(金) 14:44:14.15ID:rqN737YQ0587デフォルトの名無しさん (ワッチョイ 5f9c-NUt6)
2021/01/08(金) 14:54:25.00ID:GG1sOSQC0588デフォルトの名無しさん (ワッチョイ ff01-wy8K)
2021/01/08(金) 15:12:47.26ID:eXVg8SYp0 自動インポートは甘え
589デフォルトの名無しさん (ワッチョイ 7fa5-cNR3)
2021/01/08(金) 15:52:27.94ID:rqN737YQ0 >>587「import kihon.sample600.SampleClass01;」と書き足してもダメでした
590デフォルトの名無しさん (アウアウカー Sa53-tYBP)
2021/01/08(金) 16:09:54.53ID:f3mpSfzUa 同一パッケージはimportいらんくない?
javac ./*でいけるんじゃね
javac ./*でいけるんじゃね
■ このスレッドは過去ログ倉庫に格納されています
