X



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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (アウアウウー Sa73-AAco [106.132.135.194])
垢版 |
2018/11/19(月) 11:37:06.10ID:C68x9bSia

プログラミング言語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質問・相談スレッド181★★
https://mevius.5ch.net/test/read.cgi/tech/1518252580/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured
0703デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97])
垢版 |
2019/12/27(金) 00:42:32.50ID:2RWoWvTN0
そりゃそうでしょう。
プリミティブ以外は全部参照という割り切った仕様なんですから。
0704デフォルトの名無しさん (ワッチョイ cf8f-hoej [118.7.1.66])
垢版 |
2019/12/27(金) 00:44:18.84ID:TGHw1m2h0
じゃあJAVAのオブジェクトが持つデータの本体はどこにあるの?
0705デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97])
垢版 |
2019/12/27(金) 00:44:57.33ID:2RWoWvTN0
>>704
GC上にありますよ。
0706デフォルトの名無しさん (ワッチョイ cf8f-hoej [118.7.1.66])
垢版 |
2019/12/27(金) 00:52:40.10ID:TGHw1m2h0
あーそういう事ね。
それは話にならん。
結局、変数宣言する度にGC上にエリアとるんでしょ。
それじゃ遅いんだよ。
0707デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97])
垢版 |
2019/12/27(金) 00:57:03.69ID:2RWoWvTN0
ポインタと同様遅いということです。
0708デフォルトの名無しさん (ワッチョイ 5b5f-1gZu [106.72.163.96 [上級国民]])
垢版 |
2019/12/27(金) 03:23:21.04ID:zc200dFE0
ポインタは物理アドレスを辿れることにメリットがある。

当然、重大バグを埋め込み安くなる。
0709デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97])
垢版 |
2019/12/27(金) 03:51:35.21ID:2RWoWvTN0
いまどきJavaが使われるような用途でプログラムは物理アドレスにアクセスできませんよ。
物理アドレスはOSが管理しているので、言語によって変わる事は有りません。
0712デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]])
垢版 |
2019/12/27(金) 13:15:25.80ID:zc200dFE0
>>709
文法も内容もおかしいぞ?
0713デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]])
垢版 |
2019/12/27(金) 13:16:21.22ID:zc200dFE0
>>710
早い遅いの話だったのか?
0714デフォルトの名無しさん (アウアウウー Sa57-1jI+ [106.132.120.196])
垢版 |
2019/12/27(金) 13:54:39.03ID:OSUAtXdGa
君たちにはこれをプレゼントしよう。

NullPointerException
0716デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]])
垢版 |
2019/12/27(金) 16:23:18.89ID:zc200dFE0
>>714
それ単に誤ったところにアクセスしようとしたという意味で、それを頻発させるプログラマはダメすぎる。
0717デフォルトの名無しさん (アウアウウー Sa57-1jI+ [106.132.120.196])
垢版 |
2019/12/27(金) 19:43:06.37ID:OSUAtXdGa
Javaにはポインターが無いと聞いていたのにいきなりこんなもんが出ちゃってインド人もびっくり。

NullPointerException
0718デフォルトの名無しさん (アウアウクー MM1f-K4/I [36.11.224.140 [上級国民]])
垢版 |
2019/12/27(金) 19:47:41.94ID:c4efkuh5M
ポインタ変数とポインタの区別がつかない阿呆
0722デフォルトの名無しさん (ワッチョイ f7ad-RbSw [110.133.143.229])
垢版 |
2019/12/27(金) 22:29:49.28ID:2d2dVtvP0
初心者です。問題集で勉強中です
宜しくお願いします。

会員顧客データを更新する時のプログラムなんですが
未実装と記入ある箇所にどうのようなコードを入れてら良いでしょうか
ざっくりで申し訳ありません


/**
* 顧客情報テーブルの指定の顧客情報を更新する
* @param cutomer 顧客情報Bean
* @return エラーメッセージ(処理成功時、null)
*/
public String update(CustomerBean cutomer) {
LogUtil.println(this.getClass().getSimpleName() + "#update");

// TODO 未実装
return null;
}
0724デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]])
垢版 |
2019/12/27(金) 23:39:06.28ID:zc200dFE0
>>722
未実装もなにも、なんも書かれていないメソッドだろうにw
0725デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]])
垢版 |
2019/12/27(金) 23:41:14.61ID:zc200dFE0
ログ出力しているだけw
0727デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]])
垢版 |
2019/12/27(金) 23:50:52.21ID:zc200dFE0
>>726
自分が面白いと思っているの?
0729デフォルトの名無しさん (ワッチョイ 6f01-hoej [126.83.84.73])
垢版 |
2019/12/28(土) 02:36:10.83ID:Rw3GVoxd0
更新すべき項目と更新値を書けばいいんじゃない?
0730デフォルトの名無しさん (ワッチョイ 2fd2-Bxcu [221.191.212.228])
垢版 |
2019/12/28(土) 15:01:05.86ID:VCBq52Cm0
java インターフェイスでググると
インターフェイスを実装したクラスを作って
そのクラスのインスタンスからインターフェイスのメソッドを使うやり方しか
でてこないんだけど
インターフェイスって基底クラスみたいにつかえないの?
0733デフォルトの名無しさん (アウアウクー MM1f-K4/I [36.11.225.235 [上級国民]])
垢版 |
2019/12/28(土) 18:20:50.79ID:p8R0Q+BHM
>>730
インターフェイスの意味がわかっていますか?
0736デフォルトの名無しさん (ワッチョイ abb0-yGK/ [180.46.73.208])
垢版 |
2019/12/30(月) 19:30:26.98ID:ZLko78Lo0
Java シルバー取りたいんだけどSE8と11なら11にしておいた方がいいの?
0741デフォルトの名無しさん (ワッチョイ ff01-NWon [111.90.14.57])
垢版 |
2019/12/30(月) 22:17:58.31ID:fFRqMrLq0
謎のマウンティング開始
0742デフォルトの名無しさん (ワッチョイ f7ad-RbSw [110.133.143.229])
垢版 |
2019/12/31(火) 01:49:08.07ID:tPXUyNvp0
数値の比較などの判定式の結果boolean型の仕組みが理解できていません
int count =3;
int limit =2;
System.out.println(count <= limit);
結果はfalseなのですが、「3<=2」がなぜfalseなのでしょうか。
比較の左側ならfalse、右側ならtrue、などあるのでしょうか
0743デフォルトの名無しさん (ワッチョイ 7fad-SvJ4 [27.139.41.170])
垢版 |
2019/12/31(火) 01:55:01.88ID:wQOusfvX0
>>742
君は3が2以下だと思うのかい?
0744デフォルトの名無しさん (ワッチョイ ff01-NWon [111.90.14.57])
垢版 |
2019/12/31(火) 01:57:35.04ID:yv9yhyfZ0
>>742
<=は小なりイコールの演算子だから
左の値が右の値より小さいか、もしくは左の値と右の値が同じときtrueになる

3 <= 2は、3は2以下であるということを表してて当然false
0745デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]])
垢版 |
2019/12/31(火) 02:57:47.47ID:II4RvmaH0
>>742
まずはif文から勉強してくださいよ。
0746デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]])
垢版 |
2019/12/31(火) 02:58:58.61ID:II4RvmaH0
数学もわかっていないのかな?
0751デフォルトの名無しさん (ワッチョイ 9fad-cEPd [27.139.77.105])
垢版 |
2020/01/01(水) 20:37:50.12ID:fUaq4dOi0
>>706
よかったな。めでたしめでたし。

           おわり
0752デフォルトの名無しさん (ワッチョイ 9fad-cEPd [27.139.77.105])
垢版 |
2020/01/01(水) 20:38:19.57ID:fUaq4dOi0
アンカミスった
0753デフォルトの名無しさん (ワッチョイ 7d46-CCy/ [58.88.17.246])
垢版 |
2020/01/09(木) 00:07:25.24ID:r2AVr9JT0
JavaでGUI作ろうと思ってJavaFXの情報探そうと思ったら全然出てきません……
日本語の本でまともなのってないですか?
0758753 (ワッチョイ 7d46-CCy/ [58.88.17.246])
垢版 |
2020/01/09(木) 18:03:22.21ID:r2AVr9JT0
皆さん返答ありがとうございました、参考になります
JavaではGUIアプリを作るのは取り敢えず辞めにして、コンソールで適当なゲームでも作って覚えることにします
0759デフォルトの名無しさん (ワッチョイ a301-ErPi [221.33.176.17])
垢版 |
2020/01/10(金) 12:19:03.17ID:MA7SUINg0
javaのソースコードの見方がわからない
androidアプリをとりあえず逆コンパイルして.classを抽出して中身のコードを見ることはできるようになったんだけど
沢山.classのファイルがあってどこが何がスタートになってるの?
順番ってどうなってるの?
そのアプリはa.class b.class c.classってタイトルが全部アルファベットなんだけど
0762デフォルトの名無しさん (ワッチョイ a301-tgR8 [221.33.176.3])
垢版 |
2020/01/10(金) 15:04:57.68ID:+8yrOvaU0
>>760
メソッド名は“main”である(すべて小文字)

どっかにmainってファイルが必ずあるはずで、これがこのアプリの入口になってて他のclassのファイルは小部屋みたいなもんなんでしょ?
mainってファイルがどこ探してもないんだけどこれどういうことなん?
0765デフォルトの名無しさん (ワッチョイ 9d7f-G18V [128.28.60.74])
垢版 |
2020/01/10(金) 18:13:03.87ID:ujZrkvpm0
音楽プレーヤーをカスタマイズしたいのですが教えてください

https://imgur.com/a/jQqzGGM

今アルバムタイトルの下に情報が並んでいます
この最後に任意のFieldに書き込んだ文字を表示させることは出来ますでしょうか?

スクリプトファイルを開くと

//---> INFO
if (showGroupInfo) {

var infoX = leftPad;
var infoY = groupY + artistH + albumH;
var infoH = h;
var infoW = w - x - infoX;

var bitspersample = $("$Info(bitspersample)", metadb);
var samplerate = $("$Info(samplerate)", metadb);
var sample = ((bitspersample > 16 || samplerate > 44100) ? " " + bitspersample + "bit/" + samplerate / 1000 + "kHz" : ""); 
var codec = $("$ext(%path%)", metadb) ;
0766デフォルトの名無しさん (ワッチョイ 9d7f-G18V [128.28.60.74])
垢版 |
2020/01/10(金) 18:13:27.27ID:ujZrkvpm0
if (codec == "cue"){
codec = $("$ext($Info(referenced_file))", metadb);
} else if (codec == "mpc") {
codec = codec + " " + $("$Info(codec_profile)", metadb).replace("quality ", "q"); 
}
else if ($("$Info(encoding)", metadb) == "lossy") {
if ($("$Info(codec_profile)", metadb) == "CBR") codec = codec + " " + $("%bitrate%", metadb) + "kbps"; 
else codec = codec + " " + $("$Info(codec_profile)", metadb); 
}
if (codec) {
codec = codec + sample;
} else {
codec = path;
0767デフォルトの名無しさん (ワッチョイ 9d7f-G18V [128.28.60.74])
垢版 |
2020/01/10(金) 18:15:06.30ID:ujZrkvpm0
}
var iCount = itemCount[ID.groupNr];
var genre = radio ? "" : (groupedID ? "%genre% | " : "");
var discNumber = (groupedID != 2 ? "" : $("[ | Disc: %discnumber%/%totaldiscs%]", metadb));
var info = $(genre + codec + discNumber + "[ | %replaygain_album_gain%]", metadb)
+ (radio ? "" : " | " + iCount + (iCount == 1 ? " Track" : " Tracks")
+ " | Time: " + calculateGroupLength(firstItem[groupNr], lastItem[groupNr]));
var w = w - x - 10;
g.DrawString(info, infoFont, infoColor, infoX, infoY, infoW, infoH, StringFormat(0, 0, 3, 0x1000));

var infoStringH = Math.ceil(gr.MeasureString(info, infoFont, 0, 0, 0, 0).Height + 5);
var lineX1 = infoX,
lineX2 = 20 + w,
lineY = infoY + infoStringH;
(lineX2 - lineX1 > 0) && g.DrawLine(lineX1, lineY, lineX2, lineY, 1, lineColor);

}

となっていました
これはJavaでしょうか?
上記URLに任意のFieldを追加するにはどうすればよいでしょうか?

よろしくお願いいたします
0768デフォルトの名無しさん (ドコグロ MM13-JyDu [119.240.141.99])
垢版 |
2020/01/10(金) 18:50:23.24ID:915LIh+yM
>>764
言語面ではJavaはあらゆる面でC#に劣るから、正攻法で戦ってはいけない
C#er相手にマウントを取るには、でもWindowsなんでしょ?wwwが一番効く
お前もWindowsでJavaを運用していたり、そのC#erが.NET CoreをLinuxで運用してたりUnity開発者だったりするなら諦めろ
0769デフォルトの名無しさん (ワッチョイ 5b01-zcZG [111.90.14.57])
垢版 |
2020/01/10(金) 22:38:24.06ID:ALcwyMXE0
>>765
foobar2000のJavaScriptっぽいなー
0770デフォルトの名無しさん (ワッチョイ 23ad-UU8b [27.139.41.170])
垢版 |
2020/01/10(金) 23:24:28.51ID:u5Uqllm50
>>761
EANReaderってQR反応したっけ?
0772デフォルトの名無しさん (ワッチョイ a301-tgR8 [221.33.176.3])
垢版 |
2020/01/11(土) 08:57:49.30ID:qa2D3VNz0
>>763
>メソッド名は“main”である(すべて小文字)

これネットでggって書いてあったんだけど
じゃあファイル名はもう何かわからないってこと?mainメソッドの拡張子も.class?
この沢山ある**.classファイルの数々からmainを自分で見つけるしかないってこと?
0773デフォルトの名無しさん (ワッチョイ 2361-alJZ [61.245.59.106])
垢版 |
2020/01/11(土) 09:07:22.58ID:+T4LytQN0
AndroidはJVMじゃないし。
0775デフォルトの名無しさん (ワッチョイ a301-tgR8 [221.33.176.3])
垢版 |
2020/01/11(土) 11:18:07.93ID:qa2D3VNz0
うん思ってる
0776デフォルトの名無しさん (ワッチョイ a301-tgR8 [221.33.176.3])
垢版 |
2020/01/11(土) 11:42:50.55ID:qa2D3VNz0
指定した全部のファイルから
メソッドだろうが修飾子だろうが全部の文字列検索してるツールとかってないの?
javaDecompiler使ってるんだけど、なぜか修飾子検索してくんないから全く使い物にならない
0778デフォルトの名無しさん (ワッチョイ 55da-lZna [220.144.30.68])
垢版 |
2020/01/11(土) 13:39:02.07ID:5ateKhzY0
Androidのアプリならmainメソッド探しても仕方ないよ。
mainメソッドはアプリ側でなくてAndroidのシステム側にあるから。
(って話はすでに>>760が書いてくれてるんだけど)

というか、解析したいアプリがどんなものかわからないけど、
- Native Activityで実装されていればdexファイルではなくsoになってる
- Unityとかで開発されていれば実質的なアプリ本体はC#なりで実装されている
とか普通にあるんで、必ずしもdexをclassにしてデコンパイルすれば中身見放題ってわけじゃないです。
0779デフォルトの名無しさん (ワッチョイ a301-tgR8 [221.33.176.3])
垢版 |
2020/01/11(土) 14:48:30.35ID:qa2D3VNz0
わかりました。
どうやらそのようです。
soファイルありました。
どうもありがとうございました。
0780デフォルトの名無しさん (ワッチョイ a301-tgR8 [221.33.176.3])
垢版 |
2020/01/11(土) 14:49:56.63ID:qa2D3VNz0
詳しく教えてくれてありがとうございました。
ggったら全く同じ事が書いてありました。
0781デフォルトの名無しさん (ワッチョイ 2361-6Ucs [123.230.238.221])
垢版 |
2020/01/11(土) 15:29:29.31ID:MXX/X4cZ0
>>762
Javaの場合、mainという名前のメソッドはテスト用にどのクラスでもそれぞれ書いても良いとされている。
Androidの場合、Activityを継承したクラスに所属している main という名前のメソッドからプログラムが開始される。
public指定されて外にexportされているクラスの名前を XXX とすると、そのクラスを書くソースファイルの名前は、XXX.javaとなる。
XXX.javaをコンパイルするとXXX.classになる。
本物のJavaは、XXX.classをまとめたものが、*.jarであるが、Androidの場合は、まず、*.classが*.dexに変換された後、さまざまなファイルとアーカイブされて*.aptになる。
0782デフォルトの名無しさん (ワッチョイ 2361-6Ucs [123.230.238.221])
垢版 |
2020/01/11(土) 15:35:49.54ID:MXX/X4cZ0
>>781
すまん。Activityの場合は、main()ではなく、onCreate()メソッドだったかも知れん。
Androidの場合でも、dexコマンドで直接起動するようなCUIプログラムの場合は、main()でよかったと思う。
ただし、Javaの場合は外部関数がないので当たり前かもしれないが、このmainは、C/C++のような外部関数ではなく、メンバ関数。
0783デフォルトの名無しさん (ワッチョイ 2361-6Ucs [123.230.238.221])
垢版 |
2020/01/11(土) 16:27:06.17ID:MXX/X4cZ0
>>781
*.aptじゃなく、*.apk。
dexも細かい関係性は忘れた。
0784デフォルトの名無しさん (ワッチョイ fd61-alJZ [112.136.82.104])
垢版 |
2020/01/11(土) 17:33:12.71ID:lHngeS9z0
ActivityじゃなくてApplicationだ。
答える方もわかってないしスレ違いだし、いい加減向こうでやれや。
0785デフォルトの名無しさん (アウアウウー Sa19-JQ6m [106.154.130.141])
垢版 |
2020/01/11(土) 19:55:11.85ID:Dn3xIqPda
Javaの有償化について教えてください
PC内に入っているものは「Java SE Development kit 8」なのですが
これでアプリ作って公開したら有償ですか?
Kotlin使っても有償になるのでしょうか?
0790デフォルトの名無しさん (アウアウウー Sa19-htaX [106.132.121.116])
垢版 |
2020/01/12(日) 19:22:47.94ID:T1GQsdFba
弱くなります
0791デフォルトの名無しさん (ワッチョイ 05b0-H9u6 [180.46.73.208])
垢版 |
2020/01/12(日) 19:44:41.84ID:N/CHSK/80
>>786
何このバカw
どっから湧いたんだよ
0792デフォルトの名無しさん (ワッチョイ db02-ErPi [119.106.128.249])
垢版 |
2020/01/13(月) 02:41:58.54ID:D6MgPK0q0
初質問させていただきます、JAVA初心者です。

Javaにて簡易的なチャットの実装を試みています。
基本部分の仕様は以下の通りです。

・ソースコードはサーバ側プログラムとクライアント側プログラムの2つ
・チャット参加者数は最大5名とし、参加時には他の参加者に「***さんが加わりました」といったメッセージが表示されるようにする。
・参加者は好きなタイミングでメッセージを送信できるようにする。
・他の参加者からのメッセージはサーバが送信してきたタイミングで受信して画面上に表示するようにする。
・他の参加者が抜けた(切断した)場合には、「***さんが抜けました」といったメッセージが表示されるようにする。

現在、サーバ・クライアント間の通信確立までは実装できています。

考え方、実装例をご教授いただけると幸いです。

お手数おかけしますが、ご助力ください。
0795デフォルトの名無しさん (ワッチョイ 1d5f-pWSs [106.72.163.96 [上級国民]])
垢版 |
2020/01/13(月) 18:13:43.46ID:PNIqRh180
>>794
SpringとSpring bootの区別はできているのか?
0797デフォルトの名無しさん (ササクッテロラ Spf1-gopL [126.193.125.144])
垢版 |
2020/01/14(火) 14:29:55.91ID:m1u1XKORp
なんでinterface作ってクラス名にimplつけた実装クラス作るの?最初からクラスだけじゃダメなの?
0798デフォルトの名無しさん (ドコグロ MM13-JyDu [119.240.142.88])
垢版 |
2020/01/14(火) 14:45:34.94ID:/8RfG7cVM
>>797
並行作業のスケジュールの都合により、使われる方のクラスを作る前に使う方のクラスを先に作る必要がある場合のためだよ。
使われる方のinterfaceさえ定義しとけばImplがまだ無くても使う方を作れるでしょ。
現実にはこのような逆転した作業は極めて非効率で、たいてい後で不整合が起きて無駄になる。
でもジャップランドのSEはプログラマの稼働率を下げないためにそうせざるを得ないの。
0800797 (ササクッテロラ Spf1-gopL [126.193.125.144])
垢版 |
2020/01/14(火) 19:29:37.55ID:m1u1XKORp
>>798
ありがとうございます。
並行作業のため、理解です。でも本当にそれだけなのでしょうか?interfaceが書ける時点で引数と戻り値は決まっているはずなので、最初からクラスを書いてダミーの戻り値を返すようにしておくのと変わらない気がします。
0801デフォルトの名無しさん (ドコグロ MM13-JyDu [119.240.142.88])
垢版 |
2020/01/14(火) 20:09:08.05ID:/8RfG7cVM
>>800
よい質問だ。
SE様に作業完了の確認を貰って深夜残業を切り上げるには、当然、作ったものを単体テストしなきゃいけない。
でも使われる側がnull返すか何もしないだけのダミー実装じゃ普通に考えてテスト通るわけない。
どうするか?自分で都合のいい実装をでっち上げてそれを代わりに使うんだよ。
この手法は脳内彼女を相手に恋愛の練習をしているようなもので、どれだけ無駄かは容易に想像できるだろう。
態々interfaceを通さなくても脳内彼女の実装を対象クラスに直接書けばいいじゃないかと思うかもしれないが、
そうするとA君の脳内彼女とB君の脳内彼女が同一人物なのに違う実装になってしまって衝突したり、
いざ本物を実装しようとしたときに既に変なオナニー実装があって混乱するなど不都合が生じる。
ちなみに実は自動テストの都合という面もあるのだが、ドカタITではそんなものはファンタジーだから気にしなくてよい。
■ このスレッドは過去ログ倉庫に格納されています

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