X



★★Java質問・相談スレッド181★★

レス数が950を超えています。1000を超えると書き込みができなくなります。
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/
0878デフォルトの名無しさん
垢版 |
2018/11/01(木) 07:36:25.75ID:PBz6MbCm
そうや。情報処理資格のテキストに書いてある。
楽観的とか、ああいうやつ

何も知らない奴が、ギャアギャア言ってるだけ
0880デフォルトの名無しさん
垢版 |
2018/11/01(木) 08:23:01.98ID:Tn1c1okn
例題とかじゃなくて、どういう時にロックが必要になるか考えて実際にやってみたらいいんじゃないか
そんな複雑なsynchronizedの使い方をしたことはしないだろう
0881デフォルトの名無しさん
垢版 |
2018/11/01(木) 09:20:12.40ID:AYHv18S/
>すみません、経験上凡人レベルの人に話しても理解されなくて、辛い思いをするだけです。
世間は俺のことを分かってくれない(馬鹿のFAQ)w
0882デフォルトの名無しさん
垢版 |
2018/11/01(木) 09:30:29.97ID:KWvf1ga0
ID:m171VN/Wは天才すぎる故に凡人レベルの嫉妬を買ってしまった
0883デフォルトの名無しさん
垢版 |
2018/11/01(木) 09:40:00.51ID:mQsUQM4b
いや本当。凡人レベルの人には話が通じませんよね。


という具合にみんなして同調しておけばいいのに。
0884デフォルトの名無しさん
垢版 |
2018/11/01(木) 09:41:09.33ID:VmLiOLMi
凡人にも理解出来る様に説明出来る能力を持ってるのが、天才の条件だな
説明出来ない人は紙一重の方
0885デフォルトの名無しさん
垢版 |
2018/11/01(木) 09:47:33.79ID:DtT8Cv0d
まあ責任と前提の問題だな
正常な頭してたらクラスAとクラスBが相互に密結合するような設計をすることはありえないから、
似た状況が起こりうるのはBがAに自身を登録してAがBをinterface経由で「コールバック」するようなパターンだろう
その場合、BのメソッドがAのコンテキストから呼び出されることはBを作る側は当然知っているはずで、Aを更に別のスレッドから呼ぶような基地外的行為をしないという人間としての最低限度の責任はB側にある
そしてA側はそのようなリスクのある拡張ポイントをなるべく作るべきではないし、やむを得ないときはドキュメントに明記するべき
0886デフォルトの名無しさん
垢版 |
2018/11/01(木) 10:30:23.17ID:Tn1c1okn
あれだ
スレッドを知った初心者が無駄に使いたくなってる状態に近いんじゃないか
0888デフォルトの名無しさん
垢版 |
2018/11/01(木) 11:38:29.67ID:mQsUQM4b
>>887
ありがとう。そんなスレがあったとは。正に俺のために作られたようなスレだな。

と、サラッと書けるくらいにならんといかんよ。現実がどうであれ。w
0890デフォルトの名無しさん
垢版 |
2018/11/01(木) 15:10:14.12ID:Nl3jEz8g
javaの資格のsilverやgoldはどの程度の実力で受かりますか?
デザインパターンやリファクタリングをちゃんと理解しているレベルなら余裕で受かる?
0891デフォルトの名無しさん
垢版 |
2018/11/01(木) 15:35:43.13ID:mUSj63Sn
>>890
シルバーはブロンズと変わらん
ゴールドはライブラリの使い方知ってればおけ
日付の計算とかスレッドとかコレクション
0892デフォルトの名無しさん
垢版 |
2018/11/01(木) 15:58:36.20ID:Nl3jEz8g
>>891
ゴールドもその程度で受かるのですか?
楽勝ですね。
じゃ逆にデザインパターンやリファクタリングをあまり理解していなくても受かるということ?
0893デフォルトの名無しさん
垢版 |
2018/11/01(木) 16:03:52.20ID:OxvwXsOa
受けようと思ったことすらないのでわからない。
0894デフォルトの名無しさん
垢版 |
2018/11/01(木) 16:11:52.48ID:Nl3jEz8g
職歴にプログラミングがないのでしかたなく資格でもアピールする必要があるのですが
Java資格はGoldを取るとして
あとなにがあったほうがよいでしょうか?
データベース関連やUML関連やネットワーク関連の資格ですか?具体的にはなにが印象いいでしょうか?
0895デフォルトの名無しさん
垢版 |
2018/11/01(木) 16:12:24.17ID:Nl3jEz8g
デザインパターン関連の資格ってないのかな?
0897デフォルトの名無しさん
垢版 |
2018/11/01(木) 16:33:52.56ID:Nl3jEz8g
デスペとデスペですか。
同じものなのになぜ2回も言うのですか。
0898デフォルトの名無しさん
垢版 |
2018/11/01(木) 16:41:11.79ID:RfEd9OxR
大事なことなので
0899デフォルトの名無しさん
垢版 |
2018/11/01(木) 17:12:47.17ID:Nl3jEz8g
そうですか。

なにか忘れてそうなのですが
プログラミングあるいは関連分野で、あったほうがいい資格はありませんか?
0900デフォルトの名無しさん
垢版 |
2018/11/01(木) 18:05:14.35ID:OxvwXsOa
わからない。資格何もなしで何十年も働いちゃったもので。
一時期は学校でC言語教えてたりもしたが、資格はなかった。
あ、一太郎も教えてたことあったよ。もちろん資格なしで。
0901デフォルトの名無しさん
垢版 |
2018/11/01(木) 19:13:26.95ID:Nl3jEz8g
>>900
無免許ですか。逮捕しますよw
一太郎は日本用のWordだと思うけどなんでそんなものが存在したの?
0902デフォルトの名無しさん
垢版 |
2018/11/01(木) 19:15:26.25ID:1Z/ZXoar
まあ実務をやる上では資格は特に必要ではない
ただ採用する立場だと資格ない奴とある奴ならある奴を取る
0904デフォルトの名無しさん
垢版 |
2018/11/01(木) 19:39:49.82ID:OxvwXsOa
>>901
なんでって、MS-DOS時代のWORDは漢字扱えなかったからじゃないか?
0905デフォルトの名無しさん
垢版 |
2018/11/01(木) 23:44:32.35ID:kQnTnj4P
ブロンズは持っても意味ないしシルバーもゴールドの受験資格みたいなもんだぞ。
そんで中身の言語部分はJVMSもJLSも一切読まなくても答えられる程度でどちらかと言うと
ありふれたライブラリの宣伝兼再確認みたいな内容。
0907デフォルトの名無しさん
垢版 |
2018/11/02(金) 16:44:03.61ID:TVanRjUQ
もしかしなくてもsilverとかより基本情報技術者取ったほうがいいんでしょうか
0908デフォルトの名無しさん
垢版 |
2018/11/02(金) 16:53:15.88ID:3EaYIZ29
当然
Javaの重箱の隅に付いてる食べカスの色知ってる奴よりIPアドレスの計算できる奴の方が遥かに役に立つ
0909デフォルトの名無しさん
垢版 |
2018/11/02(金) 17:17:06.84ID:0QIYfvOa
IPアドレスの計算って?
何か計算必要か?
0910デフォルトの名無しさん
垢版 |
2018/11/02(金) 21:03:28.28ID:mJ2e4zOQ
インターネットキングならIPアドレスの計算くらい朝飯前だよ
0911デフォルトの名無しさん
垢版 |
2018/11/02(金) 22:48:40.06ID:ejOlj3tt
サブネットマスクとかの話ちゃうの
0912デフォルトの名無しさん
垢版 |
2018/11/03(土) 00:34:57.85ID:8dUCHJOu
世の中に無駄なものなんかないよ
ジャヴァの資格もIPアドレスの計算も全て社会の役に立ってる
0913デフォルトの名無しさん
垢版 |
2018/11/03(土) 18:14:19.75ID:b5iwDuZ8
java11, 12にはくだらない機能しか入らないのか
0915デフォルトの名無しさん
垢版 |
2018/11/06(火) 00:08:12.73ID:GjqHOKec
for文ブロックの後にループカウンタ変数の値でif文を書きたい
でもループカウンタ変数のスコープの問題で使えない

for文実行前にカウンタ変数用意するのは悔しいし誤動作を招きそうな気がするのでやりたくない
for文の中にif文を書いちゃえばいいんだけど毎回実行されるのは無駄で気持ちが悪いしそもそも本来やりたいことと違う

これはどう解決すれば良いんでしょうか、初歩的ですいません……
0916デフォルトの名無しさん
垢版 |
2018/11/06(火) 00:14:58.15ID:ShoHBAGo
>>915
forループに入る前にループカウンタとは別の変数を用意して、ループの最後にカウンタの値をその変数にコピーするようにしよう
そうすればループカウンタをfor文の外で宣言しなくて済むし悔しくない
0917デフォルトの名無しさん
垢版 |
2018/11/06(火) 00:22:51.13ID:GjqHOKec
そもそもループカウンタを前に宣言はできませんでした(今までそんなんやろうと思わなかった……)
>>916
代入ならif評価よりは速そうですね、ありがとうございます
0918デフォルトの名無しさん
垢版 |
2018/11/06(火) 01:56:42.62ID:BD76rR44
>>915
それってループしている最中に if で何らかの条件により break するってことだよね?
それならその if ブロックの中で別の変数に代入すれば良い。

int j = -1;
for (int i = 0; i < max; i++) {
 if (f(i)) {
  j = i;
  break;
 }
}
if (j >= 0) {
...
}

もし上記のように途中でbreakして抜けるのでないなら max の値そのまま使えば良い。
0920デフォルトの名無しさん
垢版 |
2018/11/06(火) 11:38:48.82ID:4wD9lBDw
時間の掛かるファイル読込処理を非同期実行して、その処理中にファイル読込具合に応じてJavaFXのプログレスバーを更新してるんだけど、
たまにプログレスバーが更新されない場合がある。なんで?

そのファイル読込処理とプログレスバー更新はインターフェースの継承メソッドに記述していて、
Threadクラスに登録するRunnableクラスのrunメソッド中でインターフェースの抽象メソッドを叩いて呼び出している。
1)イベントトリガが、JavaFXのFileChooserの選択完了時 → プログレスバー更新される
2)イベントトリガが、別のJavaFXの子Scene上のJavaFXボタン押下時(子Sceneのhide後) → プログレスバー更新されない
setImplicitExitをどうたらこたらするというのは一通り試した
簡単に解決したいんだがなあ
0921デフォルトの名無しさん
垢版 |
2018/11/06(火) 12:01:52.02ID:nXssBivk
>>920
JavaFXはもうJavaの標準ライブラリではなく単なる野良ライブラリの一つに過ぎない
スレ違い
0922デフォルトの名無しさん
垢版 |
2018/11/06(火) 12:19:26.12ID:4wD9lBDw
回答できんのなら黙ってろよな。回答できないくせに黙ってられないから池沼なのか
0933デフォルトの名無しさん
垢版 |
2018/11/06(火) 19:07:34.12ID:13CfGTjW
どう見ても君がスレチ大魔王
0934デフォルトの名無しさん
垢版 |
2018/11/07(水) 00:26:50.27ID:s4BPycKf
substance.jarでswingの見た目変えるの好きだった
javafxは評判悪かった覚えがあるけどswing使用者はみんな移行したのかな
0935920
垢版 |
2018/11/07(水) 12:34:31.16ID:LJxZYzuZ
解決したったわ
しかしここはクソの役にも立たねえな
たまに書き込むけど、光合成も出来ない原始生命を相手にしているようで、ただただ孤独しか感じられねえわ
次はジュラ紀になったら来てやるから、それまでに精々、自然淘汰されておけよ
0936デフォルトの名無しさん
垢版 |
2018/11/07(水) 12:52:14.01ID:bimd4khF
FXのスレは本当にあるんだけどね。
0938デフォルトの名無しさん
垢版 |
2018/11/07(水) 14:02:24.18ID:+HyKX3eQ
>>934
FXは廃止されちゃったからね
極一部のニッチでしか使われてないしモバイルファーストやWebファーストの流れに侵食されてオワコン、とOracleさん自身が公式に宣言してる
0940デフォルトの名無しさん
垢版 |
2018/11/08(木) 12:06:43.94ID:QSZi8e/Z
Javaの仕事に転職したいのだけど
年収の交渉でプロ野球の契約更改のように代理人にお願いして年収アップの交渉をしてもらうシステムはないかな?
もちろん高収入になったらその1%は代理人に払うことにしたらその代理人もものすごくがんばってくれるからwin-winの関係になる。
0941デフォルトの名無しさん
垢版 |
2018/11/08(木) 12:17:54.62ID:Cbg63GbQ
君がなれ
0942デフォルトの名無しさん
垢版 |
2018/11/08(木) 12:20:00.08ID:cbRquK1Y
>>940
年収2000万ぐらいなら探せばあるだろ
それ以下なら商売にならなすぎだから厳しいと思うけど
0943デフォルトの名無しさん
垢版 |
2018/11/08(木) 12:25:50.93ID:Cbg63GbQ
1000万の1%が10万円。とすると月に10人以上成立させないとうまくいかんのではないか?
0944デフォルトの名無しさん
垢版 |
2018/11/08(木) 12:28:16.32ID:QSZi8e/Z
>>943
それ専門だから1日に5回同じ場所で連続で面接に参加して
それで1月に20日働けば月収1000万円。
0945デフォルトの名無しさん
垢版 |
2018/11/08(木) 12:31:21.50ID:fwzjEtEg
>>940
そんなことができる代理人は自分で稼ぐだろ
そもそも億円プログラマーなんて存在するのかも怪しいし
0946デフォルトの名無しさん
垢版 |
2018/11/08(木) 12:34:40.88ID:Cbg63GbQ
そういやさっきツイッターの広告でAIとチャットして何をやりたいかとか聞き出して人を募集している企業とのマッチングすのが出てきたよ。
やる前からAIに仕事奪われたようだなw
0950デフォルトの名無しさん
垢版 |
2018/11/08(木) 17:07:12.88ID:o3TwcDma
人工無脳でも対応向上だと騙される奴がいるんだから有効だと言わざる得ないな
どうせブラック紹介されるなら萌えキャラにでも紹介された方がいいだろう?
0951デフォルトの名無しさん
垢版 |
2018/11/09(金) 16:17:59.93ID:o+E2GY7o
このスレの少し前にもオラクルの認定試験の話題がありましたが、
Java Silverは持っていると役に立つでしょうか?
Java Bronzeは既に取得しています。
0955デフォルトの名無しさん
垢版 |
2018/11/09(金) 22:48:54.87ID:zMMfYdX4
総称型を使った抽象クラスがあって、その具象クラス全部を処理するコードを書きたいんだけど
以下のようにするとコンパイルエラーになるのでできません。
いちいちTest2の具象クラスをinstanceof等で特定して書かなければならないということでしょうか?

public class GenericsTest {
public void test() {
Test2<? extends Test> t = null;
t.f(new TestConcrete());
}

public static class Test {

}

public static class TestConcrete extends Test {

}

public abstract static class Test2<A extends Test> {
public void f(A a) {
}
}
}
0956デフォルトの名無しさん
垢版 |
2018/11/09(金) 22:51:18.43ID:zMMfYdX4
修正しますこうでした。Testも抽象クラスです。

public class GenericsTest {
public void test() {
Test2<? extends Test> t = null;
Test a = null;
t.f(a);
}

public abstract static class Test {

}

public abstract static class Test2<A extends Test> {
public void f(A a) {
}
}
}
0957951
垢版 |
2018/11/09(金) 23:58:00.70ID:o+E2GY7o
ありがとうございました。
0958デフォルトの名無しさん
垢版 |
2018/11/10(土) 00:57:56.92ID:XE+BpAI8
こんな記述を見かけたんですが
>Java11からはJavaFXは、ただのライブラリになったので、JavaFX側がMavenのCentral Repositoryにjarを置いてくれていたりするので、 OpenJDK11でJavaFX11を使うのであればpom.xmlのdependencyに入れるだけの話である。

JavaFXはネイティブDLLを使っていますか?
使っている場合、pom.xmlで入れられるライブラリになったというのは、
全環境用のネイティブコードが同梱されるということですか?
ほとんどのJavaライブラリは純粋なJavaコードで環境非依存だと思いますが
環境依存したライブラリはどういう扱いになるんでしょう
0959デフォルトの名無しさん
垢版 |
2018/11/10(土) 01:36:26.97ID:XE+BpAI8
>>956のコードですが
fの引数は? extends Testだから、Testを受け取れても良くないですか?
? extends Testで期待できるのはTestのインターフェースであり、
TestはTestのインターフェースを持っています。
しかしコンパイルエラーになります
0960デフォルトの名無しさん
垢版 |
2018/11/10(土) 02:07:52.87ID:XE+BpAI8
少し調べました。状況は、
A extends Test と Test  が非変であり、親子関係が完全に無視される。
f(A a)はConsumerであり、PECS原則から、? super Aを指定できるとよいが、
総称型ではないので指定できない。
Test2<A super Test>も記述不可
f(Test a)にすれば解決するが、Test2の子クラスはfの引数の型を限定したいかもしれない。
0961デフォルトの名無しさん
垢版 |
2018/11/10(土) 02:33:26.87ID:XE+BpAI8
なぜか一度ワイルドカードを経由する+キャストという方法で解決できました。
public class GenericsTest {
@org.junit.Test
public void test() {
Func<?> funcTmp = new FuncConcrete();
Func<Arg> func = (Func<Arg>) funcTmp;
Arg arg = null;
func.f(arg);
}
@org.junit.Test
public void test2() {
Func<Arg> func = (Func<Arg>) new FuncConcrete();
Arg arg = null;
func.f(arg);
}
public abstract static class Arg {}
public static class ArgConcrete extends Arg {}
public static class FuncConcrete extends Func<ArgConcrete> {}
public abstract static class Func<A extends Arg> {
public void f(A a) {}
}
}
0963デフォルトの名無しさん
垢版 |
2018/11/10(土) 23:46:19.83ID:6id28qN8
JVMは環境ごとに用意されてるから、その部分で対応してるんでしょう
わかってると思うが当然標準ライブラリとして提供してるAPI自体は環境に依存してない

まぁ internal なコードに環境による場合分けくらいは書いてあるかもしれんけど、
JVMにはその環境用のコードさえあればいいから、全環境のネイティブコードは必要ない
0964デフォルトの名無しさん
垢版 |
2018/11/10(土) 23:55:28.83ID:6id28qN8
あぁごめん、Java11からの話か
そうだね、環境依存のjarと環境依存してないjarを2つ別々にダウンロードするんだろうね多分
swt+JFaceの、swt部分だけ環境依存してるのと一緒
使ったこと無いけど 上で言われてるJOGLもそんな感じかな

まぁ軽めのデータベースのjarとか環境依存のファイル全部ぶっこんでくることもあったりするけど
0965デフォルトの名無しさん
垢版 |
2018/11/11(日) 11:11:28.64ID:6MwZdEZT
javaとDB(oracle)のデータについて。

javaプログラム内のある変数Xに対して、DBのある列の値に存在しているかどうか
チェックしたいのですが、どうすればよいでしょうか。

1.String sqlStr = "SELECT * FROM fruit";
2.ResultSet result = st.executeQuery( sqlStr );

3.while( result.next() ) {
4. String str1 = result.getString( "price" );
5. System.out.println(str1);
}

2行目でSQLを実行して、4行目でPRICE列の値を取得していると
思うのですが、X=1000と定義していた場合、PRICE列の値に対してXの
値が存在するチェックはどのようにコーディングすれば良いでしょうか。
一致すれば出力で一致しなければエラーにしたい。

なお、PRICEデータは例として1000としていますが、ランダム数値です。
0967デフォルトの名無しさん
垢版 |
2018/11/11(日) 12:00:45.21ID:6MwZdEZT
"SELECT * FROM fruit WHERE PRICE = X"だと
Xが文字列になってしまうと。
Str1とXを比較すればよいと考えていましたが難しい
0969デフォルトの名無しさん
垢版 |
2018/11/11(日) 18:24:10.42ID:0F8Q4Ddx
>>967
prepare にするかそのまんまSQL文の中に文字列で埋め込まれるようにするか、だな。

prepare の場合はこんな感じね。PreparedStatement クラス使うやつ。"?" の部分が置き換え部分。
https://qiita.com/ika_katsuo/items/dfbf9ed227ca08256760
0970デフォルトの名無しさん
垢版 |
2018/11/11(日) 18:43:06.39ID:KBFxC5Cm
もし変数xの値が一つしかないなら
プリペアドステートメントでいちいち事前コンパイルする必要がない
ふつうにSQL問い合わせの文字列作るほうが速い簡単お手軽
0972デフォルトの名無しさん
垢版 |
2018/11/11(日) 22:00:57.21ID:KBFxC5Cm
知能が低いと
文字列の加工すらできないのか

なるほどな
0973デフォルトの名無しさん
垢版 |
2018/11/11(日) 22:26:11.35ID:cBZ/CGbZ
それが何を意味するのかも考えずどっかからコピペしてるからそういう質問が出るんだろうけど、技術書見ればプリペアードステートメントとか順序を追って書いてあるもんでもないのかね
0977デフォルトの名無しさん
垢版 |
2018/11/11(日) 23:35:34.02ID:infpFr5m
>>963
> わかってると思うが当然標準ライブラリとして提供してるAPI自体は環境に依存してない
>
> まぁ internal なコードに環境による場合分けくらいは書いてあるかもしれんけど、
> JVMにはその環境用のコードさえあればいいから、全環境のネイティブコードは必要ない

そんなことないから。java6以降環境依存な標準API追加してるからjava側で場合分けする必要ある。
レス数が950を超えています。1000を超えると書き込みができなくなります。

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