Java初心者のためのスレッドです。
※前スレ
Java入門・初心者質問スレ Part.8
http://mevius.5ch.net/test/read.cgi/tech/1528370228/
探検
Java入門・初心者質問スレ Part.9
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2019/03/09(土) 23:59:15.92ID:ACok0wnJ105デフォルトの名無しさん
2019/07/19(金) 10:19:27.05ID:6kfIPGJy 最初に再起動したけど何も変わりませんでした
106デフォルトの名無しさん
2019/07/20(土) 20:31:07.12ID:7rlJsNxm 以下ソースコードについてです。
要件としてはキーボード入力したデータの判定チェックをしたいです。
1.0点〜100点以外の入力はエラー ← ok
2.数字以外の場合はエラー ← ok
3.空白の場合はエラー ← これが以下ソースでは実装できず困ってます・・
try{
Integer inParam2 = Integer.valueOf(bufReader.readLine());
//0点以下、100点以上はエラーMSGを返す
if(inParam2 < 0 || inParam2 > 100 ){
System.out.println("0点〜100点の間で入力してください");
System.exit(1);
}else if (inParam2 == null){
System.out.println("点数は必須項目です。");
System.exit(1);
}else{
recordMap.put("国語",inParam2);
}
//数字以外をチェック
} catch (NumberFormatException e) {
System.out.println("数字を入れてください");
System.exit(1);
要件としてはキーボード入力したデータの判定チェックをしたいです。
1.0点〜100点以外の入力はエラー ← ok
2.数字以外の場合はエラー ← ok
3.空白の場合はエラー ← これが以下ソースでは実装できず困ってます・・
try{
Integer inParam2 = Integer.valueOf(bufReader.readLine());
//0点以下、100点以上はエラーMSGを返す
if(inParam2 < 0 || inParam2 > 100 ){
System.out.println("0点〜100点の間で入力してください");
System.exit(1);
}else if (inParam2 == null){
System.out.println("点数は必須項目です。");
System.exit(1);
}else{
recordMap.put("国語",inParam2);
}
//数字以外をチェック
} catch (NumberFormatException e) {
System.out.println("数字を入れてください");
System.exit(1);
107デフォルトの名無しさん
2019/07/20(土) 21:31:21.73ID:OIy5RkDH >>106
bufReader.readLine()のnullチェックを行えばいいよ
↓こんな感じ
String line = bufReader.readLine();
if (line == null) {
// error
}
try{
Integer inParam2 = Integer.valueOf(line);
・・・
bufReader.readLine()のnullチェックを行えばいいよ
↓こんな感じ
String line = bufReader.readLine();
if (line == null) {
// error
}
try{
Integer inParam2 = Integer.valueOf(line);
・・・
108デフォルトの名無しさん
2019/07/21(日) 06:54:22.60ID:F3an1Rtm >>106
え?例外にならない?
え?例外にならない?
109デフォルトの名無しさん
2019/07/21(日) 07:49:53.60ID:vV2C3FTZ null判定ブロック内のコードがデッドコードだって警告が出るんだけど、なんで?
110デフォルトの名無しさん
2019/07/21(日) 10:13:28.63ID:MMp20sw3 >>109
プログラム見せて
プログラム見せて
112デフォルトの名無しさん
2019/07/21(日) 12:33:32.30ID:sWVeowg3 >>109
if(inParam2 < 0 || inParam2 > 100 ){
この条件はinParam2がnullでないことを前提としていて
inParam2がnullだったら例外が投げられるっしょ
}else if (inParam2 == null){
なのでこの条件にはたどり着かないんよ
if (inParam2 == null) {
} else if (inParam2 < 0 || inParam2 > 100 ) {
}
にすれば警告はでなくなるけど
Integer.valueOf(bufReader.readLine());
はnullを返すことはないんでinParam2 == nullは常にfalseになる
Integer.valueOfにnullを渡すとNumberFormatExceptionが投げられる
空白の場合は"点数は必須項目です。"と出力したいけれども
"数字を入れてください"と出力されてしまうのじゃないかな
if(inParam2 < 0 || inParam2 > 100 ){
この条件はinParam2がnullでないことを前提としていて
inParam2がnullだったら例外が投げられるっしょ
}else if (inParam2 == null){
なのでこの条件にはたどり着かないんよ
if (inParam2 == null) {
} else if (inParam2 < 0 || inParam2 > 100 ) {
}
にすれば警告はでなくなるけど
Integer.valueOf(bufReader.readLine());
はnullを返すことはないんでinParam2 == nullは常にfalseになる
Integer.valueOfにnullを渡すとNumberFormatExceptionが投げられる
空白の場合は"点数は必須項目です。"と出力したいけれども
"数字を入れてください"と出力されてしまうのじゃないかな
113デフォルトの名無しさん
2019/07/21(日) 13:11:47.42ID:vV2C3FTZ >>112
なるほどそういうことですか。分かりました。ありがとうございました。
なるほどそういうことですか。分かりました。ありがとうございました。
114デフォルトの名無しさん
2019/07/21(日) 14:55:10.87ID:wDsV+h30 Scanner使えや。
115デフォルトの名無しさん
2019/07/23(火) 20:34:05.13ID:AvTpbtr4 https://pastebin.com/dEtCHVpv
MouseMotionListenerのgetMousePositionで、なぜnullがかえるのでしょうか?
MouseMotionListenerのgetMousePositionで、なぜnullがかえるのでしょうか?
116デフォルトの名無しさん
2019/07/23(火) 21:38:52.68ID:wzqbz6Qy >>115
https://docs.oracle.com/javase/jp/6/api/java/awt/Component.html#getMousePosition()
Component がマウスポインタの直下にある場合、この Component の座標空間のマウスポインタの位置を返します。
そうでない場合は null を返します。
Component が画面に表示されていない場合は、Component が表示されている領域の上にマウスポインタがある場合でも、
このメソッドは null を返します。
https://docs.oracle.com/javase/jp/6/api/java/awt/Component.html#getMousePosition()
Component がマウスポインタの直下にある場合、この Component の座標空間のマウスポインタの位置を返します。
そうでない場合は null を返します。
Component が画面に表示されていない場合は、Component が表示されている領域の上にマウスポインタがある場合でも、
このメソッドは null を返します。
117デフォルトの名無しさん
2019/07/24(水) 20:19:46.69ID:B4KdNqcy >>116
ありがとうございました。
ありがとうございました。
118デフォルトの名無しさん
2019/07/26(金) 18:40:59.98ID:04rT+FBz File.lengthはint型で返すけど、もしintの範囲を超えるサイズのファイルが出たら例外吐いて終了するの?
119デフォルトの名無しさん
2019/07/26(金) 18:49:57.98ID:04rT+FBz >>118
ごめん間違えた FileじゃなくてByteArrayOutputStreamだった
ごめん間違えた FileじゃなくてByteArrayOutputStreamだった
120デフォルトの名無しさん
2019/07/26(金) 20:25:37.66ID:nGdMwDcM121デフォルトの名無しさん
2019/07/26(金) 21:07:04.01ID:qsGDM8xF 今のjavaのINTEGERは64bitですか?
122デフォルトの名無しさん
2019/07/26(金) 21:51:49.36ID:a4OzJI2P 32bit
123デフォルトの名無しさん
2019/07/26(金) 22:47:33.51ID:04rT+FBz >>120
ありがとう
ありがとう
124デフォルトの名無しさん
2019/07/27(土) 23:50:15.80ID:AqzO7oC2 てか、配列の添字の限界って型に関係なくintの最大値だよね。
ByteArrayOutputStreamは中で本当にbyteの配列使ってるので配列の添字の最大を超えられない。
工夫すれば超えるのは作れるがそうなると今度は一つの配列として返す部分の変更が必要になる。
どうしても巨大配列が欲しい場合はしょうがないからlongの配列に自分で詰め込んでbyteの8倍の容量にするか、または配列の配列またはList作って自分で連結させるかになるかな。
ByteArrayOutputStreamは中で本当にbyteの配列使ってるので配列の添字の最大を超えられない。
工夫すれば超えるのは作れるがそうなると今度は一つの配列として返す部分の変更が必要になる。
どうしても巨大配列が欲しい場合はしょうがないからlongの配列に自分で詰め込んでbyteの8倍の容量にするか、または配列の配列またはList作って自分で連結させるかになるかな。
125デフォルトの名無しさん
2019/07/28(日) 15:01:48.98ID:WsOTjAcD ソケット通信したいんだけどネットで調べてもsocketserverとかで普通にポート番号指定しているんだけど、ポートが他のアプリケーションとかで使われてないか調べたり空いてるポートを調べたりする処理は必要無いの?
通信関係疎くてわからない
通信関係疎くてわからない
>>125
確かにポート番号は、サーバ・クライアント間で共通のものをソフトであらかじめ決めておく、というのが普通ですね
ポート番号をころころ変えるソフトは見たことがありません
というかポート番号がサーバ・クライアント間であっているかどうかを調べる、というのはどうすればいいかな?合言葉を交換するとかかな?
確かにポート番号は、サーバ・クライアント間で共通のものをソフトであらかじめ決めておく、というのが普通ですね
ポート番号をころころ変えるソフトは見たことがありません
というかポート番号がサーバ・クライアント間であっているかどうかを調べる、というのはどうすればいいかな?合言葉を交換するとかかな?
127デフォルトの名無しさん
2019/07/28(日) 18:19:43.68ID:WsOTjAcD128デフォルトの名無しさん
2019/07/28(日) 18:41:06.88ID:zX6zk1/V FTPが制御用コネクションとデータ転送用コネクションを用いているように複数のコネクションを張るタイプのプロトコルであれば、
最初に確立するコネクション以外は動的に確保されたポートで通信するケースはあるよ
何れにせよ、
特定のポートが他のプロセスで利用されていないかを確認しても、
その後そのポートを開く前に他のプロセスがそのポートを開いてしまう可能性があるので(race condition)
どの道、ServerSocketを開こうとした際に失敗することを考慮しないといけない
最初に確立するコネクション以外は動的に確保されたポートで通信するケースはあるよ
何れにせよ、
特定のポートが他のプロセスで利用されていないかを確認しても、
その後そのポートを開く前に他のプロセスがそのポートを開いてしまう可能性があるので(race condition)
どの道、ServerSocketを開こうとした際に失敗することを考慮しないといけない
129デフォルトの名無しさん
2019/07/28(日) 19:09:49.47ID:WsOTjAcD130デフォルトの名無しさん
2019/08/01(木) 12:03:25.91ID:aVYnxNEs java.beans.XMLEncoder で getter/setter のあるオブジェクトを書くとちゃんとXMLファイルができて中にデータが入っているのですが、その XML ファイルを XMLDecoder の readOblect() で読もうとすると java.lang.ClassNotFoundException が出てしまい読めません。
classpath でクラスのあるディレクトリを指定したり直前で Class.forName() でクラスを読んでいても同じです。
これはどうやったら正常に読めるようになるのでしょうか?
classpath でクラスのあるディレクトリを指定したり直前で Class.forName() でクラスを読んでいても同じです。
これはどうやったら正常に読めるようになるのでしょうか?
131デフォルトの名無しさん
2019/08/01(木) 18:29:09.43ID:iHxbPEOX132デフォルトの名無しさん
2019/08/01(木) 20:29:11.30ID:aVYnxNEs >>131
普通にファイルから読もうとしているだけなので問題ないと思うんだけど。うーん。
ところでそのうまく行ったプログラムは読み書きが別々に動くように書いてあって別々に起動して書くだけ、または読むだけが動くようになってますか?
それとも書いて読むという順序になっている一つのプログラムですか?
というのは、色々検索して探していたらクラスローダの問題と書いてあるページを見つけたからです。
(かといってどうすれば良いかまだよくわからない)。
普通にファイルから読もうとしているだけなので問題ないと思うんだけど。うーん。
ところでそのうまく行ったプログラムは読み書きが別々に動くように書いてあって別々に起動して書くだけ、または読むだけが動くようになってますか?
それとも書いて読むという順序になっている一つのプログラムですか?
というのは、色々検索して探していたらクラスローダの問題と書いてあるページを見つけたからです。
(かといってどうすれば良いかまだよくわからない)。
133デフォルトの名無しさん
2019/08/01(木) 21:25:46.03ID:iHxbPEOX >>132
com.example.test.XMLEncoderTest, XMLDecoderTestそれぞれのmainメソッドで
Stringとintのフィールが1つづつのTestBeanをtest.xmlに書いて読むだけ
動かないわけがないぐらいシンプルなもの
こんなのだったらそちらでも問題なく動くと思うけど、
それが(仮に)動いて、今トラブってるのが動かないのであれば、
XMLDecoderを使う箇所以外のコードか環境が原因じゃない?
#それか単純に間違ったXMLファイルをロードしちゃってるか(以前にテスト用に作ったクラスをXMLEncodeしたファイルとか)
com.example.test.XMLEncoderTest, XMLDecoderTestそれぞれのmainメソッドで
Stringとintのフィールが1つづつのTestBeanをtest.xmlに書いて読むだけ
動かないわけがないぐらいシンプルなもの
こんなのだったらそちらでも問題なく動くと思うけど、
それが(仮に)動いて、今トラブってるのが動かないのであれば、
XMLDecoderを使う箇所以外のコードか環境が原因じゃない?
#それか単純に間違ったXMLファイルをロードしちゃってるか(以前にテスト用に作ったクラスをXMLEncodeしたファイルとか)
134132
2019/08/02(金) 01:42:46.68ID:4xKDT1Cg すいません。こちらの問題でした。Kotlin と混在させていて Kotlin 側でやるとダメな結果になってました。Java で同じように作ると問題なく動きました。失礼しました。
135デフォルトの名無しさん
2019/08/14(水) 21:01:00.61ID:k4UWt8la OpenJDKメインにすれば、
ライセンス料かからないんですか?
ライセンス料かからないんですか?
136デフォルトの名無しさん
2019/08/14(水) 22:00:13.68ID:ART9Vgv/ >>135
OpenJDKならライセンス料はかからない
個人の勉強用なのか会社で業務システム動かすのかとか目的によって選択肢は色々だろうけど
以下のスライドが良くまとめられていると思う(ちょっと長いかもしれないけど)
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
https://www.slideshare.net/TakahiroYamada3/how-to-choose-the-best-openjdk-distribution-201905
OpenJDKならライセンス料はかからない
個人の勉強用なのか会社で業務システム動かすのかとか目的によって選択肢は色々だろうけど
以下のスライドが良くまとめられていると思う(ちょっと長いかもしれないけど)
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
https://www.slideshare.net/TakahiroYamada3/how-to-choose-the-best-openjdk-distribution-201905
137デフォルトの名無しさん
2019/08/14(水) 22:23:14.84ID:k4UWt8la いい!
138デフォルトの名無しさん
2019/08/15(木) 00:06:19.61ID:wbNX/uYv >>136
半年毎のアップデート面倒だろ
半年毎のアップデート面倒だろ
139デフォルトの名無しさん
2019/08/24(土) 05:21:30.59ID:9pxya9Ba この資格とったら時給いくら?
セミリタイアして、派遣で働きたい週3ほど。
希望時給は2500円以上です。
セミリタイアして、派遣で働きたい週3ほど。
希望時給は2500円以上です。
140デフォルトの名無しさん
2019/08/24(土) 20:06:03.58ID:5HTqte9i Oracle Master Platinumくらいないとな
141デフォルトの名無しさん
2019/08/24(土) 23:32:22.46ID:v6W8/Gxl で、結局いくらなの?
個人で趣味程度に開発してアップしてるんだけど
不安になって小鳥に切り替え中
個人で趣味程度に開発してアップしてるんだけど
不安になって小鳥に切り替え中
142デフォルトの名無しさん
2019/08/29(木) 21:11:06.28ID:aj2mK3E5 スッキリわかるJava入門の第2版って本はまだ有効?
143デフォルトの名無しさん
2019/08/30(金) 02:47:21.38ID:JjDABWUq 有効だけど実践編と Servlet までやらないと意味ないよ
Java で何をしたいのかにもよるけど
javadrive のサイトではいけないの?
Java で何をしたいのかにもよるけど
javadrive のサイトではいけないの?
144デフォルトの名無しさん
2019/08/30(金) 03:03:59.15ID:cFfAoNHG Servlet以外にJavaの意味有るか?
145デフォルトの名無しさん
2019/08/30(金) 05:39:27.15ID:lIbkhvzM >>143,144
ありがとうjavadriveのサイトで頑張ってみる
ありがとうjavadriveのサイトで頑張ってみる
146デフォルトの名無しさん
2019/08/30(金) 15:19:14.06ID:JjDABWUq 近頃は spring までできて一人前らしいが
147デフォルトの名無しさん
2019/08/31(土) 02:56:23.70ID:2HqpObEY OpenJDKなんて不要
AdoptOpenJDKで十分
AdoptOpenJDKで十分
148デフォルトの名無しさん
2019/08/31(土) 08:00:48.30ID:cAVHGBLQ おまえだれや
149デフォルトの名無しさん
2019/08/31(土) 12:41:17.30ID:VU1TvKMl 結局 spring のメリットは何なの?
コードが複雑になるだけのような気がする
コードが複雑になるだけのような気がする
150デフォルトの名無しさん
2019/08/31(土) 13:07:29.21ID:E5RG3LAO Kotlin もよろしく
151デフォルトの名無しさん
2019/08/31(土) 14:25:57.35ID:tr0ocvmw そこはよろりんで
152デフォルトの名無しさん
2019/08/31(土) 14:26:16.17ID:cytRkna2153デフォルトの名無しさん
2019/09/07(土) 17:16:04.72ID:x28E9rEB 2次元配列で
int[][] array = new int[8][10];
これで
array[1][10]
array[2][30]
array[3][15]
のように二つ目の要素のサイズをバラバラにしたいのですが
こういうことってできますか?どう記述すればよいのでしょう?
int[][] array = new int[8][10];
これで
array[1][10]
array[2][30]
array[3][15]
のように二つ目の要素のサイズをバラバラにしたいのですが
こういうことってできますか?どう記述すればよいのでしょう?
154デフォルトの名無しさん
2019/09/07(土) 17:39:16.13ID:x28E9rEB 自己解決しました
155デフォルトの名無しさん
2019/09/07(土) 17:39:47.44ID:kl0P3WfA >>153
int[][] array = new int[8][];
array[1] = new int[10];
array[2] = new int[30];
array[3] = new int[15];
int[][] array = new int[8][];
array[1] = new int[10];
array[2] = new int[30];
array[3] = new int[15];
156デフォルトの名無しさん
2019/09/07(土) 17:43:51.55ID:x28E9rEB どうもです
157デフォルトの名無しさん
2019/09/22(日) 17:47:53.42ID:XzkjllAa >>149
seasar2のような偽物と違って消えないところ
seasar2のような偽物と違って消えないところ
158デフォルトの名無しさん
2019/09/23(月) 18:34:10.83ID:moFSllv1 ttps://pastebin.com/U8wjQzzb
四分木を実装しようとしています。
四角の中に2つ以上モノがある際、その四角を分割してほしいのですが、
その四角を分割せず、べつの場所を分割しています。
QuadTreeのsubdivide()が原因だと思うのですが、
ttps://www.youtube.com/watch?v=OJxEcs0w_kE
を見る限りでは分割方法は正しいようなのです。
QuadTreeのsubdivide()を修正するとしたらどのようにしたら良いでしょうか?
四分木を実装しようとしています。
四角の中に2つ以上モノがある際、その四角を分割してほしいのですが、
その四角を分割せず、べつの場所を分割しています。
QuadTreeのsubdivide()が原因だと思うのですが、
ttps://www.youtube.com/watch?v=OJxEcs0w_kE
を見る限りでは分割方法は正しいようなのです。
QuadTreeのsubdivide()を修正するとしたらどのようにしたら良いでしょうか?
159デフォルトの名無しさん
2019/09/23(月) 19:05:58.27ID:NZsx3e2R qr.x - w → qr.x
qr.y - h → qr.y
じゃね?
qr.y - h → qr.y
じゃね?
160デフォルトの名無しさん
2019/09/23(月) 20:36:04.88ID:moFSllv1161デフォルトの名無しさん
2019/09/30(月) 19:29:28.87ID:JiaaNZda missing return statementというエラーについて質問させてください
例えばif文でint型の変数iの条件を
10≦i≦20とelseでそれぞれ戻り値を指定するとエラーはでないのですが
10≦i≦20
と
else ifでi>10 、i<20
という条件にするとエラーになってしまい、ここに適当にelseを追加するとエラーがでなくなります
やってることは一緒で、どちらも全ての場合を網羅できてると思うのですが、これはどうしてなんでしょうか
if文はelseでしめないとダメという文法上の決まりですか?
それとも論理的な誤りがあるのでしょうか?
今一プログラミングの仕組みがわかってません、、、
例えばif文でint型の変数iの条件を
10≦i≦20とelseでそれぞれ戻り値を指定するとエラーはでないのですが
10≦i≦20
と
else ifでi>10 、i<20
という条件にするとエラーになってしまい、ここに適当にelseを追加するとエラーがでなくなります
やってることは一緒で、どちらも全ての場合を網羅できてると思うのですが、これはどうしてなんでしょうか
if文はelseでしめないとダメという文法上の決まりですか?
それとも論理的な誤りがあるのでしょうか?
今一プログラミングの仕組みがわかってません、、、
162デフォルトの名無しさん
2019/09/30(月) 19:32:18.74ID:JiaaNZda すいません
符号が逆でした
else ifのところはi<10、i>20
符号が逆でした
else ifのところはi<10、i>20
163デフォルトの名無しさん
2019/09/30(月) 19:34:28.78ID:jed1FLcT コードをそのまま書いてみて
164デフォルトの名無しさん
2019/09/30(月) 19:53:42.06ID:JiaaNZda >>163
今出先でスマホなのでそのままは書けないのですが・・・情報足りなかったらすいません
test(i)
public static String test(int i); {
if (i >= 10 && i <=20) {
return "10≦i≦20";
} else {
return "i<10、またはi >20";
}
}
これだとエラーにならないんですが
test(i)
public static String test(int i); {
if (i >= 10 && i <=20) {
return "10≦i≦20";
} else if (i < 10 || i > 20){
return "i<10、またはi >20";
}
}
これだとmissing return statementとなってしまいます
今出先でスマホなのでそのままは書けないのですが・・・情報足りなかったらすいません
test(i)
public static String test(int i); {
if (i >= 10 && i <=20) {
return "10≦i≦20";
} else {
return "i<10、またはi >20";
}
}
これだとエラーにならないんですが
test(i)
public static String test(int i); {
if (i >= 10 && i <=20) {
return "10≦i≦20";
} else if (i < 10 || i > 20){
return "i<10、またはi >20";
}
}
これだとmissing return statementとなってしまいます
165デフォルトの名無しさん
2019/09/30(月) 20:14:37.87ID:s1CTVBg3 >>164
Javaだと
if (condition1) {
return;
} else if (condition2) {
return;
}
というコードは
if (condition1) {
return;
} else {
if (condition2) {
return;
}
}
と記述したことと同一なんですよ。
で、下側のコードを見れば、condition2がfalseの時にreturnが呼ばれないですよね。
もちろんcondition1とcondition2が排他であれば、
実際にはcondition2が成立しないケースは(condition1で処理されているので)存在しないのですが、
コンパイラはそこまでは見てくれない、ってことです。
Javaだと
if (condition1) {
return;
} else if (condition2) {
return;
}
というコードは
if (condition1) {
return;
} else {
if (condition2) {
return;
}
}
と記述したことと同一なんですよ。
で、下側のコードを見れば、condition2がfalseの時にreturnが呼ばれないですよね。
もちろんcondition1とcondition2が排他であれば、
実際にはcondition2が成立しないケースは(condition1で処理されているので)存在しないのですが、
コンパイラはそこまでは見てくれない、ってことです。
166デフォルトの名無しさん
2019/09/30(月) 20:20:08.09ID:s1CTVBg3 訂正
「コンパイラはそこまでは見てくれない」はあまり正しくないですね。
言語仕様として、
ifステートメントのブロック内でそのブロックが選択された際の条件が考慮されたりしない
と言ったほうが良いでしょう。
「コンパイラはそこまでは見てくれない」はあまり正しくないですね。
言語仕様として、
ifステートメントのブロック内でそのブロックが選択された際の条件が考慮されたりしない
と言ったほうが良いでしょう。
167デフォルトの名無しさん
2019/09/30(月) 21:02:33.67ID:eT2YwU2a 俺だったらわざわざ2個目のif書かずにelse使っちゃうな。もし仮にコンパイルエラーにならなかったとしても無駄だし見辛いしバグの温床になりそうだから。
168デフォルトの名無しさん
2019/09/30(月) 22:31:55.68ID:JiaaNZda >>165-166
詳細に解説いただき、ありがとうございます
帰宅したので回答いただいたことを踏まえて色々と弄ってみたのですが
例えば、
if (condition1) {
System.out.print("true");
} else if (condition2) {
System.out.print("false");
}
このようにした場合はエラーにならなかったので、
今回のエラーの現象はif文がどうこうではなく、returnの問題、
すなわち、(表現が適切でないかもしれませんが)
if文のブロック内の詳細な条件の処理が行われる前に、return文によって、各ケース全てがfalseになる可能性がないことが確認されるために起きるエラーという理解でいいでしょうか?
てっきり外側に書かれている処理が常に先に実行されるものだとばかり思っていましたが、そういうわけではないということでしょうか…
詳細に解説いただき、ありがとうございます
帰宅したので回答いただいたことを踏まえて色々と弄ってみたのですが
例えば、
if (condition1) {
System.out.print("true");
} else if (condition2) {
System.out.print("false");
}
このようにした場合はエラーにならなかったので、
今回のエラーの現象はif文がどうこうではなく、returnの問題、
すなわち、(表現が適切でないかもしれませんが)
if文のブロック内の詳細な条件の処理が行われる前に、return文によって、各ケース全てがfalseになる可能性がないことが確認されるために起きるエラーという理解でいいでしょうか?
てっきり外側に書かれている処理が常に先に実行されるものだとばかり思っていましたが、そういうわけではないということでしょうか…
169デフォルトの名無しさん
2019/09/30(月) 23:17:31.99ID:s1CTVBg3 >>168
間違っています。
先程の回答では理解されていると思っていたので端折りましたが、
Javaでは戻り値がある通常のメソッドからは常に "return 戻り値" か例外のthrowで抜けなければなりません。
例
int exOk1() { // OK
return 0;
}
int exOk2() { // OK
throw new RuntimeException();
}
int exNg() { // NG, compile error
// return がない
}
間違っています。
先程の回答では理解されていると思っていたので端折りましたが、
Javaでは戻り値がある通常のメソッドからは常に "return 戻り値" か例外のthrowで抜けなければなりません。
例
int exOk1() { // OK
return 0;
}
int exOk2() { // OK
throw new RuntimeException();
}
int exNg() { // NG, compile error
// return がない
}
170デフォルトの名無しさん
2019/09/30(月) 23:17:48.15ID:s1CTVBg3 これはif文などの条件分岐を伴う全ての可能性があるパスで満たされている必要があります。
例
int ex1() { // OK
if (condition) {
return 0;
} else {
return 1;
}
}
int ex2() { // OK
if (condition) {
return 0;
}
return 1;
}
int ex3() { // NG, compile error
if (condition) {
return 0;
}
// return がない
}
例
int ex1() { // OK
if (condition) {
return 0;
} else {
return 1;
}
}
int ex2() { // OK
if (condition) {
return 0;
}
return 1;
}
int ex3() { // NG, compile error
if (condition) {
return 0;
}
// return がない
}
171デフォルトの名無しさん
2019/09/30(月) 23:23:06.84ID:s1CTVBg3172デフォルトの名無しさん
2019/10/01(火) 00:15:55.07ID:LqGEIZr5173デフォルトの名無しさん
2019/10/09(水) 00:40:52.63ID:pXAO71yV safariでも閉じれるようなaタグ作るのに
onClick="window.open('about:blank','_self').close();"
じゃabout:blank開くだけなんですけど、なんでですか?
初心者質問で申し訳ありません。
onClick="window.open('about:blank','_self').close();"
じゃabout:blank開くだけなんですけど、なんでですか?
初心者質問で申し訳ありません。
174デフォルトの名無しさん
2019/10/09(水) 02:19:15.94ID:jo1nm3zd JavaとJavaScriptは一見似てるけど別の言語なので、このスレの対象外です
紛らわしいんじゃ、という苦情は当時のNetscape社へどうぞ
JavaScriptの質問は(この板の)他スレかWeb製作板、Webプログラミング板あたりへどうぞ
紛らわしいんじゃ、という苦情は当時のNetscape社へどうぞ
JavaScriptの質問は(この板の)他スレかWeb製作板、Webプログラミング板あたりへどうぞ
175デフォルトの名無しさん
2019/10/09(水) 02:51:30.46ID:z4DviLBe JavaScript(JS) は、web制作管理板のJavaScript のスレへ、書き込んでください!
この板の、JSのスレは、web制作管理板が荒らされたときに、
緊急避難用に立てたもので、今は使われていません
この板の、JSのスレは、web制作管理板が荒らされたときに、
緊急避難用に立てたもので、今は使われていません
176デフォルトの名無しさん
2019/10/14(月) 15:19:38.66ID:GdF/YAu+ 職業訓練校でjava勉強してる自分なんですが、すでにSESで内定もらってます。
でもスキル向上の事考えると自社開発に入りたいのでこのスレで情報共有お願いいます
職業訓練校プログラミング修了後(プログラマー掲示板)
http://itest.5ch.net/test/read.cgi/prog/1571032349/l50
でもスキル向上の事考えると自社開発に入りたいのでこのスレで情報共有お願いいます
職業訓練校プログラミング修了後(プログラマー掲示板)
http://itest.5ch.net/test/read.cgi/prog/1571032349/l50
177デフォルトの名無しさん
2019/10/14(月) 22:47:32.93ID:8P/N9iXF これ実行したときにAが1つしか表示されないのは何故ですか?
bのインスタンス生成は新しくSampleのインスタンスを生成することにはならないのですか?
3行目と6行目それぞれでAが表示されるのでは無いのですか?
https://i.imgur.com/O63piVm.jpg
https://i.imgur.com/dkGWlmY.jpg
bのインスタンス生成は新しくSampleのインスタンスを生成することにはならないのですか?
3行目と6行目それぞれでAが表示されるのでは無いのですか?
https://i.imgur.com/O63piVm.jpg
https://i.imgur.com/dkGWlmY.jpg
178デフォルトの名無しさん
2019/10/14(月) 23:17:04.66ID:wMZrtyOx 「これ実行」というのは GarbageCollectionTest を実行した時の話ですか?
あなたの理解で正しいです。"A" が2回表示されるはずですよ。
されないとしたらあなたが入力したコードに間違いがあるか、
コード修正後に再コンパイルを忘れているか、
別のクラスを実行しているのでしょう。
あなたの理解で正しいです。"A" が2回表示されるはずですよ。
されないとしたらあなたが入力したコードに間違いがあるか、
コード修正後に再コンパイルを忘れているか、
別のクラスを実行しているのでしょう。
179デフォルトの名無しさん
2019/10/14(月) 23:38:28.83ID:8P/N9iXF180デフォルトの名無しさん
2019/10/17(木) 13:03:46.73ID:/8o3fN68 実行可能jarファイルをWindowsのエクスプローラーからダブルクリックで起動すると
内部的にはjavawコマンドが実行されるためコンソールに何も表示されないとの事ですが
もし実行可能jarファイルでSystem.out.println()を使用してコンソールになにか表示させたい場合、何か方法はありますか?
できればbatファイルなどは使用せずjarファイル単体でダブルクリックから起動できるようにしたいです
内部的にはjavawコマンドが実行されるためコンソールに何も表示されないとの事ですが
もし実行可能jarファイルでSystem.out.println()を使用してコンソールになにか表示させたい場合、何か方法はありますか?
できればbatファイルなどは使用せずjarファイル単体でダブルクリックから起動できるようにしたいです
181デフォルトの名無しさん
2019/10/17(木) 13:59:30.14ID:msbWP/Fe swing とかじゃダメなの?
182デフォルトの名無しさん
2019/10/17(木) 14:57:24.16ID:LD/T244T exewrap使えば?
183デフォルトの名無しさん
2019/10/20(日) 11:25:18.43ID:O9tNcv03 もすもす、JPanelで線を引くんだが、ボタンやスクロールバーなどの上に線を引けるように出来ませんか?
184デフォルトの名無しさん
2019/11/15(金) 05:47:24.59ID:Y3ZHF9D8 質問です
メインメソッドからAクラスをインスタンス化し、その中で更にBクラスをインスタンス化してます
メインメソッドで宣言、代入した変数をBクラス内で使いたいです
今はAクラスのコンストラクタの引数として渡して、更にBクラスのコンストラクタの引数として渡して使っていて、一応動きはするのですが凄くお粗末な気がします
何か他に良いやり方はないのでしょうか?
メインメソッドからAクラスをインスタンス化し、その中で更にBクラスをインスタンス化してます
メインメソッドで宣言、代入した変数をBクラス内で使いたいです
今はAクラスのコンストラクタの引数として渡して、更にBクラスのコンストラクタの引数として渡して使っていて、一応動きはするのですが凄くお粗末な気がします
何か他に良いやり方はないのでしょうか?
185デフォルトの名無しさん
2019/11/15(金) 09:30:38.23ID:MDhJ3LYt その変数が何なのかがもう少し具体的にわからないと回答が定まらないんじゃないだろうか
それでいいというケースもあるし、メインで宣言しているのがおかしいというケースもある
変数をコンテキストのようなクラスに集約すれば収まりがよくなるケースもあれば、staticやThreadLocalが向くケースもある
それでいいというケースもあるし、メインで宣言しているのがおかしいというケースもある
変数をコンテキストのようなクラスに集約すれば収まりがよくなるケースもあれば、staticやThreadLocalが向くケースもある
186デフォルトの名無しさん
2019/11/16(土) 08:06:20.38ID:0ftlRXKG >>185
ありがとうございます
GUIアプリケーションを作っていて、ボタンなどのオブジェクトを変数に入れてます
ボタンを押したときにAオブジェクトを精製して処理をするようにしているのですが、
処理の工程に応じて状態を変えたいので、ボタンやラベルをABクラスに持って行きたいという感じです
ありがとうございます
GUIアプリケーションを作っていて、ボタンなどのオブジェクトを変数に入れてます
ボタンを押したときにAオブジェクトを精製して処理をするようにしているのですが、
処理の工程に応じて状態を変えたいので、ボタンやラベルをABクラスに持って行きたいという感じです
187デフォルトの名無しさん
2019/11/17(日) 14:25:54.63ID:F+mUJMV6 >>186
横からだけど&設計の話は深入りしたくないのだけど、
そー言う場合、AオブジェクトなどにはUI部品の参照を直接渡すのではなくて、
「状態が変化したよ」と通知する先を教える。
(インターフェイスを定義してその型のオブジェクト(メインのクラス自身のインスタンスでも可)を渡す、とか)
で、変更通知を受け取るオブジェクトが、
Aオブジェクトなどから変更通知を受けた際に必要であればUI部品の状態を変化させる、
ってのがおそらくは一般解。
横からだけど&設計の話は深入りしたくないのだけど、
そー言う場合、AオブジェクトなどにはUI部品の参照を直接渡すのではなくて、
「状態が変化したよ」と通知する先を教える。
(インターフェイスを定義してその型のオブジェクト(メインのクラス自身のインスタンスでも可)を渡す、とか)
で、変更通知を受け取るオブジェクトが、
Aオブジェクトなどから変更通知を受けた際に必要であればUI部品の状態を変化させる、
ってのがおそらくは一般解。
188デフォルトの名無しさん
2019/11/17(日) 14:28:23.94ID:F+mUJMV6 こういう設計が望ましい理由は色々あるんだけど(MVCとかPAC etc.でググるよろし)
GUIアプリケーションの好ましい設計パターンだという以外にも
- そもそも(Swingのイベントスレッド以外から)SwingのUI部品の状態などを変える際には
SwingUtilities.invokeLater(...)を使ったりする必要があるけれども、様々な場所で行うのは面倒
- ウィンドウを破棄した際などに、
そのウィンドウ上のUI部品の参照を保持したままのオブジェクトがあったりすると
UI部品のインスタンスがGCで回収されない
- 仮に Swing -> SWT などへの乗り換えとか(あるいはロジックをWebアプリに流用するとか)
する際に、あちこちに Swing への依存が散らばってると大変面倒
とかいう現実的な問題もありますよ。
GUIアプリケーションの好ましい設計パターンだという以外にも
- そもそも(Swingのイベントスレッド以外から)SwingのUI部品の状態などを変える際には
SwingUtilities.invokeLater(...)を使ったりする必要があるけれども、様々な場所で行うのは面倒
- ウィンドウを破棄した際などに、
そのウィンドウ上のUI部品の参照を保持したままのオブジェクトがあったりすると
UI部品のインスタンスがGCで回収されない
- 仮に Swing -> SWT などへの乗り換えとか(あるいはロジックをWebアプリに流用するとか)
する際に、あちこちに Swing への依存が散らばってると大変面倒
とかいう現実的な問題もありますよ。
189デフォルトの名無しさん
2019/11/27(水) 13:40:30.89ID:eKMjAvMi コンストラクタに関しての質問です!
クラスを作成する際にコンストラクタを用意すると、
デフォルトコンストラクタが自動的には用意されなく
なるようですが、
インスタンス生成時に発動するのは、コンストラクタか
デフォルトコンストラクタの片方のみである、
という解釈で問題無いでしょうか?
(両方が発動する事はあり得ない...?)
クラスを作成する際にコンストラクタを用意すると、
デフォルトコンストラクタが自動的には用意されなく
なるようですが、
インスタンス生成時に発動するのは、コンストラクタか
デフォルトコンストラクタの片方のみである、
という解釈で問題無いでしょうか?
(両方が発動する事はあり得ない...?)
190デフォルトの名無しさん
2019/11/27(水) 14:42:58.29ID:ymKEnJ4Y >>189
クラスにコンストラクタを明示的に定義しない場合に限り
コンパイラが自動的に生成する引数無しのコンストラクタをデフォルトコンストラクタと呼ぶ
コンストラクタを明示的に定義した場合にはデフォルトコンストラクタは生成されれない
インスタンス生成時はコンストラクタを指定する (発動はしない)
指定されたコンストラクタが別のコンストラクタを呼び出してれば
複数のコンストラクタが呼び出されることはある
もし、明示的に定義した引数無しコンストラクタも含めてデフォルトコンストラクタと呼んでいるなら
一つのインスタンス生成時に引数有りのコンストラクタと引数無しのコンストラクタの両方が呼び出されることはある
クラスにコンストラクタを明示的に定義しない場合に限り
コンパイラが自動的に生成する引数無しのコンストラクタをデフォルトコンストラクタと呼ぶ
コンストラクタを明示的に定義した場合にはデフォルトコンストラクタは生成されれない
インスタンス生成時はコンストラクタを指定する (発動はしない)
指定されたコンストラクタが別のコンストラクタを呼び出してれば
複数のコンストラクタが呼び出されることはある
もし、明示的に定義した引数無しコンストラクタも含めてデフォルトコンストラクタと呼んでいるなら
一つのインスタンス生成時に引数有りのコンストラクタと引数無しのコンストラクタの両方が呼び出されることはある
191デフォルトの名無しさん
2019/11/27(水) 19:38:04.93ID:eKMjAvMi192ブロンズ女
2019/12/01(日) 07:25:23.15ID:31lHsrX5 独学の初心者です。よろしくお願いします
スッキリわかるjavaを読んだ後、ブロンズの黒本読んでいます
頭が悪いのでブロンズから頑張ります。
スッキリわかるjavaを読んだ後、ブロンズの黒本読んでいます
頭が悪いのでブロンズから頑張ります。
193デフォルトの名無しさん
2019/12/07(土) 16:45:03.75ID:Ls4Z5fPU 「○秒長押しされました」と表示されるサンプル
この記事を読んで参考にしたのですが
動画を長押しすると動画の内容と同じgif画像?を確認できる機能を実装する事は可能でしょうか?
この記事を読んで参考にしたのですが
動画を長押しすると動画の内容と同じgif画像?を確認できる機能を実装する事は可能でしょうか?
194デフォルトの名無しさん
2019/12/07(土) 16:47:36.92ID:Ls4Z5fPU すみません動画じゃなく画像です
195デフォルトの名無しさん
2019/12/07(土) 18:11:14.71ID:mWZs4nzy キャプチャするタイミングが難しい機能に需要があるのか?
196デフォルトの名無しさん
2019/12/07(土) 19:33:12.07ID:IgndtoHY >>195
いえ具体的に言うとgifサイトを作ろうと思っています
いえ具体的に言うとgifサイトを作ろうと思っています
197デフォルトの名無しさん
2019/12/07(土) 22:07:56.91ID:f6AT/JyU JavaScriptの話ならWeb製作板の関連スレへどうぞ、らしいですよ。
あと「この記事」と書くならURLぐらいは貼ったほうが良いかと思います。
あと「この記事」と書くならURLぐらいは貼ったほうが良いかと思います。
198デフォルトの名無しさん
2019/12/07(土) 22:13:53.91ID:IgndtoHY199デフォルトの名無しさん
2019/12/07(土) 22:47:33.94ID:/3OJwFPr JavaScript(JS), Java は異なる言語です!
まず、どちらの言語か確かめろ!
Javaなら、このスレで良いし、
JSなら、この板ではなく、Web製作板の方へ書き込む!
まず、どちらの言語か確かめろ!
Javaなら、このスレで良いし、
JSなら、この板ではなく、Web製作板の方へ書き込む!
200デフォルトの名無しさん
2019/12/08(日) 18:00:47.44ID:I897a0vD JavaとJavaScriptは両方勉強するように
201デフォルトの名無しさん
2019/12/08(日) 18:12:01.45ID:7oRGKglS Java→Python→HTML→Javascript
この順番であってる?
この順番であってる?
202デフォルトの名無しさん
2019/12/08(日) 21:27:19.53ID:L49zIdxx しらん
203デフォルトの名無しさん
2019/12/08(日) 23:03:55.69ID:NjrEGBDe >>201
何がやりたいの?
何がやりたいの?
204デフォルトの名無しさん
2019/12/09(月) 03:30:42.65ID:PdZy7TF4 正しい順番は
VBScript→ActionScript→Delphi→XSL-FOだよ
VBScript→ActionScript→Delphi→XSL-FOだよ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国とロシアの爆撃機、日本周辺で共同飛行 [少考さん★]
- 「中国側も日本機のレーダーを感知していた」 中国メディアが報道 [♪♪♪★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- 防衛省、中国を完全論破www 「事前通告があったのは海自であって空自ではない」 高市早苗勝利 [175344491]
- ダイソンのホットアンドクールってどう?
- 高市早苗さん、もう自決でしか許されないレベルになる [402859164]
- 【悲報】JA「全然米が売れなくて倉庫を圧迫してる。助けて!」米卸売り業者「安売りしたら赤字になる…助けて!」 [802034645]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★4 [597533159]
- ✋🏿( ・᷄ὢ・᷅ )朝飯食ってから糞するのは無理でしょ……
