2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん :2018/11/19(月) 11:37:06.10 ID:C68x9bSia.net

プログラミング言語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

954 :947 :2020/04/25(土) 12:52:44.81 ID:4NLY0GvS0.net
>>953
やってみます
ありがとうございました

955 :947 :2020/04/25(土) 19:13:40.59 ID:4NLY0GvS0.net
たびたびすいません

https://pastebin.com/dTMz4gib
上のコードがコンパイルエラーになってしまうのですが、理由が分かりません
「identifierがありません」と表示されてしまいます
どなたかよろしければ、回答をお願いします

956 :デフォルトの名無しさん :2020/04/25(土) 19:56:44.28 ID:7cJ26G9d0.net
>>955
try(FileReader fr = new FileReader("matrixA.txt");
BufferedReader br = new BufferedReader(fr)) {

957 :デフォルトの名無しさん :2020/04/25(土) 20:01:48.54 ID:ft4DoFbAa.net
try(
ではなくて
try{
では?

958 :デフォルトの名無しさん :2020/04/25(土) 21:13:46.97 ID:OfMSEBEA0.net
>>955
変数宣言はtry ()の内側に書く必要がある
Java9あたりからは外で宣言しても良くなったけど、それでもeffectively finalであることが前提だからfrへの代入はNG
そもそもメソッド冒頭に宣言を集めてしかも取りあえずnullで初期化しとけってのは悪癖だからやめた方がいい

959 :デフォルトの名無しさん :2020/04/25(土) 23:24:22.99 ID:WvCOhEhy0.net
>>955
言いたかないけど質問のレベルが低すぎる気がする。
変数のスコープも理解できてないようだし、
それコピペしてきて動けばいい感じで動かしているだけだよね。
学校の宿題なんだろうけど、もっとちゃんと勉強しようよ。
ここでサボって人に聞いたものを単純に覚えていたら
この先何も書けなくなるよ。形を覚えるんじゃなくて
意味を覚えよう。

960 :947 (ワッチョイ 6b1d-Hty+ [180.178.91.194]):2020/04/25(土) 23:49:36 ID:4NLY0GvS0.net
答えてくれた方ありがとうございました

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

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

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

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

学校の宿題ではありません
大学は数年前に卒業しています

961 :デフォルトの名無しさん :2020/04/26(日) 10:51:45.92 ID:BocD88xX0.net
>>960
文法規則を知らないって意味ではなくスコープとはどう活用すべきものなのかが把握できてないってことだと思うよ
たとえばクリティカルシンキングのスキルが不足している優しいイイ人は10年やっても残念なコードしか書けないことがよくある
もしプロとしてJavaを書いて金を貰っているならリーダブルコードのような良書を一冊読んでみるのをお薦めする

962 :デフォルトの名無しさん :2020/04/26(日) 11:59:50.88 ID:aAS4CHj70.net
すいません初心者です助けてください…課題でいきなり詰まってます…
課題の言ってることはわかるのですが、いざ書こうとなるとうまくまとめることが出来ません…
解答例を示していただけないでしょうか…
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14223782454
長すぎてエラーになってしまったので知恵袋の投稿見ていただけると助かります…

963 :デフォルトの名無しさん :2020/04/26(日) 12:04:35.25 ID:0wpm4o+CM.net
>>962
★★ Java の宿題ここで答えます Part 74 ★★ [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1477625280/

964 :デフォルトの名無しさん :2020/04/26(日) 12:05:05.54 ID:f4V9z6xn0.net
Javaのgoldまで取得できたので実際に何か作ってみたいと思っています
Java + MySQL + Tomcatで作る掲示板とブログという本を参考に掲示板を作ってみようと思っているのですがこの本で問題ないでしょうか?
発売されたのは2005年みたいなので古すぎて参考にならないとかありますかね?

965 :デフォルトの名無しさん (ワッチョイ ff01-9eV8 [111.90.14.57]):2020/04/26(日) 12:14:02 ID:47T+vKxr0.net
>>964
作るのに資格も本も必要ないググって作れるっしょ

966 :デフォルトの名無しさん (ワッチョイ ff01-9eV8 [111.90.14.57]):2020/04/26(日) 12:29:34 ID:47T+vKxr0.net
>>962
https://paiza.io/projects/ybHyJcapWsMAVpEV6JQLUQ

967 :デフォルトの名無しさん :2020/04/26(日) 12:37:25.80 ID:aAS4CHj70.net
>>966
親切にありがとうございます!!!
本当に助かります…

968 :デフォルトの名無しさん :2020/04/26(日) 14:02:57.82 ID:G0DkXyp/a.net
【 課題 】 https://drive.google.com/open?id=1QaPxq5C66ZQpcCyITgS2XCQDs44zoomy
       複数あるのでgoogledriveで課題内容を共有させていただきます
【 形態 】1. Javaアプリケーション
【 GUI  】
【 期限 】4月29日
【 補足 】丸投げです…申し訳ありません…

969 :デフォルトの名無しさん :2020/04/26(日) 14:03:17.84 ID:G0DkXyp/a.net
すいませんスレ間違えました…

970 :デフォルトの名無しさん (アウアウウー Sa17-Lf76 [106.128.184.230 [上級国民]]):2020/04/26(日) 20:56:15 ID:2WL2jfIba.net
エクリプスでjunit使いたいんですけど、うまくいきません…
ここ見れば使い方わかるみたいなサイトってありますか?
自分でも調べてやってみたんですけど、「テストランナーjunit4のテストが見つかりません」と出てしまい困ってます…

971 :デフォルトの名無しさん (ワッチョイ 572c-iUOt [153.194.236.234]):2020/04/26(日) 23:02:21 ID:IvO3yqTY0.net
>>964
2005年か

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

Java でも、Groovy で、Spring Boot などに変わった

972 :デフォルトの名無しさん (ワッチョイ ff01-9eV8 [111.90.14.57]):2020/04/26(日) 23:27:59 ID:47T+vKxr0.net
>>970
ビルドパスにjunitのjarとhamucrestのjarを追加して
こういうクラス書いて実行すればできるっしょ

import org.junit.Test;

public class MainTest {
@Test
public void testA() {
System.out.println("hoge");
}
}

973 :デフォルトの名無しさん (アウアウエー Sa5f-Op/G [111.239.186.191]):2020/04/28(火) 22:04:38 ID:NIccQJ3va.net
ttps://github.com/OneLoneCoder/olcPixelGameEngine/blob/master/Videos/OneLoneCoder_PGE_ShadowCasting2D.cpp
の416から425行の処理はjavaではどう書くのでしょうか?

974 :デフォルトの名無しさん (ワッチョイ fff8-8pil [115.163.210.109]):2020/04/28(火) 22:41:02 ID:96XBocG+0.net
Tuple相当のクラスに独自のhasCode()メソッドとequals()メソッドを定義してLinkedTreeSetに突っ込んだらどうかね

975 :デフォルトの名無しさん (ワッチョイ ff01-9eV8 [111.90.14.57]):2020/04/28(火) 23:33:36 ID:4kUhwH6S0.net
>>973
https://paiza.io/projects/QlHbDweVK7Jz5Dui5QzsZQ

976 :デフォルトの名無しさん :2020/04/29(水) 09:13:39.21 ID:GLkFkZ60a.net
>>974, 973
ありがとうございました。
ラムダを使えばきれいに書くことが分かりよかったです。

977 :デフォルトの名無しさん :2020/05/06(水) 02:37:11.81 ID:UCNL2IRg0.net
質問
マルチスレッドでコンストラクト中の状態を逸出させないということで
コンストラクタの中でインスタンスメソッドを呼ばないようにしましょうという原則がありますが
コンストラクタの中でインスタンスメソッドを呼びたいときもあると思います
そういうときみなさんはどうしていますか?

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

アンケートみたいな感じですけどご回答いただければ幸いです

978 :デフォルトの名無しさん (ワッチョイ 82ad-48kr [27.139.77.105]):2020/05/06(水) 06:32:23 ID:izcxg96Z0.net
>>977
https://irof.hateblo.jp/entry/2016/01/09/231631

979 :デフォルトの名無しさん (ワッチョイ 8d9c-HM7w [122.249.239.156]):2020/05/06(水) 07:43:10 ID:4GtcOPgo0.net
>>977 と >>978 は書いてることが違う?
>>978 はコードに問題があれば100%バグが再現する
>>977 はマルチスレッドと言ってる
>>977 はどのような問題が起こるのかをまず説明して欲しい(知りたい)

コンストラクタな完了前にオブジェクト変数にインスタンス参照が設定される問題は私も知ってるけど
それはインスタンスメソッド呼び出しどうこうといった問題ではないし・・・

980 :デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57]):2020/05/06(水) 09:33:39 ID:UCNL2IRg0.net
>>978
ありがとうございます!
ドキュメントに書く、オーバーライドできないようにすればおkということですね

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

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

コンストラクタでインスタンスメソッドを呼び出しても問題ないからやる派ですね?

981 :デフォルトの名無しさん (ワッチョイ 519f-FhGp [118.109.112.224]):2020/05/06(水) 11:58:04 ID:q8N1X/Ij0.net
>>979,980
別の話が混ざり合ってるな
読んだ人は腑に落ちないか誤解すると思う
互いに密接で合わせ技もあるので完全に切り離すことはできないけど、一緒くたにすると影響や対処に漏れが出る

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

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

>>978はこれ
https://www.jpcert.or.jp/java-rules/met05-j.html
this逸出の話に比べるとかなり限定的な話

982 :デフォルトの名無しさん (ワッチョイ 8d9c-HM7w [122.249.239.156]):2020/05/06(水) 12:22:20 ID:4GtcOPgo0.net
これってJVMのバグではないの?
JVMがコンストラクタが完了するまでインスタンス参照を変数に代入しないようになれば解決するんじゃないの?
なぜ不完全なインスタンスへの参照が変数に設定される可能性をプログラマーが考慮し続けてないといけないの?
今後もずっと続くの?

983 :デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57]):2020/05/06(水) 12:22:37 ID:UCNL2IRg0.net
>>981
コンストラクタからインスタンスメソッドを呼びたいときどうしますか?
一般論ではなくて個人の考えを教えていただけると幸いです

984 :デフォルトの名無しさん (ワッチョイ 519f-FhGp [118.109.112.224]):2020/05/06(水) 15:56:16 ID:q8N1X/Ij0.net
>>983
一般論うんぬんじゃなくて論理的かどうかで判断しないとプログラムは言うことを聞かないし
こんな匿名の場で少ないサンプルを集めたところでかりそめの安心感しか得られない
俺の脳内のタカアンドトシが女子か!!と激しくツッコミいれるわ
俺は上で挙げたルールに反しないように書くよ

985 :デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57]):2020/05/06(水) 15:59:37 ID:UCNL2IRg0.net
>>984
ふーん

986 :デフォルトの名無しさん (ワッチョイ a2f8-Qa3R [115.163.210.109]):2020/05/06(水) 16:30:04 ID:LXTBA+hx0.net
いったいどうしてマルチスレッドでコンストラクタからインスタンスメソッドを呼び出しちゃいけないなんて思ったのか、先に説明してくれよ。
>>981が出処と違うんか?

987 :デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57]):2020/05/06(水) 16:44:34 ID:UCNL2IRg0.net
>>986
それですよ
僕が説明したとしてあなたは何ができますか?

988 :デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57]):2020/05/06(水) 16:45:55 ID:UCNL2IRg0.net
僕が勘違いしてたことを追求してどうするんです?
僕をどうするつもりなんですか!?

989 :デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57]):2020/05/06(水) 16:47:10 ID:UCNL2IRg0.net
いまのところコンストラクタの中でインスタンスメソッドをコールするのが全員のようですね

990 :デフォルトの名無しさん (ワッチョイ a2f8-Qa3R [115.163.210.109]):2020/05/06(水) 19:13:14 ID:LXTBA+hx0.net
>>988
勘違いしていることに気がついたのなら先にそう言いいなよ。
>>987
君が勘違いしていると思ってその原因を探りたかっただけなんだが。
>>989
君が勘違いしていたのだから当たり前だろう

991 :デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57]):2020/05/06(水) 19:34:01 ID:UCNL2IRg0.net
きっしょw

992 :デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57]):2020/05/06(水) 19:34:16 ID:UCNL2IRg0.net
あ、ごめんつい本音がw

993 :デフォルトの名無しさん (ワッチョイ 8d9c-HM7w [122.249.239.156]):2020/05/06(水) 20:04:06 ID:4GtcOPgo0.net
恥ずかしい人だなー
誠実な対応ができず茶化して誤魔化すような人って技術的にも成長できず頭打ちになる人が多い印象がある

994 :デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57]):2020/05/06(水) 20:05:25 ID:UCNL2IRg0.net
>>993
それなw

995 :デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57]):2020/05/06(水) 20:06:07 ID:UCNL2IRg0.net
>>990
お前のことだぞ

996 :デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57]):2020/05/06(水) 20:30:24 ID:UCNL2IRg0.net
原因を探って何をするつもりだったのでしょうか
どうして原因を探ろうと思ったのでしょうか
そこを探っても質問の回答には辿り着けません

僕の質問はみんながどう考えてるかってことでした
自分はこう考えてるという意見が欲しかったのですが・・・

997 :デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57]):2020/05/06(水) 20:31:51 ID:UCNL2IRg0.net
遺憾です、このスレは埋めさせていただきます

998 :デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57]):2020/05/06(水) 20:32:06 ID:UCNL2IRg0.net


999 :デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57]):2020/05/06(水) 20:32:18 ID:UCNL2IRg0.net


1000 :デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57]):2020/05/06(水) 20:32:26 ID:UCNL2IRg0.net


1001 :デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57]):2020/05/06(水) 20:32:34 ID:UCNL2IRg0.net


1002 :デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57]):2020/05/06(水) 20:32:42 ID:UCNL2IRg0.net


1003 :2ch.net投稿限界:Over 1000 Thread
2ch.netからのレス数が1000に到達しました。

総レス数 1003
271 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★