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
452デフォルトの名無しさん (ワッチョイ 1b02-I3qO)
垢版 |
2020/08/08(土) 07:05:34.92ID:7VAw6OMl0
>>448
エスパー募集ってちゃんと書いとけ
453デフォルトの名無しさん (ワッチョイ e122-Ea0s)
垢版 |
2020/08/08(土) 07:19:37.31ID:Dj/VOa590
>>450
JDK入れなおします
推奨のヴァージョンとかってありますか?
2020/08/08(土) 07:58:46.55ID:Teg6jmuF0
推奨バージョンはない
awt.dllのクラッシュはJDKが新しければ出ないというわけでもない
新旧いろいろ試してみるしかあるまい
455デフォルトの名無しさん (ワッチョイ e122-Ea0s)
垢版 |
2020/08/08(土) 08:34:16.98ID:Dj/VOa590
>>454
14から13に落としてもダメだった…
2020/08/08(土) 08:46:54.94ID:hMmkStZ70
たぶん1.8なら行ける。
457デフォルトの名無しさん (ワッチョイ e122-Ea0s)
垢版 |
2020/08/08(土) 09:00:07.11ID:Dj/VOa590
>>456
11もダメだった
1.8やってみる
2020/08/08(土) 09:06:25.21ID:Teg6jmuF0
いやメジャーバージョンだけでなくマイナーバージョンも変えてみて
たとえばIntellJのawt.dllクラッシュはJDK11.0.6で発生してたけどJDK11.0.5では発生しないとかあった
バグフィックスはマイナーバージョンのほうが重要
2020/08/08(土) 09:08:53.25ID:Teg6jmuF0
多くのマイナーバージョンを試せるLTS(1.8または11)がよい
9,10,12,13,14はサポート期間が短くマイナーバージョンが少ないから
460デフォルトの名無しさん (ワッチョイ e122-Ea0s)
垢版 |
2020/08/08(土) 09:16:50.07ID:Dj/VOa590
>>458
>>459
アドバイス見れてなかったすまん
とりあえず1.8にしてできるようにはなりました
このアドバイスは後々の参考にします
ありがとうございます
教えてくださった皆さんありがとうございました。
2020/08/08(土) 09:32:40.91ID:hMmkStZ70
この先ずっと1.8を使い続けなければならないのか、そこが不安なんですけど。
最新のJDKで使えるようにする方法があるのか、または今後修整されるのか、そこはどうなんでしょうね。
462デフォルトの名無しさん (ワッチョイ 1361-I3qO)
垢版 |
2020/08/08(土) 14:56:25.41ID:HH2BebFt0
$JAVA_HOMEで簡単にJVM/JDKを切り替える方法も覚えておくといい。
463デフォルトの名無しさん (ワッチョイ 533c-wHtq)
垢版 |
2020/08/08(土) 23:37:08.18ID:f7NhkLiO0
JavaEEってなんか他の団体に寄贈されたんだろ?

まだ、使ってるところあるのか?SpringFrameworkとかすげえつかわれてんのか?

俺はその昔、JavaとかOracleだけで覚えるのが精一杯だったのに、さらにStrutsとかEEサーバーとか
弄くらされて頭パンクしてから、もうホントJavaは嫌になった。

JSP(JSTL)とサーブレットだけのシンプルな奴で勘弁してくれてほんとに。
464デフォルトの名無しさん (ワッチョイ 533c-wHtq)
垢版 |
2020/08/08(土) 23:38:37.76ID:f7NhkLiO0
Websphereとかはまだいいけど、JBossとか死んでくれて。まじで。
465デフォルトの名無しさん (ワッチョイ 533c-wHtq)
垢版 |
2020/08/08(土) 23:40:44.44ID:f7NhkLiO0
ApacheとかTomcatとかフリーウェアはノイローゼの元にしかならんかったな・・・

素直にマイクロソフトに従ってれば良かったわ。当時はASPだった。まだ、ドットネットはなかった。
466デフォルトの名無しさん (ワッチョイ 1b01-h+bK)
垢版 |
2020/08/08(土) 23:42:11.59ID:ifN2bgU40
>>465
渋いね、生のサーブレットと生のASP
シンプルで良い
467デフォルトの名無しさん (ワッチョイ 533c-wHtq)
垢版 |
2020/08/08(土) 23:42:29.12ID:f7NhkLiO0
JavaFXが廃止になって、「今もっともモダンなGUIプログラミングSWING」みたいな本が
CUTTSYSTEMから出てるのは爆笑を超えて呆れ果てるしかない。
2020/08/09(日) 01:31:59.05ID:8UfVx4ijM
最近出た本がそれ↑? Kotlinじゃなくて?
えーと、つまりまとめて

Java1.8まで:サンマイクロソフト

Java9以降:オラクル

嫌がらせって事でFA?
2020/08/09(日) 07:19:36.75ID:xuz2Z0h20
意味が分からん
470デフォルトの名無しさん (ワッチョイ e122-Ea0s)
垢版 |
2020/08/09(日) 08:26:58.44ID:sHgnidrN0
class studentCard{
int id;
String name;
int age;
}
public class lesson22{
static void PCI(studentCard card){/*studentCardのインスタンスの参照をcardという変数で受け取る*/
System.out.println("IDは"+card.id);
System.out.println("名前は"+card.name);
System.out.println("年齢は"+card.age);
}
static void CCI(studentCard card){
card.id = 0;
card.name = "未定";
}
public static void main(String[] args) {
studentCard a = new studentCard();
a.id = 1234;
a.name = "KK";
a.age = 18;
PCI(a);
CCI(a);
PCI(a);
}
}
実行結果が
IDは1234 名前はKK 年齢は18
IDは0 名前は未定 年齢は18
こうなるんだが
PCI(a);
CCI(a);
PCI(a);←これが動いてないのはなぜ?
2020/08/09(日) 09:34:06.62ID:rCBAkheA0
試しにCCI(a);をコメントアウトしてみ
2020/08/09(日) 09:49:35.86ID:xuz2Z0h20
PCI = Print Card Instance
CCI = Clear Card Instance
かな

CCIを呼び出すとIDと名前がクリアされるからその後のPCI呼び出しではID 0、名前 未定が表示されるのは正しい

ていうかこれで何を学ばせたいんだろうな
出題してる先生もあまりプログラミング分かってないんじゃないか
2020/08/09(日) 10:35:55.80ID:M7hSzY+b0
public classだとインスタンス作んないでいいんだっけ?
2020/08/09(日) 10:44:39.46ID:0YrfFsHe0
1回しかnewしていないんだから値を変えたらメソッドを跨いでも変更は反映されたまま
参照渡しと値渡し的なものの不理解をはっきりさせるコードだな
2020/08/09(日) 10:44:55.22ID:0YrfFsHe0
staticメソッドはインスタンス要らない
2020/08/09(日) 11:15:33.82ID:rCBAkheA0
そこじゃなくて
2回目のPCIがなぜ動いていないと思ったのかじゃないの
477デフォルトの名無しさん (テテンテンテン MM8b-/Jt2)
垢版 |
2020/08/09(日) 11:24:38.12ID:vWm9zQuTM
意味が分からん
2020/08/09(日) 11:39:04.17ID:0YrfFsHe0
「動いてない」というのは間違ってて
「期待した値とは違う値で動いてる」というのが正しい理解
些細な言葉尻の問題のようで意外と大事なこと

そのうえで、期待した値と違う理由は上で説明した通り
2020/08/09(日) 12:52:08.63ID:rCBAkheA0
余計な事を言って混乱させる前に
動いていないとは?からが重要
480デフォルトの名無しさん (ワッチョイ 13a5-w77N)
垢版 |
2020/08/09(日) 13:11:00.89ID:r8wfwf1H0
・CCIでageを消去してない
・そもそもカードの中身を書き換えて新しいカードを作る・使い回すってのはおかしい
カードそのものの破棄をしないと学生証としてはヤバい
ならメンバが全部finalになってないとダメ

Javaは全て参照ってのを言いたいんだろうけど、例題が悪すぎる
2020/08/09(日) 13:18:27.81ID:xuz2Z0h20
クラス名がstudentCard(小文字で始まってる)
メソッド名PCI,CCIが大文字&省略

こんな先生にJavaを教わってる学生さん可哀想だ
2020/08/09(日) 17:16:04.12ID:vC4/Z0I10
card.id = 0;

こんなこと出来るのかと思ったらこの場合OKなんだな。
構造体代わりに使えるじゃん。
2020/08/09(日) 20:36:14.52ID:EsmywIKu0
構造体としてイメージしてるなら
>>470の課題作った人はC言語出身なのかもね
484デフォルトの名無しさん (ワッチョイ 13ad-Jb2s)
垢版 |
2020/08/10(月) 00:30:07.27ID:Z7zFlWuQ0
>>470
動いてんじゃん
485デフォルトの名無しさん (ワッチョイ 13ad-Jb2s)
垢版 |
2020/08/10(月) 00:31:24.71ID:Z7zFlWuQ0
>>473
そんなことはない。
何かと勘違いしてないか?
2020/08/10(月) 00:47:30.16ID:YVjKPj0t0
>>485
>>475で回答いただきました
ありがとうございます
487デフォルトの名無しさん (ワッチョイ e122-Ea0s)
垢版 |
2020/08/10(月) 07:43:05.88ID:YjzD0LUA0
「serialVersionUIDが定義されていません」
これの解決方求む(・ω・)
Qiitaの記事見てもよくわからなんだ
ただ動作は普通にしてるし無視してもいいのだろうか。
488デフォルトの名無しさん (ワッチョイ 1361-I3qO)
垢版 |
2020/08/10(月) 08:22:27.86ID:vvFDA/fb0
>>487
そのクラスをデータ(フィールド)の運搬役として使わないと断言できるなら無視していい。
詳しくはSerializationで調べる。
2020/08/17(月) 10:18:22.10ID:E4in+sPc0
>>487
ObjectXXXputStream()?
コードないとどーもわからん
2020/08/17(月) 11:40:31.07ID:NfdS9Mmq0
何もわからなくて不安な場合はおまじないでこれ書いておけばイイよ
private static final long serialVersionUID = 1L;
手抜きだけど、シリアル化を積極的に活用していない場合これでまず問題ない
2020/08/17(月) 14:53:10.42ID:Sn2sMCzX0
それを書くよりは@SuppressWarnig("serial") のほうがよい
2020/08/17(月) 16:01:27.48ID:NfdS9Mmq0
1Lは単に警告を消すだけのおまじないではないよ
省略すると、異なるVM間でのやりとりで望まない例外が出るケースもある
起こってから対処してもいいから、心配性でないなら無視が手っ取り早いのは確か
2020/08/17(月) 16:36:37.08ID:Sn2sMCzX0
クラス構成が変わるとシリアライズした結果のバイト列も変わる
クラス構成を変えたらUIDも変える
これで異なるクラスバージョンで直列化・復元がおこなわれないようにチェックできる
UIDを-1に固定するというのはクラス構成が変わっても直列化互換性がありますと宣言していることになる
訳も分からず -1 を指定するのはオススメしない
むしろIDEでランダムUID振ったほうがいい
494デフォルトの名無しさん (ワッチョイ 4601-gKdG)
垢版 |
2020/08/17(月) 16:57:43.98ID:4e6PsksO0
シリアライズすることなんて一生無いだろ
2020/08/17(月) 17:09:18.96ID:Sn2sMCzX0
たしかに
他のホストに送るとか長期的に復元したいならJSONとか汎用フォーマット使ったほうがいいからね
でもAndroidだとアクティビティの状態保存でシリアライズ多用するぞ
2020/08/17(月) 21:13:19.56ID:yvXNt/LA0
俺、ubuntu使いだけど、JavaFX始めるのOpenJDKとかOracleJDKとかめっちゃ苦労した。

で、liberikaJDKとかいうの入れたら一発でコンパイル&実行できるようになった。

OpenJDKとかOracleのJDKはなんであんなにJavaFXを使いにくくしてるのか?
今どきSwingを使えというのか?ちょっと考えてくれ。
2020/08/17(月) 21:25:54.94ID:yvXNt/LA0
Ubuntuで音楽再生ソフトとか簡単なやつ作るのにJavaFXがちょうどいいんだよ。

WindowsはC#で作ったけど、Ubuntuだと適当なのなくてPythonとかも音楽周りは以外に面倒であとはQtQuickとか割と良さそうだけどそうでもないし、JavaFXが一番いいんだよ。

SwingでつくるならJMFだったかそんなん使わないとだめだろ?

頼むて!
2020/08/17(月) 21:51:12.51ID:Sn2sMCzX0
俺もJavaFX好き
LibericaJDKの他にZuluもOpenJFXをバンドルしたJDKを配布してる
2020/08/18(火) 01:04:06.79ID:hdiJWVQEM
>>496
JavaFXは公式には既に廃止されている
500デフォルトの名無しさん (ワッチョイ 42ad-1fRW)
垢版 |
2020/08/18(火) 06:15:34.39ID:dt1Ebxxn0
>>499
Javaの実行環境に含めて一緒に配布するのを止めただけでは?
501デフォルトの名無しさん (ワッチョイ c261-QlkZ)
垢版 |
2020/08/18(火) 07:31:04.85ID:BimbjRax0
JavaFXってPure Javaだっけ?
2020/08/18(火) 07:38:03.82ID:M2QC6gPH0
Pure Javaってなんだっけ?
ネイティブコード使わないんだっけ?
もしそうならJavaFXはPure Javaではない
レンダラーとかDLL/SOだらけだよ
だからJavaFXが提供されているプラットフォームでしか動かない
2020/08/18(火) 08:46:58.64ID:aT4tVeUSM
Pure Javaの条件は、Javaの標準APIのみを使用していること
標準APIの中で用いられているネイティブコードはノーカン
そしてJavaFXはもう標準ではないのでPure Javaではない
504デフォルトの名無しさん (アウアウエー Sa7f-WzHs)
垢版 |
2020/08/20(木) 17:38:45.60ID:gw+nW9Uya
質問です。
Java8とTomcat 8.5のWebシステムの環境構築をしています。

プロジェクトがいくつかあってSVNからソースを落とすのですが、
プロジェクトAはビルドするとWebContent配下のjarファイルがWeb Appライブラリーに入るのに、
プロジェクトBはそのようになりません。

プロジェクトを右クリ→プロパティ→Javaのビルドパス→ライブラリー→Web Appライブラリー→編集
からプロジェクトの設定はしています。リフレッシュやクリーン、Eclipseの再起動も試しました。

丸コピする手も一応はありますが、
後学のためにどうすればWeb Appライブラリーにコピーされるようになるのか設定方法を教えてください。
よろしくお願いします。
505デフォルトの名無しさん (ワッチョイ ff01-dFmy)
垢版 |
2020/08/20(木) 20:23:16.03ID:BhReT/u10
>>504
FacetsでDynamic Web Projectにチェックを付ければOK
506デフォルトの名無しさん (ワッチョイ 7fad-YpYZ)
垢版 |
2020/08/20(木) 23:44:29.96ID:OMCkJ+/D0
Javaは近くのマルエツで328円で売っていた。
http://doverfield.co.jp/item/item0632.html
507デフォルトの名無しさん (ワッチョイ 9f01-i6pf)
垢版 |
2020/08/21(金) 00:06:34.64ID:Q2DXCe4b0
関東の玉出と言われるマルエツか。
508デフォルトの名無しさん (ワッチョイ 7f3c-m4He)
垢版 |
2020/08/23(日) 22:05:43.72ID:oYq459dG0
JavaでWindowsのスリープはどうやるんですか?

「Java スリープ」とかサスペンドとかハイバーネートとかぐぐると
Threadクラスの情報やら果てはHibernate(ORマッピング?)の情報しかでてきません。

キーワードだけでもいいので教えてくれたら嬉しいです。
2020/08/23(日) 23:15:26.58ID:DAd9Ru2KM
>>508
ユーザーの許可なく
はた迷惑なイタズラソフトが出来てしまうので教えられません
2020/08/24(月) 03:43:31.71ID:seWRIuQk0
単なる1つのアプリが、OS をスリープさせる?
そんな事が、できるわけない

OSとは、システム全体のこと

個別ユーザーには、出来ない。
すべてのユーザーが、OSを使っているから

OSの支配者・アドミニストレーターしかできない!
511デフォルトの名無しさん (ワッチョイ 7fad-mHL/)
垢版 |
2020/08/24(月) 04:09:39.41ID:8Ar+AlN+0
管理者権限で動かせば出来るね。
2020/08/24(月) 06:38:08.38ID:wbn0QRvM0
java単体じゃ難しいね
てかキーロガーとかもそうだけどモノによってはやり方書くの違法じゃなかった?

一応javaから他のソフトとかexeファイルとか実行できるよ
とは教えておくわ
513デフォルトの名無しさん (ワッチョイ ff02-pYtf)
垢版 |
2020/08/24(月) 07:34:17.03ID:Ln0wzo/i0
>>512
> てかキーロガーとかもそうだけどモノによってはやり方書くの違法じゃなかった?
そんな話聞いたことない
法令名なんじゃい
2020/08/24(月) 08:20:11.75ID:k+YcXwpu0
そんなんで違法とか公式ドキュメントすら作れないなw
2020/08/24(月) 08:24:53.08ID:xbF3iq7dM
幇助(ほうじょ)とは、刑法において、実行行為以外の行為で正犯の実行行為を容易にする行為一般を指す。

幇助行為を行った者は、刑法第62条1項で従犯(幇助犯)とされる。
2020/08/24(月) 08:29:21.57ID:G2gDGYknr
得体の知れないアプリを管理者権限で動かすってこと自体がウイルス歓迎の自殺行為なんだよ
スリープさせるくらいなんでもない
普通にWindowsAPIを呼べばいいだけだから、マルチプラットフォームを志向するJavaじゃなく、PowershellなりC#なり呼び出せばいい
2020/08/24(月) 08:32:37.00ID:G2gDGYknr
スリープ状態を変えたりOSをシャットダウンさせるフリーソフトなんてごまんとある
配布サイトはさしずめ悪の枢軸組織ギフハブみたいなもんか?
線引きに勘違いがあることに気付いてほしい
2020/08/24(月) 08:43:51.13ID:xbF3iq7dM
http://itest.5ch.net/mevius/test/read.cgi/tech/1591334726/380
519デフォルトの名無しさん (ワッチョイ ff01-dFmy)
垢版 |
2020/08/24(月) 11:04:04.76ID:+IQOtOJW0
お前ら無限ループ実装して逮捕されそうw
520デフォルトの名無しさん (ワッチョイ 7f3c-m4He)
垢版 |
2020/08/24(月) 12:59:15.43ID:x/nbMOjm0
for文で5000回メール流してプロバイダに赤チン食らったバカならしってる。
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はアドレスのままでいいね
たしかにそういった状況はある
警告はやりすぎだったかも ごめんね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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