1 名前:デフォルトの名無しさん mailto:sageteoff [2016/03/15(火) 18:14:06.66 ID:9bB8/RTg.net] プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 pc11.2ch.net/hp/ Webプログラミング 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質問・相談スレッド176★★ [無断転載禁止](c)2ch.net echo.2ch.net/test/read.cgi/tech/1453305105/
822 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 00:20:16.79 ID:bEHxSIM9.net] >>817 ボタン・ラベルを、隠す・削除する >>818 ラベル01:while(){ ラベル02: if(偽){ continue ラベル01;} if(真){ continue ラベル02;} } >>819 何番目とインデックスは異なる。 1番目は、インデックスが0
823 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 01:01:14.99 ID:f33EmFKv.net] インデックスにも0-indexと1-indexがあるしな
824 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 09:10:58.30 ID:iMrWFgNq.net] >>820 >>817 です。 アドバイスありがたいんですけどよくわかりません 自分がやりたいのはJLabelとGraphics2Dのdraw()を同時に描画して かつJLbelのほうを真上に表示することです イベントとか透明度とかいろいろいじったんですけどどうしてもdraw()のほうが上に描画されてしまいます
825 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 12:06:54.56 ID:f33EmFKv.net] stackoverflow.com/questions/24493236/paint-hidden-java-swing-component stackoverflow.com/questions/7734277/setvisibletrue-immediate-repaint
826 名前:デフォルトの名無しさん [2016/06/05(日) 16:22:36.78 ID:Qy2zNNAa.net] Javaのラベル文の質問です ラベルの中にラベルを貼ることは可能ですか? ラベル1:〜{ ラベル2:〜{ System.out.println("こんな形"); } } >>820 を参考にしましたが、よく分かりません ラベル2:〜{continue ラベル2;}でラベル2まで飛べますか? また、ラベル2:〜{continue ラベル1;}でラベル1まで飛べますか? 何度もすいません、お願いします。
827 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 16:41:41.46 ID:odhU5/tC.net] >>824 ラベルは使うな どうラベルを使うかではなく、使わずに目的を達成する方法を考えろ
828 名前:デフォルトの名無しさん [2016/06/05(日) 19:14:01.58 ID:/bruxSbe.net] >>824 14.16. The continue Statement docs.oracle.com/javase/specs/jls/se8/html/jls-14.html#jls-14.16 | The scope of a label of a labeled statement is the immediately contained Statement. | The continue target must be a while, do, or for statement, or a compile-time error occurs. ラベルのスコープはラベル直後のステートメント continueの対象はwhile, do, forに限る ちゅうことなんでラベルは貼れても飛ぶことができないかと こういうのだったらできるんだけどねー int i = 0; Label_1: while (i < 3) { Label_2: while (true) { if (i % 2 == 0) { i++; continue Label_1; } else { i++; continue Label_2; } } }
829 名前:デフォルトの名無しさん [2016/06/05(日) 19:46:12.67 ID:FIzAHdVg.net] >>826 ありがとうございます ありがとうございます
830 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 19:50:45.05 ID:5XbRe77x.net] 今の子たちは行番号も構造化BASICも知らない世代なんだから ラベルやgoto/setjmpが新鮮なんだろうよ できればその労力をlambda式に使った方がいいと思うけどね
831 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 20:06:33.58 ID:hOWXyYQQ.net] ボレロ
832 名前:デフォルトの名無しさん [2016/06/05(日) 21:51:27.70 ID:pxS74riA.net] 村上。
833 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 13:25:30.14 ID:JZtx2nlJ.net] staticメンバだけのクラスで クラスロード後、コンストラクタを通さずあらかじめ自動で文を実行させるおく事って可能でしょうか?
834 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 13:35:20.02 ID:9aadMFJw.net] >>831 class Hoge { static { System.out.println("はげ"); } }
835 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 14:01:46.42 ID:p52I8MXM.net] ハゲハダマッテロ ∧___∧ / / / / ⊂( ・∀・) 、,Jし // パン (几と ノ ) て.彡⌒ ミ //'|ヽソ 彡 Y⌒Y( ´;ω;`) /ノ / | \ 彡 l r Y i| ヽ/、/ヽ/ ヽ/ U>>832 |:_|j
836 名前:デフォルトの名無しさん [2016/06/06(月) 18:05:22.48 ID:d2PTajMw.net] マルプラなDTアプリを作るのはElectronとSwingはどっちがいいのでしょうか? それぞれのメリット、デメリットを教えてください
837 名前:831 mailto:sage [2016/06/06(月) 18:18:10.06 ID:AvO2qKU5.net] >>832 はげしく感謝!
838 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 18:36:27.97 ID:lERWlKku.net] >>834 Swing(というかJavaでGUIアプリを作ること全般)が適しているケースなんか存在しない Javaというだけで-100点からのスタートだということを肝に銘じておけ
839 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 18:46:44.26 ID:/ojbA3WN.net] Javaの入門書でクライアントGUIアプリを教えるのはいい加減やめりゃいいのにな 初心者はアプリといえばクライアントアプリしか想像できない人が多いんだから、あのせいで独学者はみんな勘違いする
840 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 18:54:13.19 ID:LbzoRXHI.net] なぜだ 格好悪かろうと一言語で全て完結するという理想を満たしている 腕が上がって他へ移るかは本人が決めること
841 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 18:58:58.88 ID:wkSg93q8.net] 役に立たない理想なんか衒学趣味のタコ助野郎だけ学んでろ
842 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 19:04:27.00 ID:pvK3vfp5.net] 理想もない猿は黙ってろよ。
843 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 19:09:29.77 ID:d2PTajMw.net] >>836 つまりメリットはないということですか? V2Cはswingみたいですが
844 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 19:27:23.03 ID:e+TlXwYN.net] swingと聞いて思い浮ぶのはPureJava、JTable、産廃 異論は認める
845 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 19:43:30.64 ID:AvO2qKU5.net] 自分用ツール作るとかに便利じゃないです? コード使い回せるし
846 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 20:29:31.64 ID:kYOSRyqE.net] そう思うならやれよ勝手に
847 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 21:49:23.05 ID:HSh/i7Wo.net] VBよりはいいだろ
848 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 22:06:53.77 ID:Tzc6nBCT.net] Eclipseは?
849 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 22:09:27.12 ID:9d27o1oJ.net] >>834 ElectronはJavaScript、SwingはJava、Electronはスレ違。 JavaでGUIやるならだいたいSwingかJavaFX。まぁSwingで問題なし。 Swing駄目って言っているやつは、ただSwingに挫折した無能だから気にする必要なし。
850 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 22:11:38.23 ID:HjHXlP56.net] ク ク || プ / ク ク || プ / ス ク ス _ | | │ //. ス ク ス _ | | │ // / ス ─ | | ッ // / ス ─ | | ッ // / _____ // / // . / l⌒l l⌒l \ )) ____ . / / ̄| ,=| |=、| ̄ヾ /
851 名前:Q___ヽ / ̄/ ̄. ー'●ー'  ̄l ̄ | | /, −、, -、l )) | ̄l ̄ ̄ __ |.  ̄l ̄.| _| -| ,=|=、 || |. ̄| ̄ ̄ `Y⌒l__ ̄ノ ̄ (6. ー っ-´、} ヽ ヽ 人_( ヾ ヽ `Y⌒l_ノ >〓〓〓〓〓〓-イ /ヽ 人_( ヽ / / Θ ヽ| /  ̄ ̄ ̄ ヽ-イ [] [ここ壊れてます]
852 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 14:25:52.84 ID:D7k3fKbj.net] swingは今更ねーわ。 electron 〉javafx 〉ローカルホストでweb 〉swing 今からやれと言われて検討するならこうなる。
853 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 15:55:02.34 ID:JWprMCTU.net] eclipseで使ってるのはSWTというやつでSwingともまた違う swing/swt/javafxいずれも専用スレがある
854 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 16:20:24.00 ID:AqghDwj4.net] >>849 electronはjsだ
855 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 16:21:02.89 ID:AqghDwj4.net] >>849 ローカルでwebとか意味不明。馬鹿?
856 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 16:23:11.24 ID:RIjMUPE/.net] 次のページ(research.nii.ac.jp/~uno/codes-j.htm )の、「FREQT」もしくは「FREQT ver4」プログラムを動かしたいのですが、 やり方が全く分かりません。 プログラミング経験は、C言語はfor文等を使って数値計算をしたことがある程度です。Javaは経験は無かったのですが、JDKはダウンロードしました。 「FREQT」プログラムをjavacでコンパイルしようとしても、どうにもうまくいきません。JAXPというものが絡んでいるようですが、ここ数日取り組んでみて結局うまくいきませんでした。 もしプログラミングに詳しい方がいらっしゃいましたら、どうか動かし方を教えて頂けないでしょうか?
857 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 16:43:16.23 ID:uoaKuNhz.net] JavaでGUI(おそらくWindwos)を作るって事は、既存のライブラリ資産を活かしたいからだろ 別にSwingでもいいんじゃない
858 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 17:03:24.50 ID:GM81CXhl.net] Electronが選択肢にあるんだからJavaでなくてもいいんだろ 明らかにElectronが正解
859 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 18:28:58.83 ID:dHr3PrBM.net] 素人がElectron使うとXSSで爆発するけどね
860 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 20:29:14.56 ID:/ZO0bpA6.net] jspでセッション情報の保持は ヘッダ情報にcookie:xxxxx みたいな形で保持されてるらしいですが、 セッション情報が残っている時に、 ブラウザのcookieを消すとセッション情報が消えるのはなぜですか? jspならhtml形式だからcookieとは違うはずなのに
861 名前:デフォルトの名無しさん [2016/06/07(火) 21:17:20.48 ID:Guppn9xI.net] void hoge(String shape) { switch (shape) case
862 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 04:30:31.82 ID:E3Y0fydP.net] >>853 JAXP (Java API for XML Parsing) JAXPは、米Sun Microsystems社が提供するJava言語用の標準XML APIである。 SAX 2.0, DOM 2, XSLTなどの機能を含む JavaのXMLは、よく知らない。 Groovyなら、XmlParser, XmlSlurper を使うけど 正確なエラーメッセージで検索すればいいよ。 エラーメッセージが無ければ、漏れらにもわからない
863 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 08:59:24.49 ID:VWzAs+2U.net] >>853 https://xml.apache.org/svn.htmlからcrimsonをダウンロード 具体的には`svn co svn.apache.org/repos/asf/xml/crimson/trunk/ xml-crimson`みたいにする あとはmakeと打って、エラーが出るDomWrapperとPatternをjavac -classpath .:xml-crimson/srcつけて手動でコンパイル コンパイルはできたけど動作確認はしてない
864 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 21:43:45.88 ID:Of4rxDsn.net] 俺たちのやる作業レベルでは大した速度の違いはない
865 名前:デフォルトの名無しさん [2016/06/09(木) 02:40:45.99 ID:86wjM1QZ.net] そういえば Java ってミリ秒単位で現在時取れるけどマイクロ秒とかナノ秒では取れないの?
866 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 06:53:39.91 ID:W1J6KNMM.net] μとかナノ単位で取れたとしても使いみちなくなくない?
867 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 07:41:15.69 ID:sulveNBl.net] >>862 OSで計れる時間を勉強してから出直して来い
868 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 07:55:51.57 ID:Uf/9VKKE.net] バージョン1UUIDのタイムスタンプが100ナノ秒単位
869 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 08:36:20.04 ID:PZQxvZoz.net] スッキリjavaにjava8からマイクロとれるようになったって書いてあった気がする
870 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 08:51:24.33 ID:dIu2vu4F.net] 勘違いじゃねーの Java8 DateTime APIはナノ秒の精度で時刻を格納してるけど ナノ秒の精度で現在時刻を取得できるわけではない 情報源がSystem.currentTimeMillisだから精度上げようがない nanoTimeってのもあるが、あれは時刻じゃない
871 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 09:32:53.36 ID:CSH5zx3A.net] たかがPCのおまけ内蔵時計にマイクロ秒単位の精度求めるのん? CPU占有してインターバル求める位ならまだなんとかなるかもだが
872 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 09:58:27.87 ID:aGzbUoMt.net] そもそも、量子力学の知見によれば、この物理世界そのものも、何秒以下では、時間が連続していないわけで
873 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 10:08:07.57 ID:8bnSb6E3.net] >>868 現在時刻が欲しいんじゃなくて差分を利用して処理にかかった時間を計測したりとかの用途でしょ
874 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 10:42:12.37 ID:U9CsIV6v.net] 862が現在時って言ってるから現在時の話をしとるんだろうがコルァァァァァァア
875 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 15:59:12.13 ID:PZQxvZoz.net] >>867 そういう事だったのか さんくす
876 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 16:01:07.29 ID:PZQxvZoz.net] System.nanoTimeっていうのもあるらしい
877 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 16:04:50.36 ID:lRCEzphN.net] さっさといねよ、厨房
878 名前:デフォルトの名無しさん [2016/06/09(木) 19:47:04.21 ID:z86Am/NW.net] void createShapr(String shape){ if (shape.equals(
879 名前:デフォルトの名無しさん [2016/06/09(木) 19:47:55.21 ID:z86Am/NW.net] "Triangle"){ hoge.add(new Triangle())} else if (shape.equals("Circle") {hoge.add(new Circle())} else if (shape.equals("Square") {hoge.add(new Square())} else if ....... } こういうコードのリファクタリングはどのようにするべき?
880 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 19:59:20.36 ID:VbYktpbq.net] Decorator のように見えるけど Chain of Responsibility かもな
881 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 20:54:43.93 ID:ifPE+NTk.net] >>876 HashMap<String, ShapeFactory>
882 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 21:24:55.29 ID:5jXMB1Ia.net] >>857 まず大前提として、createXxxって名前つけたんなら void createShapr(String shape){hoge.add(new Circle());} // 条件等省略 ↑こういうのじゃなくて Shape createShape(String s) {return new Circle();} // 条件等省略 ↑こういうふうにしてほしい。 さらに、クラス名をShapeFactoryとしてしまっていい場合は、 メソッド名も単にcreateだけでよくてスッキリ。 あ、あくまでこれは個人的感想ね。
883 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 21:26:23.12 ID:rWnG5Ha6.net] おっと…>>875 だった。
884 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 21:28:21.88 ID:kVyFEPmq.net] 釣れるネタ
885 名前:デフォルトの名無しさん [2016/06/09(木) 23:0
] [ここ壊れてます]
886 名前:1:38.63 ID:z86Am/NW.net mailto: 875だえす。 名前はsetShapeかaddShapeにしたほうが良かったと思う。 [] [ここ壊れてます]
887 名前:デフォルトの名無しさん [2016/06/10(金) 02:07:11.83 ID:iCsTtZ3L.net] Factoryをリフレクションでやればよくね public static Shape create(String shape) { String fqn = Shape.class.getPackage().getName() + "." + shape + "Shape"; Class<Shape> classe = (Class<Shape>) Class.forName(fqn); Shape obj = classe.newInstance(); return obj; } public abstract class Shape { protected Shape() {} } public class TriangleShape extends Shape { } public class CircleShape extends Shape { }
888 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 10:46:09.29 ID:XvceIi0Z.net] 静的解析出来ない依存性はやだなぁ
889 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 20:27:09.88 ID:FpIylB97.net] classA.classB.classC[hoge]->hage() classA.classB.classC[hoge].sun() classA.classB.classC[hoge]["pikapika"]=true; って感じになってて長いので myFunc(classA.classB.classC[hoge]){ ->hage(); .sun(); ["pikapika"]=true; } 的なことってできませんか
890 名前:デフォルトの名無しさん [2016/06/10(金) 20:36:52.18 ID:u+tsBWPR.net] >>885 それはJavaですか?
891 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:49:29.94 ID:lGk3iJgb.net] >>885 c++(11以降)ならこんな感じで auto& a = classA.classB.classC[hoge]; a->hage(); a.sun(); a["pikapika"]=true;
892 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 20:50:46.64 ID:jWym4ASr.net] 書き込み先間違えても謝らないなんて C++erって糞やな
893 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 22:25:30.78 ID:QKWa7och.net] しーぷらぷらーって読めばいいの?
894 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 22:29:32.84 ID:Vqz0UhNC.net] アメリカ人なら スィープラスプラスアウゥ って言うだろうな
895 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 22:35:38.40 ID:4cZJjeON.net] シー! ぷらぷら アーッ!
896 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 11:46:01.74 ID:L+tKyIDw.net] jarファイルの中にある sample.libs.hoge.classのメソッドを5つ、メンバ変数を2つ追加(メンバ変数一つに対し、set/get + HogeA ) したHogeAを作りたいのですが //修正前 import sample.libs.hoge; Hoge hoge = new Hoge(); // => 設定関係が勝手にセットされrun()が自動的に実行される //修正後 import sample.libs.hogeA; // => hogeを拡張したhogeEX的な存在 HogeA hogea = new HogeA(); Hogea.setURL("www.sample.com./ababa/" ); Hogea.setTimeout(5); Hogea.run(); こんな感じにしたいのですが 可能ですかね・・・
897 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 12:20:38.11 ID:A1KXN1Y2.net] HogeAがThreadクラスをextendsしてればできるんじゃね? hogea.start()だけどな
898 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 12:22:56.04 ID:A1KXN1Y2.net] ああ、インターネットにアクセスするだけならThreadいらないわな
899 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 12:25:18.40 ID:A1KXN1Y2.net] 度々御免。 インターネットアクセス中に処理が戻ってきてほしいならThread 処理が止まってもいいならThreadいらないな
900 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 13:00:32.24 ID:Mj2HqjrQ.net] >>892 アクセスレベルが判明しない以上はわからない、publicとかprivateとか https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
901 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 15:56:32.25 ID:h4KLgWKn.net] >>892 よく言いたいことがわからないけど、継承させればいいんじゃね? finalが付いていなけりゃだけど 継承できないならリフレクションすればいいし
902 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 19:15:55.13 ID:qjbwxnFC.net] すいませんあのー 入門書にある多態性のざっくり捉えることのメリットについての説明がよくわからないんですが 何か簡単なプログラム例を出して教えていただけないですか?
903 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 19:19:12.08 ID:Q+rj
] [ここ壊れてます]
904 名前:Y21+.net mailto: 検索したのかよ? [] [ここ壊れてます]
905 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 19:38:55.88 ID:NNE4K5OW.net] 変態でぐぐれ
906 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 19:43:22.61 ID:h4KLgWKn.net] 俺の画像がトップに来たわ
907 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 20:10:35.38 ID:L+tKyIDw.net] 悩んでて聞いたのは良いけど自分のレベルが足りなすぎて何を言われてるのかわからない・・・ゴメン・・・ thread・・・リフレクション なんかリフレクションって全て弾き返しそう ちょっと強そう Hogeはほぼ全てprivateで書かれてます Hogeにはfinalはありません。 イメージ伝わるかな・・・ /* HogeA.java*/(今回作るプログラム ~/${project_name}/lib/HogeA.javaに格納) import sample.lib.Hoge; //(sample_lib_001.jarの中に格納されてる) class HogeA extends Hoge{ public void HogeA(){}// 呼びだされた時は特に何もしない public void setURL(string _url){ //プライベートの所に値入れる// Hoge::url => private String url = _url; } public void setTimeout(int _time){ //プライベートの所に値入れる// Hoge::time は存在しないのでHogeA::time(0-?)をprivateで作りたい time = if(_time<60)?time:60:; } //↓困ってる所-1- 1,2行更新するために全部コピペしないとダメ? public boolean _run(){ /* Hoge()が呼び出されていた時に実行されていた処理を全て行う。更新/追加されたメンバー変数(time/url)を使用。*/; return true; } private int time=60; // private メンバ変数 timeの追加(HogeA::setTimeout/HogeA::getTimeout(省略)にて使用) } /* main.java */ import override.sample_lib_001.lib.HogeA; //←困ってる所2 今回作ったHogeAをこんな感じで呼びたい import Logger; class main{ public Logger log = new Logger("/dir/aaa.log"); public void main(){boolean flag=false;HogeA hogea = new HogeA();hogea.setURL("www.sample.com./ababa/" );flag = hogea._run();log.info("run : "+if(flag === true)?"success":"failed"); }// }
908 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 20:14:38.66 ID:qjbwxnFC.net] >>899 はい。java多態性入門で検索しました。 ただ入門ぽい入門者に対して説明されてるとこが見つかりませんでした。
909 名前:デフォルトの名無しさん [2016/06/13(月) 20:58:17.73 ID:0tlfaplt.net] >>902 全部コピー?継承さらてわじゃないの? てか、コンパイルした結果はどうなの?エラー出たの?そらともコンパイルできたけど意図した通りに動かないの?
910 名前:デフォルトの名無しさん [2016/06/13(月) 20:59:23.62 ID:0tlfaplt.net] あ。タイプミスった。スマホのフリック入力でミスると変なタイプミスになるな。w
911 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 21:02:23.29 ID:zP9qG/5E.net] >>898 デザインパターンとか調べると分かるかも
912 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 21:11:00.63 ID:zP9qG/5E.net] >>898 追記 ストラテジーパターンが、わかりやすいかも 2つのクラスで共通するメソッドを使えるので、重複するコードを減らせる
913 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 21:12:19.48 ID:L+tKyIDw.net] >>904 やりたいことが多すぎてごっちゃになっててたのに今気がついた。 import の所がそもそも動いてなくてテストができてない・・・ 全部っていうのはメソッドの中の処理全部・・・ hoge()//元のメソッド { ↓コピペ1 ...... ..... .. .. ↑ここまで 修正したい場所1← 修正したい場所2← ↓コピペ2 .. .... .....略 ↑コピペ2 } ↑こんな感じで修正したいヶ所はたった2ヶ所だけなんだけど hogeA()//Hoge継承?してきて2行修正しただけのhogeAメソッド { コピペ1 修正ヶ所1 修正ヶ所2 コピペ2 } 全部コピペしないとだめかな。ここのコピペ部分どうにか省略出来・・・る訳無いか・・・
914 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 21:15:34.40 ID:
] [ここ壊れてます]
915 名前:qjbwxnFC.net mailto: >>906 デザインパターン java 入門 でいいですか? ありがとうございます! [] [ここ壊れてます]
916 名前:デフォルトの名無しさん [2016/06/13(月) 21:33:43.26 ID:0tlfaplt.net] >>908 詳細わからねえからなんとも言えんが、多分できない。
917 名前:デフォルトの名無しさん [2016/06/15(水) 02:33:32.00 ID:gHR2VZA2.net] >>902 なんかHogeとHogeAの関係性が逆なんじゃないの class HogeA { private String url; private int time; public void HogeA(){}; public void setURL(String url) { this.url = url; } public void setTime(int time) { this.time = time; } public void run() {…} } class Hoge extends HogeA { public Hoge() { setURL(“XXX”); setTime(0); run(); } } HogeとHogeAを用意する意図が分からないので疑問を挟まず要件を満たすならこんな感じ
918 名前:デフォルトの名無しさん [2016/06/15(水) 11:26:32.12 ID:RLysB/OD.net] java初心者なんだけどいい? コマンドラインから1〜6打ち込んでその数字を乱数で比較して勝ち負けを判定するものつくりたいんだけど C++みたいに1〜6で数字の入力を制限することができないんだけどソースどーやって書くの
919 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 11:29:51.22 ID:yd8lnPA+.net] 外国の方ですか?
920 名前:デフォルトの名無しさん [2016/06/15(水) 11:46:43.75 ID:RLysB/OD.net] >>913 外人ぽい日本人が聞いてる
921 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 11:48:50.82 ID:6xgxkumJ.net] なぜコマンドラインなのかButtonで入力しては駄目なのか単体テストで済む話じゃないのか
922 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 11:55:57.41 ID:3GkgPPDP.net] >>910 (´・ω・`)残念 >>911 jarファイル(Hoge含む)は私が作ったものではなく、更に毎月更新される。 なので直接修正せず何らかの手段でその部分だけ修正できないかなと 試行錯誤してます(´・ω・`)