★★Java質問・相談スレッド182★★

レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん (アウアウウー Sa73-AAco [106.132.135.194])
垢版 |
2018/11/19(月) 11:37:06.10ID:C68x9bSia

プログラミング言語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質問・相談スレッド181★★
https://mevius.5ch.net/test/read.cgi/tech/1518252580/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured
2020/02/19(水) 14:14:18.61ID:1aV3jaSpM
ネイティブコンパイル出来るようになったからGUIアプリの需要結構あると思うけどね

C#のネイティブコンパイラまだ実用レベルにないし
2020/02/19(水) 14:37:29.31ID:4iImSo2cM
>>882
どういう歴史的事情なのですか?
2020/02/19(水) 14:38:16.24ID:4iImSo2cM
JavaのGUIが普及さなかったことに僕は納得できません
886デフォルトの名無しさん (アウアウウー Sa57-6k5J [106.132.129.246])
垢版 |
2020/02/19(水) 18:31:45.86ID:/R79ylGQa
>>884
Javaが広まり始めた90年代後半のPCは遅くてメモリも少なく、JavaVM起動直後の初期化でとても時間が掛かった。もちろん何もかもが遅く当然GUIも遅かった。
またJavaプログラム以外に別途JavaVMをインストールしておかねばならず初心者にはこれが壁になり普及を大きく妨げた。

ということでPCのデスクトップアプリケーションとしてのJavaは早々に死に、サーバーサイドのプログラムとして使われる事が多くなった。GUIの進化などするわけがない。

ただしAndroidによってクライアント側のGUIが救われたとは思える。主にスマホやタブレットになるが。
2020/02/19(水) 18:34:21.04ID:7ZNyFvkM0
swingがスレッドセーフじゃないと知らずに別スレッドに投げて処理してた。
TextFieldは大丈夫だった。comboboxがうまく動かなくて調べて初めて知った。
2020/02/19(水) 18:59:54.45ID:4iImSo2cM
>>886
納得しました
889デフォルトの名無しさん (JP 0Hdf-DPpo [153.143.139.144])
垢版 |
2020/02/20(木) 11:02:01.43ID:vFkAWpkQH
動画リンク
https://youtu.be/7DbdPKWhrpY
ファイル名
令和のコペルニクス.mp4

六角アミダって有りそうで無いので自作しました。
890デフォルトの名無しさん (ワッチョイ ef01-/D8n [111.90.14.57])
垢版 |
2020/02/20(木) 21:26:53.76ID:F4jYa5rU0
>>889
ソースコード見た
きれいなコードだった
891デフォルトの名無しさん (アウアウウー Sa57-6k5J [106.132.135.72])
垢版 |
2020/02/21(金) 12:50:11.92ID:TKnLlA6xa
そういえば Chromebook はAndroid用のプログラムも動くらしいな。
ということは何の苦もなくそのままの状態でJavaのGUIがPCで動くということでもあるな。
日本では Chromebook 売れてないけど。
2020/02/25(火) 02:33:13.31ID:zG0qK6rK0
>>877 Swing 便利だぞ
2020/03/15(日) 23:27:22.01ID:weQDtzSh0
List って使うのやめませんか?
見にくい
2020/03/16(月) 00:27:35.44ID:5NAQQQ5VM
何が見にくいのやら
2020/03/16(月) 09:57:38.95ID:bP3xNskMa
ArrayListのことを言っているのだとすれば
長さが可変の配列として使えるので「便利」
2020/03/17(火) 03:50:44.28
Eclipse使ってます。

色々なライブラリを導入した時は、Javadocもインストールして開発を捗らせてます。
あるライブラリ(jar)の日本語javadocがあるかどうかってどこでどうやって判断したら良いですかね?
それとも、Pleadesに標準装備されてるJavadoc以外は基本的に日本語Javadocは期待しない方がいいですかね
2020/03/17(火) 05:05:59.52
Eclipse使ってます。
昨日、pleiades-2019-12-ultimate-win-64bit-jre_20200213つまり最新版の全部込みを導入したんですが、
Javaソースコード編集中にマウスカーソルホバーでドキュメントがポップアップするやつですが、Filesクラスの説明が英語のままなんだが、何で?
ブラウザから
https://docs.oracle.com/javase/jp/13/docs/api/java.base/java/nio/file/Files.html
を見に行ったらちゃんと日本語だったんだが、Eclipse側でどういう設定にしたら良いの?
898デフォルトの名無しさん (アウアウウー Sa91-lxu7 [106.132.124.63])
垢版 |
2020/03/17(火) 17:37:29.70ID:4Vk7SyLRa
>>893
Kotlinだと同じListが見た目綺麗に書けるよ。
2020/03/18(水) 00:29:29.98ID:LQtyodHE0
Ruby on Rails なら、アプリの設定ファイルに、
I18n.locale = :ja とか、:en とか設定する

それで、自分で日本語用の翻訳ファイルを作る。
設定/locales/ja.yml

member: 会員情報
full_name: 氏名
email: メールアドレス

こういう感じ
2020/03/18(水) 09:49:51.69ID:0YH7V5fkM
>>899
早く氏ね
901デフォルトの名無しさん (ワッチョイ dfb0-y1YS [114.165.4.23])
垢版 |
2020/03/26(木) 18:37:22.31ID:/asxdJYI0
Javaで何かを作る過程を詳細に説明してる書籍ってないの?
902デフォルトの名無しさん (ワッチョイ 7fb9-B4Y8 [123.48.128.206])
垢版 |
2020/03/30(月) 05:29:57.97ID:vlbwcsc70
クラスローダー毎にstaticフィールドが異なるという話が本当か調べようと思って
実験コードを書いてたんだけど
異なるクラスローダーで同じクラスを読み取って
this.getClass().getClassLoader()ってやったら同じインスタンスが返ってきてしまって
異なるクラスローダーで同じクラスを実行するという事ができない。
誰かそういうコード書ける?
903デフォルトの名無しさん (ワッチョイ 7fb9-B4Y8 [123.48.128.206])
垢版 |
2020/03/30(月) 06:11:56.99ID:vlbwcsc70
できたわ
確かにクラスローダー毎に静的フィールド異なるな
このコード書いてみてクラスローダー周りが良く分かった
904デフォルトの名無しさん (ワッチョイ 1ab9-zfCe [123.48.128.206])
垢版 |
2020/04/09(木) 17:33:07.09ID:09nXStiY0
人いないな
人気言語Javaでこれか
2020/04/09(木) 17:37:43.96ID:OBt9P9fC0
俺もいる
2020/04/09(木) 17:38:30.10ID:RTR2QVCs0
>>904
内緒の話だけど、
2ch/5chは昔から5人位くらいががんばっていろんな板に書いているだけ。
2020/04/09(木) 18:01:19.95ID:pqMoXxyo0
>>901
掌田津耶乃だろ。
あらゆるゲームエンジン・フレームワークの本を書いてる!
まあ、Rails が一番有名だけど

Spring Framework 4 プログラミング入門、掌田津耶乃、2014
Spring Boot プログラミング入門、掌田津耶乃、2016

Node.js超入門、2017
PHPフレームワーク Laravel入門、2017
CakePHP 超入門、2018

Python Django 超入門、2018
Android/iOSクロス開発フレームワーク React Native入門、2018

Ruby on Rails 6 超入門、2020/2/21
2020/04/11(土) 00:40:17.85ID:mccf80iK0
>>907
死ね屑
909デフォルトの名無しさん (アウアウエー Sa52-tpvz [111.239.185.171])
垢版 |
2020/04/11(土) 12:22:10.65ID:xkRXqkmOa
下記図のように、複数の三角形を描きたいです。
List<Point> ls;に格納したPointはソートされていますが、数は増減したりし、
マウスの座標は動きます。
java.awt.GraphicsのfillPolygonを使って
for (int i = 0; i < ls.size(); i++) {
g.fillPolygon(new int[mx, ls.get(i).getX(), ls.get(i + 1).getX()],
new int[my, ls.get(i).getY(), ls.get(i + 1).getY()]
,3);
}
のように書けないか考えているのですが、何かいい方法はありますでしょうか?
2020/04/12(日) 21:06:14.95ID:PRMGLprP0
for (int i = 0; i < ls.size(); i++) {
g.fillPolygon(new int[]{mx, ls.get(i).getX(), ls.get(i + 1).getX()},
new int[]{my, ls.get(i).getY(), ls.get(i + 1).getY()}
,3);
}
こういうこと?
毎回newするのはイケてないので配列使いまわしたほうが良いよ
911デフォルトの名無しさん (ワッチョイ 5fb0-VPH2 [114.165.4.23])
垢版 |
2020/04/14(火) 16:10:32.31ID:Y5NGNrzR0
ラムダ式って匿名クラスの省略表記のことですか?
2020/04/15(水) 15:03:37.07ID:pEtkgVWE0
ラムダ式の式って、方程式の式?それともオギノ式の式?
便乗で、くだらない質問でスマソ
2020/04/15(水) 15:38:20.11ID:SJCxaNjJ0
lambda expression
equation
Ogino method

equationはmathematical expressionの一種だから方程式の式
2020/04/15(水) 15:44:38.42ID:SJCxaNjJ0
>>911
間違ってはいない
Javaでは匿名クラスの省略表記のような形でラムダ式が実現されてる
プログラミング言語一般で考えると第一級関数である方が本流で匿名クラスと等価とは限らない
2020/04/15(水) 15:49:51.69ID:pEtkgVWE0
>>913
なるほど。回答サンクス
916デフォルトの名無しさん (ワッチョイ 19b0-dkLK [114.165.4.23])
垢版 |
2020/04/15(水) 17:34:16.36ID:tqIYDceK0
>>914
ありがとうございます
Javaで何か作ってみたいのですがJavaでゲームを作ろうみたいなやつは古い本ばかりであまり参考になりそうにないですね
2020/04/15(水) 19:42:23.77ID:oc9v+Ado0
Java でゲームプログラミングと言えば、
YouTube で有名な、T Umezawa のシリーズだろ

最近のJava は、Ruby on Rails のコピーで、
Spring Boot で、web プログラミングだろ

まあ、すべてのフレームワークの基本である、
Rails をやっていないと、web プログラミングは難しい
918デフォルトの名無しさん (ワッチョイ 095f-NJmS [106.72.163.96 [上級国民]])
垢版 |
2020/04/16(木) 23:06:30.69ID:GRiepDCa0
知ったかぶり風
919デフォルトの名無しさん (ワッチョイ 095f-NJmS [106.72.163.96 [上級国民]])
垢版 |
2020/04/16(木) 23:07:20.97ID:GRiepDCa0
WebアプリケーションそのものはJavaではない。
920デフォルトの名無しさん (アウアウエー Sa23-qpj1 [111.239.187.174])
垢版 |
2020/04/18(土) 00:08:56.76ID:/cj6qYxIa
>>910
ありがとうございます。
出来ました。

1つ質問なのですが、
「毎回newするのはイケてないので配列使いまわしたほうが良いよ 」
ということはどういうことでしょうか?
921デフォルトの名無しさん (ワッチョイ 095f-NJmS [106.72.163.96 [上級国民]])
垢版 |
2020/04/18(土) 00:46:21.08ID:AvZMO+wH0
毎回、動的にメモリを確保する意味がわからない。
2020/04/18(土) 02:09:38.89ID:yOAua5ec0
ヴィジュアルスタジオコードで
新しいpackageを作るにはどうすればよいの?
923デフォルトの名無しさん (ワッチョイ 13ad-Ho7r [27.139.77.105])
垢版 |
2020/04/18(土) 13:43:12.82ID:VYQrLT4k0
>>920
その場合ループの中にあって同じ要素数の配列のためのメモリ確保と解放の処理が繰り返されるし、尚且つ一つのメソッドの引数で使って即不要になるので無駄な感じがする。
もちろんコンパイラがうまいこと最適化して最終的なコードに無駄はなくなる可能性はあるのだが、Javaの場合はそれが保証されていない。

ということでそういう場合はループの外で配列を new してから使う方が良い。
924デフォルトの名無しさん (ブーイモ MMeb-AGCG [163.49.209.169])
垢版 |
2020/04/19(日) 16:00:29.92ID:8cBnO1r8M
リソースと外部ファイルの違いを理解するところから。
Javaに限った話ではない。
925デフォルトの名無しさん (ワッチョイ 095f-Tn3+ [106.72.163.96 [上級国民]])
垢版 |
2020/04/19(日) 17:42:15.94ID:3CRJEjuQ0
年齢に関係なく物理メモリが無尽蔵にあると思っている人間は多いからね。
926デフォルトの名無しさん (アウアウエー Sa23-csEB [111.239.186.230])
垢版 |
2020/04/21(火) 20:33:38.51ID:8bW+Kt6Ua
>>923
ありがとうございます。
このような書き方でもいいのでしょうか?

public void func() {
int[] lx, ly = new int[3];
lx[0] = mx;
ly[0] = my;
for (int i = 0; i < ls.size(); i++) {
lx[1] = ls.get(i).getX();
lx[2] = ls.get(i + 1).getX();
ly[1] = ls.get(i).getY();
ly[2] = ls.get(i + 1).getY();

g.fillPolygon(lx, ly, 3);
}
}
927デフォルトの名無しさん (ワッチョイ 6bda-3ZT4 [121.114.117.145])
垢版 |
2020/04/21(火) 23:24:37.91ID:5ht19G0Q0
初歩的な質問ですみません

スイッチ分のcaseに定数を使ったらエラーで怒られたのですが、ここに定数を使ってはいけないのでしょうか?
文字列の判断の際、定数が安全なのですが、やはりcaseには直に文字列を書くしかないですか?
2020/04/21(火) 23:35:53.08ID:C52TTD3s0
エラー文貼って
2020/04/22(水) 04:01:43.60ID:M5XlvSVjr
>>927
普通に使えるから書き方間違ってんでしょ
2020/04/22(水) 17:53:16.23ID:TD6vt53g0
FileWriterやFileReaderを用いたファイル入出力処理では、
やはりthrowsではなく、try-catch-finallyを使った例外処理をすべきですか?
2020/04/22(水) 18:33:32.39ID:QyipDPr70
どの層でcatchすべきかはデザイン次第
個人的なツール等で利用者が困らないなら別に外まで投げっぱなしでもいい
いずれにしてもtry-with-resourse文は使うべき
2020/04/22(水) 19:14:33.76ID:TD6vt53g0
>>931
参考になります。
ありがとうございます。
2020/04/22(水) 23:56:55.34ID:isrmfS5f0
>>926
よきよき
934デフォルトの名無しさん (ワッチョイ ff01-9eV8 [111.90.14.57])
垢版 |
2020/04/23(木) 00:02:52.73ID:OS0IvuzA0
早すぎる最適化の典型例
2020/04/23(木) 00:54:08.15ID:sh2IntRG0
個別アプリでtry-catch構文を使うなとか嘗め腐った規約
共有部分で使いまくってるのに個別アプリで使うとだめな理由が一切わからない
規約作ってるやつが俺Sugeeeしたいのか
936デフォルトの名無しさん (ワッチョイ ff01-9eV8 [111.90.14.57])
垢版 |
2020/04/23(木) 01:04:14.00ID:OS0IvuzA0
>>935
まとめてロギングしたいとかじゃないかな
catchするならリスローしてねの規約があってもよさそうだけど
わからないなら聞いたら良いと思うよ
2020/04/23(木) 09:31:20.01ID:MgcChLvv0
同情してほしいのかw
2020/04/23(木) 17:29:55.27ID:+/WR4MAB0
初心者になるべくtry-catchを使ってほしくないという気持ちは分かる
例外が握りつぶされる
原因例外が途中で捨てられエラー発生元が分からなくなる
無意味なラッピングがされていてcatchがうまく書けなくなる
同じ例外のスタックトレースが何度も何度も出力される
もううんざりだよ
2020/04/23(木) 23:22:54.42ID:EqDE6vCO0
そんなこといったって、どうすりゃいいのさコロコロ(AAry
2020/04/24(金) 01:31:21.77ID:7OUYGVe4r
ヨシ!
catch(Exception e){
throw new Exception();
}
2020/04/24(金) 08:49:19.15ID:SZShfMPk0
例外のたらい回しや〜
942デフォルトの名無しさん (ワッチョイ 5361-Op/G [112.136.82.191])
垢版 |
2020/04/24(金) 12:03:25.18ID:oe7zjHr90
よくある↓のようなifで事前チェックさせる方式がなぜまずいのか考えてみよう。
if (resource.isAvailable()) {
resource.getData();
...
}
2020/04/24(金) 14:43:08.72ID:TokoipqW0
いや普通にロックかければいいじゃない。その例は良くない。
それにgetDataの根本のところでも同じようなことをやってるだろう。
2020/04/24(金) 15:22:40.00ID:+0niyonSM
atomicityを問題にしてるわけじゃないだろ

そこは事前チェックする場合だろうと例外でハンドリングする場合だろうと大差ない
2020/04/24(金) 15:42:12.97ID:TokoipqW0
じゃあ942は何がまずいのか分からん
2020/04/25(土) 05:32:13.99ID:EmF7EpXGd
初歩の初歩なんだろうけど
javaでデータを保持しておきたい場合ってどういう風にするのが一般的?
たとえば作った名簿(HashMapなんかを想定)を次に使うときまで保持しておいて、次回はそれを使って続きから作業したいみたいな
テキストで保存しとくとかいくらでもやりようは思いつくんだけど、セオリーを知りたい
2020/04/25(土) 06:22:35.23ID:4NLY0GvS0
tryの後の()の中に2つ文を書くことは出来ますか?
例えば、
try(FileReader fr = new FileReader(fileName);
BufferedReader br = new BufferedReader(fr);)
と書けますか?
2020/04/25(土) 11:40:04.07ID:ek8I9sztM
>>946
シリアライズでググれ
2020/04/25(土) 11:40:45.14ID:ek8I9sztM
>>947
tryの後は{}
2020/04/25(土) 12:09:14.21ID:4NLY0GvS0
>>949
{}の前です
Java7から導入された記述方式らしいのですが
2020/04/25(土) 12:40:24.18ID:pY24ooGqM
>>950
あ〜、できるよ
それはtry-with-resourceって名前
2020/04/25(土) 12:52:44.81ID:4NLY0GvS0
>>951
やってみます
ありがとうございました
2020/04/25(土) 19:13:40.59ID:4NLY0GvS0
たびたびすいません

https://pastebin.com/dTMz4gib
上のコードがコンパイルエラーになってしまうのですが、理由が分かりません
「identifierがありません」と表示されてしまいます
どなたかよろしければ、回答をお願いします
2020/04/25(土) 19:56:44.28ID:7cJ26G9d0
>>953
try(FileReader fr = new FileReader("matrixA.txt");
BufferedReader br = new BufferedReader(fr)) {
2020/04/25(土) 20:01:48.54ID:ft4DoFbAa
try(
ではなくて
try{
では?
2020/04/25(土) 21:13:46.97ID:OfMSEBEA0
>>953
変数宣言はtry ()の内側に書く必要がある
Java9あたりからは外で宣言しても良くなったけど、それでもeffectively finalであることが前提だからfrへの代入はNG
そもそもメソッド冒頭に宣言を集めてしかも取りあえずnullで初期化しとけってのは悪癖だからやめた方がいい
2020/04/25(土) 23:24:22.99ID:WvCOhEhy0
>>953
言いたかないけど質問のレベルが低すぎる気がする。
変数のスコープも理解できてないようだし、
それコピペしてきて動けばいい感じで動かしているだけだよね。
学校の宿題なんだろうけど、もっとちゃんと勉強しようよ。
ここでサボって人に聞いたものを単純に覚えていたら
この先何も書けなくなるよ。形を覚えるんじゃなくて
意味を覚えよう。
2020/04/25(土) 23:49:36.24ID:4NLY0GvS0
答えてくれた方ありがとうございました

>>954
やっぱりそう書かないといけないんですね…

>>955
try with resource文に関してです

>>956
>メソッド冒頭に宣言を集めてしかも取りあえずnullで初期化しとけってのは悪癖
マジですか

>>957
すいません
スコープは理解しているつもりです
例外処理をあまり書いたことがなかったので…

学校の宿題ではありません
大学は数年前に卒業しています
2020/04/26(日) 10:51:45.92ID:BocD88xX0
>>958
文法規則を知らないって意味ではなくスコープとはどう活用すべきものなのかが把握できてないってことだと思うよ
たとえばクリティカルシンキングのスキルが不足している優しいイイ人は10年やっても残念なコードしか書けないことがよくある
もしプロとしてJavaを書いて金を貰っているならリーダブルコードのような良書を一冊読んでみるのをお薦めする
960デフォルトの名無しさん (ワッチョイ 1f02-Btmo [59.129.240.22])
垢版 |
2020/04/26(日) 11:59:50.88ID:aAS4CHj70
すいません初心者です助けてください…課題でいきなり詰まってます…
課題の言ってることはわかるのですが、いざ書こうとなるとうまくまとめることが出来ません…
解答例を示していただけないでしょうか…
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14223782454
長すぎてエラーになってしまったので知恵袋の投稿見ていただけると助かります…
2020/04/26(日) 12:04:35.25ID:0wpm4o+CM
>>960
★★ Java の宿題ここで答えます Part 74 ★★ [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1477625280/
962デフォルトの名無しさん (ワッチョイ d7b0-DEv8 [114.165.4.23])
垢版 |
2020/04/26(日) 12:05:05.54ID:f4V9z6xn0
Javaのgoldまで取得できたので実際に何か作ってみたいと思っています
Java + MySQL + Tomcatで作る掲示板とブログという本を参考に掲示板を作ってみようと思っているのですがこの本で問題ないでしょうか?
発売されたのは2005年みたいなので古すぎて参考にならないとかありますかね?
963デフォルトの名無しさん (ワッチョイ ff01-9eV8 [111.90.14.57])
垢版 |
2020/04/26(日) 12:14:02.60ID:47T+vKxr0
>>962
作るのに資格も本も必要ないググって作れるっしょ
964デフォルトの名無しさん (ワッチョイ ff01-9eV8 [111.90.14.57])
垢版 |
2020/04/26(日) 12:29:34.20ID:47T+vKxr0
>>960
https://paiza.io/projects/ybHyJcapWsMAVpEV6JQLUQ
965デフォルトの名無しさん (ワッチョイ 1f02-Btmo [59.129.240.22])
垢版 |
2020/04/26(日) 12:37:25.80ID:aAS4CHj70
>>964
親切にありがとうございます!!!
本当に助かります…
966デフォルトの名無しさん (アウアウウー Sa17-Lf76 [106.128.187.188 [上級国民]])
垢版 |
2020/04/26(日) 14:02:57.82ID:G0DkXyp/a
【 課題 】 https://drive.google.com/open?id=1QaPxq5C66ZQpcCyITgS2XCQDs44zoomy
       複数あるのでgoogledriveで課題内容を共有させていただきます
【 形態 】1. Javaアプリケーション
【 GUI  】
【 期限 】4月29日
【 補足 】丸投げです…申し訳ありません…
967デフォルトの名無しさん (アウアウウー Sa17-Lf76 [106.128.187.188 [上級国民]])
垢版 |
2020/04/26(日) 14:03:17.84ID:G0DkXyp/a
すいませんスレ間違えました…
968デフォルトの名無しさん (アウアウウー Sa17-Lf76 [106.128.184.230 [上級国民]])
垢版 |
2020/04/26(日) 20:56:15.37ID:2WL2jfIba
エクリプスでjunit使いたいんですけど、うまくいきません…
ここ見れば使い方わかるみたいなサイトってありますか?
自分でも調べてやってみたんですけど、「テストランナーjunit4のテストが見つかりません」と出てしまい困ってます…
2020/04/26(日) 23:02:21.88ID:IvO3yqTY0
>>962
2005年か

Ruby on Rails が流行ったから、
今はどの言語でも、Rails のコピーが隆盛で、

Java でも、Groovy で、Spring Boot などに変わった
970デフォルトの名無しさん (ワッチョイ ff01-9eV8 [111.90.14.57])
垢版 |
2020/04/26(日) 23:27:59.91ID:47T+vKxr0
>>968
ビルドパスにjunitのjarとhamucrestのjarを追加して
こういうクラス書いて実行すればできるっしょ

import org.junit.Test;

public class MainTest {
@Test
public void testA() {
System.out.println("hoge");
}
}
971デフォルトの名無しさん (アウアウエー Sa5f-Op/G [111.239.186.191])
垢版 |
2020/04/28(火) 22:04:38.77ID:NIccQJ3va
ttps://github.com/OneLoneCoder/olcPixelGameEngine/blob/master/Videos/OneLoneCoder_PGE_ShadowCasting2D.cpp
の416から425行の処理はjavaではどう書くのでしょうか?
2020/04/28(火) 22:41:02.37ID:96XBocG+0
Tuple相当のクラスに独自のhasCode()メソッドとequals()メソッドを定義してLinkedTreeSetに突っ込んだらどうかね
973デフォルトの名無しさん (ワッチョイ ff01-9eV8 [111.90.14.57])
垢版 |
2020/04/28(火) 23:33:36.32ID:4kUhwH6S0
>>971
https://paiza.io/projects/QlHbDweVK7Jz5Dui5QzsZQ
974デフォルトの名無しさん (アウアウエー Sae3-D935 [111.239.186.191])
垢版 |
2020/04/29(水) 09:13:39.21ID:GLkFkZ60a
>>972, 973
ありがとうございました。
ラムダを使えばきれいに書くことが分かりよかったです。
975デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
垢版 |
2020/05/06(水) 02:37:11.81ID:UCNL2IRg0
質問
マルチスレッドでコンストラクト中の状態を逸出させないということで
コンストラクタの中でインスタンスメソッドを呼ばないようにしましょうという原則がありますが
コンストラクタの中でインスタンスメソッドを呼びたいときもあると思います
そういうときみなさんはどうしていますか?

・コンストラクタの代わりにstaticのファクトリメソッドを作ってその中でnewしてインスタンスメソッドをコールする
・コンストラクタの中で呼びたいインスタンスメソッドを別のクラスに移動する
・シングルスレッドでしか使わないのでマルチスレッドの原則なんて気にしない、コンストラクタの中でインスタンスメソッドをコールする
・その他

アンケートみたいな感じですけどご回答いただければ幸いです
976デフォルトの名無しさん (ワッチョイ 82ad-48kr [27.139.77.105])
垢版 |
2020/05/06(水) 06:32:23.63ID:izcxg96Z0
>>975
https://irof.hateblo.jp/entry/2016/01/09/231631
2020/05/06(水) 07:43:10.31ID:4GtcOPgo0
>>975>>976 は書いてることが違う?
>>976 はコードに問題があれば100%バグが再現する
>>975 はマルチスレッドと言ってる
>>975 はどのような問題が起こるのかをまず説明して欲しい(知りたい)

コンストラクタな完了前にオブジェクト変数にインスタンス参照が設定される問題は私も知ってるけど
それはインスタンスメソッド呼び出しどうこうといった問題ではないし・・・
978デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
垢版 |
2020/05/06(水) 09:33:39.20ID:UCNL2IRg0
>>976
ありがとうございます!
ドキュメントに書く、オーバーライドできないようにすればおkということですね

>>977
> >>975>>976 は書いてることが違う?
同じです、結局のところそういうことです

> コンストラクタな完了前にオブジェクト変数にインスタンス参照が設定される問題は私も知ってるけど
それです、残念ながらそれです

コンストラクタでインスタンスメソッドを呼び出しても問題ないからやる派ですね?
2020/05/06(水) 11:58:04.95ID:q8N1X/Ij0
>>977,978
別の話が混ざり合ってるな
読んだ人は腑に落ちないか誤解すると思う
互いに密接で合わせ技もあるので完全に切り離すことはできないけど、一緒くたにすると影響や対処に漏れが出る

> マルチスレッドでコンストラクト中の状態を逸出させない
という表現に合うのはこれ
https://www.jpcert.or.jp/java-rules/tsm03-j.html
ただしコンストラクタとは別の初期化メソッドを提供する場合の話

コンストラクタ中から逸出させるなという規約はこれ
https://www.jpcert.or.jp/java-rules/tsm01-j.html
コンストラクタからのインスタンスメソッド呼び出し自体は問題にしてない
シングルスレッドの場合も問題がある

>>976はこれ
https://www.jpcert.or.jp/java-rules/met05-j.html
this逸出の話に比べるとかなり限定的な話
2020/05/06(水) 12:22:20.27ID:4GtcOPgo0
これってJVMのバグではないの?
JVMがコンストラクタが完了するまでインスタンス参照を変数に代入しないようになれば解決するんじゃないの?
なぜ不完全なインスタンスへの参照が変数に設定される可能性をプログラマーが考慮し続けてないといけないの?
今後もずっと続くの?
981デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
垢版 |
2020/05/06(水) 12:22:37.91ID:UCNL2IRg0
>>979
コンストラクタからインスタンスメソッドを呼びたいときどうしますか?
一般論ではなくて個人の考えを教えていただけると幸いです
2020/05/06(水) 15:56:16.60ID:q8N1X/Ij0
>>981
一般論うんぬんじゃなくて論理的かどうかで判断しないとプログラムは言うことを聞かないし
こんな匿名の場で少ないサンプルを集めたところでかりそめの安心感しか得られない
俺の脳内のタカアンドトシが女子か!!と激しくツッコミいれるわ
俺は上で挙げたルールに反しないように書くよ
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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