X



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

■ このスレッドは過去ログ倉庫に格納されています
0016デフォルトの名無しさん
垢版 |
2019/04/28(日) 12:34:42.35ID:hq3/I6v+
どなたか教えてください。。。
未経験で今新人研修してます。。。

【 課題 】Javaでタイピングゲーム作成
      https://dotup.org/uploda/dotup.org1832355.png
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】4. 制限なし
【 期限 】2019/05/05
【 Ver  】javac 1.8.0_131
0019デフォルトの名無しさん
垢版 |
2019/04/28(日) 14:07:36.96ID:Sci+vZGC
>>18
エラーの内容を教えてもらえれば
0021デフォルトの名無しさん
垢版 |
2019/04/28(日) 14:17:11.36ID:FKjutIP9
>>18
未経験で新人研修と言う事なので
一気に全てやろうとするのではなく
1つ1つメッセージを表示して確認しながら追加していってみて下さい

1,最少構成でコンパイルが通るようにする
2,難易度選択で分岐
3,・・・のように
0023デフォルトの名無しさん
垢版 |
2019/04/28(日) 15:24:46.80ID:Sci+vZGC
>>20

↓こんな感じでしょ
public static void literal1(String easy) {
  String[] easy = ...

  for (int i = 0; i < easy.length; i++) {
    ...
}

引数でString easyを定義してて
String[] easyでも同じ名前の変数を使ってるんで
そのせいじゃないかな
変数の名前変えれば良さそう
0024デフォルトの名無しさん
垢版 |
2019/04/28(日) 16:08:34.47ID:hq3/I6v+
21>>この問題の場合どこで条件分岐して良いのか、など構造の書き方がわかりません。。
アドバイス(特に書き方について)していただけると嬉しいです。。
22>>処理は全て上から、問題文の1文目から書いていけばいいですか?
0025デフォルトの名無しさん
垢版 |
2019/04/28(日) 16:10:15.85ID:hq3/I6v+
23>>
クラスの宣言と配列の引数は名前変えないといけないんですか!?
0026デフォルトの名無しさん
垢版 |
2019/04/28(日) 16:33:18.29ID:FKjutIP9
>>24
上からというのはエラーメッセージの上から順番にです

1つ目のエラーが原因で2つ目のエラーが表示されるというケースもあるので
その場合は1つ目のエラーを解決すれば2つ目のエラーも解決します

エラーメッセージが指し示している部分より前に原因がある事もあります
0027デフォルトの名無しさん
垢版 |
2019/04/28(日) 16:40:52.16ID:Sci+vZGC
>>25
同じスコープで同じ変数名を使うのがNGです
int a = 0;
int a = 1;
はコンパイルエラーになるっしょ

void test(int a) {
 int a = 0;
}
もコンパイルエラーになるっしょ

そういうこと
0028デフォルトの名無しさん
垢版 |
2019/04/28(日) 18:27:38.29ID:ChpnCGHg
最近って環境変数JAVA_HOMEって設定しなくても良くなったんですか?
OracleJDKからの移行で色々OpenJDKの試しているのですが
各種ツールなども問題なく動くようにみえます
0029デフォルトの名無しさん
垢版 |
2019/04/28(日) 19:06:23.53ID:Sci+vZGC
環境変数が設定されてなかったら固定のパス見たり
JREを内蔵してるソフトウェアもあったりするけど
ツールによるんじゃないかな
0030デフォルトの名無しさん
垢版 |
2019/04/28(日) 20:07:51.67ID:Sci+vZGC
>>24
制御構造は順次、選択、反復で
どこの処理をループさせる必要があるか
どこで選択が必要かは全体のフローをざっくりと書いて見るとわかるかと
それを仕様から読み取るのも問題の範囲かなと、良い問題だわ
参考までに僕は↓こんな感じのフローかなと思った

ゲームのループ
{
  難易度選択(Easy, Normal, Hard)
  ・・・

  出題のループ
  {
    一致のループ
    {
      ・・・

      if 文字列が一致
      {
        ・・・
        ループを抜ける
      }

      ・・・
    }
  }

  ・・・
  リトライ確認がNoならループを抜ける
}
0031デフォルトの名無しさん
垢版 |
2019/04/28(日) 20:33:58.00ID:hq3/I6v+
>>26
分かりました!
ありがとうございます。
0032デフォルトの名無しさん
垢版 |
2019/04/28(日) 20:35:30.76ID:hq3/I6v+
>>27
なるほど。。そうゆうことだったんですね。
ありがとうございます
0033デフォルトの名無しさん
垢版 |
2019/04/28(日) 20:36:44.50ID:hq3/I6v+
>>30
わ!ありがとうございます。
こうゆう感じで書いたらいいんですね。

ちなみに私の配列の書き方は合ってますか?
0034デフォルトの名無しさん
垢版 |
2019/04/28(日) 20:47:23.73ID:Sci+vZGC
>>33
String[] easy = {"byte","int", ・・・};

って書き方でしょ、あってるよ
コンパイルも通るっしょ
0035デフォルトの名無しさん
垢版 |
2019/04/28(日) 21:05:25.44ID:hq3/I6v+
>>34

あ。はい。通ります。。
0037デフォルトの名無しさん
垢版 |
2019/04/29(月) 01:20:21.30ID:+dv4YRAe
>>36
俺んとこは西暦だけらしいからしてねぇみてぇだな。
0039デフォルトの名無しさん
垢版 |
2019/05/15(水) 00:20:07.60ID:PMblo085
今Javaを独学で勉強してる者です。
現在、有名な「すっきりわかるJava2版」を購入しオブジェクト指向で躓いています。

最近IT関連のネット記事をチラチラ見てて、アンドロイドアプリの開発言語がJavaからKotlinに移行しているという記事が目に止まったんですよね。。

そこで質問なんですが、今からアンドロイドアプリを作ろうとするならばKotlinを学習する方が良いのでしょうか?
現エンジニアの方の意見をお聞きしたいです
0040デフォルトの名無しさん
垢版 |
2019/05/15(水) 00:53:40.43ID:VTab7Ety
プログラマになりたいならJava
Androidアプリだけ作れればいいならKotlin
初心者ならググれば何でも出て来るJavaの方が良いかも知れない
0041デフォルトの名無しさん
垢版 |
2019/05/15(水) 01:19:59.30ID:PMblo085
>>40
やはり現状はjavaの方が情報量もあって良いんですね

プログラミングは趣味でやってみようかなと思ってます。〇の島のにゃんこみたく農業ゲームとか作ってみたいなと思ってますね。

自分の調べたところJavaが廃れることは当分なさそうですので引き続き頑張っていきます
ご返答ありがとうございました。
0042デフォルトの名無しさん
垢版 |
2019/05/15(水) 09:35:49.15ID:k0yjAgrY
>>40
Kotlinはjaやnativeもあるから今後androidだけには収まらないと思うよ。
仕事で使うのでなくても覚えておいた方が良い言語になると思うが。
0043デフォルトの名無しさん
垢版 |
2019/05/15(水) 09:36:34.44ID:k0yjAgrY
打ち間違えた。jaではなくjs。
0045デフォルトの名無しさん
垢版 |
2019/05/15(水) 11:30:10.35ID:k0yjAgrY
無理矢理というか、Googleが採用してAndroidでのサポート始めたからそこで使う人が爆発的に増えたということだろうな。
Google採用がなければJava同様にじわじわと増えたのかも知れない。

あ、でも Java はインターネットと Java Applet で急に広まった感じするな。
当時まだ flash とか動くページ作れるやつがなかったか、あっても貧弱だったからだと思う。
JavScriptもたいしたこと出来なかったように思う。
0047デフォルトの名無しさん
垢版 |
2019/05/15(水) 18:22:38.73ID:rgIB+CAi
なんだかよくわかっていないのが多いけど、Javaはクラスライブラリが画期的だった。マイクロソフトはクラスライブラリのセンスがなくてWindowsアプリケーション作りの環境をなかなか提供できなかった。

サンマイクロシステムズがJavaで正解を持ってきてくれたため、マイクロソフトは.NET frameworkを作れた。

その間はVisual C++のMFCか、計画性がまったくないクソ拡張をしてしまったVBによってアプリケーションが作られ混乱した。
0048デフォルトの名無しさん
垢版 |
2019/05/16(木) 00:01:31.90ID:jfYFXUay
>>47
確かにあなたの言ってることが一番正しい気がする。

話は変わるけど、Kotlinは、Javaではなく、JavaScriptに似ていて、
Script言語の方が初心者には受け入れられやすいから一見、多数決では
人気に有利に働いている可能性がある。しかし、大きなアプリを作ろうと
した場合、Javaの方が実は便利なのではないかと思う。さらに、
もっと深く進んでいくと、JavaよりもC++の方が便利、となっていく。
0049デフォルトの名無しさん
垢版 |
2019/05/19(日) 20:30:00.66ID:LL140L7k
public static void main(String[] args) {
  List<String> arr = new ArrayList<>();
  arr.add("青森県"); arr.add("岩手県"); arr.add("宮城県");
  arr.add("秋田県"); arr.add("山形県"); arr.add("福島県");
  Collections.sort(arr, new Comparator<String>() {
    public int compare(String s1, String s2) {
      if (s1.compareTo(s2) > 0)
        return 1;
      else if (s1.compareTo(s2) < 0)
        return -1;
      else
        return 0;
    }
  }
  );
  System.out.println(arr);
}

[宮城県, 山形県, 岩手県, 福島県, 秋田県, 青森県]

なんですが、グーグルスプレッドシートで並び替えると

岩手県 宮城県 山形県 秋田県 青森県 福島県

になります。プログラム間違ってるでしょうか?それとも文字コードの違いかなんかですか?
0050デフォルトの名無しさん
垢版 |
2019/05/19(日) 21:26:13.08ID:iZGlVtrY
>>49
JavaはUnicode順で
グーグルスプレッドシートはShift_JIS順ですね

Shift_JISで並び替えるならこれで
Collator collator = Collator.getInstance(Locale.JAPAN);
Collections.sort(ar r, collator);
0051デフォルトの名無しさん
垢版 |
2019/05/19(日) 23:13:31.76ID:LL140L7k
>>50
そういうことができるんですね。勉強になりました。ありがとうございました。
0052デフォルトの名無しさん
垢版 |
2019/06/02(日) 17:56:20.99ID:BhlsUq43
スッキリわかるJava入門を購入して
javaを学ぼうと思うのですが
目標に基本情報技術者のjavaでの合格を目指そうと思っています。
調べたらみんな表計算らしいので
文系で初学者が無謀なんでしょうか?
0053デフォルトの名無しさん
垢版 |
2019/06/02(日) 21:45:14.10ID:YGZ7q/QK
>>52
表計算が一番簡単だというのは昔の話で、いまは架空の表計算マクロの問題なので、これはこれで勉強が必要。

Javaの場合は標準ライブラリがコードに書かれているので、見慣れていないとわかりづらいが、問題そのものは簡単。
0054デフォルトの名無しさん
垢版 |
2019/06/02(日) 22:24:21.90ID:BhlsUq43
>>53 ありがとうございます。
正直、何か目標が無いと挫折しそうで・・・というか
前に1回挫折してるんですよね・・・
0055デフォルトの名無しさん
垢版 |
2019/06/02(日) 22:31:36.77ID:Kbt/vpV3
スッキリJava を読んで、たのしいRuby を読む。
それで、Ruby で、プログラミングのお題スレの問題を解く!

これがプログラミングを学ぶ、最速メソッドです!
0056デフォルトの名無しさん
垢版 |
2019/06/03(月) 02:15:04.76ID:60TnqmAc
そうかなあ?
0057デフォルトの名無しさん
垢版 |
2019/06/03(月) 06:08:57.07ID:9Z3fXRez
かなしいRubyの次にもう1つ本があった気がするけど何だった?
0058デフォルトの名無しさん
垢版 |
2019/06/03(月) 20:33:01.29ID:547c+VB3
var ●● = iimGetLastExtract(1);
switch (true)
{
case /△△/.test(●●):
iimPlay("☆☆☆");
break;

特定のページ内にあるワードの有無でcaseを分岐させたいんですけど、検索するページを●●で指定しているのかわかりませんが機能しません。

●●にはいる値とは、作者の把握固めの値でいいのか、そのページを識別する値でないと駄目なのか、後者だとしたらそれはどこから抽出すればいいのでしょうか?

本を買ったりネットで調べても、そこにいれるべきは、なんなのかが書いてないです。
初心者入門的なものにも書いてないので、初心者以前の質問かもですが、ご教授ください
0059デフォルトの名無しさん
垢版 |
2019/06/03(月) 21:07:40.36ID:yzctgd4R
>>58
それはJavaScriptじゃないかな
JavaとJavaScriptは違う言語だよ
ググってみたけどiMacrosみたいだね

iimGetLastExtract(1);
はiMacrosの値を読み込むってものらしいから
前のところで何を読み込んでいるのかによるんじゃないかな

いずれにしろJavaScriptのスレとかの方が回答付きやすいんじゃないかな
0060sage
垢版 |
2019/06/03(月) 23:28:00.58ID:5eM1aUN1
>>59
そうです。imacros自体の本は出てないようで
javaの本とJavaScriptの本の中身をみた結果、コードの羅列的にjavaの応用なのかなと参考本買ったのですけど
JavaScriptでしたか・・・。改めて本屋覗いてみます。

回答有難う御座いました。
0061デフォルトの名無しさん
垢版 |
2019/06/04(火) 05:12:02.26ID://1XsOfQ
「imacros iimgetlastextract」「javascript test 正規表現」で検索!

web 制作管理板の、JavaScript のスレで聞いてください!
0062デフォルトの名無しさん
垢版 |
2019/06/04(火) 13:32:34.07ID:SCHdoxT1
>>61
有難う御座います。検索のほうしてみます。
かつJavaScriptの本買って駄目そうなら、そちらで質問させてもらいますm(__)m
0063デフォルトの名無しさん
垢版 |
2019/06/04(火) 22:05:54.28ID:fUDGvTmK
Java で FullGC が頻発している場合、CPU負荷が高くなるけど、
vmstat でいう sy(システム時間)が高くなる傾向になるの?
それとも us(ユーザー時間)が高くなる傾向になるの?
0065デフォルトの名無しさん
垢版 |
2019/06/05(水) 14:28:44.34ID:kpVBEyPG
超絶初心者なのですが、どなたかご教授願います。

public static void main(String[] args) {

int num=Input.getInt("整数を入れてください");
System.out.println(num+ "を三乗すると" +modori(num)+ "です。");
}

public static int modori(int num) {
int c=num*num*num;
return c;
}
}


modoriメソッドでなぜcをreturnさせないと動かないのでしょうか?
0066デフォルトの名無しさん
垢版 |
2019/06/05(水) 14:39:01.17ID:Fd++qFdy
>>65
そのメソッドはintを返すように書いてあるからretutnでint型の値を返さなければコンパイル時にエラーになる。
0067デフォルトの名無しさん
垢版 |
2019/06/05(水) 14:46:35.27ID:kpVBEyPG
>>66
なるほど!つまりint c=num*num*num; を modori(int num) { 
に代入(?)してるっていう解釈で間違ってないですか?
0068デフォルトの名無しさん
垢版 |
2019/06/05(水) 14:48:21.50ID:wlF7byMC
returnを書かない場合、cはmodoriの外に出られず呼び出し側に行かないから
0069デフォルトの名無しさん
垢版 |
2019/06/05(水) 14:54:31.90ID:kpVBEyPG
>>68
わかりやすい解説に感謝です。
0070デフォルトの名無しさん
垢版 |
2019/06/05(水) 22:57:36.09ID:Oz9gP13+
Java限定の話じゃないんですが・・・
ORマッピングする場合の、エンティティクラスは、テーブルに対応したものを作るべきですか?
アプリのUIの入力項目に、複数のテーブルから作ったビューをマッピングすることになる場合、
ビューに対応するエンティティクラスを作ればいいかと思ってるんですが・・・
0071デフォルトの名無しさん
垢版 |
2019/06/06(木) 01:03:38.54ID:Qxsak61t
エンティティは、テーブル構成と同じだろ

そう言えば、O/R マッパーで、複数の表を結合した、ビューは聞かない
0072デフォルトの名無しさん
垢版 |
2019/06/07(金) 07:42:58.33ID:7sSNV2AB
普通にありえるだろ。
Hibernateなら、@Immutableってつけるだけだ。
まんまリードオンリーってことだ。
0074デフォルトの名無しさん
垢版 |
2019/06/18(火) 01:25:13.33ID:lsSrdvBh
下記のコードを実行すると、10進数で10と表示されます。
これを2進数で00001010などと表示させたいのですが、
何か方法はありますでしょうか?
知っている方がいたらよろしくお願いします。

https://pastebin.com/bWeDy4fC
0075デフォルトの名無しさん
垢版 |
2019/06/18(火) 10:35:34.91ID:Zdb+T+5j
java初心者です。現在オブジェクト指向で躓いています。とにかく読みまくって調べまくっ
てオブジェクト指向がどういう物なのか、どういう考え方なのかは理解できました。しかし
、「オブジェクト指向を使っプログラムをかけ」と言われてもまずどこから手を付ければい
いのかさっぱりです。ソースの例なんかを見ても何が起こっているのかわかりません。

”数字を入力させ、その数が10以上なら++するの繰り返し。10以下なら終了”

こう言われたならまず数字を入力させるんだな、scannerだな。繰り返しって事はforだな。
って分かるわけです。じゃあオブジェクト指向は...?なに?どこから手を付けるの?何が
どうなってるの?って感じです。どなたかご教授願えませんでしょうか...
0076デフォルトの名無しさん
垢版 |
2019/06/18(火) 11:02:31.53ID:uYARypJF
>>75
保持できる数値の下限が10の、Limit10Integerクラスを作ってみて、
そのクラス同士の演算、通常のIntergerやプリミティブなintとの演算を
考えてみては?
0077デフォルトの名無しさん
垢版 |
2019/06/18(火) 12:11:55.61ID:Nrs9iyoB
別のクラスを作ってインスタンス生成してそれを使えばとりあえずオブジェクト志向
0078デフォルトの名無しさん
垢版 |
2019/06/18(火) 13:07:49.25ID:0BbKA5nK
プロパティとメソッドをまとめたものが簡単に作れるのがオブジェクト指向
クラスはあってもなくても
0082デフォルトの名無しさん
垢版 |
2019/06/19(水) 09:58:23.39ID:iiJCxGI/
0のパディングが必要だとけっこう難しい。
0083デフォルトの名無しさん
垢版 |
2019/06/19(水) 13:14:09.66ID:Vrcp6gjb
ふつうに2進数に変換した後に
"0000000" + 2進数 をsubstringで右から必要な桁数とれば?
0084デフォルトの名無しさん
垢版 |
2019/06/19(水) 19:31:22.29ID:WYELJAwQ
そうか?足りない分だけ '0' 入れれば良いだけだが。
0085デフォルトの名無しさん
垢版 |
2019/06/19(水) 19:32:36.84ID:WYELJAwQ
>>83
そうそう。それでもいい。(なんとなく無駄な感じはするが)
008774
垢版 |
2019/06/19(水) 20:33:34.72ID:fjMcPsgD
74です。
皆さんレスありがとうございます。

もう1つお聞きしたいのですが、コード内の変数binaryNumは2進数にして宣言して
いるのに、println()メソッドを使うと10進数表示になってしまうのは仕様でしょうか?
0088デフォルトの名無しさん
垢版 |
2019/06/19(水) 22:51:28.41ID:XyjBYhsR
数値リテラルを2,8,10,16進数のどれで設定してもintはただの符号付き32bitの数値なのよ
008974
垢版 |
2019/06/20(木) 00:58:18.65ID:jYC2boRB
>>88
分かりました。ありがとうございました。
0090デフォルトの名無しさん
垢版 |
2019/07/04(木) 11:06:38.70ID:EhGDYjCj
こんにちは。
Microsoft Java VM の仮想マシンを使っている者なんですが、
現在craving explorerを使っています。

そこで、craving explorerで
ツール→インターネットオプション→セキュリティタブ
信頼済みサイト→レベルのカスタマイズ→Microsoft VM →
Javaの許可→カスタム を押した後、

下にある「Javaカスタム設定」を押して未署名のコンテンツの実行を許可しようとしたところ
「Javaカスタム設定」を押した後に「craving explorerは動作を停止しました」と出てしまいます。

解決策を教えて下さい。

craving explorerでJavaカスタム設定を押して権限の編集及び未署名のコンテンツの実行に許可をしたいです。
0091デフォルトの名無しさん
垢版 |
2019/07/04(木) 11:50:09.28ID:PssGU1ho
>>90
それCravingExplorerからただ標準のインターネットオプションを呼び出してるだけだから
コントロールパネルとかから呼んで変更してからCravingExplorer起動してみるとか
0092デフォルトの名無しさん
垢版 |
2019/07/05(金) 10:41:49.74ID:KqqYGd5h
クラス型変数ってクラス定義さえしていれば、1個もインスタンスしてなくても使えるんだっけ?
0094デフォルトの名無しさん
垢版 |
2019/07/13(土) 22:05:32.43ID:cGtMHMBe
streamに対する操作として、max(Comparator::natualOrder)みたいにメソッド参照で操作できますか。どの参考書にもComparator.natualOrder()を使ってるのですが
0095デフォルトの名無しさん
垢版 |
2019/07/15(月) 07:34:57.55ID:rgXkaLbt
よく知らんが
そのCoparator class中のnaturalOrderがどう定義されてるかによるんじゃね
lambda memberとして定義さてりゃClassName.mamberNameだしfunction memberとして定義さてりゃClassName::memberNameなんじゃね
まぁ比べるやつ!なんて名前に冠してるクラスだし普通ラムダってるとは思うが
max funcのpredicate argとしてlambdaぶっこもうとしてるってことっしょ?(´・ω・`)
0096デフォルトの名無しさん
垢版 |
2019/07/15(月) 22:39:32.16ID:Kuj5dAbd
こんばんわ。
わかる方がいらっしゃれば、教えていただけないでしょうか。

当方、DBをACCESSとしてjavaを学んでいます。
その中で、以下のSQL文をjavaで実行しようとしました。

UPDATE SAMPLETABLE SET 工数 = ROUND(DAVG("予定工数","SAMPLETABLE","[プロジェクトcd]='" & [プロジェクトcd] & "' AND [ID]='" & [ID] & "'"),1)";

上記は、SAMPLETABLEテーブルの中の予定工数列の平均値(小数点第2位を四捨五入)を工数列に更新する内容で、ACCESS上では正常に動作することを確認済みです。
これをjavaで実行しようとしたときに、

sql = "UPDATE SAMPLETABLE SET 工数 = ROUND(DAVG(\"予定工数\",\"SAMPLETABLE\",\"[プロジェクトcd]='\" & [プロジェクトcd] & \"' AND [ID]='\" & [ID] & \"'\"),1)";
statement.executeUpdate(sql);

としたところエラーとなりました。
statement.executeUpdate(sql);
で何が実行されているか確認したところ、実行されているSQLは以下の通りでした。

UPDATE SAMPLETABLE SET 工数 = ROUND(DAVG([予定工数],[SAMPLETABLE],[[プロジェクトcd]='] & [プロジェクトcd] & [' AND [ID]='] & [ID] & [']),1)

どうも\"の組み合わせが大カッコとして認識されているらしく、ACCESSで正常に動作しないようでした。
SQL文内で"を使わなくてはならず、そうするとエスケープ文字の\が必要とある為、解決方法が見当たりません。
解決方法がわかる方がいらっしゃれば、ご教授いただけないでしょうか。
0097デフォルトの名無しさん
垢版 |
2019/07/15(月) 23:37:21.19ID:pLaA1xVf
>>96
どういうドライバ経由で繋いでいる?
DAvgというAccess限定の特殊関数動くんかな
Criteria引数をその時の列の値で動的に生成してるんだろうけど
そんなの標準SQLにないからなあ

素直に
・プロジェクトCD毎の予定工数テーブルを作成
・上記と結合(またはサブクエリ)して更新
の2ステップにした方がいいと思う
(もしくはDAVG部分をサブクエリに書き換え)

ちなみにDBをACCESSとしてjavaを学ぶというのは特殊すぎて
ハマるポイントが多すぎると思われるのでお勧めしない
まだSQLiteの方がまし
0098デフォルトの名無しさん
垢版 |
2019/07/16(火) 01:15:57.24ID:bJ0hCkdA
Accessに使うSQL文は当然、SQL Serverと同様、マイクロソフト製品固有のSQL文になる
そのSQL文が正しく実行されるかはAccess内部でクエリーでも組んで実行しないと確証取れないよ
0099デフォルトの名無しさん
垢版 |
2019/07/16(火) 12:38:49.58ID:5QMM6YdW
>>97,98
レスありがとうございました。
ドライバはjdbc:odbcのことでよいでしょうか。
やはりACCESSは特殊なのですね。。。
0101デフォルトの名無しさん
垢版 |
2019/07/18(木) 23:00:15.39ID:Bslws8K5
QueryRunner qr = new QueryRunner();
String sql = "SELECT A,B,C FROM HYO";
List<Map<String, Object>> MAP = qr.query(con, sql, new MapListHandler());

DBUtilsというライブラリを使用して上のようなコーディングをしましたが、
List<Map〜の箇所で後続の処理に行かずfinallyに抜けてしまいます。

おそらく何かしらのエラーが発生している為だと思うのですが、
} catch (SQLException exception) {
でも補足できませんでした。
例外処理もなかなか理解できておらず申し訳ないのですが、何が原因であるか
教えていただけないでしょうか。
情報が不足していたら申し訳ありません。
0102デフォルトの名無しさん
垢版 |
2019/07/19(金) 00:27:59.11ID:7Hdy7m6i
>>101
ただの Exception で catch してスタックトレースでも出してみれば良いのでは?
0103デフォルトの名無しさん
垢版 |
2019/07/19(金) 09:50:09.93ID:6kfIPGJy
さっきJavaの更新したんだが、システムトレイからアイコンが消えなくなった
コンパネ開いてアイコンのチェックを外して適用、OKしても消えない、どうすりゃいいんだ
0104デフォルトの名無しさん
垢版 |
2019/07/19(金) 10:14:21.50ID:uab/wKdg
Windowsならわからなくなったらまず再起動
0106デフォルトの名無しさん
垢版 |
2019/07/20(土) 20:31:07.12ID:7rlJsNxm
以下ソースコードについてです。
要件としてはキーボード入力したデータの判定チェックをしたいです。
1.0点〜100点以外の入力はエラー ← ok
2.数字以外の場合はエラー ← ok
3.空白の場合はエラー ← これが以下ソースでは実装できず困ってます・・


try{
Integer inParam2 = Integer.valueOf(bufReader.readLine());
//0点以下、100点以上はエラーMSGを返す
if(inParam2 < 0 || inParam2 > 100 ){
System.out.println("0点〜100点の間で入力してください");
System.exit(1);
}else if (inParam2 == null){
System.out.println("点数は必須項目です。");
System.exit(1);
}else{
recordMap.put("国語",inParam2);
}
//数字以外をチェック
} catch (NumberFormatException e) {
System.out.println("数字を入れてください");
System.exit(1);
0107デフォルトの名無しさん
垢版 |
2019/07/20(土) 21:31:21.73ID:OIy5RkDH
>>106
bufReader.readLine()のnullチェックを行えばいいよ
↓こんな感じ

String line = bufReader.readLine();

if (line == null) {
 // error
}

try{
 Integer inParam2 = Integer.valueOf(line);
 ・・・
0108デフォルトの名無しさん
垢版 |
2019/07/21(日) 06:54:22.60ID:F3an1Rtm
>>106
え?例外にならない?
0109デフォルトの名無しさん
垢版 |
2019/07/21(日) 07:49:53.60ID:vV2C3FTZ
null判定ブロック内のコードがデッドコードだって警告が出るんだけど、なんで?
0111デフォルトの名無しさん
垢版 |
2019/07/21(日) 10:15:11.97ID:vV2C3FTZ
>>110
ああ、ごめんなさい。>>106さんのコードのことです。
0112デフォルトの名無しさん
垢版 |
2019/07/21(日) 12:33:32.30ID:sWVeowg3
>>109
if(inParam2 < 0 || inParam2 > 100 ){

この条件はinParam2がnullでないことを前提としていて
inParam2がnullだったら例外が投げられるっしょ

}else if (inParam2 == null){

なのでこの条件にはたどり着かないんよ

if (inParam2 == null) {
} else if (inParam2 < 0 || inParam2 > 100 ) {
}

にすれば警告はでなくなるけど
Integer.valueOf(bufReader.readLine());
はnullを返すことはないんでinParam2 == nullは常にfalseになる

Integer.valueOfにnullを渡すとNumberFormatExceptionが投げられる

空白の場合は"点数は必須項目です。"と出力したいけれども
"数字を入れてください"と出力されてしまうのじゃないかな
0113デフォルトの名無しさん
垢版 |
2019/07/21(日) 13:11:47.42ID:vV2C3FTZ
>>112
なるほどそういうことですか。分かりました。ありがとうございました。
0114デフォルトの名無しさん
垢版 |
2019/07/21(日) 14:55:10.87ID:wDsV+h30
Scanner使えや。
0115デフォルトの名無しさん
垢版 |
2019/07/23(火) 20:34:05.13ID:AvTpbtr4
https://pastebin.com/dEtCHVpv
MouseMotionListenerのgetMousePositionで、なぜnullがかえるのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています

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