1 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 20:25:11.04 ID:zFksT2Ki.net] Java初心者のためのスレッドです。 ※前スレ Java入門・初心者質問スレ echo.2ch.net/test/read.cgi/tech/1462997913/
41 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 17:18:41.62 ID:G/lzbAc1.net] >>39 Monster createMonsterOf(Class<? extends Monster> c){ try { return c.newInstance(); } catch (InstantiationException | IllegalAccessException ex) { return null; } } Monster m = createMonsterOf(Golem.class);
42 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 17:24:24.53 ID:BChNgOUn.net] >>41 Class#newInstance()はコンストラクタが送出する例外を素通ししなかったっけ? 最後にThrowableをcatchしないとマズいと思うよ
43 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 17:30:54.79 ID:G/lzbAc1.net] >>42 確かに。指摘thx
44 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 17:47:54.37 ID:BChNgOUn.net] ごめん、Throwableはマズいな class#newInstance()使う場合は送出される可能性のあるExceptionも捕まえておきましょう ちなみにConstructor#newInstance()の場合はInvocationTargetExceptionでwrapされて送出するのでそいつを捕まえて処理しましょう
45 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 21:45:25.64 ID:/0LpSjau.net] >>40 >>41 ありがとうございます ジェネリクスを使えばいけそうだなとは思ったのですがなかなかうまくいかなかったので助かりました 独学で聞ける人がいないので本当に感謝です……
46 名前:デフォルトの名無しさん mailto:sage [2016/11/24(木) 17:18:26.85 ID:z1OycYrK.net] Androidアプリ制作を学びたくて独学でJavaを勉強し始めたプログラミング初心者です(VBAは少しやってました) CUI一通り理解できたらまずはGUIとか勉強したほうが良いのですかね、いつ本題のアプリ開発に手を付けられるのかお聞きしたいです スレチでしたらすみません
47 名前:デフォルトの名無しさん mailto:sage [2016/11/24(木) 17:31:53.50 ID:m4cFoWGx.net] >>46 AndroidStudioインストールして、付属のサンプルコード動かしたり改造するればいいんじゃないかな GUIはJavaFXとかあるけど、Androidには不必要だし、Android固有のUIやった方がいいよ
48 名前:デフォルトの名無しさん mailto:sage [2016/11/24(木) 17:34:41.57 ID:z1OycYrK.net] >>47 お早い回答ありがとうございます。JavaのCUIは見ておいた方がいいですよね? Android studioも色々見たのですがイマイチどこでJavaの知識が役立つのかイマイチ分からなくて…
49 名前:デフォルトの名無しさん [2016/11/24(木) 20:02:09.19 ID:m4cFoWGx.net] >>48 CUIと言っているのがどの辺りかは分からないけど、Javaの言語仕様とjava.lang、java.util、java.net、java.ioパッケージは基本なのである程度把握しておいたほうがいいと思いますよ 上記が把握できたらAndroidでもサーバサイドでも始められるとおもます あくまで始められるだけで、作るためにはそれぞれのフレームワークの理解など色々覚えることがありますが、、 Javaスレなので、Androidのことを長々と書くのもアレなのでAndroidの導入部分だけ まず、AndroidStudioを起動るとプロジェクトの作成やインポートのリストが出るので一番下の「Import an Android code sample」からサンプルコードを選びます 最初はUIカテゴリあたりから選ぶのがいいと思います プロジェクトがロードされるとたぶんApplication/src/main/java以下にJavaファイルがいくつかあると思いますが、java.*なんて利用してるクラスはほとんどなく、android.*を利用してると思うので愕然とすると思います public static void main() はどこにあるの?と涙目になると思いますが、Androidでmainに相当するのがActivityクラスです(と書くと苦情が来そうですが最初はその理解でいいと思います) Activityが何かはAndroid APIを見ると細かく書いてあります https://developer.android.com/reference/android/app/Activity.html 多分サンプルコードだとMainActivity.java があると思うのでそこから見てみましょう ってか実機に入れて動かしてみましょう
50 名前:デフォルトの名無しさん mailto:sage [2016/11/24(木) 21:41:58.42 ID:z1OycYrK.net] >>49 こんな初心者丸出しな質問に丁寧に答えてくださって本当にありがとうございます ほぼ手探りで始めたもので、こういったご指南はとても助かります Javaスレでする質問ではなかったかもしれません、お許しください。
51 名前:デフォルトの名無しさん mailto:sage [2016/11/24(木) 23:27:24.88 ID:g1cJ7kXy.net] WEB+DB vol.94 の特集が、Kotlin, Electron Kotlin・IntelliJ IDEAは、JetBrains が作っている。 そして、Android Studioは、IntelliJ IDEAから作られているから、Kotlinが使いやすい Android Studioで、Java・Kotlin は変換できる。 Kotlin Bytecode で、Javaのバイトコードも見れる Try Kotlin のサイトで、ブラウザからプログラミングできる Androidでは、言語の勉強はほとんどない。 ほとんどは、フレームワークの勉強だから、Java8よりも、Kotlinがベター
52 名前:デフォルトの名無しさん mailto:sage [2016/11/25(金) 00:05:26.48 ID:b+zcYe4E.net] >>50 48ですがAndroidはじめ最近のJava開発だとビルドシステムのgradleやコード管理にgit、githubも必須の知識になってくるのでその辺も押さえておいた方がいいですね Androidのフレームワークの理解を進めるのは必須ですがIDE(AndroidStudio)の使い方を深く知るのも開発の早道だと思います AndroidStudioの補完機能は強力なのでAPI Reference調べなくても補完候補の名前見て意図した機能を探す事が多いので Androidだと最近Javaで書かずにkotlinを使う事もありますが、まずはJavaでの開発をお勧めしますよ kotlinはいい言語ですがフレームワークがJavaの所でkotkinを使うケースがほとんど(AndroidやSpringが今だと当てはまりますね)なのでJavaの知識がないと問題が起きた時にはまると思います 初心者はkotlinの開発効率向上の恩恵を受けるより情報の少ない言語でのハマりの方が多いですね
53 名前:デフォルトの名無しさん mailto:sage [2016/11/25(金) 09:47:12.02 ID:kblhq0Mt.net] >>51 >>52 ID:z1OycYrKです。 分かりやすいご説明ありがとうございます。やはり単純にJavaの知識があれば良いと言う訳でもないのですね… Android開発を目標とする場合にはまずJavaの基本知識とAndroidのフレームワーク、IDEを知ることが最優先事項といったところでしょうか。 本当にまだまだプログラミング自体初心者ですので順を追って勉強していきたいと思います。 kotlinなど初めて聞いたものもあったので参考にさせていただきます。 また何かあった時にはここで質問させてもらえると嬉しいです。
54 名前:デフォルトの名無しさん mailto:sage [2016/11/26(土) 02:50:02.97 ID:e02/+VR6.net] やっとpaizaのC級クリアできた 地味に嬉しいなこれ
55 名前:デフォルトの名無しさん [2016/11/26(土) 12:49:37.40 ID:2qYRbLWv.net] interfaceって、設計したところで、実装したクラスがきちんと実装してないと無意味ですよね? abstract String getName(); ってメソッドがあったとしても、それを実装した各クラスのメソッドで、 return name; //正しい実装 return "UNKO!!"; //間違った実装 とかされたらダメで。 ということは、設計上の規約を実装に持ち込む(?)使い方をしないと意味ないってことですよね?
56 名前:デフォルトの名無しさん mailto:sage [2016/11/26(土) 12:59:57.73 ID:xNzmg7ff.net] そりゃそうでしょ それって 2つの整数の和を返す関数 int add(int a,int b); があったとしても、その実装を return a+b; にしなければ意味ないよねって言ってるのと同じでしょ?
57 名前:デフォルトの名無しさん mailto:sage [2016/11/26(土) 13:30:38.20 ID:UakanFrx.net] >>55 んな事気にしてたら公式でinterface使えないなw
58 名前:デフォルトの名無しさん mailto:sage [2016/11/26(土) 13:51:05.43 ID:iTK/Df17.net] >>55 それはその通り。interfaceはあくまでもinterfaceであって外部からどのような形でメソッドが呼び出し可能なのかを表している表面的なものでしかない。
59 名前:デフォルトの名無しさん mailto:sage [2016/11/26(土) 13:59:52.48 ID:0VRSln7v.net] よくJavaの本ではクラスありきで最初の方に書いてあるけど 実際に設計する機会はあまりなくて インターフェースの方をきちんと勉強した方が実用的だ
60 名前:デフォルトの名無しさん mailto:sage [2016/11/26(土) 16:29:32.68 ID:BIqdSJpb.net] >>55 意味ないっていうか、そこでエラーを吐かせるのも設計の大事な役目なんだよ 実行時エラーの面倒くささに比べてコンパイルエラーの何とありがたいことよ
61 名前:デフォルトの名無しさん mailto:sage [2016/11/26(土) 20:58:39.18 ID:n+yuLe3f.net] >>60 >>55 の例だとコンパイルエラーにはならんだろう。
62 名前:デフォルトの名無しさん [2016/11/27(日) 15:12:18.48 ID:FXT5KC1a.net] >>54 C級ってなんのことかと思ったら paiza.jp ってのがあったんだな。 コード入れとく方の paiza.io なら知っていたがそっちは知らなかった。 暇だからやってみたがとりあえずB級まで行ったよ。 A級のは1問やろうとしたけど数学的に難しくてわからない点があって調べるの面倒なので中止した。
63 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 15:19:19.13 ID:FXT5KC1a.net] B級だと paiza査定 年収759万円 って出るのな。 今の実際の年収はこれ以上なのでやっぱA級クリアすべきだな。
64 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 18:54:23.69 ID:FNYe3/AV.net] 例外をいつどんなものを投げれば良いかがわかりません。 例のなるような、また皆さんが参考にしたソースコードがあれば 教えてもらえないでしょうか。
65 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 19:38:47.95 ID:7rsS/I5l.net] >>63 どうやったらそんなに貰えるんですか?
66 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 19:49:19.84 ID:Zu2gLat0.net] >>65 知らない。単に paiza.jp がそう出して来るだけ。
67 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 19:54:13.39 ID:Zu2gLat0.net] paiza.jp はいわゆる転職支援サイトで、プロフィール登録してあそこで出ている問題を 解き続けるとそれを見た企業が連絡してくるかも知れないということ。 かといって俺は転職希望してないのでプロフィールはほとんど入力せずそのまま 問題解いてるだけ。俺は暇つぶしにクイズみたいに問題解きたいだけなので。
68 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 20:00:24.38 ID:fruCkXex.net] 某所で拾った問題なのですが、わからなかったので質問します(多分学校の課題だと思います) 任意のxとnを指定しx面のサイコロをn個投げたとき、 出る目の総和sumと、sumが出る組み合わせの数casesと、 sumが出る確率probを、sumの小さい順に「sum:cases:prob」の ように一覧表示するプログラムを書けというものです sumはn〜x*nの範囲で1ずつ増やすとして、casesの出し方がわかりません 合計がsumになるn個の自然数の組み合わせを全て取得し、 sumが同じだったらカウントを1増やせばいいんじゃないかと 思ったのですが、どんなコードを書けばそうなるのか検討もつかず…… あるいは他のベターな方法などありましたらご教授いただければ幸いです
69 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 22:11:43.54 ID:FXT5KC1a.net] >>68 総和の最小値はnで最大値はx*nなのでこの数(x*n-n個=(x-1)*n個)のカウント値を入れておく配列を用意しておいて、 後は全パターン出して総和に従ってその配列の値を1加算すればいいだけ。 全パターンの求め方は、この場合はx進数でn桁あるのと同じで、最小値が1で最大値がxになっているので、 まずn桁分の値を入れておく配列を作っておいて全桁を1で初期化し、それに対して1加算する処理を作れば良い。 これは簡単だと思う。一番下の桁に1足してxよりも大きくなったら桁溢れなので1に戻して一つ上の桁に1を加え、 その桁で桁溢れしたら更にその上の桁という具合に必要なだけ上位桁まで繰り返す。全桁最大値になって1を 加算した時は最上位桁で桁溢れするのでそこで終わり。 まあでもこれは全パターンについて調べなくても数学的に何か良い方法ありそうな気がするなあ。
70 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 22:15:53.01 ID:FXT5KC1a.net] あ、そうだ。x進数n桁なら0〜(x^n)-1の整数値のループにしてしまって各桁はxで割った余り+1でも出せるな。
71 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 23:26:50.66 ID:FXT5KC1a.net] できた。 https://paiza.io/projects/SG0-jSDjsp39n6qB97ieUQ 下の所の入力のタブで面と個数を入れられる。1行目がxに入り2行目がnに入る。これでx面、n個になる。 今の値は6面3個になっている。
72 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 23:51:30.95 ID:TwPmxj16.net] >>71 うおぉぉ ありがとうございます! じっくり見ながら勉強させていただきます
73 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 02:41:41.42 ID:TQQs9y8p.net] Javaと関係ない気がするのだが >>68 のは単に多項分布の話をしてるのだろう x=2のときを2項分布と言うんだよな、例を示すと 1, 1,1 1,2,1 1,3,3,1 1,4,6,4,1 と続くやつ
74 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 04:49:37.31 ID:ZvcFWjYe.net] >>64 Error : catchする必要がない Exception : catchすべき RuntimeException : catchしなくてもよい 内容は、例外の一覧表を参照 >>73 シャンパングラスで、ピラミッドみたいな構造を作って、上から水を流すようなヤツか
75 名前:デフォルトの名無しさん mailto:sega [2016/11/30(水) 11:21:15.72 ID:tLQNhhd0.net] jdk と j2se と j2ee の言葉の意味を教えてください jdk は開発に使うプログラム群でコンパイラと実行環境を含んでいて j2seは基本のライブラリ群で j2eeはもりもりのライブラリ群 という認識であってるか? jreやjdkをダウンロードすると、もれなくj2eeもついてくるの?
76 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 12:56:22.81 ID:3Q1IinyT.net] J2EEは、J2EE1.2〜1.4まで。 J2EE1.4の次からは、JavaEE5〜7 に変わった 1.x という表記方法は、昔のもの よく知らないけど、J2SEも、JavaSE に変わったのかも? SEはスタンダード版で、EEはエンタープライズ版
77 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 14:14:26.80 ID:m8TXkg9z.net] JDK は開発者用 JRE はユーザーが使う最小環境 自分がどちらの立場かでわかれる SE/EE は開発ターゲットでわかれる EEは(大規模)企業向け、サーバー構築用の機能がもりもり増える ちなみに ME(M=モバイル、携帯など)もあるよ 特に限定なしに Java と言ったら SE だと思うよ
78 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 17:01:51.61 ID:tLQNhhd0.net] >>76-77 ありがとう じゃあ普通は JavaSE で、JavaEE はとりあえず存在忘れて良くて JDKやJREを普通にダウンロードするとおりてくるのは JavaSE と いう認識でいいのね
79 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 20:14:35.02 ID:rebgM91e.net] JAVAというわけではなく、初歩的なことかと思いますが テスト要領書って、本来コーディング前に作っておくものでしょうか? うちの会社じゃ いつもコーディングの後半に作ってるんですが 一般的にはどうなんだろうと思いまして
80 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 01:26:27.43 ID:3wKrHXtA.net] streamを練習中です。 string配列のlistをstreamでわちゃわちゃやって、 タブ連結の標準出力までは出来たのですが bufferdwriter.writeでファイル出力しようとすると例外処理を求められ、 tryで囲んでもエラーが消えません どのように書けばいいのでしょうか
81 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 08:57:37.85 ID:rRAOeu3n.net] エラーの内容示して
82 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 13:49:28.45 ID:hgmu3ScG.net] 今どのように書いてあるのか?
83 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 18:40:26.32 ID:WlJHS2BC.net] >>81 Exception in thread "main" java.lang.Error: Unresolved compilation problem: 処理されない例外の型 IOException 簡略化したArrays.stream(array).forEach(x -> bw.write(x)); でもエラーになるので根本的に使い方を間違っている感じがします おまけにこれで書けたとしてもnewLineが書けないですよね
84 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 19:13:20.96 ID:2l44vQ0O.net] >83 main に throws Exception を書いとけば? public static void main(String[] args) throws Exception
85 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 19:49:01.45 ID:WlJHS2BC.net] >>84 こちらでは解決しませんが そちらの環境ではエラー消えますか? 改行と書き込みを行うwrite(BufferedWriter bw, String str)メソッドを作成して Arrays.stream(array).forEach(x -> write(bw, x))から呼び出せば 動作するのはわかったのですが、出来れば分割したくありません
86 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 23:59:44.58 ID:hgmu3ScG.net] 長くなるが、こうだ。 Arrays.stream(array).forEach(x -> { try { bw.write(x); } catch (IOException e) { e.printStack
87 名前:Trace(); } }); サンプル https://paiza.io/projects/mQUV1ao9f2lGajsPfUQlpg [] [ここ壊れてます]
88 名前:デフォルトの名無しさん mailto:sage [2016/12/04(日) 19:44:01.58 ID:7DvwJVFy.net] >>86 おおー、ありがとうございます forEachの中を{}で括ることで複数処理を書けるんですね 処理が1行であれば{}を省略できるだけな事を知りませんでした ちなみに、複数行処理はmapなどの中間操作でも使えますか? ためしに次のようなコードを書いてみたところ、型推論が上手く出来ない感じでエラーになるのですが https://paiza.io/projects/9MR0Rm40osn4TMXVOVQPog
89 名前:デフォルトの名無しさん mailto:sage [2016/12/04(日) 21:10:34.51 ID:dK8nOpyX.net] return まずStreamよりlambda式を完璧に覚えた方が良くはありませんでしょうか
90 名前:デフォルトの名無しさん mailto:sage [2016/12/04(日) 21:36:25.09 ID:7DvwJVFy.net] >>88 ありがとうございます ラムダ式の文法を調べたら自分が引っかかっていた部分が全て書いてありました まずはこちらを勉強します
91 名前:デフォルトの名無しさん mailto:sage [2016/12/06(火) 19:17:36.58 ID:AM+X22VM.net] サブクラスのインスタンスをスーパークラス型の参照変数で参照するのって、どういうメリットがあるんでしょうか? 機能を制限してるだけのように見えるんですが。
92 名前:デフォルトの名無しさん mailto:sage [2016/12/06(火) 19:42:21.31 ID:yS9rSl8q.net] >>90 スーパークラスが同じなら違うサブクラスでも同じように扱える。 例えば Object クラスは全てのクラスのスーパークラスなので Object クラスの配列に色々なクラスのインスタンスを入れておいてループさせて頭から全てに対して toString() やらせたりなんてことができる。 この時全てのインスタンスは Object クラスのインスタンスとして扱われている。つまり機能は縮小されている。しかし全てのインスタンスを同列に扱える。
93 名前:デフォルトの名無しさん mailto:sage [2016/12/06(火) 19:43:40.02 ID:bM0bSRB2.net] >>90 例えば一括処理が楽になる
94 名前:デフォルトの名無しさん mailto:sage [2016/12/07(水) 00:09:59.47 ID:xt5+p8pC.net] >>90 例えば、JavaのListクラスについて考えてみる Listクラスのサブクラスは、Listクラスと同じメソッドを持つ事が保証されている (代表的なものは、Listに要素を加えるadd(E)メソッド、Listから指定した位置の要素を取り出すget(int)メソッド、List内の要素をすべて消すclear()メソッドなど) Listクラスのサブクラス、ArrayListで、以下のような実装をしていたとする List<Integer> list = new ArrayList<>; list.add(new Integer(1)); list.add(new Integer(2)); System.out.println(list.get(0)); list.clear(); System.out.println(list.size()); 何かしらの事情で、上記のコードで使用しているArrayListを、LinkedList(※)に変える必要がでた場合、ArrayListをList型の変数に代入しているため、new ArrayList<>の部分のみを書きかえればよい ※Listクラスのサブクラス もし、ArrayListとLinkedListに共通のスーパークラスが無かった場合、2つのクラスで同じメソッドを使用できるとは限らなくなるため、listで使用しているメソッドを書きかえなければならない(規模が大きいと大変)
95 名前:デフォルトの名無しさん mailto:sage [2016/12/07(水) 07:01:38.13 ID:UOk7UU+s.net] Listはシーケンスを実装するインターフェース、クラスじゃないよ
96 名前:デフォルトの名無しさん [2016/12/07(水) 18:58:23.74 ID:k92WTPwA.net] ttp://www.javadrive.jp/start/ope/index7.html このページ見て勉強してるんですが、納得いかないことがあります。 int a = 7; int b; b = a++; System.out.println(a); //8 System.out.println(b); //7 について、 >変数「b」に変数「a」を代入していますので数値の7が変数「b」に代入されます。それから変数「a」の値を1だけ増加させます。 とのことなのですが、これをいじって、 int a = 7; a = a++; System.out.println(a); //7 とした場合、 >数値の7が変数「左辺のa」に代入されます。次に「右辺のa」の値を1だけ増加させます。 のはずなのにaは増えていません。 a = a++; だと、インクリメントされないけれど、 a++; だと正常にインクリメントされます。 a = a++; の場合、左辺のaと右辺のaが指している場所が違う(実はaが2つある)んですか?
97 名前:デフォルトの名無しさん mailto:sage [2016/12/07(水) 20:41:00.08 ID:MF980GNn.net] javadriveは演算子の優先順位説明されてたっけ?
98 名前:デフォルトの名無しさん mailto:sage [2016/12/07(水) 20:41:20.64 ID:B6706IAk.net] 順番逆じゃね 先に右辺が評価されて評価値は7 aはインクリメントされて8 評価値がaに代入されて7に戻る
99 名前:デフォルトの名無しさん [2016/12/08(木) 00:17:49.54 ID:tUPRtp48.net] >>95 javap -c で逆アセンブルすると分かるけど int a = 7; int b; b = a++; バイトコードは 1:bipush 7 2:istore_1 3:iload_1 4:iinc 1, 1 5:istore_2 1:スタックに7を積む 2:スタックの値(7)を変数1(a)に入れる 3:変数1(a)の値をスタックに積む(7) 4:変数1(a)に1追加(7->8) 5:スタックの値(7)を変数2(b)に入れる
100 名前:デフォルトの名無しさん [2016/12/08(木) 00:18:23.52 ID:tUPRtp48.net] 疑問のコード int a = 7; a = a++; 1:bipush 7 2:istore_1 3:iload_1 4:iinc 1, 1 5:istore_1 1:スタックに7を積む 2:スタックの値(7)を変数1(a)に入れる 3:変数1(a)の値をスタックに積む(7) 4:変数1(a)に1追加(7->8) 5:スタックの値(7)を変数1(a)に入れる ってことでこれが答えです
101 名前:デフォルトの名無しさん [2016/12/08(木) 00:18:39.13 ID:tUPRtp48.net] ちなみに int a = 7; a = ++a;
102 名前:フ場合はiload_1とiinc の順序が逆になります この疑問は自分も??となったので調べてみておもしろかったです [] [ここ壊れてます]
103 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 19:26:40.58 ID:ZhYL35Hp.net] >>100 横からで申し訳ないけど int a = 7; a++; の場合ってどうなってます?
104 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 19:32:30.50 ID:msYwe41j.net] >>101 そんなの8に決まってんだろ
105 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 20:07:00.20 ID:Qk51oSYm.net] で、それらは言語仕様で決まってるの? その実装は言語仕様通りの動作なの?
106 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 20:25:48.90 ID:msYwe41j.net] >>103 そう。
107 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 23:23:47.68 ID:RlcOCP/9.net] >>103 演算子の優先順位
108 名前:デフォルトの名無しさん [2016/12/09(金) 09:32:09.87 ID:JDGo9TAV.net] 自作のクラスをextendsしたらmain(static final)はmain(static final)をオーバーライドできませんってエラーになったけど どう書いたらいいのでしょうか?
109 名前:デフォルトの名無しさん mailto:sage [2016/12/09(金) 09:44:39.39 ID:0m6Mi0gt.net] オーバーライドしないように書けばいいのです これ以上詳しい回答が欲しいならコードを晒しましょう 嫌なら帰りましょう
110 名前:デフォルトの名無しさん mailto:sage [2016/12/09(金) 09:49:29.03 ID:vCLjhx0r.net] >>106 main()書くクラスを継承するなんて普通はやらない どう書くかの前に何がしたいのかはっきりさせようか
111 名前:デフォルトの名無しさん mailto:sage [2016/12/09(金) 12:21:46.85 ID:vlYQq61V.net] そもそもmainメソッドのオーバーライドってその気になればできたりするもの? それとも言語仕様上不可能なもの?
112 名前:デフォルトの名無しさん mailto:sage [2016/12/09(金) 12:34:26.46 ID:dJ83iVEX.net] 変態コーダーとしては大いに興味がある
113 名前:106 [2016/12/09(金) 12:40:32.05 ID:JDGo9TAV.net] コンストラクタからmain2を呼び出すとかしてもいいんでしょうか?
114 名前:デフォルトの名無しさん mailto:sage [2016/12/09(金) 13:00:22.88 ID:XOVIDlO/.net] 究極的にはコンパイラさんがお怒りにならなければ何をしたっていいよ
115 名前:デフォルトの名無しさん mailto:sage [2016/12/09(金) 15:08:08.05 ID:TskjQlK7.net] eclipseとTomcatに関する質問ってここでしてOK?
116 名前:デフォルトの名無しさん mailto:sage [2016/12/09(金) 18:24:56.00 ID:xgqevX7Y.net] >>112 コンパイラさんの目を盗んでメインメソッドをオーバーライドする方法を知りたい 知りたいだけだが
117 名前:デフォルトの名無しさん mailto:sage [2016/12/09(金) 19:12:42.51 ID:6sxBnXBQ.net] finalだからじゃなかろーか >>114 リフレクションで出来るかも? 詳しい人プリーズ
118 名前:デフォルトの名無しさん mailto:sage [2016/12/10(土) 12:37:09.07 ID:VLELNCTm.net] そもそもstaticなんだが.... とりあえず実行したいだけならJUnitとか使えば行けるだろうけど
119 名前:デフォルトの名無しさん mailto:sage [2016/12/10(土) 12:41:59.40 ID:VLELNCTm.net] ってかそもそも継承しないクラスでクラス作って起動時のクラス指定で呼び出してそこから該当のクラスでも呼び出せばいいんじゃね
120 名前:デフォルトの名無しさん [2016/12/11(日) 03:36:14.81 ID:xECh/Tka.net] >>106 はコードを晒すべきだ。
121 名前:106 mailto:sage [2016/12/11(日) 10:35:36.03 ID:Dfbs0rE4.net] 継承元のクラスのmainを削除すればいいと思うんだけど とりあえず一つのプログラムからしか呼び出されていないので、ソース変更とかしながら Hoge hoge = new Hoge(); してから 戻り値 hoge.hogehoge(); って形にした
122 名前:106 mailto:sage [2016/12/11(日) 10:36:55.22 ID:Dfbs0rE4.net] ああ、 import hoge.Hoge; も必要だった
123 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 14:00:45.27 ID:x9RdPPr0.net] finalだからじゃなかろーか https://paiza.io/projects/MTCnmZ86lM69QsJ8xf8KVA https://paiza.io/projects/6LFZuaVly4m1QKUAmkLOjQ
124 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 01:07:35.78 ID:Cw8uPzOG.net] 例外処理について教えて下さい。 検査例外の場合、throws すると呼び出し元のメソッドで処理しないとコンパイル通りませんが、、 非検査例外の場合、throws しても呼び出し元のメソッドで処理しなくてもコンパイルは通るのは、 非検査例外の場合は throws する意味はない(せいぜい注意書きレベル)と考えていいんでしょうか? 標準ライブラリにも「例外:○○Exception(非検査例外)を投げることがある」と明記してあるメソッドがありますが、 try catchするかは使う人の善意(?)次第になってしまいますよね?
125 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 01:26:56.17 ID:38wEAVQO.net] >>122 qiita.com/yuba/items/d41290eca726559cd743
126 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 01:45:44.05 ID:Cw8uPzOG.net] >>123 ありがとうございます。
127 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 11:59:20.93 ID:YdV6j9Ia.net] final public static void main ってベジータの必殺技みたいだよな
128 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 12:04:02.85 ID:YdV6j9Ia.net] ところで、mainにfinalつける人っているの?
129 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 12:41:49.96 ID:LEnzGoNW.net] なんでfinal付けるんだろう?謎だな。
130 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 15:05:09.35 ID:gvYOPAdU.net] public strictfp synchronized static final void main(String[] args) なんかかっこよくなった。
131 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 16:01:34.64 ID:pPmA0hRQ.net] >>128 の「public strictfp synchronized static final void main(String[] args)」! >>125 に2959のダメージ!
132 名前:デフォルトの名無しさん [2016/12/12(月) 16:24:17.16 ID:Y+8pLhXI.net] バッチのご相談をさせてください 入力フォルダからデータを取り込んで処理、出力するバッチなのですが、 入力フォルダにデータを書き込んでいる最中にバッチが起動し、中途半端なデータを取り込んでエラー落ちしてしまいます どうにかして書き込み中のデータを無視したいのですがFileクラスなどで別のプロセスがファイル書き込み中であることを判別する手段はありますか?
133 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 17:56:39.37 ID:YdV6j9Ia.net] >>130 ロック! シェケナベイベー!
134 名前:デフォルトの名無しさん [2016/12/12(月) 19:50:08.10 ID:MS9MrEBQ.net] >>130 書き込みが終わってから読むのが正攻法では? 書き込み処理側で終了を知らせるゼロバイトファイル置いてもらうか 読み側で10秒ぐらい待ってみてサイズが変わってなければ終了と見なすか
135 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 20:31:46.42 ID:5QBCzTqI.net] >>130 isReadや書き込み中ならisWriteでfalse返ってこないか
136 名前:デフォルトの名無しさん [2016/12/12(月) 23:52:08.34 ID:ATFW9x6K.net] ジェネリクスを包括的(?)に勉強したいのですが、オススメのサイトがあれば教えて下さい。 日本語・英語・ドイツ語どれかでお願いします。
137 名前:デフォルトの名無しさん mailto:sage [2016/12/13(火) 00:32:48.27 ID:EQBenzg8.net] 20代後半でプログラムの勉強して就職先ってあるのだろうか? 俺はないと思う
138 名前:デフォルトの名無しさん mailto:sage [2016/12/13(火) 09:05:12.70 ID:GC6m09wL.net] もうプログラムは趣味でやるもんだわ
139 名前:デフォルトの名無しさん mailto:sage [2016/12/13(火) 10:05:56.21 ID:8ddwa1I7.net] それ。
140 名前:デフォルトの名無しさん mailto:sage [2016/12/13(火) 16:36:57.46 ID:EQBenzg8.net] 趣味でプログラムって何か作ってるの?
141 名前:デフォルトの名無しさん mailto:sage [2016/12/13(火) 16:54:49.77 ID:EzCfEOMA.net] 130です 急なトラブルでレス遅くなりました レスいただいた皆様ありがとうございます 教えていただいた方法も含めて色々と試したのですがうまくいかず、結局入力側を同名リネームできるかどうかで判別することにしました これでもリネームから取り込みまでの間に書き込みが始まる可能性が若干ありますが、ほとんどのパターンではうまくいきそうです