★★Java質問・相談スレッド181★★
■ このスレッドは過去ログ倉庫に格納されています
プログラミング言語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/ >>316
なんで正解判定で使ってるequalsを不正解判定では使わないんだ… >>317
助言ありがとうございます!
解決できました! Javaの入力値チェックの方法についてご相談です。
ユーザーから手入力された値をインスタンス変数に代入後、チェックする処理を記述しようと思っているのですが、方法として以下の3つを考えています。
※setter のアクセスレベルはprivateにしています。
@ 検査対象のインスタンス内でチェック用のメソッドとsetter をそれぞれ定義する
A 検査対象のsetter 内に、チェック処理のロジックを記述する(チェック処理の内包)
B チェック処理をする責務を持つクラス(インスタンス)を別で作成し、検査対象を引数として与える
3つの方法に対してのご意見、ご指摘を頂きたいです。
そもそも、setter に値をセットする以外の処理を含めて良いものか悩んでおります。
可能であれば、setter の件についてもご意見頂ければと思います。
長文となってしまいましたが、皆様よろしくお願いします。 java bronzeを受けようと思い黒本過去問10周くらいして
理解できたと思いますが、似た問題が多いでしょうか・・
合格した方はどれくらい勉強したか教えてください。 >>324
それなら多分大丈夫だと思います
俺は翔泳社の問題集を3回ぐらい解いて受かりました >>323
ユーザの入力値受け取るクラスならprivateじゃなくてpublicなsetter作るような気がするんだけど
ちょっと状況が分からない
どういうクラスかもう少し書ける?
setterに処理を含めること自体は問題ない >>323
時と場合により全部使う
プレゼンテーション層での検証は主に@とB
ドメイン層での検証は主にA(setterは基本的に非公開だが) setterにロジック含めていいかどうかで悩むとかアホか
ロジック含める可能性がないならsetter通さずにフィールドにそのまま大入すればいいだろアホ IPっつったら、IDEAPOCKETが真っ先に思い付くわ・・ すみません、いくつか質問させてください。
<クラスパス(ビルドパス)について>
・eclipseの「ビルドパスに追加」したフォルダが複数登録されており、
・それらの中に全く同じパッケージに有る同じクラス名が合った場合、
どのような優先順位で1つのクラスが選ばれるのでしょうか。
・また全く同じパッケージ・クラス名で、 .jarのライブラリがインポート
されていて、それとは別にフォルダ構造のパッケージの中に、
バラの.classファイルが配置されていた場合、これらの優先順位
はあるのでしょうか。
・コンソールでjavaを実行するのではなくTomcatがjavaを
実行する場合、どのディレクトリからjavaを実行しているのでしょうか?
・.jspファイルは「ビルドパスに追加」をフォルダに置く必要が
あるのでしょうか。それとも「ソースフォルダの追加」に登録
フォルダの配下にあるべきなのでしょうか。
・gitなどでバージョン管理をする際に、.classファイルや .jarなどの
バイナリファイルを複数人で別々のバイナリを生成して
コンフリクトした場合、マージされるのでしょうか。
DBに保存されたバイナリデータもマージされるのでしょうか。
・eclipseで設定したブレークポイントでソースが停止した場合、
その実際の.classファイルあるいは.jarファイルはどこにあるのか
特定できるでしょうか。
<eclipseの「ソースフォルダの追加」について>
・「ソースフォルダに追加」したフォルダの配下にある.javaコードは
eclipseのブレークポイントで止まってくれますが、
これは「ソースフォルダに追加したソースから生成された.class
あるいは.jar」が実行されていなければソースは特定できないので
しょうか。
・「ソースフォルダに追加」した時点でそのソース群から生成された
.classファイルがもしビルドパスに登録されているフォルダ配下
に生成されるようになっていなければ、自動的にビルドパスに
追加されるのでしょうか?
・それとも単純に同名のパッケージ名、クラス名が実行された場合、
ソースフォルダに登録したフォルダから検索して、名前の一致だけで
特定しているのでしょうか。
・もし名前の一致だけで特定している場合、同じ名前の別のソースから
生成された.classファイルに中身が書き換わってしまい、
ソースフォルダに追加している.javaと.classの中身が全く
対応しなくなっている状態になると、デバッグは失敗するのでしょうか。
・「ソースフォルダに追加」で複数のフォルダを追加して、
別々の場所に同じパッケージ名、クラス名の.javaファイルが複数あった
場合、デバッグ時に呼び出されるのはどの.javaファイルになるのでしょうか。 >>332
ビルドパスの優先順はビルドパスのダイアログにOrder and Exportというタブで指定したとおりだよ
クラスパスは先に指定したものから順番に検索される、先に見つかったものが使われる githubでC#で書かれたソースコードを見るとVisual Studioで作成したファイルが見当たらないんですが、
Visual Studioを使わないほうがいいんでしょうか? >全く同じパッケージに、同じクラス名がある
パッケージはフォルダ、クラスはファイル名に相当するから、
同一フォルダ内に、同一のファイル名は、絶対に存在できない
>コンソールでjavaを実行するのではなくTomcatがjavaを実行する場合、
>どのディレクトリからjavaを実行しているのでしょうか?
pwd のような、Linux コマンドを実行すれば、カレントディレクトリを表示するはず。
それか、そういう環境変数を探す
これら以外の質問は、実際に起こった場合の、エラーメッセージで検索して そういや試したことないが、2つの別々のjarファイルの中のディレクトリとクラスファイルが同じだったらクラスローダーがエラー出すんだろうか?
あ、コピーしてやってみればいいだけだな。時間があったらやってみよう。 >>339
それはクラスパスが1つだけと仮定したときの話でしょ?
複数のクラスパスに中身が違う同じパッケージ空間のクラスが存在できるじゃん。
eclipseの「Javaリソース」「参照ライブラリー」「ライブラリー」
「JREシステム・ライブラリー」「Web Appライブラリー」
って何が違うのか気になるわ。
あとそれぞれのアイコン
・田んぼの「田」みたいなアイコン(茶色/白)
→パッケージだけど色の違いは・・・?
茶色い田はフォルダで中に.classファイルが入っている。
白い田はファイル?なのかよくわからない。
フォルダ名の名前空間を表している?
・フォルダ内に「田」が入っているアイコン
・本が積み上げられているようなアイコン
→これは「ライブラリー」か
フォルダの中に「本」が入っているようなアイコンもあるがこれは何?
・ビンのアイコン
→これは.jarだけど.jarってライブラリーのことじゃないのか?
.jarと本のアイコンの違いは何だ?
・「.classファイル」のアイコンも2種類ある。
→1つは「J 01」というファイルのような形のアイコン
もう一つはツリーのような形をした黄色、ピンク、青のアイコン。
これらの違いは何?
イメージとして.classファイルを集約するフォルダがパッケージ(田)
で、パッケージを集約するのが「.jar」で、
.jarを集約するのが「本のアイコン」でいいの?
本のアイコンとフォルダ内に田があるアイコンの違いもよくわからない。
ファイルシステム上ではどれも単なる「フォルダ」似すぎないものの
分類が多すぎて混乱するわ。 >>341
eclipseの「Javaリソース」「参照ライブラリー」「ライブラリー」
「JREシステム・ライブラリー」「Web Appライブラリー」
って何が違うのか気になるわ。
→どういった機能があるライブラリーなのか分類分けしてるだけ。WebかいはつしないならWeb Appライブラリーをビルドパスから除外するなど
あとそれぞれのアイコン
→ただ単に状態を表してるだけ。田の白茶は直下にクラスファイルが有るか無いかだけだったと思う、ほかはないを言ってるかよくわからない
ファイルシステム上ではどれも単なる「フォルダ」似すぎないものの
分類が多すぎて混乱するわ。
→慣れろ >>340を試してみたらエラーにならなかった。
で、クラス名同じで内容が違う状態で実行して判別できるようにして調べたら -cp で先に指定した方が有効になるだけだった。
単純に頭からクラスの検索しているだけみたい。 >>344
いやあ、しかし、エラーになってほしいものではあるよな。 >>332
ここで聞けよ
Eclipse統合M36【Java/C++/Ruby/Python/Scala】 [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1503723668/ てかマジにパッケージの役割をまるで理解できてない自分が怖い。
他のプロジェクトのクラス利用するみたいな時に役立つんですかね。 PCではクラスが重複していてもエラーにならずどっちがロードされるか分からんけど
Googleさんはそんな曖昧なことを許さず
Androidアプリをビルドするときはクラスが重複してるとエラーになる java有料化と聞いたのですが個人使用やAndoroidなら無料ですよね >>354
OracleJDKは個人使用だろうと有料
OpenJDKは無料だけどサポート期間が半年で切れ、その都度最新版に乗り換えないといけない
AndroidのJavaは元々違法だから関係ない 先週OracleがJDK11の扱いを新たに発表したよ
これまではOracleJDKを有償サポート契約者にしか提供しないと言っていたのだが
デモや評価目的でOracleJDKを使うことができると表明した
これにより誰でもOracleJDKをダウンロードできるのではないかと見られている
(ただし未契約ではサポートは受けられない)
またOpenJDKについてもOracleがビルドした(ほぼ公式)バイナリが提供される
OpenJDKについては他にもzuluなどいくつかのディストリビューターがビルドバイナリを提供している
JDK11以降も商用サポートが受けられないというだけでJavaはこれからも自由だよ! >>357
でも後から高額請求がOracleテンプレ Eclipseがただで使えるようにしてくれるさ(遠い目) >>357
評価目的ってことは、配布した時点で請求が来るのかな? 払えばサポート受けられるだけで払わなくても商用利用出来る
という認識でok? >>362
サポートって電話したらオラクルのお姉さんと話せるサービスを想像してる?
セキュリティパッチの提供も含まれるんだぞ >>363
セキュリティパッチ無ければ無料です
と言ったら無料選ぶのが客
無料ならjavaで良いね >>362
OracleJDKをデモ・評価の範囲を超える配布等の商用利用したらアウトだろう
サポート不要で商用利用する場合はOpenJDKだな プログラミング超初級です
これからプログラムを学びたいと思って、progateというサイトで練習しています
JavaTは楽しく学習できたのですが、JavaUでifやfor等、多様な構文が出てきて
頭でうまく整理が付きません
プログラム向いてないんでしょうか? むりやりやらされてるの?
たった数時間の勉強で向いてないんじゃないかと心配するほどモチベーションが低いことのほうが、問題だと思うよ。 >>368
仰るとおりですね、根を上げるには早すぎると思います
まだまだ時間を使って、一つ一つを学習していきたいと思っています
Javaに触れてみて思ったのですが、自分はプログラムってもっと数学的なものだと思っていたのですが
英語の文法を覚えるのに近そうですよね
私は数字には強いですが、英語などの言語が超苦手なので向いてないのかなと思いました
Javaが苦手なのか、プログラム全般が向いてないのかが重要だと思ってるのですが
Java以外の他の言語なら、また違うでしょうか? >>367
一度でマスターできないのは当たり前で、なんどとなくいろんな課題に適用していくことで理解した思えるようになります
そういう課題は自分でみつける必要はありますが
>>368
モチベーションは自分の意志ではどうしようもない、天から降ってくるものなのでは? >>372
数学の教科書だって自然言語で書いてあるでしょ
プログラミング言語の文法程度のことが覚えられないなら
知的労働には向いてないよ ありがとうございます
数をこなしていくことで覚えていきたいと思います
https://prog-8.com/users/sign_in#/42
しかし、やはりというかprogateのJavaUの総合問題が、何度挑戦しても難しすぎます
慣れている人なら、こういう難問でもスラスラとコード書けちゃうんですかね?
問題が難しすぎるだけだったりしますか? >>378
この程度なら文系大卒未経験でも新人研修3日目くらいには余裕でできる
中にはできない奴もいるが、経験上、そういう奴は最後まで決してできるようにはならず、試用期間切りかスタッフ職 奇数の和は26です
偶数の和は23です
このくらいのギャグをかますセンスが欲しいところだ。 >>377
大量のデータを条件によって分けて処理するのはよくあることだからできないとお話にならない この問題みてて、そういえばStreamって分岐できないんだよなぁ、
ってことを思った。 今2週目をやってみたのですが、昨日のことがウソのように
スラスラと解けました
こんな簡単な問題に頭を抱えて悩んでいる人たちがいると思うと、笑えてきますね
プログラムって、ちょろいかもしれません 俺もjava始めたばっかりの初心者なんだがこの問題解けないわ Java少し前に始めたけどprogateより参考書読んだ方が圧倒的に理解できるぞ
始めるきっかけでprogateは悪くはないと思うけど 参考書を読む、試す、の繰り返しで良いんではないかな。 スッキリわかるjava入門の命令実行の文の所の後半よくわからないんですが
読み飛ばしても後々問題ないですか? その本に何が書いてあるかわからないので読み飛ばして良いかどうかもわからない。
その本が出る前に初心者ではなくなってしまったのでその本をこれから買う気は起きない。 JVMが実行されるときにパイプライン上で分岐が生じるかどうかを聞いてるのだと思うけど(すげー適当) >>393
すいません。この本はjavaの初心者入門書で
System.out.println();←こんな感じの命令実行文の説明してる章(第2章)みたいなんですけど何を伝えたいのかよく分からなくて^^;
他にもSystem.out.printとかint. =Math.max (?)のこととか書かれてるんですけど…
こういう命令文もあるんだ〜程度に覚えて次に進んでも問題ないですかね・・それともガッツリ覚えてから行かないとどっかで躓きますかね・・・ Ruby で書くと、
puts "あいう"
画面表示するだけの関数だから、一々、覚えなくてよい ここが命令を実行させる文とだけ覚えておけば問題ないですか・・ね
初心者すぎる質問でしたが答えていただきありがとうございました 良くできた本は最初から順にひとつづつ読んでいくのが一番良い。
このタイプの良本は教科書やロングセラーに多い。
適当に思い付きを並べた糞本は順に読んでも意味がない。
というかどう読んでも意味がない。 >>399
たとえばドラゴンブックはよくできた本の一つだな。 普通はわからない所が出てきたら手前の方のページに説明が書いてあると思うのでそれ見れば良い。
必ずしもそうとは限らないが。その場合は索引見ればいいかな。 その章の冒頭にどういった意図で内容を説明しているとか書いてないのん? >適当に思い付きを並べた糞本は順に読んでも意味がない。
Effective Javaのことか?w System.out.printlnはその本の後半で説明してるれるから飛ばしても問題ないよ
自分もその本の読んだけど個人的にはモウチョイ詳しく書いてほしかったな
printとprintlnの違いについてすら書いてなかったし よろしくお願いします
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メソッドを使えるようになっているのでしょうか? >>407
ButtonがViewを継承してるからじゃねっすか >>407
Button->TextView->View
Viewのメソッドが使える ラズパイ+Netbeans+JavaFXでGUIアプリを作りたいんですけど、どうしても環境が作れません。
https://netbeans.org/kb/73/java/javafx-setup_ja.html
ここに従って新しいJavaプラットフォームを作るように言われて作るのですが、JavaFXタブがありません。
上記の環境を構築できた方いらっしゃらないでしょうか。 >>413
じゃあ、javaでGUIはどうしたらええのん?
昔のSwingとかを使うのが正しいのん? NetBeansとかIntelliJ IDEAとかはSwing製なので
まだまだイケるんじゃないかな ■ このスレッドは過去ログ倉庫に格納されています