Java入門・初心者質問スレ Part.10

■ このスレッドは過去ログ倉庫に格納されています
2020/04/01(水) 15:09:15.95ID:9COIb57q0
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512

Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.9
https://mevius.5ch.net/test/read.cgi/tech/1552143555/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2020/08/24(月) 13:49:29.35ID:v9u2mLyz0
JavaでGUIのプログラム作る場合ってJavaFXが主流ですか?
522デフォルトの名無しさん (ワッチョイ ff01-dFmy)
垢版 |
2020/08/24(月) 13:53:56.38ID:+IQOtOJW0
技術的に新しいのはJavaFXだけれどもJavaFXは標準ライブラリから削除された
標準ライブラに残ってるSwingが主流ともみなせるので好きにしたら良い
523デフォルトの名無しさん (ワッチョイ 7f3c-m4He)
垢版 |
2020/08/24(月) 14:58:02.23ID:x/nbMOjm0
Runtime.getRuntime().exec m9(^Д^)<wwwwwwwwwwwwwwwwwwwww
524デフォルトの名無しさん (ワッチョイ ff02-pYtf)
垢版 |
2020/08/24(月) 15:06:49.58ID:Ln0wzo/i0
>>515
幇助犯の線引きは曖昧だから、判例なしに素人が幇助だと言っても意味は殆どないと思う
2020/08/24(月) 15:43:21.98ID:v9u2mLyz0
>>522
両方試してみることにします
ありがとうございました
526デフォルトの名無しさん (ワッチョイ 7fad-mHL/)
垢版 |
2020/08/24(月) 17:06:52.72ID:8Ar+AlN+0
JavaFX。あいつはいいやつだった。
2020/08/24(月) 17:19:09.40ID:wbn0QRvM0
>>513
じゃなかった?って聞いてる人に聞いて分かるわけないだろw
頭悪すぎだな
2020/08/24(月) 18:59:07.45ID:k+YcXwpu0
ブラウザは変えたけどIDは変わってなかった悔しいってネタかな
529デフォルトの名無しさん (ワッチョイ ff63-fg/N)
垢版 |
2020/08/24(月) 21:20:41.31ID:HcNsafA/0
>>521
swing + awtかSWTの二択。

Swingでワイアーシャークのような解析アプリを作ったけど、途中から素直にC#で作るべきだったと後悔しながらコーディングしてた。
Windowsでしか動かさないなら.net使った方がいい。
530デフォルトの名無しさん (ワッチョイ 7fad-YpYZ)
垢版 |
2020/08/25(火) 03:31:35.10ID:FtyQX/H10
Kotlin もよろしく
531デフォルトの名無しさん (ワッチョイ 8255-1etN)
垢版 |
2020/08/26(水) 12:23:33.92ID:jQHqTTLQ0
Iteratorインターフェイスを実装するクラスに必要なメソッドは

hasNext(), remove(), next()

だとRobert Sedgewick & Kevin WayneのAlgorithms 4th Editionに書いてありました。

ですが、Eclipseでそのようなクラスを作ろうとして、自動生成された雛形となるメソッドは、
hasNext()とnext()しか用意されませんでした。

remove()がなくてもOKみたいですが、これはどういうことでしょうか?
2020/08/26(水) 12:33:43.66ID:goOahd890
defaultの実装があるから
2020/08/26(水) 12:40:38.56ID:jQHqTTLQ0
>>532
ありがとうございます。
それでは、なぜ、hasNext()とnext()にはデフォルトの実装がないのでしょうか?

そのデフォルトの実装を確認する方法はありませんか?
2020/08/26(水) 12:45:33.59ID:jVJrbcdHa
yield return無いの謎すぎる
2020/08/26(水) 12:49:14.30ID:goOahd890
>>533
default実装の内容はリファレンス見て

>それでは、なぜ、hasNext()とnext()にはデフォルトの実装がないのでしょうか?
自分で考えて
2020/08/26(水) 15:12:20.91ID:BpaQECb00
ab, c では、どっちが先か?

アルファベット順なら、ab が先だが、
文字数なら、1文字のc が先になる

つまり、何が基準か分からないので、デフォルトの実装は書けない

でも、次の要素があるかないかは、次がnull pointer なら、要素はないと言える
537デフォルトの名無しさん (ワッチョイ a23c-hC0y)
垢版 |
2020/08/27(木) 22:03:04.74ID:mX8L6piK0
JavaFXの音楽再生について教えてください。ちなみに、よそでも質問しててマルチポストです。

だれか、教えてくれ。
2020/08/27(木) 23:16:29.42ID:BueSJLjC0
音楽再生の何について聞きたいか言わなきゃ分からん
一からここでレスして教えろとは言わないよな?
分からないこと上手くいかないことを具体的に書け
あとは自分で調べろ
https://nompor.com/2018/01/14/post-2373/
539デフォルトの名無しさん (ワッチョイ 8601-4Kjr)
垢版 |
2020/08/28(金) 07:47:44.03ID:JtEwWOif0
>>534
わかる、欲しいよね
540デフォルトの名無しさん (ワッチョイ 8601-4Kjr)
垢版 |
2020/08/28(金) 07:57:49.11ID:JtEwWOif0
>>533
> そのデフォルトの実装を確認する方法はありませんか?

ソースコードはこちらで見れます

jdk/Iterator.java at master ・ openjdk/jdk ・ GitHub
https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Iterator.java

> default void remove() {
>  throw new UnsupportedOperationException("remove");
> }

removeのデフォルトの実装は例外投げてるだけですね
削除の機能が必要ならオーバーライドしてください
削除の機能が必要ないなら実装しなくていいですって感じ

hasNext()やnext()はIteratorの動作上必要なので実装しないとダメなのよ
541デフォルトの名無しさん (ワッチョイ 7901-Jo2y)
垢版 |
2020/08/29(土) 05:04:06.64ID:EjjA84a90
Arrays.binarySearch使いたくて
ソート対象のオブジェクトに対して
@compareTo実装したら
Aequalsも実装しろと警告でたから実装したら
Bequals実装するならhashCodeも実装しろと警告しやがった💢
542デフォルトの名無しさん (ワッチョイ 82a5-oC+/)
垢版 |
2020/08/29(土) 10:15:40.49ID:+QUdJXvJ0
それがヤクの毛刈りですよ。
次から次へとやるべきことがワンサカ湧いてくる、これが楽しい毛刈りです
543デフォルトの名無しさん (ワッチョイ 8601-4Kjr)
垢版 |
2020/08/29(土) 16:50:45.75ID:0Qp+2/1q0
>>541
自動的に実装してくれたら良いのにね
544デフォルトの名無しさん (ワッチョイ 7901-JMbW)
垢版 |
2020/08/30(日) 10:57:16.71ID:KNmh9A/H0
なんで自動実装できないかわからないってかわいそうだな
何を持って同値とみなすか、お前が作ったクラスにどんなメンバがあるかなんて分かりようがないだろ
2020/08/30(日) 11:52:32.26ID:yxkdlNNK0
ほとんどのケースは自動実装できるでしょ
できないケースだけ自分で書けばいい
2020/08/30(日) 11:55:46.77ID:bFKi9fjF0
まあ分からなくはないな
IDE使うとフィールドを元にhashCodeとequalsを自動生成できたりするから
JavaコンパイラかJavaVMで同じことしてくれよって思う人もいるだろう
そして登場するのがRecordな
フィールドを元にhashCodeとequalsが自動生成されるよ
2020/08/30(日) 12:33:41.98ID:yxkdlNNK0
アノテーションでビルド時に自動生成してくれるようなライブラリいくつかあるよ
IDEの機能だとクラスの変更時に再生成忘れたら災難に会う
2020/08/31(月) 17:02:16.02ID:9Rs+3V+X0
Record───!!!!
はやくきてくれ───っ!!!!
549デフォルトの名無しさん (ワッチョイ 7901-Jo2y)
垢版 |
2020/08/31(月) 17:23:32.24ID:1dx8I1bu0
>>544
いや、@compareToだけで十分なはずの状況でも
A,Bの実装を強いられるのがクソ
といいたい
550デフォルトの名無しさん (ワッチョイ 7901-Jo2y)
垢版 |
2020/08/31(月) 17:25:04.35ID:1dx8I1bu0
Java💢
2020/08/31(月) 17:29:44.62ID:r0TXlHBi0
なるほど
全インスタンスが異なる状況ならhashCodeはアドレスのままでいいね
たしかにそういった状況はある
警告はやりすぎだったかも ごめんね
552デフォルトの名無しさん (ワッチョイ 8601-4Kjr)
垢版 |
2020/08/31(月) 17:53:40.86ID:RyTJNMW10
>>549
実装を強いているのはJavaなの?
おせっかいなIDEの仕業じゃない?
553デフォルトの名無しさん (ワッチョイ 8601-4Kjr)
垢版 |
2020/08/31(月) 17:55:39.21ID:RyTJNMW10
Javaが女とするとIDEは妹
にーにequalsも実装して欲しいの
と言われたらたとえ必要なくても嬉しいだろ
そういうことです
2020/08/31(月) 18:33:13.47ID:SaPbM6u7M
Javaは細かい不満が積み重なって大きなストレスになってる

プロパティが言語機能じゃない
yield returnがない
async awaitがない
ジェネリックが型消去
ラムダが検査例外に引っかかる
null合体演算子がない
null伝搬演算子がない
標準のDIが使いにくい
文字が==で比較できない
実数型の四則演算がメソッド
例外メッセージが不親切
アノテーションだらけで気持ち悪い


数え上げたらキリがないね
2020/08/31(月) 20:20:58.12ID:bQj/ETMha
comparableの実装ってcompareToだけでequalsの実装まで求められなくね?
2020/08/31(月) 21:01:09.88ID:9Rs+3V+X0
compareToとequalsとの一貫性は強く推奨されるという位置付けで
必須ではないね
557デフォルトの名無しさん (ワッチョイ 7901-Jo2y)
垢版 |
2020/08/31(月) 22:28:55.46ID:1dx8I1bu0
強く推奨されちゃってるからLintとかに引っかかる
→ コミットできない(職場のルール)
558デフォルトの名無しさん (ワッチョイ 8601-4Kjr)
垢版 |
2020/09/01(火) 09:37:19.67ID:PZXbhIm50
強く推奨されるのなら仕方がない
2020/09/01(火) 10:26:57.10ID:ueCtOTIMM
そうやって妥協した結果がJavaの使いにくさに繋がった
KAIZENを怠ったのだ
2020/09/01(火) 12:56:40.40ID:cIJrFHrq0
Java氏の生きづらさの主因は既に普及しすぎていること
船頭多くして船動かず、役人多くして事絶えず
ちょっとした予約語すら追加できやしない
幸せになるには皆がえいやとKotlinに移行するしかない
2020/09/01(火) 13:58:10.84ID:SHJ3oQib0
最近のJavaは言語自体の拡張も積極的にやってるぞ
昔はクラスライブラリを充実させるばかりで構文拡張は不可侵聖域みたいな感じだったのにな
2020/09/01(火) 14:01:53.89ID:I+5m/p/nM
genericが型消去になるとか構造体がない問題とか
ランタイムまで修正しないと対応できないっぽいクソが結構あるからなあ
リフレクション使ったコードにも影響でそう
javaはもう詰んでる感じがする
2020/09/01(火) 14:31:08.49ID:LNiTvfH2M
なんかハリボテジェネリクス問題ばかりが変にフィーチャーされたせいで、JVMの仕様弄るなんてとんでもない絶対無理みたいな謎の認識がある人が多いみたいだけど、
実際にはOracleになってからJVMは拡張されまくってるんだよ
単純に資金力の問題でしかないの
564デフォルトの名無しさん (ワッチョイ 8601-4Kjr)
垢版 |
2020/09/01(火) 15:04:59.55ID:PZXbhIm50
お前らがサンを買わなかったせいだぞ!
565デフォルトの名無しさん (ワッチョイ 8601-4Kjr)
垢版 |
2020/09/01(火) 15:06:54.57ID:PZXbhIm50
型を一生懸命やりたければScalaがある
コードを簡潔に書きたければKotlinがある
Javaは互換性持たせつつベストを尽くしてる
2020/09/01(火) 15:11:21.09ID:wOMDGK4nM
Javaじゃないじゃん
567デフォルトの名無しさん (ワッチョイ 8601-4Kjr)
垢版 |
2020/09/01(火) 15:34:51.80ID:PZXbhIm50
じゃあなんですか、RubyもPythonもJavaじゃないというんですか!?
568デフォルトの名無しさん (ワッチョイ 7901-yRqa)
垢版 |
2020/09/01(火) 15:49:58.58ID:/xk9LnpH0
PythonはJavaだけど、RubyはPerlでしょ。
2020/09/01(火) 15:56:49.36ID:cIJrFHrq0
Javaが拡張を積極的にやってるのはわかる
でもパターンマッチングひとつ実現するのにJava20くらいまで待たされそうなペースじゃん
null安全がやって来るのはJava40くらいか?
みんな老人になってしまったとさ
めでたしめでたし
570デフォルトの名無しさん (ワッチョイ 8601-4Kjr)
垢版 |
2020/09/01(火) 16:57:58.81ID:PZXbhIm50
僕はnull好きだぞ、nullは友達だよ
2020/09/01(火) 18:00:56.75ID:SHJ3oQib0
>>569
まあそうだけどさ3年で6進むからJava 20なんてすぐだよ
Java 6からJava 7まで5年掛かってたというのに
572デフォルトの名無しさん (ワッチョイ 7901-Jo2y)
垢版 |
2020/09/01(火) 18:20:30.29ID:Z9W01AEm0
Genericsの型消去のせいで
new T()できないんだね
2020/09/01(火) 19:31:43.66ID:wOMDGK4nM
ここまで進化が遅いと既存資産だけJavaで新規は別言語で、ってやったほうがいい
.NET 5からJavaクラス呼べるようになるから、もうそっちでいいや
2020/09/01(火) 19:36:45.49ID:+1UaEkn20
Factoryクラスをわたせばいいだろう?
575デフォルトの名無しさん (ワッチョイ 7901-Jo2y)
垢版 |
2020/09/01(火) 19:39:29.54ID:Z9W01AEm0
Javaから別の言語にトランスパイルして移行
とか現実的に可能だろうか
2020/09/01(火) 19:39:42.22ID:+1UaEkn20
商用Javaは8まで
今後は進化のブランチが切られるだろう
2020/09/01(火) 19:47:46.92ID:iM2Va31TM
>>575
参照してるライブラリも全部ソースあるならあるいは
578デフォルトの名無しさん (ワッチョイ 8601-4Kjr)
垢版 |
2020/09/01(火) 19:49:42.84ID:PZXbhIm50
>>573
マジで、ドトネトすごい
2020/09/01(火) 20:03:56.01ID:iM2Va31TM
>>578
csprojにjarのパス書くだけで使えるってさ
580デフォルトの名無しさん (ワッチョイ 8602-vr3K)
垢版 |
2020/09/01(火) 23:58:08.93ID:eZGqCDxn0
有料で配信してる動画を保存するスクリプト作るのってむずかしいです?
581デフォルトの名無しさん (ワッチョイ 5fad-XrX+)
垢版 |
2020/09/02(水) 02:37:45.44ID:R9sLvDbu0
Kotlin もよろしく
582デフォルトの名無しさん (ワッチョイ 7f63-aZLl)
垢版 |
2020/09/02(水) 08:41:21.79ID:yy35G5fq0
>>560
kotlinバカは死んでいいよ。
Javaに出張ってくんなカス。
583デフォルトの名無しさん (ワッチョイ 0701-P8XZ)
垢版 |
2020/09/02(水) 19:01:19.84ID:9/rkp9iy0
Java初心者質問スレでこぞってJavaこき下ろしててわろた
584デフォルトの名無しさん (ワッチョイ bf01-YWaO)
垢版 |
2020/09/03(木) 10:58:06.77ID:9qPM9lLi0
MET10-J. compareTo() メソッドを実装する場合メソッドの一般契約に従う
https://www.jpcert.or.jp/m/java-rules/met10-j.html

こういうのがあるんだーねー
たしかに比較するときにequals使えば良いのかcompareTo使えば良いのか
迷うようなオブジェクトは嫌だわー
2020/09/04(金) 12:19:02.23ID:n9bltVZHM
C#でこういうことができるんだけどJavaで出来る?

void F(A a) { WriteLine("A"); }
void F(B b) { WriteLine("B"); }
void F(object o) { throw ArgumentException("TypeMissMatch"); }

void InvokeF(object o) { F(o as dynamic); }

InvokeF(new A()); // F(A)が呼ばれる
InvokeF(new B()); // F(B)が呼ばれる

一個一個instanceofで分岐しないとだめかな
2020/09/05(土) 02:00:02.55ID:7YdQk2H60
無理
2020/09/05(土) 02:46:07.99ID:9Silsq9N0
初めまして。

割り込んですみません。突然なんですが、掲示板を利用している者が
アク禁で規制が掛けられた場合、自分で解く方法はないでしょうか?。
2020/09/05(土) 03:15:30.18ID:1i4enb9n0
>>585
https://paiza.io/projects/Kznlt6QiTmJCZHErPfcBtA
2020/09/05(土) 09:34:06.70ID:0lqzi+R60
>>587
その質問とJavaの関係を詳しく
2020/09/07(月) 03:18:23.08ID:XdFDRYmV0
CとOCamlとHaskellを少しずつイジってJavaに来たけど妙に難しい
出てくる用語を調べて…サンプルコードと見比べながら理解して…
2020/09/07(月) 09:31:01.16ID:DSNLMJBI0
知識はそうやって肉付けするんや
2020/09/08(火) 00:12:38.18ID:rmjeK4rZ0
誤ってOracle jdkをダウンロードしてまだインストールしていないのですが、これは有償になるのでしょうか?
2020/09/08(火) 00:22:56.77ID:5OkAYp9w0
Oracle JDKも開発・検証用途なら無償で使えるので
インストール=有料とはならない

本番環境で業務運用するときはライセンス契約が必要
2020/09/08(火) 00:28:16.52ID:rmjeK4rZ0
なるほど…ホッとしました
ありがとうございました
2020/09/08(火) 11:16:07.71ID:16zRjsyPM
何でほっと出来るんだろうな。
自分でライセンス読まないやつはそのうち痛い目に合うぞ。
後で嘘だとわかってもOracleは知ったことでないから遠慮なく金取るよ。
2020/09/08(火) 12:52:12.70ID:czqs/X8sp
許諾される個人使用はもとより、インストールもしていない状況です
使うにしても個人の学習用でしかなかったのですが、万一ライセンスに抵触したらと不安になり、インストールせず削除しました
2020/09/08(火) 13:52:51.94ID:5OkAYp9w0
>>595
ビギナーを過度に脅すJavaおじさん
仕事もできなさそうですね
2020/09/08(火) 13:58:24.92ID:/bMSwYSJ0
仮に有料だとしても使う前に入力を求められるでしょ普通
599デフォルトの名無しさん (ワッチョイ bf01-YWaO)
垢版 |
2020/09/08(火) 14:07:14.61ID:r41CjiKh0
おじさんの90%はバイアスでできています
2020/09/08(火) 15:43:17.33ID:/zYkoffM0
経験といいなさい
2020/09/08(火) 21:15:52.22ID:16zRjsyPM
仕事できなさそうってセリフは大抵仕事できない奴が吐くよな。
602デフォルトの名無しさん (ワッチョイ bf01-YWaO)
垢版 |
2020/09/08(火) 21:21:02.03ID:r41CjiKh0
バイアスおじさんだ
2020/09/08(火) 21:40:35.84ID:/bMSwYSJ0
>>601
自己投影だからでは
604デフォルトの名無しさん (ワッチョイ 5fad-KyQf)
垢版 |
2020/09/08(火) 23:58:50.51ID:h7Ynbo6B0
これにしとけ
https://adoptopenjdk.net/
2020/09/11(金) 10:33:52.14ID:dBHDc2uPa
C#のLinqは拡張メソッドで自作のLinqメソッドを追加できますがJava stream apiで同じことをしたい場合はどうすればいいでしょうか
2020/09/11(金) 12:13:47.19ID:JdYmOH8YM
できません
OreOreStream.from(stream).oreOreFunc()
みたいに独自の型にラップするしかない
2020/09/11(金) 12:29:27.73ID:Dgb8b0D7M
>>606
それはちょっと面倒ですね…
不格好だけどこれで妥協します
var ss = myFunc(s);
ss = myFunc2(ss);
ss = myFunc3(ss);
608デフォルトの名無しさん (ワッチョイ eaad-oSME)
垢版 |
2020/09/11(金) 13:41:30.96ID:PBBl1CU30
Kotlin もよろしく
2020/09/11(金) 21:52:07.05ID:u75LGtz/0
>>605
拡張メソッドの考え方は異端だと思ったほうがいい。
スクリプト系だと当たり前のようにできる気もするけど、
OOPとしてはできないのが当たり前。
2020/09/12(土) 00:44:56.25ID:41TrRnRRM
スクリプトのはオブジェクトを変更して後からメソッドを生やすから異端だけど
C#のやってることは単にmethod(obj, p1, p2, ...)の糖衣構文でしかないから別に異端と言うほどのことでもない
2020/09/12(土) 16:41:21.16ID:ZBm+9Y+Jd
真面目にjavaってかプログラムに手をつけたばかりだけど、早く理解したい
612デフォルトの名無しさん (ワッチョイ a95f-Sism)
垢版 |
2020/09/12(土) 22:11:46.86ID:wMTnI8uy0
>>611
オブジェクト指向の話は理解できなくても、スルーして進めた方がいいよ。

強制的にコードがオブジェクト指向設計風になるのはJavaの欠点だから。
2020/09/13(日) 02:03:40.38ID:YF8YS6Ny0
オブジェクト指向を否定してまでjavaを使うシチュはあまりないと思う
ライブラリの都合で他の言語を選べない時はあるのかもしれないけど
2020/09/14(月) 16:20:21.11ID:Im1fOuuHa
Javaがコンパイルできず、困っております。
超基本のコードですがコンパイルすることができません…。

class Greeting {
public static void main(String[] args) {
System.out.println("Hello World");
}
}


これをコンパイルしようとすると

PS C:\Users\Owner\Desktop\jp> javac Greeting.java
Greeting.java:1: エラー: Greetingの書込み中にエラーが発生しました:
C:\Users\Owner\Desktop\jp\Greeting.class
class Greeting {
^
エラー1個

コマンド プロンプトで
\Users\Owner\Desktop\jp内にあることを確認し、
拡張子もjavaで保存してます。

ネットで見た他の人の質問では、javaのファイル場所の問題でしたが
場所を変えてもコンパイルできませんでした。

もし解決策分かれば教えてください!!
615デフォルトの名無しさん (ワッチョイ 9e01-bFss)
垢版 |
2020/09/14(月) 16:55:14.17ID:I0h6BMX60
>>614
Greeting.class
が存在していて読み取り専用になってるんじゃないかな
616デフォルトの名無しさん (ワッチョイ 6aa5-6XXA)
垢版 |
2020/09/14(月) 17:10:37.19ID:xV8mpaUY0
Cドライブ直下に
my_source_code
というフォルダを作って、あとはそこでやる
2020/09/17(木) 17:32:58.00ID:IOLH/98P0
適切なスレが判断出来ないので生きているここで質問させて下さい。
これからJavaを学ぶに当たりメモリ16G、i7 3770のPCでスペックは足りるでしょうか?
調べてもふわっとした解答やら幅があり判断しかねています。
そろそろ潮時とは思っているのですが、いざ新調する場合は別件でDTMと多少ゲームをするので、半端なものよりはある程度のスペックまで盛ろうと思っています。
宜しくお願いします。
2020/09/17(木) 17:47:55.79ID:N0wmq1hya
Javaの勉強なんて8Gあれば十分よ
2020/09/17(木) 18:11:31.58ID:jOMm6/5I0
Javaで〇〇を作りたい
じゃなくて、Java の勉強でしょ?
16G とか完全にオーバーキルだよ
2020/09/17(木) 19:03:04.37ID:RlKjeCDe0
オーバースペック?
621デフォルトの名無しさん (ワッチョイ bf01-xr7l)
垢版 |
2020/09/17(木) 19:07:35.20ID:H8Ldt8Jg0
オーバーオール
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況