X



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

■ このスレッドは過去ログ倉庫に格納されています
0162デフォルトの名無しさん
垢版 |
2020/04/15(水) 00:01:02.58
>>161だけど、
今俺がやろうとしてることは、Jsoupを使って、全く無の所からXML文書を作ろうとしてるんだけど、

Document doc = Jsoup.parse("", "", Parser.xmlParser());

こういう書き方でいいんかな?
JsoupはHTMLを解析する用のライブラリっぽいから、XMLを扱いたいという意味で↑上の書き方をしたんだが。
0166デフォルトの名無しさん
垢版 |
2020/04/15(水) 07:44:07.17
ファイルのダウンロード方法をググっても色々流儀があるようでどれがベストなのか分かりません
どういう基準でどういうやり方を取れば良いですか?

俺が今やろうとしてることは、ローカルのテキストファイルにダウンロードリンクがあるので、それを読み取りながら逐次5MB程度のファイルをダウンロードしたいって感じ
0168デフォルトの名無しさん (ワッチョイ 1f08-1fuy)
垢版 |
2020/04/15(水) 15:43:03.00ID:fTV4we0n0
>>153
うわっ!君ここにも張り付いてたのか…病院行けよマジ
0169デフォルトの名無しさん (JP 0Hdf-QI7b)
垢版 |
2020/04/15(水) 15:49:16.66ID:cSYRT69TH
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0

UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0

連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0

4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0

matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0

ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0

SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
0177デフォルトの名無しさん (ワッチョイ bf70-KN4L)
垢版 |
2020/04/20(月) 18:03:37.13ID:nu8M1bCu0
ここで質問すべきか迷いましたが中身がJavaなのでここで質問します。
Webシステムでよくあるパスワード初期化メールについてです。
URLパラメーターが暗号化されたアドレスにアクセスすると思いますが、こういうのってどんなプロトコルを使ってパラメーター暗号化してるのでしょうか。
0179デフォルトの名無しさん (ワッチョイ bf70-KN4L)
垢版 |
2020/04/20(月) 21:52:01.51ID:nu8M1bCu0
>>178
AES-GCMちょっと確認してみます。
パスリセを例として出したのは例として分かりやすいかなぐらいな感じで、要は解読できないパラメーターがどんな風な作りになってるのか知りたかったんです。
0180デフォルトの名無しさん (ワッチョイ ba02-Lf76)
垢版 |
2020/04/26(日) 20:29:46.21ID:aAS4CHj70
エクリプスでjunit使いたいんですけど、うまくいきません…
ここ見れば使い方わかるみたいなサイトってありますか?
自分でも調べたんですけど、「テストランナーjunit4のテストが見つかりません」と出てしまい困ってます…
0184デフォルトの名無しさん
垢版 |
2020/04/27(月) 15:52:24.24
複数のPDFファイルを沢山ダウンロードしたいんだが、逐一だととても遅くてやってられない
並列処理で効率化したい
あと、ダウンロードエラー時のリジューム機能も実装できたら文句なし
0185デフォルトの名無しさん
垢版 |
2020/04/27(月) 16:01:28.73
ファイルをダウンロードする処理って
Files.copyでやるやり方と

byte dataBuffer[] = new byte[1024];
int bytesRead;
while ((bytesRead = in.read(dataBuffer, 0, 1024)) != -1) {
fos.write(dataBuffer, 0, bytesRead);
}

でやるやり方があるけど、どっちがどう違うん?
0188デフォルトの名無しさん (ラクッペペ MM8f-agxw)
垢版 |
2020/04/29(水) 02:26:48.65ID:IXK0ODvaM
うんち
0190デフォルトの名無しさん (ワッチョイ 7f2c-1Vtn)
垢版 |
2020/04/29(水) 03:45:31.82ID:Cpi+Il5+0
>>180
例えば、Ruby on Rails なら、test フォルダ以下のすべてのファイルをテストする

# (test/ 以下の)すべてのテストを実行する
$ bin/rails test

# 複数のフォルダ以下のすべてのテストを実行する
$ bin/rails test test/models test/jobs

>>184
wget, curl などで、並列ダウンロードは出来ないの?
0192デフォルトの名無しさん (ワッチョイ a746-ts7H)
垢版 |
2020/04/29(水) 12:34:13.70ID:xJZA+e2e0
ググれば解決するようなアホな質問をなぜか上から目線でする
己の糞馬鹿を棚にあげてよく言うわ
クソガキッズはID変えて自演するまえに自分の馬鹿さを自覚しろ
0196デフォルトの名無しさん (ワッチョイ 5f23-4AVG)
垢版 |
2020/04/30(木) 12:31:53.52ID:Ne/WC50y0
ここってほんまに初心者質問スレなんか
0199デフォルトの名無しさん (アウアウウー Sa1d-Cnva)
垢版 |
2020/05/15(金) 18:31:44.88ID:k5r7gRgVa
>>184
マルチスレッドでやれば良いのではないかな。
シングルスレッドでやってやれないこともないだろうが面倒になりそう。
0200デフォルトの名無しさん (ワッチョイ 5b1d-s4/3)
垢版 |
2020/05/20(水) 17:23:36.58ID:mYNR9VNU0
質問です。
戻り値のあるメソッドの作成において、条件によってはSystem.exit()で処理を終了
させたいのですが、「return文が無い」とコンパイルエラーになってしまいます。
どうせexitメソッドの後の文は実行されないので無駄だと思うのですが、
コンパイルを通すためだけにどうでもいい値をreturnしないといけないでしょうか?

例)
if (isFlag) {
__return 1;
} else {
__System.exit(3);
__return 0; // ←この文です
}
0201デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/20(水) 17:40:15.80ID:i5a3FP8I0
>>200
そうです

普通はJVMを終了させるようなメソッド書かないよ
例外投げて呼び出し元でSystem.exitしたがいんじゃない?
0203デフォルトの名無しさん (ワッチョイ 5b46-crVl)
垢版 |
2020/05/20(水) 17:43:35.87ID:dX3YGYcq0
5日ぶりについた糞な質問に20分でアホな回答つけてるとか自演か?
自演じゃなくてもなんで即レスでアホな回答する馬鹿しかここにはいないのか
ほんと理解に苦しむ
0204デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/20(水) 17:44:09.05ID:i5a3FP8I0
>>202
まあまあ

普通はどうやるんだろ
・Eitherで正常値と異常値をわける
・OptinalでEmptyを返す
・例外を投げる
あたりかなー
jvmを終了させるのはないわー
そんな凶悪メソッド使いたくないわー
0205デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/20(水) 17:44:39.98ID:i5a3FP8I0
>>203
おいプリン俺を誰だと思ってるんだ
プリン先生の大ファンです、サインください
0207200 (ワッチョイ 5b1d-s4/3)
垢版 |
2020/05/20(水) 18:19:50.74ID:mYNR9VNU0
答えてくれた方、ありがとうございました。

>>204
exit()を使うより、例外を発生させて終わった方がいいですか?
0209デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/20(水) 18:43:45.91ID:i5a3FP8I0
>>207
値を返すメソッドの中でjvmを終了させない方が良いよ

それはそれとして終了ステータスを3にしてるのはjavaを実行したあとに
終了ステータスで処理を変えたいとかがあるわけっしょ?
そういうのがなくてなんとなく3にしてるだけだったら
例外投げて終わりでよいと思うけど、何をしたいのかわからないので
System.exitを使わなくてよいかはわからぬよ

System.exitを使うならmainメソッドで使ったが良い
0210200 (ワッチョイ 5b1d-s4/3)
垢版 |
2020/05/20(水) 18:48:51.78ID:mYNR9VNU0
>>208
それ俺の質問です!
その時は別の解決策を見つけたんでよかったのですが(finallyをせずに処理を書く)、
今度はうまくいかなかったんです。

例外を検討してみます。
ありがとうございました。
0211200 (ワッチョイ 5b1d-s4/3)
垢版 |
2020/05/20(水) 18:58:53.26ID:mYNR9VNU0
>>209
参考までに書いているコードをアップします。
https://pastebin.com/62aSxerK

じゃんけんをするプレーヤークラスのサブクラスを書いています。
5回誤入力があると、主工程の次のステップに進ませず終了させたいので、
exitメソッドを思い付きました。

前述の通り例外を発生させたいと思います。
0212デフォルトの名無しさん (ワッチョイ 339f-obnW)
垢版 |
2020/05/20(水) 19:34:03.56ID:XP47V45A0
これは終了理由のエラーメッセージも詰め込んで例外スローだな
一介のPlayerクラスがVMの命運を握ってるのはおかしいので
古典的には不正な入力に対して-1を返してもいい
それをもっとJavaっぽく書くならグー、チョキ、パー、不正の4値のenumで
0214デフォルトの名無しさん (ワッチョイ 1aa5-ksJK)
垢版 |
2020/05/20(水) 20:08:48.94ID:WJVU+U120
>>211
>exitメソッドを思い付きました

っつってもJavaだけやっててexitなんてそうそう思い付くモンじゃないよ
たぶんC言語からの流れじゃね
0219デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/21(木) 20:27:42.73ID:ROmcCwHn0
>>218
うるせえ!黙ってろハゲ
0221デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/21(木) 21:19:51.39ID:ROmcCwHn0
質問した人と僕が同一人物だと疑ってるわけですね
それが事実だったとして一番得をするのはプリン先生です
つまり犯人はプリン先生です

プリン先生は僕の才能に嫉妬しています
僕はプリン先生の一番弟子としてそれを誇りに思うしプリン先生を尊敬しています
0222デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/21(木) 21:34:09.74ID:ROmcCwHn0
『プリン先生の深層心理』

質問した人と僕が同一人物だと, どうしてプリン先生が得をするか
それは, 僕の才能あふれる回答が自作自演によるものならプリン先生が僕の才能を否定できるからです
そればかりか卑劣な行いとして僕を糾弾する正義の立場に立てるからです

プリン先生は自分よりも才能のある人を恐れています
自分の方が優秀だと思いつつも僕の才気あふれる回答を目にしてとまどっています
質問した人と僕が同一人物ならばその葛藤に折り合いをつけることができます

このことが原因でバイアスが発生します
おそらくプリン先生はそのことを自覚していません
深層心理は無意識下で働き, 意識の表層には苛立ちとして現れます
俗に言う嫉妬です
0223デフォルトの名無しさん (ワッチョイ 8b01-oW4g)
垢版 |
2020/05/21(木) 21:34:56.39ID:a/mGIkT10
女が友達がヤバかった話するときは、自分がヤバかった話だからな。
0224200 (ワッチョイ 5b1d-s4/3)
垢版 |
2020/05/22(金) 01:41:56.50ID:lEHu0gid0
まだ話続いてたんですね…。

>>217
ありがとうございます。
しかしJava8までしか知らないので読めないです…。

例外処理で終了するようコードを修正しました。
https://pastebin.com/8hjNRc4C

それと先(>>211)のコードでは、数字以外を入力したときにうまく動作しないので、
改行文字を読み捨てるようnextLineメソッドを追加しています。
0226デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/22(金) 09:47:22.48ID:MygyNOFw0
>>225
5回試行してそれでもダメなら例外なので
良いと思うけどね
0227デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/22(金) 09:50:13.09ID:MygyNOFw0
想定される例外なら検査例外そうでないなら実行時例外というわけ方はあるけれども
検査例外を捕まえるのは正常フローから外れた処理を正常フローに引き戻すという目的があって
やることなので今回の場合はプログラムを終了させたいわけだから実行時例外で問題ないと思うけどね
0228デフォルトの名無しさん (アウアウウー Sac7-8pht)
垢版 |
2020/05/22(金) 10:01:18.04ID:I4qPJ3i7a
検査例外はそもそも大失敗な機能なんで正しく運用するなんて不可能
GroovyやKotlin等の後発JVM言語にすら省かれてるし、Java自身もラムダと相性悪過ぎてついに失敗を認めUncheckedIOException追加しちゃった
0229デフォルトの名無しさん (ワッチョイ cb12-WyE1)
垢版 |
2020/05/22(金) 10:31:49.68ID:+nON9XYM0
単純にはもともとがexitなのだから代替はRuntimeExceptionでもいいとは思うが、
これは複数人のじゃんけんなんだろうから、そのたった一人の入力ミスが
exitやRuntimeExceptionで全体を強制終了に追い込むのは、それもおかしい。
0231デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/22(金) 13:38:30.38ID:MygyNOFw0
>>229
なるほど、それもそうか

>>228
HDDに対するIOの例外は検査例外ではなくて実行時例外であるべきだとは思うけど
それ以外の検査例外もなくして良いかは微妙なところ
検査例外の利点は例外のハンドリングが抜けてることにコンパイル時に気づけることなのであっても良いと思う

Javaを設計したゴスリンは航空機のシステムを開発してて例外のハンドリングが抜けてることを見落として
航空機が墜落することを経験してたから検査例外を作りましたっていう物語を読んだことがある
Javaでミッションクリティカルなシステムを作ってる人は少ないだろうけど
0232デフォルトの名無しさん (ワッチョイ 4e10-Edk2)
垢版 |
2020/05/22(金) 13:42:32.29ID:kWW4bzxt0
知っていますか、そのじゃんけんプログラムを書いた御仁は、
Javaをもう二年以上勉強していて、
Javaはマスターした、オブジェクト指向は完璧に理解したと豪語しているということを
0233デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/22(金) 13:43:34.34ID:MygyNOFw0
質実剛健、完璧堅牢、Java
0235デフォルトの名無しさん (ワッチョイ 3761-f9m4)
垢版 |
2020/05/22(金) 18:46:31.08ID:QUisHt510
RuntimeExceptionなんて名前を付けちゃったから混乱するんだけど、
IOExceptionやSQLExecptionなども「実行時例外」ではあるぞ。
0236デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/22(金) 18:56:33.04ID:MygyNOFw0
すごーい
0238デフォルトの名無しさん (ワッチョイ 9a61-f9m4)
垢版 |
2020/05/23(土) 11:41:11.01ID:VbPuW/L00
Javaは非チェック例外をRuntimeExceptionとしたが、
チェック例外も非チェック例外も実行時例外であることに変わりない(だからカッコ付けたんだけど)。
RuntimeExceptionを実行時例外と訳すのは、Classクラスをクラスクラスと訳してしまう同じ過ち。
0239デフォルトの名無しさん (ワッチョイ 979c-ebFg)
垢版 |
2020/05/23(土) 11:56:00.95ID:UKShC8hO0
>>238
文法や構文の誤りはコンパイル時に検出されるけど例外は実行時にスローされるのだからすべて「実行時例外」だという主張ですか?
実行時例外をそんな意味で使ってる人見たことないです
0240デフォルトの名無しさん (ワッチョイ 9aad-SEkD)
垢版 |
2020/05/24(日) 05:08:04.89ID:vB1Q/4mw0
Kotlinもよろしく
0242デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/25(月) 00:25:50.67ID:Ou5xo5qn0
>>241
ScannerがInputStreamをバッファリングして読み込んでてInputStreamが空になってるからでしょ
Scannerを共有すれば良い
0243241 (ワッチョイ 5b1d-s4/3)
垢版 |
2020/05/25(月) 15:20:08.37ID:6axksZvO0
>>242
回答ありがとうございます。
でも俺頭が悪いのでそれがどういうことなのかよく分からないです…。

修正はしてみました。
https://ideone.com/ZA15Gv
こんな感じでよろしいでしょうか?
0246241 (ワッチョイ 5b1d-s4/3)
垢版 |
2020/05/25(月) 16:10:14.87ID:6axksZvO0
>>245
回答ありがとうございます。

>>241>>244では別メソッドという観点からアプローチしましたが、
本当は>>243のように別のクラスでどうか、という観点でやりたかったんです。

JPCERTの記事はまだ理解出来ていませんが、
・別メソッドでScannerを使う場合は、そのクラスのフィールドでscanner変数を宣言してそれぞれ利用
・別クラスで使う場合は、scanner変数ををstatic付きで(Mainクラス等に)宣言し、クラス変数としてそれぞれ利用
という理解でいいですかね?

以下は、後者の場合のコード作成例です。
https://ideone.com/3YvgD5
0247デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/25(月) 17:11:26.36ID:Ou5xo5qn0
>>246
どうしてエラーになるかの説明でリンクを貼った

どういう理由でクラス分けようとしてるのかわからないけど
フィールドにScannerをもたせるならこうじゃないかな
https://paiza.io/projects/kIlKd0LmbbTwohyXEL0Glw

可変のフィールドをパブリックに公開するのは責任の範囲がわからなくなるので
よろしくないし、それに依存するクラスもよろしくないと思うよ
0248デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/25(月) 17:24:28.23ID:Ou5xo5qn0
一般論としてはだけどね
結局のところなんでもあり
0249デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/25(月) 17:25:10.64ID:Ou5xo5qn0
動けば正義
0250241 (ワッチョイ 5b1d-s4/3)
垢版 |
2020/05/25(月) 18:09:13.78ID:6axksZvO0
>>247-249
ありがとうございました。

理解できてないというのは、意図が分からないということではなく、
読んでみたものの内容が理解できなかったという意味です。

ちょっと俺にはその水準のコードはまだ書けないですね。
もう少し本を読んでみようと思います。
0251デフォルトの名無しさん (ワッチョイ 5a7c-rJCj)
垢版 |
2020/05/26(火) 13:44:52.25ID:RAWR5qso0
超はじめたてです。質問があります。

関係演算子と分岐分を用いる問題です。

「int型の変数a,b,cを宣言し、それぞれ適当な整数を代入する。
a.b.cのうち最大値を求めてその値を表示してください」というコードはどうすればいいですか?
0252デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/26(火) 13:58:27.88ID:rvZgOtV/0
>>251
public static void main(String[] args) {
 int a = 3;
 int b = 1;
 int c = 2;

 System.out.println(max(max(a, b), c));
}

static int max(int x, int y) {
 if (x >= y) {
  return x;
 } else {
  return y;
 }
}
0253デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/26(火) 14:01:28.38ID:rvZgOtV/0
もしくはこう
public static void main(String[] args) {
 int a = 3;
 int b = 1;
 int c = 2;

 if (a >= b) {
  if (a >= c) {
   System.out.println(a);
  } else {
   System.out.println(c);
  }
 } else {
  if (b >= c) {
   System.out.println(b);
  } else {
   System.out.println(c);
  }
 }
}
0254デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/26(火) 14:03:04.65ID:rvZgOtV/0
あるいはこう
public static void main(String[] args) {
 int a = 3;
 int b = 1;
 int c = 2;

 System.out.println(Stream.of(a, b, c).max(Integer::compareTo).get());
}
0255デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/26(火) 14:04:39.34ID:rvZgOtV/0
またはこう
public static void main(String[] args) {
 int a = 3;
 int b = 1;
 int c = 2;

 System.out.println(Stream.of(a, b, c).reduce((x, y) -> x >= y ? x : y).get());
}
0257デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/26(火) 14:09:36.09ID:rvZgOtV/0
>>256
またはこう
public static void main(String[] args) {
 int a = 3;
 int b = 1;
 int c = 2;

 int[] xs = {a, b, c};
 Arrays.sort(xs);
 System.out.println(xs[xs.length - 1]);
}
0258デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/26(火) 14:11:53.33ID:rvZgOtV/0
>>256
またはこう
public static void main(String[] args) {
 int a = 3;
 int b = 1;
 int c = 2;

 TreeSet<Integer> tree = new TreeSet<Integer>();
 tree.add(a);
 tree.add(b);
 tree.add(c);

 System.out.println(tree.last());
}
0259デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/26(火) 14:17:23.59ID:rvZgOtV/0
>>256
またはこう
public static void main(String[] args) {
 int a = 3;
 int b = 1;
 int c = 2;

 PriorityQueue<Integer> maxHeap = new PriorityQueue<Integer>(Comparator.reverseOrder());
 maxHeap.add(a);
 maxHeap.add(b);
 maxHeap.add(c);

 System.out.println(maxHeap.remove());
}
0260デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/26(火) 14:19:48.13ID:rvZgOtV/0
>>256
またはこう
public static void main(String[] args) {
 int a = 3;
 int b = 1;
 int c = 2;

 int[] xs = {a, b, c};
 int max = 0;

 for (int i = 0; i < xs.length; i++) {
  if (i == 0 || xs[i] > max) {
   max = xs[i];
  }
 }

 System.out.println(max);
}
0261デフォルトの名無しさん (ワッチョイ 7601-o1js)
垢版 |
2020/05/26(火) 14:21:57.57ID:rvZgOtV/0
>>256
またはこう
public static void main(String[] args) {
 int a = 3;
 int b = 1;
 int c = 2;

 int max = a;

 if (b > max) {
  max = b;
 }

 if (c > max) {
  max = c;
 }

 System.out.println(max);
}
■ このスレッドは過去ログ倉庫に格納されています