X



★★Java質問・相談スレッド181★★
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2018/02/10(土) 17:49:40.56ID:l9ZzjyKP
プログラミング言語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質問・相談スレッド180★★
https://mevius.5ch.net/test/read.cgi/tech/1492780397/
0318デフォルトの名無しさん
垢版 |
2018/06/22(金) 12:35:39.34ID:hcBKEl3e
>>317
助言ありがとうございます!
解決できました!
0319デフォルトの名無しさん
垢版 |
2018/06/22(金) 15:31:22.98ID:3EtLvxAt
switch使おうよ。
0320デフォルトの名無しさん
垢版 |
2018/06/22(金) 15:40:49.23ID:fTGbKFWm
Java7から使えるようになったんだっけ?
0323デフォルトの名無しさん
垢版 |
2018/06/23(土) 20:24:44.15ID:lx4N25iu
Javaの入力値チェックの方法についてご相談です。

ユーザーから手入力された値をインスタンス変数に代入後、チェックする処理を記述しようと思っているのですが、方法として以下の3つを考えています。
※setter のアクセスレベルはprivateにしています。

@ 検査対象のインスタンス内でチェック用のメソッドとsetter をそれぞれ定義する

A 検査対象のsetter 内に、チェック処理のロジックを記述する(チェック処理の内包)

B チェック処理をする責務を持つクラス(インスタンス)を別で作成し、検査対象を引数として与える

3つの方法に対してのご意見、ご指摘を頂きたいです。
そもそも、setter に値をセットする以外の処理を含めて良いものか悩んでおります。
可能であれば、setter の件についてもご意見頂ければと思います。

長文となってしまいましたが、皆様よろしくお願いします。
0324デフォルトの名無しさん
垢版 |
2018/06/23(土) 22:44:16.49ID:5c71PR8X
java bronzeを受けようと思い黒本過去問10周くらいして
理解できたと思いますが、似た問題が多いでしょうか・・
合格した方はどれくらい勉強したか教えてください。
0325 ◆BrBq2CJg6HGd
垢版 |
2018/06/23(土) 22:52:16.17ID:H68Z4zsJ
>>324
それなら多分大丈夫だと思います
俺は翔泳社の問題集を3回ぐらい解いて受かりました
0326デフォルトの名無しさん
垢版 |
2018/06/24(日) 11:46:06.34ID:MQB4VaSY
>>323
ユーザの入力値受け取るクラスならprivateじゃなくてpublicなsetter作るような気がするんだけど
ちょっと状況が分からない
どういうクラスかもう少し書ける?

setterに処理を含めること自体は問題ない
0327デフォルトの名無しさん
垢版 |
2018/06/24(日) 12:47:58.04ID:I6qT+7Vz
>>323
時と場合により全部使う
プレゼンテーション層での検証は主に@とB
ドメイン層での検証は主にA(setterは基本的に非公開だが)
0328デフォルトの名無しさん
垢版 |
2018/06/24(日) 14:33:44.94ID:pKame5cc
setterにロジック含めていいかどうかで悩むとかアホか
ロジック含める可能性がないならsetter通さずにフィールドにそのまま大入すればいいだろアホ
0330デフォルトの名無しさん
垢版 |
2018/06/24(日) 18:01:03.69ID:5i39kBRv
IPっつったら、IDEAPOCKETが真っ先に思い付くわ・・
0331デフォルトの名無しさん
垢版 |
2018/06/25(月) 09:12:54.69ID://DXoKuS
大入袋
0332デフォルトの名無しさん
垢版 |
2018/06/25(月) 20:05:59.87ID:6QnNrYn1
すみません、いくつか質問させてください。

<クラスパス(ビルドパス)について>
・eclipseの「ビルドパスに追加」したフォルダが複数登録されており、
・それらの中に全く同じパッケージに有る同じクラス名が合った場合、
 どのような優先順位で1つのクラスが選ばれるのでしょうか。
・また全く同じパッケージ・クラス名で、 .jarのライブラリがインポート
 されていて、それとは別にフォルダ構造のパッケージの中に、
 バラの.classファイルが配置されていた場合、これらの優先順位
 はあるのでしょうか。
・コンソールでjavaを実行するのではなくTomcatがjavaを
 実行する場合、どのディレクトリからjavaを実行しているのでしょうか?
・.jspファイルは「ビルドパスに追加」をフォルダに置く必要が
 あるのでしょうか。それとも「ソースフォルダの追加」に登録
 フォルダの配下にあるべきなのでしょうか。
・gitなどでバージョン管理をする際に、.classファイルや .jarなどの
 バイナリファイルを複数人で別々のバイナリを生成して
  コンフリクトした場合、マージされるのでしょうか。
DBに保存されたバイナリデータもマージされるのでしょうか。
・eclipseで設定したブレークポイントでソースが停止した場合、
 その実際の.classファイルあるいは.jarファイルはどこにあるのか
 特定できるでしょうか。
 
0334初心者
垢版 |
2018/06/25(月) 20:16:03.04ID:6QnNrYn1
<eclipseの「ソースフォルダの追加」について>
・「ソースフォルダに追加」したフォルダの配下にある.javaコードは
  eclipseのブレークポイントで止まってくれますが、
  これは「ソースフォルダに追加したソースから生成された.class
あるいは.jar」が実行されていなければソースは特定できないので
  しょうか。
・「ソースフォルダに追加」した時点でそのソース群から生成された
  .classファイルがもしビルドパスに登録されているフォルダ配下
  に生成されるようになっていなければ、自動的にビルドパスに
  追加されるのでしょうか?
・それとも単純に同名のパッケージ名、クラス名が実行された場合、
 ソースフォルダに登録したフォルダから検索して、名前の一致だけで
 特定しているのでしょうか。
・もし名前の一致だけで特定している場合、同じ名前の別のソースから
  生成された.classファイルに中身が書き換わってしまい、
  ソースフォルダに追加している.javaと.classの中身が全く
  対応しなくなっている状態になると、デバッグは失敗するのでしょうか。
・「ソースフォルダに追加」で複数のフォルダを追加して、
 別々の場所に同じパッケージ名、クラス名の.javaファイルが複数あった
 場合、デバッグ時に呼び出されるのはどの.javaファイルになるのでしょうか。
0336デフォルトの名無しさん
垢版 |
2018/06/25(月) 21:38:05.82ID:mHx9ED9l
>>332
ビルドパスの優先順はビルドパスのダイアログにOrder and Exportというタブで指定したとおりだよ
クラスパスは先に指定したものから順番に検索される、先に見つかったものが使われる
0337デフォルトの名無しさん
垢版 |
2018/06/25(月) 22:00:32.20ID:XS6tlG59
githubでC#で書かれたソースコードを見るとVisual Studioで作成したファイルが見当たらないんですが、
Visual Studioを使わないほうがいいんでしょうか?
0338デフォルトの名無しさん
垢版 |
2018/06/25(月) 22:00:51.60ID:XS6tlG59
すれ間違えました
0339デフォルトの名無しさん
垢版 |
2018/06/25(月) 23:33:17.67ID:lTrbOz9W
>全く同じパッケージに、同じクラス名がある
パッケージはフォルダ、クラスはファイル名に相当するから、
同一フォルダ内に、同一のファイル名は、絶対に存在できない

>コンソールでjavaを実行するのではなくTomcatがjavaを実行する場合、
>どのディレクトリからjavaを実行しているのでしょうか?
pwd のような、Linux コマンドを実行すれば、カレントディレクトリを表示するはず。
それか、そういう環境変数を探す

これら以外の質問は、実際に起こった場合の、エラーメッセージで検索して
0340デフォルトの名無しさん
垢版 |
2018/06/26(火) 09:24:15.65ID:4BKP4Htb
そういや試したことないが、2つの別々のjarファイルの中のディレクトリとクラスファイルが同じだったらクラスローダーがエラー出すんだろうか?

あ、コピーしてやってみればいいだけだな。時間があったらやってみよう。
0341デフォルトの名無しさん
垢版 |
2018/06/26(火) 10:03:27.13ID:HJBlnKJN
>>339
それはクラスパスが1つだけと仮定したときの話でしょ?
複数のクラスパスに中身が違う同じパッケージ空間のクラスが存在できるじゃん。

eclipseの「Javaリソース」「参照ライブラリー」「ライブラリー」
「JREシステム・ライブラリー」「Web Appライブラリー」
って何が違うのか気になるわ。
あとそれぞれのアイコン
・田んぼの「田」みたいなアイコン(茶色/白)
→パッケージだけど色の違いは・・・?
  茶色い田はフォルダで中に.classファイルが入っている。
  白い田はファイル?なのかよくわからない。
  フォルダ名の名前空間を表している?
・フォルダ内に「田」が入っているアイコン
・本が積み上げられているようなアイコン
→これは「ライブラリー」か
  フォルダの中に「本」が入っているようなアイコンもあるがこれは何?
・ビンのアイコン
 →これは.jarだけど.jarってライブラリーのことじゃないのか?
  .jarと本のアイコンの違いは何だ?
・「.classファイル」のアイコンも2種類ある。
 →1つは「J 01」というファイルのような形のアイコン
  もう一つはツリーのような形をした黄色、ピンク、青のアイコン。
  これらの違いは何?

イメージとして.classファイルを集約するフォルダがパッケージ(田)
で、パッケージを集約するのが「.jar」で、
.jarを集約するのが「本のアイコン」でいいの?
本のアイコンとフォルダ内に田があるアイコンの違いもよくわからない。

ファイルシステム上ではどれも単なる「フォルダ」似すぎないものの
分類が多すぎて混乱するわ。
0343デフォルトの名無しさん
垢版 |
2018/06/26(火) 11:37:57.95ID:B6D+LuS4
>>341
eclipseの「Javaリソース」「参照ライブラリー」「ライブラリー」
「JREシステム・ライブラリー」「Web Appライブラリー」
って何が違うのか気になるわ。
→どういった機能があるライブラリーなのか分類分けしてるだけ。WebかいはつしないならWeb Appライブラリーをビルドパスから除外するなど

あとそれぞれのアイコン
→ただ単に状態を表してるだけ。田の白茶は直下にクラスファイルが有るか無いかだけだったと思う、ほかはないを言ってるかよくわからない

ファイルシステム上ではどれも単なる「フォルダ」似すぎないものの
分類が多すぎて混乱するわ。
→慣れろ
0345デフォルトの名無しさん
垢版 |
2018/06/26(火) 13:09:23.95ID:4BKP4Htb
>>340を試してみたらエラーにならなかった。
で、クラス名同じで内容が違う状態で実行して判別できるようにして調べたら -cp で先に指定した方が有効になるだけだった。
単純に頭からクラスの検索しているだけみたい。
0346デフォルトの名無しさん
垢版 |
2018/06/26(火) 13:10:10.27ID:4BKP4Htb
>>344
いやあ、しかし、エラーになってほしいものではあるよな。
0350デフォルトの名無しさん
垢版 |
2018/06/26(火) 17:25:51.93ID:QQQU3toQ
てかマジにパッケージの役割をまるで理解できてない自分が怖い。
他のプロジェクトのクラス利用するみたいな時に役立つんですかね。
0351デフォルトの名無しさん
垢版 |
2018/06/26(火) 17:59:26.14ID:svNbpPIp
PCではクラスが重複していてもエラーにならずどっちがロードされるか分からんけど
Googleさんはそんな曖昧なことを許さず
Androidアプリをビルドするときはクラスが重複してるとエラーになる
0352デフォルトの名無しさん
垢版 |
2018/06/26(火) 19:49:21.17ID:EJ9QuCpH
さすが
0356デフォルトの名無しさん
垢版 |
2018/06/28(木) 22:34:14.17ID:mQsBu3Yx
>>354
OracleJDKは個人使用だろうと有料
OpenJDKは無料だけどサポート期間が半年で切れ、その都度最新版に乗り換えないといけない
AndroidのJavaは元々違法だから関係ない
0357デフォルトの名無しさん
垢版 |
2018/06/28(木) 22:54:20.28ID:HobEbqhl
先週OracleがJDK11の扱いを新たに発表したよ
これまではOracleJDKを有償サポート契約者にしか提供しないと言っていたのだが
デモや評価目的でOracleJDKを使うことができると表明した
これにより誰でもOracleJDKをダウンロードできるのではないかと見られている
(ただし未契約ではサポートは受けられない)

またOpenJDKについてもOracleがビルドした(ほぼ公式)バイナリが提供される
OpenJDKについては他にもzuluなどいくつかのディストリビューターがビルドバイナリを提供している

JDK11以降も商用サポートが受けられないというだけでJavaはこれからも自由だよ!
0362デフォルトの名無しさん
垢版 |
2018/06/29(金) 12:28:18.43ID:04kXi5pA
払えばサポート受けられるだけで払わなくても商用利用出来る

という認識でok?
0363デフォルトの名無しさん
垢版 |
2018/06/29(金) 13:38:34.81ID:cRGLx+38
>>362
サポートって電話したらオラクルのお姉さんと話せるサービスを想像してる?
セキュリティパッチの提供も含まれるんだぞ
0366デフォルトの名無しさん
垢版 |
2018/06/29(金) 18:20:16.36ID:6OZlBNWi
>>362
OracleJDKをデモ・評価の範囲を超える配布等の商用利用したらアウトだろう
サポート不要で商用利用する場合はOpenJDKだな
0367デフォルトの名無しさん
垢版 |
2018/06/30(土) 00:45:39.52ID:SNP/nySb
プログラミング超初級です
これからプログラムを学びたいと思って、progateというサイトで練習しています

JavaTは楽しく学習できたのですが、JavaUでifやfor等、多様な構文が出てきて
頭でうまく整理が付きません
プログラム向いてないんでしょうか?
0368デフォルトの名無しさん
垢版 |
2018/06/30(土) 02:30:39.07ID:yaCLVjK3
むりやりやらされてるの?
たった数時間の勉強で向いてないんじゃないかと心配するほどモチベーションが低いことのほうが、問題だと思うよ。
0370デフォルトの名無しさん
垢版 |
2018/06/30(土) 12:00:29.96ID:Wg+LSNTR
ちんちんの話
0372367
垢版 |
2018/06/30(土) 12:40:24.30ID:SNP/nySb
>>368
仰るとおりですね、根を上げるには早すぎると思います
まだまだ時間を使って、一つ一つを学習していきたいと思っています

Javaに触れてみて思ったのですが、自分はプログラムってもっと数学的なものだと思っていたのですが
英語の文法を覚えるのに近そうですよね
私は数字には強いですが、英語などの言語が超苦手なので向いてないのかなと思いました

Javaが苦手なのか、プログラム全般が向いてないのかが重要だと思ってるのですが
Java以外の他の言語なら、また違うでしょうか?
0375 ◆QZaw55cn4c
垢版 |
2018/06/30(土) 12:59:15.79ID:BPi0VHAg
>>367
一度でマスターできないのは当たり前で、なんどとなくいろんな課題に適用していくことで理解した思えるようになります
そういう課題は自分でみつける必要はありますが

>>368
モチベーションは自分の意志ではどうしようもない、天から降ってくるものなのでは?
0376デフォルトの名無しさん
垢版 |
2018/06/30(土) 14:22:19.92ID:Ms0oF+PT
>>372
数学の教科書だって自然言語で書いてあるでしょ
プログラミング言語の文法程度のことが覚えられないなら
知的労働には向いてないよ
0377デフォルトの名無しさん
垢版 |
2018/06/30(土) 15:59:07.87ID:SNP/nySb
ありがとうございます
数をこなしていくことで覚えていきたいと思います

https://prog-8.com/users/sign_in#/42
しかし、やはりというかprogateのJavaUの総合問題が、何度挑戦しても難しすぎます

慣れている人なら、こういう難問でもスラスラとコード書けちゃうんですかね?
問題が難しすぎるだけだったりしますか?
0379デフォルトの名無しさん
垢版 |
2018/06/30(土) 16:11:33.20ID:+7yWvOia
>>378
この程度なら文系大卒未経験でも新人研修3日目くらいには余裕でできる
中にはできない奴もいるが、経験上、そういう奴は最後まで決してできるようにはならず、試用期間切りかスタッフ職
0380デフォルトの名無しさん
垢版 |
2018/06/30(土) 17:24:21.46ID:oywXZrZh
奇数の和は26です
偶数の和は23です

このくらいのギャグをかますセンスが欲しいところだ。
0381デフォルトの名無しさん
垢版 |
2018/06/30(土) 18:35:48.68ID:m2uqFRio
>>377
大量のデータを条件によって分けて処理するのはよくあることだからできないとお話にならない
0382デフォルトの名無しさん
垢版 |
2018/06/30(土) 18:59:47.95ID:Zdmuabpa
この問題みてて、そういえばStreamって分岐できないんだよなぁ、
ってことを思った。
0383デフォルトの名無しさん
垢版 |
2018/06/30(土) 20:08:19.22ID:SNP/nySb
今2週目をやってみたのですが、昨日のことがウソのように
スラスラと解けました
こんな簡単な問題に頭を抱えて悩んでいる人たちがいると思うと、笑えてきますね
プログラムって、ちょろいかもしれません
0388デフォルトの名無しさん
垢版 |
2018/07/01(日) 12:11:03.57ID:oSgDfxs0
Java少し前に始めたけどprogateより参考書読んだ方が圧倒的に理解できるぞ
始めるきっかけでprogateは悪くはないと思うけど
0389デフォルトの名無しさん
垢版 |
2018/07/01(日) 14:26:54.09ID:yaDvqYhr
参考書を読む、試す、の繰り返しで良いんではないかな。
0391デフォルトの名無しさん
垢版 |
2018/07/02(月) 08:23:40.31ID:G0LOf4TF
スッキリわかるjava入門の命令実行の文の所の後半よくわからないんですが
読み飛ばしても後々問題ないですか?
0393デフォルトの名無しさん
垢版 |
2018/07/02(月) 09:42:59.20ID:/q8FZihl
その本に何が書いてあるかわからないので読み飛ばして良いかどうかもわからない。
その本が出る前に初心者ではなくなってしまったのでその本をこれから買う気は起きない。
0394デフォルトの名無しさん
垢版 |
2018/07/02(月) 09:47:04.17ID:HD8gmjU2
JVMが実行されるときにパイプライン上で分岐が生じるかどうかを聞いてるのだと思うけど(すげー適当)
0395デフォルトの名無しさん
垢版 |
2018/07/02(月) 10:23:37.86ID:G0LOf4TF
>>393
すいません。この本はjavaの初心者入門書で
System.out.println();←こんな感じの命令実行文の説明してる章(第2章)みたいなんですけど何を伝えたいのかよく分からなくて^^;
他にもSystem.out.printとかint. =Math.max (?)のこととか書かれてるんですけど…
こういう命令文もあるんだ〜程度に覚えて次に進んでも問題ないですかね・・それともガッツリ覚えてから行かないとどっかで躓きますかね・・・ 
0396デフォルトの名無しさん
垢版 |
2018/07/02(月) 11:34:34.56ID:9wGdj7CA
Ruby で書くと、
puts "あいう"

画面表示するだけの関数だから、一々、覚えなくてよい
0397デフォルトの名無しさん
垢版 |
2018/07/02(月) 11:57:56.38ID:G0LOf4TF
ここが命令を実行させる文とだけ覚えておけば問題ないですか・・ね
初心者すぎる質問でしたが答えていただきありがとうございました
0398デフォルトの名無しさん
垢版 |
2018/07/02(月) 12:27:22.30ID:HeCnpISr
良くできた本は最初から順にひとつづつ読んでいくのが一番良い。
このタイプの良本は教科書やロングセラーに多い。
適当に思い付きを並べた糞本は順に読んでも意味がない。
というかどう読んでも意味がない。
0400デフォルトの名無しさん
垢版 |
2018/07/02(月) 12:31:28.49ID:HeCnpISr
>>399
たとえばドラゴンブックはよくできた本の一つだな。
0401デフォルトの名無しさん
垢版 |
2018/07/02(月) 12:44:32.96ID:7ATQpDYX
普通はわからない所が出てきたら手前の方のページに説明が書いてあると思うのでそれ見れば良い。
必ずしもそうとは限らないが。その場合は索引見ればいいかな。
0403デフォルトの名無しさん
垢版 |
2018/07/02(月) 15:34:52.77ID:6MU/ELtX
>適当に思い付きを並べた糞本は順に読んでも意味がない。
Effective Javaのことか?w
0404デフォルトの名無しさん
垢版 |
2018/07/03(火) 13:59:37.26ID:CyvRpAiw
System.out.printlnはその本の後半で説明してるれるから飛ばしても問題ないよ
自分もその本の読んだけど個人的にはモウチョイ詳しく書いてほしかったな
printとprintlnの違いについてすら書いてなかったし
0405デフォルトの名無しさん
垢版 |
2018/07/04(水) 21:56:46.88ID:gFgZc5FG
NJG
0407デフォルトの名無しさん
垢版 |
2018/07/07(土) 16:05:41.45ID:aa52jsH+
よろしくお願いします

public class HelloSampleActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
(略)
Button btClick=findViewById(R.id.btClick);
AListener listener=new AListener();
btClick.setOnClickListener(listener);
}
private class AListener implements View.OnClickListener{
@Override
public void onClick(View view){
}
}
}
onCreateメソッド内のsetOnClickListenerに関しての質問です。
Button型のインスタンス btClickが、なぜ(どうやって?)set.OnClickListenerメソッドを使えるようになっているのでしょうか?
0410デフォルトの名無しさん
垢版 |
2018/07/07(土) 16:19:54.19ID:9/rBHklo
>>407
ButtonがViewを継承してるからじゃねっすか
0412デフォルトの名無しさん
垢版 |
2018/07/08(日) 20:49:11.79ID:jlZqZIEk
ラズパイ+Netbeans+JavaFXでGUIアプリを作りたいんですけど、どうしても環境が作れません。

https://netbeans.org/kb/73/java/javafx-setup_ja.html
ここに従って新しいJavaプラットフォームを作るように言われて作るのですが、JavaFXタブがありません。
上記の環境を構築できた方いらっしゃらないでしょうか。
0416デフォルトの名無しさん
垢版 |
2018/07/08(日) 22:06:11.29ID:i8SXyieH
NetBeansとかIntelliJ IDEAとかはSwing製なので
まだまだイケるんじゃないかな
■ このスレッドは過去ログ倉庫に格納されています

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