↓以下前スレに引き続き再帰の適切な使い方を知らない馬鹿達によるレスの応酬
再起厨リソース観点ないことがバレて顔真っ赤WWWWWWWWW
指摘されて言い返せないのがよほど悔しかったんだろうな わからない分野は口出さなきゃいいのにあほだよな
Windowsのネィティブなスレッドでは 一度成長したスタックは二度と縮小しないんじゃなかったっけ? 一度でもStackOverflow起こしたJavaスレッドをスレッドプールから捨てて 新スレッドを補充しとくのは、流石に神経質すぎるのかな
Windowsのネイティブスレッドはスタックサイズ変更できない=そもそも成長しない、だと思ったが。 スタックポインタが一度移動したら二度と戻らん、って誤解はたぶんないと思うんだが。
JavaがScalaに統合されるのか・・・ じゃあもうScala勉強すっかな
>>9 血の汗を流しても届かない領域を渇望する幼い子供の願望が良く表現できてると思う。
スレチかもしれんが・・・ java初心者が勉強を兼ねてWebアプリケーションを作ってみたいと思うんだ こんなの作ったら勉強になるよとか、そういうのってある?
panelとかのswingを勉強したいのですが、 おすすめの書籍ご存知でしたら教えてください
とりあえずショッピングサイトつくってみればいいさ
>>12 チャットサイトつくるのは勉強になったよ
今は自宅鯖でゲームサイト作ってるけど
>>14 なるほど。仕様とかは尼とか楽天参考にして頑張ってみるよ
ありがとう
>>15 チャットか・・・難しそうだな
それも勉強してみる。ありがとう
>>17 サンプルがや解説サイト、書籍も多いから逆に有利だと思うよ
がんばって
>>17 チャットが難しいならbbsとか。
servletならchatのが勉強になると思うけど。
他の言語も経験ないならコマンドラインアプリのがいいと思う。
>>16 実際に使えるもの目標にすると、モチベーション保てるしいいよ。
仲間内で使えるパスワード付きうpろだとかどうよ。
>>20 bbsは確かNetbeansのサンプルであったね。
あれを拡張しても面白い。
自演乙
24 :
デフォルトの名無しさん :2012/08/09(木) 06:58:12.72
基本の中の基本の質問です 今本読みながら勉強してるんだが 大文字とかってちゃんと大文字にしなきゃダメですか? 例えばStringをstringとか
当然。Javaは大文字と小文字を厳密に区別する言語
26 :
デフォルトの名無しさん :2012/08/09(木) 07:03:06.37
ありがとう! やっぱり誰かに質問してよかった ありがとう
いえいえ、いいんですよ
while(true){}には、 Thredのsleepみたいな休憩みたいなの入れなくて大丈夫なんでしょうか HSPだとかならずawait命令いれなくちゃだめでした
{}のなかにどういうきじゅつすればかかなくてもいいんでしょうか
むしろ書かなきゃいけない場合のほうが少ないだろ
Javaはマルチスレッドだからな
>>8 踏んだらびっくりサイトだった みんな気をつけて
34 :
デフォルトの名無しさん :2012/08/09(木) 11:16:56.20
mainメソッドを持たないクラスにテストを書く場合、 JUnitとかのフレームワークを使わずにmainメソッドに書く場合がある。 ファイル数増やすのが嫌な時とかJUnit等のフレームワークを用意するのが面倒な時に使われる。
>>34 まず、どのmain関数が呼ばれるかはどのクラスを実行するかによります
javaを実行するとき
java クラス名
と実行しますよね。このとき、指定したクラスのmainが呼ばれるのです。
もし、関連する他のクラスにmainメソッドがあってもそれは実行されません。
繰り返しますが、java クラス名 のクラスにあるmainメソッドが実行されます
そして、なぜassertがmainにあるかについてですが、特に深く考える必要もありません
Cardクラスを単体にTestするときに使うのでしょう
調べてもわからなかったので質問させていただきます。 public static void main(String[] args){ while(true){ try{ System.out.println("hoge"); Thread.sleep(10000); //10秒待つ System.out.println("piyo"); method(); //1秒程度の処理 }catch(Exception e){ e.printStackTrace(); } } } 上記のような構文で、10秒ごとにある処理を行うプログラムを永続的に動かしているのですが、 7、8時間ぐらい経つと例外も何も出さずに止まってしまいます。 ログを見直すと、必ず最後の出力がhogeになっているので、Thread.sleep(10000)の中で止まっていると思われます。 環境はさくらのレンタルサーバで動かしており、OSはFreeBSD 8.1です。 もしかしたらJavaの問題ではないのかもしれませんが、解決策はありますでしょうか?
method(); を呼ばないパターンもテストすべき
>>37 止まった時のスレッドダンプしてみてはいかが?
何か原因わかるかも
40 :
37 :2012/08/09(木) 15:22:29.97
なるほど。両方試してみます。
>>34 使われるから存在するのではない。それは定義だ。
java.lang.System.out.plintlnを利用したからといってSystemにあるものを全て使うわけでないし、何があるか知る必要すらない。
もっと知りたいならオブジェクト指向開発を学べ。
この例だけで言うなら
>>35
>>35 >>36 ありがとう。参考になりました。
>>37 一定感覚で走らせてて一定の時間でおちるのなら、メモリリークしてる可能性もありそう
>>41 の
"使われるから存在するのではない。それは定義だ。"
これは、Javaで有名な名言かなにかですか?
質問との関連性がよくわかりません。
java.security.PrivateKeyのインスタンスがある時に、 このインスタンスからPublicKeyを生成するにはどうすればいいですか? KeyPairGeneratorはありますが、既にあるPrivateKeyから PublickKeyを生成する方法が分かりませんでした. KeyGeneratorとKeyFactoryも調べてみましたが、違うようです 今試している具象クラスはECPrivateKeyですが、 RSAやDHでも共通の変換用のインタフェースは用意されないのでしょうか?
>>45 作れないんじゃね?
たぶんジェネレータは[A B C]の3つのデータを適当に生成して、B→B'に変換して、
[A B']から公開鍵を、[B' C]から秘密鍵を作るのよ。で最後にBは捨てる。
[B' C]の秘密鍵だけ知ってても、Aは判らないし、B'からBは計算できないから、
原理上公開鍵は作れない。たぶん。数学的根拠はわからん。
>>44 そんな格言はきいたことがない。
basicのように上から下に流れる古いプログラミングをイメージしてそうだったから、最近のはそういうものじゃないってことだろう。
class A{ Jlist定義 } class B{ 読み込んできたデータをオブジェクトにする } class C{ データベース読み込み } この様な構成になっている時、Jlistにオブジェクトにしたデータベースの内容をいれるにはどのように考えればいいのでしょうか? 自分はAでCのメソッドを呼び出し、データベースの内容を取得し、 それをBでオブジェクトにすると考えたのですが、 その後どうやってAのlistに入れるのかがわかりません。
Cで読み込んで、その場でオブジェクトにしたらいかんの?
>>48 クラス図書いて、mvcに分けて、依存関係を正しくしろ。データベースとの境界もvな。
なんかそころへんのこと独習サーバーサイドJavaに載ってたな あの本わかりやすいから買ってよんだらどうだろう どうでもいい意見だから聞き流してもよかです すいません
てか基本的過ぎて何がわからないのかすら分からない。
AとかBとか抽象的に書いてるのに、どこに分類すべきかわかるわけない。
次の問題を解くのは無理だと思いますが 「できた」という天才プログラマーがいらっしゃいましたら ぜひご教授ください スレッドA public void run(){ : 任意の位置に wait() が複数挿入されています 呼び出した関数からさらに関数を呼び出して そこに wait() が存在する場合もあります wait() の挿入位置や個数に規則性はありません : } スレッドAを start() させると 当然 wait() 位置でスレッドが待機されます 別スレッドから任意のタイミングで notify() を実行させると スレッドAの wait状態が解除されて再開されます
そしてスレッドAはまた wait() 位置で待機します ここで一旦プロセスを終了させます 当然スレッドAも終了させます どの wait() 位置でプロセスを閉じるかについては まったく規則性はありません プロセスがまた開始させた時に スレッドAの wait() されていた前回の位置から 実行されるように再現したいと考えています 一体このようなセーブ・ロード法はあるでしょうか? ご教授お願いいたします
呼び出すメソッドが wait() と notify() でなければならないって縛りがなければ方法はあるっちゃあるけど、 標準APIのメソッド一つ呼べばOKみたいな簡単な方法なら無いよ。
ご教授はすべて死ね
ふつうオブジェクトの保存っていったら直列化だけど、スレッドどこで待機したかとかどうするんだろう
質問スレで質問して何が悪いんだ?
テキストに進捗ステータスと変数の値吐けば解決だね^^!
教授されたいなら、学校に行くなり、どこかに弟子入りするなり
「ご教授」は別に誤用じゃないから
既にあるrun()内のコードを改変せずに そのまま保存・再開させるのは無理だな 結局はスレッド内で状態を記録しておくしかない
単純に自前でバイトコードインタプリタ実装してステートセーブすりゃいいんじゃね? 速度でなくても知らんがな。
JDにご教授願いたい
>>65 誤用だから。
ネットでバカみたいな理屈こねて言いくるめてるヤツがいるだけ
>>70 字引引いて当てはまるとかいう連中はみんなブタ。
そもそもそんな使い方はしない。
漢字も読めないやつらが音だけ聞いて勘違いしただけ。
夏厨うざい
日付と値が入った配列を偶数の日と奇数の日と3で割れる日に分割してそれぞれ配列に格納したいのですが 何を参考に自習すればよいのでしょうか?
日付と値が入った配列を偶数の日と奇数の日と3で割れる日に分割してそれぞれ配列に格納したいのですが 何を参考に自習すればよいのでしょうか? 多次元配列と配列の自動生成がよく分かりません。オススメの参考図書を教えてください。
>日付と値が入った配列 を具体的にコードで示しておいた方がいい
76 :
デフォルトの名無しさん :2012/08/11(土) 16:54:33.02
インターフェイスで質問です。 public interface MyInterface { public int func(MyInterface obj); } これの二行目のMyInterfaceって何ですか? 定義したインターフェイスがどのクラスで使われるか分からないから、インターフェイス名を型として使えるということですか? インターフェイスを変数の型として定義した場合、アサインするオブジェクトはインターフェイスを実装しているクラスのインスタンスでないといけませんとありました。 これと絡んでもう一つ質問です。このインターフェイスを実装しているクラスでは public double func(MyInterface obj){ MyClass otherObj = (MyClass)obj; ・・・} としてから使ってるのですが、このMyClassを囲っている括弧はどういう意味があるんですか? 実装しているクラスのインスタンスなら、objのまま使ってもよさそうなんですが、これは何をしているのでしょうか。
二行目のMyInterfaceは型名です インターフェイス名は型名として使えます 型名を括弧で囲み、式の前に付けると、キャストになります double x = 1.5; int y = (int) x; みたいな書き方を見たことはありませんか? obj のまま使ってもいいと思いますが、何かそうしたい理由があるんでしょうね
>>76 >(MyClass)obj;
「ダウンキャスト」と言うもの
MyInterfaceを受け取ると言いながら実はMyClassしか対応しておらず、
MyInterfaceに無く、MyClassにあるメソッドやメンバ変数を必要としているので
基本的には良くないプログラム
ただしAPI側とのやりとりの都合上やむを得ない場合もある
なにこの糞スレw
糞レスの筆頭はお帰り下さい
81 :
76 :2012/08/11(土) 19:03:12.94
>>77 後出しになって申し訳ないですが、ダウンキャストしないとMyClassの別のメソッドは見えませんでした。
>>78 たぶん理解できたと思います。ありがとうございました。
参照先も同じでgetClass()でもMyClassが帰ってくるのに、そのクラスのフィールドやメソッドにアクセスできないのは
なんだかモヤっとします。
>>81 >そのクラスのフィールドやメソッドにアクセスできないのは
アクセスさせないからこそinterfaceに意味がある
interfaceを引数として受け取るということは、
そのinterfaceだけが前提条件だと表明しているということ
何か商品の説明書に「単3電池で動きます」と書かれていて
実は東芝性のアルカリ単3電池でしか動かないとかだったら嫌でしょ?
ダウンキャストがあると、MyClass以外のMyInterfaceを
実装しているオブジェクトが渡された場合に実行時例外になる
これは動かしてみないと分からないことで、
せっかくコンパイラがコンパイル時に不整合を見つけてくれる仕組みがあるのに
それを台無しにしている
実行時例外の何がいけないのですか。 ぬるぽでも出るじゃないですか。
ぬるぽ対策は代数的データ型が言語仕様に入るまで長らくお待ち下さい・・・
>>83 捉えられない例外が発生するということは、シナリオが達成できないということだから、よくない。
>>85 Spring Frameworkを使うとほぼすべてが…。
代数的データ型ってなんですか?
ああ、javaには無いからね、少なくとも現在のバージョンには ぬるぽは気をつかうしかない
ふーん
while(rs.next()){ m.id = rs.getInt("id"); m.name = (String) (rs.getObject("name")); list.add(m); System.out.println("" + list.get(index) + ""); index++; } for(index = 0 ; index < list.size(); index++){ System.out.println("" + list.get(index) + ""); } データベースに入っている項目をオブジェクトにし、ArrayListにいれています。 whileでオブジェクトmに格納し、直後にその内容を出力しています。 次のfor文でListの中を出力しているのですが、最後の項目が、登録した個数分出力されます。 例) --while-- ねこ いぬ うさぎ --for-- うさぎ うさぎ うさぎ どこが間違っているのか教えていただけませんか?
m はループのたびに new されていない list に add した m はすべて同一のオブジェクト 同一オブジェクトの name は同一
getStringではなくgetObjectをダウンキャストしてたり、printlnで文字列変換してたり いったいどんなDBなんだ?
IBAKAはシャックみたいだな。
ソースコードに「--変数;」 ってあるんだがどういう意味?
デクリメント演算子でぐぐる
>>92 ご丁寧にありがとうございました。
すべて同じmに入れていたのでこのようなことになっていたのですね。
>>93 手直しし忘れていた箇所でした。
getObjectですべて受け取って、名前だけは
public String toString() {
return "" + name + "" ;
}
としています。toStringを上書きしろという指示だったので…。
System.out.println("" + list.get(index) + "");
で名前が出てくるのは何故ですか?listにはObjectとしてmをいれていて、
そのmにはid、nameなどあるのにnameがでてくるのがちょっと疑問です…
toString() 上書きして name を返すようにしてんだろ。
>>97 System.out.println(Object o);
とすると、oのtoStringが呼ばれるからだすよ
もし、oでtoStringをオーバーライドしてなければ、そのObjectクラスのtoStringが呼ばれるので(すべてのクラスはObjectを継承していますよね)、そのオブジェクトのIDが返されます。
>>97 すいません上の書き込み意味不明なこと書いてます
日本語が不自由ですいません
System.out.println(Object o);
とすると、oのクラスのtoStringが呼ばれるからだすよ
もし、oでtoStringをオーバーライドしてなければ、ObjectクラスのtoStringが呼ばれるので、Objectクラスで定義されている通りに、オブジェクトのIDが返されます。
>>97 +演算子はobjectを引数にとると、toStringを用いて文字列表現にしてから結合します。
"" + list.get(index).toString() + ""と同じ。
toStringはデバッグ用くらいに考えてgetNameを追加する人もいる。
ArrayList<E> a=func(obj); E[] e=(E[])a.toArray(new E[0]); のように感じで、ArrayList<E>から、特にsize==0のときでも、E[]を作りたいんですがどうやればいいでしょうか?
Class<E> elementType をどこかに持っておいて、 a.toArray(java.lang.reflect.Array.newInstance(elementType, a.size()))
>>103 javaのジェネリクスの仕様上、具体的なE.classを渡さないと無理
http://ideone.com/qQBSS 何故なら、コンパイル後は
>ArrayList<E> a=func(obj);
が
>ArrayList a=func(obj);
になるので、aから実行時に"E"という情報を取得することが不可能になる
ArrayList<E>はjava.utilパッケージなので、Class<E> elementTypeをどこかに持たせるようなソースの改造はライセンス違反になるのでどこにも持たせられません。 E[]のsize==0は無理かなと薄々感じていたんですが、次期Javaではtype annnotations (type-generics)だったかが入るのでこういうのも出来るようになるのでしょうか? それとも<E>の実行時型情報、<E>.getClass()は次期Javaでもやはり無理なのでしょうか?
もちろんArrayListは改造できないのでArrayListに持たせることはできないが、 あなたが自分で書いているクラスは改造できるのだからあなたが自分で書いているクラスに持たせることはできるんじゃないの? もしくは toArray が引数 E[] を外から受け取っているように、あなたのメソッドも引数 E[] を外から受け取ればいい
<E>.classのようなgenericsの型情報をサポートしないと、いつまでもList<E>の様にクラス・インターフェイスに依存してばかりで、配列ベースのライブラリの作成は一向に進みません。 自分でライブラリを作るようになると、List<E>とは違う配列の良さが分かるようになるでしょうね。
>>106 >>108 コンパイラやライブラリでなくJavaVMの仕様レベルでの変更になる
当然そのバージョンより前のVMでは実行不可能になるし
既存のリフレクション処理が全滅になりかねない
可能かどうかはOracleの気合次第かな・・・
ちなみにC#はジェネリック導入時点から実行時も型情報が残る
>>109 Integer[] i={1,2,3,4};
Object[] a=i;
for(Object e:a) System.err.println(e);
配列ではこれが可能なのでjvm仕様のレベルというのは考えすぎじゃないですか?
<E>とかE[]はあくまでもジャバ言語レベルの静的解決の問題でしたし、配列ではキャストが仕様で認められているので、generics型の実行時型情報取得<E>.classが出来たとしてもご心配のような問題は多分生じないと思います。
実際、クラス・インターフェイスをベースとしたライブラリでも、Iterator<E>はともかくListIterator<E>を使ってる人はかなり少ないんじゃないですかね。
もちろんIteratorのような抽象クラス・ベースのメリットはありますが、[]も結構多くのメリットがあります。
ラムダやパラレルでも[]もサポートしてくれるとさらにいいんですけど、次期リリースではどうなんでしょう。
>>110 まずjavaのジェネリックがどう実装されてるか調べてみ
配列とどれ程不整合があることか
Javaクイズ!〜これであなたも立派なJavaプログラマー!?〜 ※なお、Oracle JavaSEプログラマになるため学習範囲から出します. 準拠JavaSE7.0 初級者問題 1.Javaで書かれたコード.javaファイルは○○○ファイルに変換され、JVMによって実行される 〜に入るカナカナ3文字は? 2.同パッケージ内にないクラスは〜文を記述してから使います 〜に入るのは? 3.リテラルとは? 4.Javaは変数に型がなくても、JVMで自動で判断して補ってくれるので、明記しなくてよい。 ○か×か 5.a += b; の意味は? 6.if (a = b){} これは文法的に正しく、aとbが等しい場合{}を実行するという意味である。 ○か×か 7.例外クラスはすべて、Throwableを継承したクラスである ○か×か 8.Stringは基本データ型(プリミティブ型)である ○か×か
まんどくせー
普通問題 1.javac でコンパイルしたクラスは、デフォルトでははどこに出力されるか? 2.jarファイル内のクラスを使用したい時は、import ××.jarで指定して使う。 ○か×か 3.byte b; b = 2; これは正しい記述である。○か×か 4.int型の変数xが初期化されていた場合、 if (x == 0)[ System.out.println("xは0である"); }else { System.out.println("xは0でない"); } という記述と System.out.println(x == 0 ? "xは0である" : "xは0でない"); は、xが任意の数であっても常におなじ出力をする。○か×か 5.Aクラスにmainメソッドを記述すれば、Aクラスをインスタンス化しなくてもの任意のフィールドにアクセスできる。○か×か 6.switch(式)の式はint型のみ有効である ○か×か 7.例外クラスのうち、非チェック例外は○○クラスを継承する必要がある。○○とは? 8.autoboxing機能は、基本データ型をラッパークラスに自動変換する機能である。○か×か 9.文字列の正規化のうち、\(バックスペース)dは数字を表す。○か×か 10.直列化できるクラスがimplementsする必要のあるインターフェースは何か
1.クラス →ソースコードはクラスファイルに変換され、JVMはクラスファイルを実行します 2.import → 外部パッケージのクラスはimportしないと使えません 3.直接記述するあたいのこと →真偽リテラル、文字リテラル、整数リテラル、不動少数リテラル、文字列リテラル、空リテラルがあります 4.× →Javaの変数は全て型を記述しなくてはなりません 5.aにbを加えた値をaに代入する →複合演算子です 他に -= *= /= %=があります。 6.× →a = bは代入という意味です。等価演算子は == なので if(a == b){}としなくてはなりません。 7.○ →例外クラスはすべてThrowableのサブクラスです。 8.× →Stringクラスは基本データ型ではありません。ただし、文字列リテラルは存在します。
1.カレントディレクトリ →コンソールのカレントディレクトリに出力されます。出力先を指定するには -Dオプションを使います。 2.× →jarファイルは直接指定できません。 3.× →byte型のリテラルは存在しないのでb = (byte)2;と縮小変換して代入します。初期化の場合のみbyte b = 2;と記述できます。 4.○ →三項演算子は 条件 ? 真の時の値 : 偽の時の値 ;なので、xを任意に変えても出力は同じになります 5.× →非staticなフィールドはクラス内のmainメソッドだからといってアクセスできません。インスタンス化する必要があります。 6.× →SE7からStringもswitch文で使えるので、正しくはint と String が使えます。 7.RuntimeException →この例外を継承すれば、例外の処理を明記しなくてもコンパイルできます。 8.○ →メソッドの引数は戻り値などで、自動で変換してくれます。逆はunboxing機能と言います。 9.○ →問題が間違っています。正しくは正規表現です。申し訳ありません。正規表現はほぼC言語と同じです。 10.serializable →直列はオブジェクトを保存する方法です。直列化すれば、ファイルの入出力やネットワークでのデータ通信時に便利に使えます
>>115 >2.import → 外部パッケージのクラスはimportしないと使えません
112の問題に対する答えとしてはあっているが、importしないと使えない
というのは間違い。なぜならパッケージを含めてクラス名を書けばいいから。
そもそもimportというのは、省略して表記できるというものでしかない。
>>117 そうだね 完全修飾名記述すれば使えるよね
119 :
115 :2012/08/13(月) 22:17:55.24
へえ switch文String使えるようになったんだ 便利だなあ
enumもswitchに使えるんだけどな。 switchにintしか使えないが誤りになったのは1.5以降。
むしろenumってswitchのためにあるような
それはない
>>112 激ムズだな
1. ジャバファイルじゃなくてjavaファイルなのにカタカナで答えがあるなんて
2. そもそもpublicなクラスじゃないと無理だったりして
3. 他のプログラミング言語と違うのってjava7のアンダースコアの話とか、
二進数のリテラルとか?
4. 変数に型がなくってもって状態がそもそも想定できないけど、めんどくさい時は明記せずにObject型の引数でメソッドを作ればいいってこと?
toStringメソッドとかObject型にあるメソッドはポリモーフィズムでJVMが判断するよね?
5. aが数値の基本型ならaにbを加算する。String型ならaの参照する文字列とString.valueOf(b)の値と結合した文字列が生成されてその文字列をaが参照する。
aがjava.lang.Number のサブクラスの変数の場合、オートオートアンボクシングが働きa+bが数値として計算されたのち、オートボクシングが働きaの型のオブジェクトが生成され、aが参照する。
6,7,8は易しい。
また否定厨がきたか なんでも否定しないと気がすまないんだなあ
>>124 激ムズとかよほど頭弱いんですねw
1.カタカナで指定されてるのにカタカナで答えるのに疑問をもつってどういうこと?
2.同じパッケージ内になければpublicにかかわらずimportしないと使えないのでは?
3.javaでクイズ出してるのに他の言語はどっから持ってきたんですか?
4.○×問題で何を疑問に思ってるの?
5.そこまで考えてるならすべての型の場合を答えにしないと答えにならないのでは?
もういいから別のところでやってくれよ
>>126 問題文を直せという意味だろ。
問題文の構成として稚拙かつ卑怯だと俺は思う。
>>111 どうも意図が伝わらなかったみたいですが、現在のjava言語仕様の範囲でも技術的に可能でもその指摘を省略しすぎたので少し難しかったかもしれません。
c#の型情報が実行時でも残りjavaではjvm互換性からイレージャされるというのはよく指摘されますが、これすらもjava言語の範囲で、配列のキャストでサポートできます。
簡潔にイメージで述べれば、c#は属性で<E>の実際の静的割り当て型を記録するならjavaではannnotationになりますが、これはjava6(java7?)でもサポートされてないみたいで無理です。
このannotationによるアプローチではなく、switch(enum)やswitch(string)が(bytecode上で)if構文に変換されるように、配列キャストや生成の数行をbytecodeでそのまま自動生成するようなハックです。
するとnew <E>[0]もbytecodeにそのようなコードに変換されますが、<E>がレキシカルに依存するのでjava言語仕様の構文解釈の変更が必要です。
generics型の配列生成は、引数では void func(E... e); 戻り値では E[] func(); などライブラリを作るときでもよく使うのでやはり必要です。
このあたりは中の人が一所懸命研究していると思いますが私の仕事ではありません。
言語仕様の変更が必要なので、generics型の配列とnew <E>[0]などE[]生成などの論点は、どうせならcollection literalsの論点と近いので一緒に検証するのがいいんじゃないでしょうか。 これについては、[]を上の用にbytecodeなどで拡張するのではなく、List<E>の生成シュガーでもなく、tuple (pythonなど)型リテラルを新規に導入するのが過去の互換性に縛られないので結局は一番早いかなと思います。 java言語では[]の抽象化クラスはjavaにはなく、せいぜいList<E>、場合によってはListIterator<E>なので、ラムダとかパラレルとかIterable<E>に手を入れる予定ならこの辺にもちょっと手を入れて欲しいと期待しています。
ここ一応質問スレだよ
すごく正確性求めるのに2ちゃんやるとか時間の使い方間違ってると思う
?
馬鹿には無理
>>130 C#とJavaの総称型の違いについて(C#設計者へのインタビュー)
http://matarillo.com/general/hejlsberg_interview.php#s2 javaはVM変更無し路線、C#はCLR変更有り路線
>属性で<E>の実際の静的割り当て型を記録するなら
してないよ
C#のジェネリックはJavaの配列と同様にコンパイル後及び実行時も型に残る
>生成の数行をbytecodeで
その生成の数行のための情報が無いから無理なの
コード変換で可能ならとっくに実装されてるよ
<T> void f(T v)があるとき、new T[]可能ということは、メソッドの実体が型毎に存在する必要がある
C++では完全に静的に、C#ではCLR時点で総称型をそのまま保持して動的に型毎のメソッドの実体を生成している
>new <E>[0]も
new E[0]だから構文解釈の変更は不要
http://ideone.com/310kt >generic array creation
コンパイラは総称型配列の構文を既に認識していて明確なエラーメッセージを出す
Javaにとっては、C++どころかC#のことなんか関係ねーよ
馬鹿には無理
> aがjava.lang.Number のサブクラスの変数の場合、オートオートアンボクシングが働きa+bが数値として計算されたのち、オートボクシングが働きaの型のオブジェクトが生成され、aが参照する。 まじで? とうとうBigDecimalで四則演算できる日がきたか。
このスレだと誰が何答えても否定されるよ
>>140 オートボクシングが効く条件が違うみたいだね
BigDecimalで四則演算したいならXtendでも使ってみたらいいのでは
public class WinApp extends JFrame { private JLabel label; private JTextField field; private JButton button1; public WinApp(){ this.setSize(new Dimension(300, 300)); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); label = new JLabel("This is Sample"); this.add(label, BorderLayout.NORTH); field = new JTextField(); this.add(field, BorderLayout.CENTER); button1 = new JButton("CLICK"); button1.addActionListener(this); this.add(button1, BorderLayout.SOUTH); } public void actionPerformed(ActionEvent ae){ if(ae.getActionCommand() == "CLICK"){ //System.out.println("button event"); } } public static void main(String[] args) { new WinApp().setVisible(true); } }
サイトに載っていたコードを真似して
>>145 を作成したけど、↓のエラーが出ます。
直し方がわかりません。どうすればいいの?
#javac WinApp.java
WinApp.java:22: addActionListener(java.awt.event.ActionListener) (javax.swing.AbstractButton 内) を (WinApp) に適用できません
button1.addActionListener(this);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
↓改行が多くて書き込めないのでimportはこっちに分割。
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
>public class WinApp extends JFrame { public class WinApp extends JFrame implements ActionListener {
サンクス!
149 :
デフォルトの名無しさん :2012/08/16(木) 00:23:54.54
会社はWindowsとC#の案件しかなくて、自宅でJavaを始めようと思いNetBeansで学習開始したんですが、HTMLのデザイナないんですねこれ・・・。 Visual Studioみたいにコードとデザイナがあり、自動補完が優秀なIDEないでしょうか?
Eclipseじゃだめなんかい。
j#にすればいいよ!
public class Main{ //定数を列挙する public static void main(String[] args){ //ここにローカル変数かきまくって手続き型の処理を書く } //必要な関数をstaticで作る } こういう使い方するとC言語っぽくかけますよね? 自分C言語長年使ってきたのでこういう使い方してもいいですか
Javaっぽく書くのも時代遅れなので 好きにしてください
>>153 プライベートなコードなら好きにしろ。
そうでないなら規約に従うか他のメンバに聞け。
>>158 それ勉強にならないだろ・・・おまえ文系だろ?
161 :
デフォルトの名無しさん :2012/08/16(木) 10:36:07.18
パラダイムシフトについていけない人は消えて
動けばいいやという発想ならもう捨てた方がいい。 動くのは誰でも作れるけど、その運営やメンテナンスは誰にでも出来るわけではない。
なんでこんなに叩かれるのかわかりません(´・ω:;.:... 自分はたしかに文系ですがそれは関係ないでしょう? うちの会社は動けば提出できるんです ほっといてください
零細ブラック会社乙
>>164 提出って学校の課題じゃあるまいし。
テストの問題と違って、仕様変更で問題変わるからな。それに対応するためにjava使ってる。
なんで叩かれるかわからないとかマジで消えて
コーダーの分際で仕様変更とか何いってんお?w
構造体とかどうしているのだろうか?
>>169 設計どおりにコード書くだけの仕事が国内にどれだけ残ってるかねえ
コーダーは無能だからコーダーなのであって、ただのコーダーが設計とかできるわけねーだろ?w 雑魚コーダーが自力で作れるはウェッブアプリだけっっw そういう雑魚にジャヴァは無理無理w
173 :
デフォルトの名無しさん :2012/08/16(木) 11:29:57.06
>>164 後を引き継ぐのが大変だから。
自分の労働コストを最小化して
とりあえず給料貰えればいいという人が
多いけども
>>171 んだな。
これからも亡国から送られてくるクソコードと格闘しなきゃならん…。
全ては設計がまずいのはわかってるのだが、わしの加わる前だからどうにもならん。
>>173 日本人でそんな感覚じゃもう終わりだよな。
Javaを勉強しろってのはオブジェクト指向を勉強しろを 含んでいるはずなのに上司が分からないことをいいことに Javaで構造化プログラミングをして提出するなんてやつは クビだ。クビ。
将来はジャヴァコーダーになりたいんですがどういう学校に行けばコーダーになれますか?
特定の言語を勉強するなんてのは実はどうでもよくて、 アルゴリズムや技法を理解してれば言語が多少変わろうが どうにでもなる。 特定の言語の理解に集中すると替えが効かなくなるよ。
Java PGが上から目線とかマジワロスwww
>>176 無理にOOPを追求しても複雑怪奇になるし、構造化のアスペクトだけで片付けられることは多いから、あまりOOPにこだわらない方がいい。
特にジャバは何をやるにもコンパイルが必要でしょ?
コンパイル前の設計段階で完成させなければならないし、そういう作る前に完成させる達人級の設計はそもそも我々のような凡夫には到底まね出来ない。
182 :
デフォルトの名無しさん :2012/08/16(木) 11:54:22.09
>>178 今話題になってるのはそんな高いレベルの話ではないと思うが・・・
この業界以外と狭いから
>>164 が書いた
単に動けばいいって方針で作られたCぽいJavaプログラムを
この中のだれががメンテする可能性もあるから過剰反応してると思われ
>>182 動けばいいって方針で作られたプログラムほど
あとから見ると反吐が出るんだよなぁ。
作った奴目の前に出てきたら思いっきりグーでぶん殴りたくなるw
>>181 コンパイルが必要だからこそ、設計であらかた終わらせとくのでは?
>>184 耳学問も結構ですけど、もうちょっとちゃんと勉強した方がいいんじゃないですか?
ボクもコーダーになりたいんですがどこで勉強すればいいですか?
うんこ
うんこ
193 :
デフォルトの名無しさん :2012/08/16(木) 13:33:59.44
>>183 消費税は5%、元号は平成で決めうちされたの
沢山見てきたけどどうなるんだろうな。
マスタ化とかしないでコピペで作ると
製造時のコストは低いかもしれんが・・・
いいんじゃないのそれで。 作り直しならジャバの仕事が増えるしプラットフォームのバージョンを上げるいい機会だし。
>>194 まぁ5年くらい放置されると移行もできないプログラムもあるくらいだからな。
(某PBとか昔のV○とか)
Javaはマシな方。
そうそう。日本は割り箸と同じで使い捨てがデフォだから、継ぎはぎだらけにしてア・パッチーにするより、新規に作り直して、老害は使い捨て。 日本人ならおば捨て山の話は知ってるだろ?それと同じ。
うんこ
客>仕様の変更は消費税一ヵ所なんだから、簡単だよな。
うん
そうなんですか・・・ WEB コーダーとWINDOWS コーダーとJAVA コーダーで年収が一番高いのはどれですか?
>>203 windows向けのwebappでjavaをコーディングすれば一緒。
JAVAだと設計云々で叩かれていつまでもモノが出来ない、WEBだとブラックでゆくゆくは自殺だし、やっぱりWINDOWS コーダーが一番のようですね。日本では。
うんこ
でもCだと結局無駄なところで時間食って開発速度は遅いわ間違いは多いわで連日ニュースになってるよな。 素人が作るのと大して変わらないもので済む開発ならCで十分だとは思うが。
ここが1番勢いがあったのでここでjavascriptの質問をするあることをお許し下さい
cをちょっとやったことあるだけのものなんですが、時計のやつでここで多分12時間表示にしてるんですが24時間表示にするにはどういう文にすればいいですか?
http://i.imgur.com/K6iC3.jpg
Cをちょっとやってればわかるだろwww
ウィッス^^;
216 :
デフォルトの名無しさん :2012/08/17(金) 06:27:58.23
C++(C++Builder)で、主に業務で5年ほどWindowsアプリケーションやっててきましたが、やっぱここでJAVA覚えてWeb系アプリケーションとか、Android向けアプリケーションやっていきたいと考えてます。 スムーズに移行させるために、何か参考になる良書とか、コツとかあれば教えて頂けますか?
>>216 >スムーズに移行
そんなものがあればこっちが知りたい
HTML Parserを使おうとして困った点があったので質問させて頂きます。
サンプルのURLを
http://www.busnavi.net/cgi-bin/tsection.cgi?a=l&m=TK&k=TKTM010101&s=130100810000&intv=0 で試したら、どうも表示される中身を取得できていないみたいです。
とりあえず普通に、HttpURLConnectionで上のURLの中身を表示しようとしたのですが、
<html>
<head>
<title>ご案内</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body bgcolor="#dcdcdc">
<HR>
<ご案内>
<HR>
入力が不正です。正しい手順で操作してください。 <BR>
…
と表示されて、目的のページが見えていないようです。
何か他に設定することがあるのでしょうか?
google先生と相談してるのですが、なかなか教えてくれないので、
お力添えをお願いします。
androidはスレ違い
JREのクラスでjavadoc見ても最終更新日とか載ってないのですが、 例えばバージョン7のStringクラスのソースがバージョン6から変わってないとかの情報を知る方法はあるでしょうか?
追加された要素は説明のところに @since 1.7 とか書いてあるよ。 コード書いた奴がサボってなければ。
>>219 見えてるんじゃねーか。エラーページが。
>>223 URLをブラウザで直打ちした場合は、正しく運行状況のページが表示されるのですが、
プログラムの場合だとエラーがかえってくるんですよ…
>>224 とかいって読めてるなら200じゃないの。
リクエストが違うから結果が違うんだろう。
最初は変なページでなくて静的ページでやった方がいいと思うぞ。
>>224 もうJavaの質問じゃなくなってるな。
URL直打ちだとHTTP GETでリクエストが飛ぶけど、
プログラムだとHTTP POSTでリクエストが飛ぶかも
というのを踏まえた上での質問なのか?
>>226 最初に考えるのは知らないUAはエラーとするクソサイトだって方だろう。わざとミスリードしてたならすまん。
228 :
デフォルトの名無しさん :2012/08/17(金) 15:17:54.65
web.xmlのurl-mappingの書式について知りたいんですが良いページがあったら教えて下さい。 /*/a.html */a.html *a.html というような書き方をしたいんですが、出来ないようなので FILENAMEがa.htmlであるURL全て、という指定をしたいのです
>>216 ネイティブはネイティブで生かしたままjava化していくのが一番の早道だよね。
一々作り直していたんでは、1990年代から2000年初頭の開発者の大失敗の轍が生かされてないことになるし。
>>224 基本的にそういう時ってルートURLが正しく設定されてないよね
>>224 パケットキャプチャして足りないHTTPヘッダを追加していけば
取得できるよ。
>>231 キャプチャしてみました。
RequestヘッダにUser-Agentなどの情報がのっていなかったのが原因だったようです。
UerAgentのプロパティをセットしたら無事取得できました。
若干スレ違いな質問になってしまいましたが、
皆様、アドバイスありがとうございました。
ua name送らない実装もあるんだ。
ふっふっ
よ、あらし
ソースコードからフローチャートを自動生成するソフトがあれば教えて下さい。
今時フローチャートかよ。 ということは、mainから始まるのか?
>>237 今どきなんだが、そう言われたもので。
mainから。
そういやwebappで言われたことあったな。Actionごとにフローチャート書いて、メソッド分2、3個処理として書いただけだ。お役所仕事。 すまんが、手動だった。
普通のフローチャートにできませんと言ったら上司に怒られた。 オブジェクト指向的にフローチャートを書いたら、上司が理解できなくて怒ってた。
よくいるよな。 最初からjavaでやらせんなよ、その上司。 成果物最初に確認してても後からフローチャート出せとか言い出す。
>>241 いやjavaじゃなくてC++の話なんだけどな。でその言語を選んだのは上司じゃなくて俺だ。
>>242 ソフト探してる人とは別か。
許可を出したのは上司だろう。
>>237 まあでもメソッド内は有りじゃないかね。
というか今有るフローチャートもUMLも上司の世代が標準化したもので 今使ってる世代なんてただオーダー通りに従ってるだけでしょ。
247 :
デフォルトの名無しさん :2012/08/18(土) 23:15:47.87
値を捜して、その値があればそれを返すメッソッドで、 public BankAccount find(int accountNumber){ for (BankAccount account : accounts){ if (account.getAccountNumber() == accountNumber) // Found a match return account; } return null; // No match in the entire array list } を,voidで System.out.println("No mataches"); や System.out.println(accout); でしても良いと思うのですが、値を出力するメソッドを作ってした方がいいのでしょうか?
出力以外のことをしたいときは似たようなメソッドをまた作るの?
249 :
デフォルトの名無しさん :2012/08/19(日) 00:00:11.55
そうすると思います。やはり、returnの値を受けとる物を作った方がいいですかね。
>>249 まぁ別にいいんじゃない
俺としては同じようなメソッドを何度も何度も書くよりは一度書いたものを使い回す方が楽だと思うけど
違った考え方をする人もいるでしょう
field = new JTextField(); field = setPreferredSize(new Dimension(200,100)); とかでサイズ指定しても、BoxLayoutを混ぜると、このサイズ指定が無効になるような気がするんですが、あってますか?
BoxLayoutの場合はsetMaximumSizeを使いましょう
254 :
デフォルトの名無しさん :2012/08/19(日) 08:56:50.10
>>250 氏通の製品、astahのプロ版はリバースエンジニアリングできるけど
256 :
デフォルトの名無しさん :2012/08/19(日) 10:07:26.97
◯◯が分からない YES → 【ヒットした?】 ─ YES → なら聞くなよ。死ね。 / \ 【検索した?】 NO → 的外れな検索だろ?死ね。 \ NO → 死ね。 YES → 【見つかった?】 ─ YES → なら聞くなよ。死ね。 / \ 【過去ログ全部見た?】 NO → そんなはずねぇよ。嘘つくな死ね。 \ NO → 死ね。
フローチャート厨うざい
>>256 そのチャート前も見た
過去ログみろよ死ね
フローチャート批判厨もうざい
毎日特定の時刻に動作させたいのですがTimer()やカレンダーを使うと年月日までセットしないといけない羽目になります。 特定の日時を変数に入れるだけでいいのです。19:00:00ってな感じで。 調べても出てきませんでした。
うるう秒とかあるからじゃね?
>>260 Java関係ないけどcronとか使えば
263 :
デフォルトの名無しさん :2012/08/19(日) 23:59:09.82
private Enum hoge; public Enum getHoge() { return hoge; } と書いたらEclipseに怒られて、 private Enum<?> hoge; public Enum<?> getHoge() { return hoge; } にしろと言われるんですが、この<?>の意味ってなんなんでしょうか? <? extend Hage>ならHageを継承したクラスという意味ですが
>>263 そもそも?はワイルドカードって意味
なのでどのクラスも許可しますって意味
他に? super クラスならそのクラスとスーパークラスを許可するって意味
>>264 ありがとうございます
では、この場合のジェネリクスって何か意味あるのでしょうか?
呼び出し側はgetHoge()を呼ぶときに、型パラメーター与えたりすれば、何か総称的なメソッドになったりするのでしょうか?
>>265 意味はあります。
おっしゃるとおり、型をワイルドカードにしておけば総称的なメソッドになります。
総称的なEnumを返すメソッドというべきでしょうか
そのEnumの中の定数クラスを固定したいのであればEnumの宣言時に指定すればいいだけですし、呼び出し側で自由に決めたいのであればそのようにワイルドカードで指定したクラスにすればいいのです。
ちなみにEnumは文法ではなくクラスなので、実際は
public abstract class Enum<E extends Enum<E>>
extends Object
implements Comparable<E>, Serializable
と定義されてます(1.7)
従って意味があろうとなかろうとまずは指定しなければ警告がでます。
すいません 書いてる途中、間違ったまま書き込んでしまいました そのEnumの中の定数のクラスの型を固定したいのであればEnumの宣言時に指定すればいいだけですし、呼び出し側で自由に決めたいのであればそのようにワイルドカードで指定したクラスにすればいいのです。 です
HashMapとかなんか複雑でよくわかりません 意味不明です どうつかえばいいんですか
>>269 Mapインターフェイスさえ理解できてればok
あとはnull許容かどうか
キーとバリューがあるってところはわかるんですけど それに<>とかたくさんついてるし意味不明です。 <>てなんのためにあるんですか
ジェネリクスでぐぐれ
273 :
デフォルトの名無しさん :2012/08/20(月) 11:39:05.86
System.out.println('a+'1'); を書いた時の結果がなぜ、146になるのでしょうか? a unicodeの97とは関係ないのですか?
274 :
デフォルトの名無しさん :2012/08/20(月) 11:43:05.92
抜けててました これです System.out.println('a'+'1');
>>274 演算したら暗黙の拡大型変換されcharはintになる
だから'a'+'1'はint型
'a' は 97 で '1' は 49 だから 97+49 = 146 合ってるじゃないか
277 :
デフォルトの名無しさん :2012/08/20(月) 12:44:04.24
WindowsAzureにJavaGUIは対応してるのですか?
いいえ
280 :
デフォルトの名無しさん :2012/08/20(月) 21:28:07.50
Foo型の変数があります。 メソッドにはbarがあるとします。 Foo foo = new Foo(); それをObject型として別のクラスのメソッドに渡し、その中でインスタンスの型を判定して Foo型であればキャストし、bar()を実行させます。 public void method(Object obj) { if (obj instanceof Foo) (Foo) obj.bar(); } この一連の処理ってどんな風になってるのでしょうか? Foo foo = new Foo()の時に、スタックとヒープにfooのメモリ領域が確保されますよね? それで別のクラスのメソッドに渡したとき 、つまりvoid method(Object obj) のときに、 新しいスタック領域にfooへの参照が作られるんですよね? でもこの参照は、object型としてなのに、実はFoo型であるという情報も有してるわけですよね? (そうでないと、instanceofで判定できないはず) そして、このobject型としてのfooをFoo型にキャストしたときは、 その新しいスタック領域が書き換えられるだけなんでしょうか?
参照はポインタ的なものしか持ってない。 型情報は(メソッド呼び出しに使うメソッド参照的なものも含めて)参照先のオブジェクトが持ってる。
>>281 ありがとうございます
そうなると、
Foo型のインスタンスをObject型として渡した時に、
ヒープ領域のインスタンスの型情報(のひとつ?)がObject型に書き換わって
キャストしたら、それがFoo型になるのでしょうか?
コンパイル時の型と個々のオブジェクトが持つ型情報は別ね。
>>282 ヒープ上のインスタンスの型情報は生涯変わらない
生成したときから回収されるときまでずっと Foo 型のまま
Foo 型インスタンスを Object 型変数で参照することはできる
インスタンスと変数の区別が重要
>>285 ローカル変数はそうだよ (ローカル変数以外にインスタンス変数とクラス変数があるよ)
obj はスタック領域に作られた Object 型の変数
obj が参照しているものは、ヒープ領域に作られた Foo 型のインスタンス
obj instanceof Foo は、変数 obj が参照しているもの (= Foo 型のインスタンス) の型情報 (= Foo) を調べて、Foo かどうかを true/false で返す
((Foo) obj).bar() は、変数 obj が参照しているもの (= Foo 型のインスタンス) を Foo 型にキャストし、その bar メソッドを呼ぶ
Foo 型にキャストするとは、実行時の効果としては、インスタンスの型が Foo 型じゃなかったときに ClassCastException を投げる
というだけで、実際に何かが書き換わるわけではない
インスタンスの型も変数の型も何も変わらない
プリミティブ型の変数は値もスタックにある。オブジェクト型の変数はスタックにヒープへの参照がある。 参照とはヒープのアドレスで、プリミティブと似たような長さなので、どちらもスタックに。 合ってる?
>>287 >プリミティブ型の変数は値もスタックにある。オブジェクト型の変数はスタックにヒープへの参照がある。
「オブジェクト型の変数はヒープへの参照であり、スタック上にある」が正確か。しかし、
「オブジェクト型の変数がヒープへの参照であり、ヒープ上にある」もありうる。
http://ideone.com/Hsn7s
289 :
デフォルトの名無しさん :2012/08/21(火) 05:31:08.50
では、なぜスタック領域とヒープ領域に分けられているのでしょうか? 明快な説明ができるかたお願いします。
>>289 実のところスタックとかヒープとか関係ないのでは?
便宜上、new で確保された領域をヒープ、new 以外の方法で確保された領域をスタックと呼んでいるだけかと、本質的には。
>>289 実装上の効率の問題だろう
メソッドは、そこに入ったらそこで使用するローカル変数ぶんのメモリが新たに必要になり、出るとそのメモリは確実に不要になる
そしてメソッドの出入りというのは、かなり頻繁に行われる
必要なメモリを確保するために空き領域リストを手繰るだとか、不要になったメモリ領域をGCに探させて回収させるとかいった、
通常のヒープ領域のメモリの扱い方でこれを扱っても別にいいんだが、ちょっと負荷が大きい
そこで、一定のメモリ領域をあらかじめ割り当てておき、その端から順に、入ったぶんだけ伸ばし出たぶんだけ縮めるような使い方を考える
このやり方なら、必要なメモリを求めて探す必要もなく、不要になったメモリを回収するため探す必要もなく、前述の負荷はかからない
メソッドから出る順序は、メソッドに入る順序と必ず逆だし、メソッドから出たらその領域は必ず不要になるから、このやり方が成り立つ
このような、端から順に積み上げ、積み下ろすようなメモリの使い方を、スタックという
new で生成するインスタンスは、メソッドの出入りと寿命が必ずしも一致していないから、スタック領域のやり方では扱えない
そういうわけでスタック領域とヒープ領域に分けて使うのが効率の観点から優れている
Java の言語仕様上はスタックもヒープもない
単に実装上の技巧だ
292 :
288 :2012/08/21(火) 07:21:42.75
インナークラスにおける static とはどういう意味でしょうか?
二分木をまず、次のように実装してみて
http://ideone.com/5VkUP さらに class Node や class Indirect は class BinTree でのみみえておればよいと考えインナークラスにしたのですが
http://ideone.com/4NjfE この static クラスの意味はどう考えればいいのでしょうか?
(たまたまインナークラスをstaticとするとコンパイルが通ってしまいました‥‥‥)
よろしくお願いいたします。
staticつけるとインナークラスじゃなくなる。 staticがつかない、取り囲むクラスインスタンスの参照を暗黙のうちに持つのがインナークラス。
294 :
285 :2012/08/21(火) 08:29:10.52
java6でコンパイルしたクラスをjava5で実行はできるでしょうか? java7のコンパイルクラスでjava6の実行とかも… いわゆる上位互換なんてものは、ないですよね…
java6の時代にjava7は無いのに何言ってんだ
297 :
デフォルトの名無しさん :2012/08/21(火) 10:56:33.05
力仕事やめて 新しい会社でjava覚えだしたけど楽しいね。 まだ最初の最初、変数キャストのあたりだけど どこらへんでつまずくのかな。。
最初は楽しいんだけど、動くのが当たり前。納期。 このプレッシャーがかかり始めると楽しくなくなってくる。
>>296 でもクラスファイルの仕様が変わらないんだったら動くことも期待できるでしょ?
Databaseだった下位バージョンのバックアップが上位バージョンでインポートできたりと
期待するのは自由だー
>>295 -target -source -bootclasspath あたり指定しろ
継承でのアクセス修飾子の質問です public abstarct class Zukei{ private double menseki; public abstarct double getMenseki(); } public class Circle extends Zukei{ double radius; public Circle(double r){ radius = r; } public double getMenseki(){ menseki = 3.14 * (radius * radius); return menseki; } } Zukeiがprivateでmensekiを定義しているのでこの場合サブクラスがmensekiを使おうとしたらエラーになると思います 実際に試してみましたが、やはりエラーでした しかし、私が利用している参考書にはこのコードを前提に継承が解説されています 8年程前の本なのですが、javaの仕様、主にアクセス修飾子に何か変更があったのでしょうか?
ない
見づらいコードの書き方になってしまい申し訳ないです 「ない」ですか、ということは本のミスということですかね?
おそらく
306 :
302 :2012/08/21(火) 14:52:50.89
もう一度本の方を確認してみたところ コードの2ページ後にクラス図が載せてありました そのクラス図によればZukeiのmensekiはちゃんと-でなく#となっており どうやらprotectedとprivateを製作者さんが間違えてしまったのではないかと思われます お騒がせしました、ありがとうございました
307 :
デフォルトの名無しさん :2012/08/21(火) 16:48:42.64
JSP,ServletでWebアプリケーションを開発中。 ログイン中の各ユーザーごとに異なる値を保持するために、セッション保存すべき値なのですが、 JSPやサーブレットだけではなく、DBのDAO,DTOにまでその値を持ってくる必要が出てきて、 それぞれにセッションまたは値を渡すロジックを入れるとなると修正が膨大な量になってきます。 なるべく少ない修正で実現したいです。 JSPやサーブレットでなくとも、「自分のセッション」を取得する方法ってありませんか? もしくはセッション以外でユーザー個別に情報を置ける領域があればそれでもいいです。
セッションIDで分ければファイルでもDBでもいいのでは?
309 :
デフォルトの名無しさん :2012/08/21(火) 17:11:38.28
>>308 セッションIDを取り出すにはセッション(HttpSessionクラス)のインスタンスが必要だと思いますが、
それ以外の方法でIDだけ取り出す方法はあるのですか?
IDさえ取り出せれば、シングルトンクラスにでもIDをキーにしたHashMapで値を入れておけそうに思えますが。
あー。何も渡したくないんだったね。失敬。
馬鹿には無理w
312 :
デフォルトの名無しさん :2012/08/21(火) 18:49:44.85
java7にはopenGLは含まれていますか?
314 :
---------------------v-------------- :2012/08/21(火) 20:26:03.92
_ ─´ `\ /´ ┘└ `ヽ、 /´ U ┐┌ ヽ /´ _、、 `、 |´ U ,-  ̄○ ̄| | |´ ヽ、 ..ノ .,─ ̄ \ .| .| ──.'´ /. / .__...--ヽ | | -´ ̄` -_ \ / / /ヽ、 | ,-─ヽ, | | --_`ヽ、 / / ○ U |/./ヘ | .| レ´ ,.- `ヽ、ヽ、) (/ / .| .| /| | .| ,- ._| .ヽ○ .、. ヾ `'´ヽ_ .--- ̄___ .| |, 、ヽ | | .ヽ、 \ __ ., ヽ_-  ̄ ̄ ̄ ̄ .| 丶 .| | .| ´`ヽ,.`、  ̄_--/  ̄ .| ,L__ノ / | .´ |.ヽ --─ ̄ (___) ┐ .| / | /∧ ヽ ┌ | | ∪ / | イ´ .ヽ、 ´ `ヽ.| \_∪___/ | `'´ |、_,--- 、 `ヽ、 .| U \_/ / .|  ̄ ̄─ `ヽ- .| \__∪/ / U / .| \ ∪ /ソ| `─--- |\ / .| , -| ` ヽ 、__/ / |
JARファイルを作った時の質問です。 URL url = new URL(homepage); ※homepageにはホームページのアドレスを入れる 上記のようにURLクラスを使ってホームページにアクセスして入力ファイルとして読み込むプログラムを作り、 それをJARファイルにしたのですがJARファイルでホームページを読み込むことができません。 JARファイルでホームページにアクセスする方法ってありませんでしょうか?
jarファイルの実行方法を質問しているの? それとも、あなたのパソコンのインターネットへの接続方法を聞いているの?
>>315 jarにすると読みこめなくなるというのはたぶんパスの指定がおかしくなってるのでは・・・
>>319 できないとは、何をしたら、どうなって、できないと判断したの?
みんな君の後ろで見てたわけじゃないから、わからないよ。
すいません、今手持ちにそのできなかったプログラムを持っていないので 記憶で書くしかなかったんです…。ちゃんと確認してから書き込むべきでした。 どうやら自分の思っていた原因と違ったみたいだということを確認しました。 もう一度プログラムを見ながら原因を考えたいと思います。 そのため、315の質問はスルーで結構です…。 重ね重ね、すいませんでした。
荒らすな雑魚
おまえら人のミスには厳しいよな
多分、プログラム以前の問題と思われ。
たとえば?
からの〜
328 :
デフォルトの名無しさん :2012/08/22(水) 00:14:50.63
ぬるぽインタエクセプション;
例えば、 manifestのmainが設定されてない そもそも-jarを指定していない eclipse上で動くだけでjreの位置指定されてないからjavaが動いていない 実はwindowsでjarをタブルクリックしたが、関連付けがされていなくて実行されない 実はservletでjarがloadされてない 実はappletでsecurityにひっかかってる という夢を見たんだ。等々。
最初にそうするかは別にして、テキストエディタとコマンドラインでやってみて、CLASSPATHなどは理解しておくべき。
332 :
デフォルトの名無しさん :2012/08/22(水) 14:57:56.99
JSPなんですがJava質問スレでも大丈夫ですか?
作成中のWebアプリケーションが、
突然このようなエラーが出るようになりました。
http://i.imgur.com/e65zR.png java名前空間から始まるクラスだけが見えない状態のようです。
それ以外のクラスは自分で用意したものなので存在しています。
プロジェクトをクリーンしても治らないです。
解決方法はありませぬか?
最近サーブレットやJSPの話してんの同一人物だろ ここはJavaの質問スレッドなんで
殺伐としたところにすいませんが質問です Javaインストールしたのにスタートメニューのプログラムファイルやデスクトップにアイコンがなく実行する方法がわかりません。 どうやってプログラム書いたりしてそれを実行するのでしょうか
>>334 javacってファイルを検索しろ。
多かったらインストールした日で絞り込め。
>>332 一旦プロジェクトを削除してインポートしなおせば直る
>>335 これやったら20個くらい?ファイルが見つかったんですがこのあとどうすればいいですか
>>338 すいませんそれがよくわからないんですけどなんていうファイルを実行すればいいんですか
>>339 説明書嫁。
実行すればエラーとヘルプがでるはず。
サーブレットでリクエストがforwardが通常リクエストかをサーブレットクラスで判断できますか?
あの、だから質問してるんですからわかるように書いてください 自分で調べさせてわからないから聴いてるんですよ? あんたたち馬鹿ですか?聞くまでもなく馬鹿ですよね とくに〜でぐぐれとか、質問の意味理解してますか?おそらく自分の頭の中でだけ考えていって馬鹿としか思えません あんたらリアルでも教えてくださいって言われてそんなこというんですか? まったく低脳が多すぎて困ります どうやったら実行でっきるか明確にかけ
,r;;;;ミミミミミミヽ,,_ ,i':r" + `ミ;;, __,、 ≡ 彡 ミ;;;i 〃ニ;;::`lヽ,,_ ≡ 彡 ,,,,,、 ,,,,、、 ミ;;;! 〈 (lll!! テ-;;;;゙fn __,,--、_ .. ,ゞi" ̄ フ‐! ̄~~|-ゞ, ≡ /ヽ-〃;;;;;;;llllll7,,__/" \三=ー"."ヾi `ー‐'、 ,ゝ--、' 〉;r' ≡ 自分自身を客観的に見ることはできるんです >、/:::/<;;;lllメ \ヾ、 ヽTf=ヽ `,| / "ii" ヽ |ノ j,, ヾて)r=- | ヾ: :ヽ;;: | l | l ''t ←―→ )/イ^ ≡ あなたとは違うんです ,イ ヽ二)l(_,>" l| ::\;:: | | | ヽ,,-‐、i' / V i、ヽ--イll"/ ,, ,//,, :;; l // l く> /::l"'i::lll1-=:::: ̄\ ヾ==:"::^::;;:::/;;;;;;;;;:::::::::::::: :::::ゞ ノ/ L/〈:::t_イ::/ll|─-== ヾ \__::::::::/::::::::::::_;;;;;;;;;;;;;;;;;ノノ ヘ >(゙ )l:::l-┴ヾ、ヽ )  ̄~~ ̄ ̄/ :::|T==--::::: // / ト=-|:|-─ ( l / / :: ::l l::::::::::::::::::/ /:::::::::::/:::::(ヽ--─ / | / ヽ_=--"⌒ ゙゙̄ヾ:/ /:::::::/:::::::::`<==-- ノ / /
,r;;;;ミミミミミミヽ,,_ ,i':r" + `ミ;;, __,、 ≡ 彡 ミ;;;i 〃ニ;;::`lヽ,,_ ≡ 彡 ,,,,,、 ,,,,、、 ミ;;;! 〈 (lll!! テ-;;;;゙fn __,,--、_ .. ,ゞi" ̄ フ‐! ̄~~|-ゞ, ≡ /ヽ-〃;;;;;;;llllll7,,__/" \三=ー"."ヾi `ー‐'、 ,ゝ--、' 〉;r' ≡ 自分自身を客観的に見ることはできるんです >、/:::/<;;;lllメ \ヾ、 ヽTf=ヽ `,| / "ii" ヽ |ノ j,, ヾて)r=- | ヾ: :ヽ;;: | l | l ''t ←―→ )/イ^ ≡ あなたとは違うんです ,イ ヽ二)l(_,>" l| ::\;:: | | | ヽ,,-‐、i' / V i、ヽ--イll"/ ,, ,//,, :;; l // l く> /::l"'i::lll1-=:::: ̄\ ヾ==:"::^::;;:::/;;;;;;;;;:::::::::::::: :::::ゞ ノ/ L/〈:::t_イ::/ll|─-== ヾ \__::::::::/::::::::::::_;;;;;;;;;;;;;;;;;ノノ ヘ >(゙ )l:::l-┴ヾ、ヽ )  ̄~~ ̄ ̄/ :::|T==--::::: // / ト=-|:|-─ ( l / / :: ::l l::::::::::::::::::/ /:::::::::::/:::::(ヽ--─ / | / ヽ_=--"⌒ ゙゙̄ヾ:/ /:::::::/:::::::::`<==-- ノ / /
>>343 環境ごとに違うので答えられない。
私の環境ではshでjavacとtypeすると実行される。
,r;;;;ミミミミミミヽ,,_ ,i':r" + `ミ;;, __,、 ≡ 彡 ミ;;;i 〃ニ;;::`lヽ,,_ ≡ 彡 ,,,,,、 ,,,,、、 ミ;;;! 〈 (lll!! テ-;;;;゙fn __,,--、_ .. ,ゞi" ̄ フ‐! ̄~~|-ゞ, ≡ /ヽ-〃;;;;;;;llllll7,,__/" \三=ー"."ヾi `ー‐'、 ,ゝ--、' 〉;r' ≡ 自分自身を客観的に見ることはできるんです >、/:::/<;;;lllメ \ヾ、 ヽTf=ヽ `,| / "ii" ヽ |ノ j,, ヾて)r=- | ヾ: :ヽ;;: | l | l ''t ←―→ )/イ^ ≡ あなたとは違うんです ,イ ヽ二)l(_,>" l| ::\;:: | | | ヽ,,-‐、i' / V i、ヽ--イll"/ ,, ,//,, :;; l // l く> /::l"'i::lll1-=:::: ̄\ ヾ==:"::^::;;:::/;;;;;;;;;:::::::::::::: :::::ゞ ノ/ L/〈:::t_イ::/ll|─-== ヾ \__::::::::/::::::::::::_;;;;;;;;;;;;;;;;;ノノ ヘ >(゙ )l:::l-┴ヾ、ヽ )  ̄~~ ̄ ̄/ :::|T==--::::: // / ト=-|:|-─ ( l / / :: ::l l::::::::::::::::::/ /:::::::::::/:::::(ヽ--─ / | / ヽ_=--"⌒ ゙゙̄ヾ:/ /:::::::/:::::::::`<==-- ノ / /
金貰って教えている教師ならともかく。 赤の他人は親切に教えてくれて当たり前だバカって態度はどうなんだろうか。
/⌒ ヽ /\ /ヽ /´・ω・`ヽ ヽ、 lヽ' ` ´ きめぇwwwwwwww ,ノ ヽ、_,,, ニコ厨自重wwwwwwww きめえええwwvwww, '"´``Y'""``'j ヽ | { ,ノ' i| ,. ,、 ,,|,,ktkrwwwwwwwwwww ニ '、 ヾ ,`''-‐‐'''" ̄_{ ,ノi,、;;;ノ l ――‐ ・ キタ━━━━━━━━!! ヽ、, ,.- ,.,'/`''`,,_ ,,/ ヽ ・ `''ゞ-‐'" `'ヽ、,,、,、,,r' | ―――― ・ ,ノ きめぇええwwwwwwwww ./ ;ヽ .| ――┐ ↓お前の人生wwwwwwwwww .;;;l |. | つまんね・・・・・・ .| ,,, / ;;;| .| ――┘ | ,' ;;;l l ;;'i, ;| | ┌――― ↓ねーよwwww / / l `'ヽ, 、;| /. | 一 -十 俺のほうがマッチョだな ヽ l ,i| / | 口 ヽ| l`'''" ヽ `l: `''"`i `l / ヽノ \| wwwww l ,. i,' } !テラマッチョwwwwwwwwww ,, .--、,,__,,-' ̄;;"`´ ;; __ __, -―- 、;; ̄`l ┌┐┌┐ ちょwwwwwwwwなんぞこれwwwwwwww´| l ヽ.,/ ││││ /l ;;, -‐Y´| l __ /`'| | | l l;| l ヽ. └┘└┘ /|;;;;ヽ/ .| | |.;;l_,-'l | V | |.l .| .| l i i | ;;l | ○ 〇
>>343 javaの前に自分の環境を使いこなせるようになった方がいいと思うぞ。
I/Fの少ない、或いは抽象度の高いプログラムに限定するなら、同意。 デバッグが必要なプログラミングをしているのなら、何か間違っている。 しかし、GUIやドライバのような自分が全てを知り得ないようなものとのI/Fを プログラミングするのであれば、相性と言う問題も含めてデバッグが必要になってくる。 或いは、チューニング作業もある意味デバッグと言ってもいいかもしれない。 それはさて、トリッキーで短いコードは判り難いと言うことはそんなに受け容れ難いことなのかねぇ。
あの、だから質問してるんですからわかるように書いてください 自分で調べさせてわからないから聴いてるんですよ? あんたたち馬鹿ですか?聞くまでもなく馬鹿ですよね とくに〜でぐぐれとか、質問の意味理解してますか?おそらく自分の頭の中でだけ考えていって馬鹿としか思えません あんたらリアルでも教えてくださいって言われてそんなこというんですか? まったく低脳が多すぎて困ります どうやったら実行でっきるか明確にかけ
10年もたつとITリテラシが変わるので、再度一から知識リフレッシュをしなければならないんだが やらずに当時の試行錯誤がさらに力技になった果てに520が生まれるって印象。
自
演
乙
馬鹿には無理
Ideone.com使えば、人様のコンピュータでJavaの学習ができるぜ
361 :
デフォルトの名無しさん :2012/08/22(水) 20:30:20.53
Genericで質問です。 下のコードにあるメソッドcountGreaterThanの呼び方がわかりません。 ">"では基本的な型のみ適用されるため、インターフェイスでpublic int compareTo(T o)を定義しているとこまでは分かるのですが そこから先がわかりません。 どんな実装でメソッドを呼ぶのでしょうか。 ClassName.<Integer>countGreaterThan(anArray, elem); みたいな感じで呼んでも Bound mismatchとエラーがでます。 public interface Comparable<T> { public int compareTo(T o); } public static <T extends Comparable<T>> int countGreaterThan(T[] anArray, T elem) { int count = 0; for (T e : anArray) if (e.compareTo(elem) > 0) ++count; return count; }
Calendar[] array = new Calendar[] { new GregorianCalendar(2012, 8, 21), new GregorianCalendar(2012, 8, 23) }; countGreaterThan(array, new GregorianCalendar());
363 :
デフォルトの名無しさん :2012/08/22(水) 21:00:53.99
364 :
361 :2012/08/22(水) 22:02:41.76
>>362 レスありがとう。やってみたんですけどだめでした。↓のエラーがでました。
Bound mismatch: The generic method countGreaterThan(T[], T) of type ClassName is not applicable for the arguments (Calendar[], GregorianCalendar).
The inferred type Calendar is not a valid substitute for the bounded parameter <T extends Comparable<T>>
365 :
デフォルトの名無しさん :2012/08/22(水) 22:08:09.96
>>364 まさかとは思うけど、java.lang.Comparable使ってないとかじゃないよね?
自作Comparable<T>を使ってるんなら、その自作Comparable<T>を実装したクラスを作らないとだめだな
368 :
デフォルトの名無しさん :2012/08/22(水) 22:34:41.98
finalで宣言したメンバ変数は、コンストラクタのときは代入できて、それ以降は代入できないんですか?
はい
ありがとうございます
どういたしまして
JAVA信者ざまあwwwwオワコンwwww
>>361 インターフェースComparableのメソッドについて説明しよう
まずCompareToだがこれがある理由はソート(並び替え)のため。ソートの時にコレクションの要素の一個一個にこのメソッド呼び出した戻り値で並び替えてるんよ。
実装しないソートの場合、Comparatorクラスで比較なんてのもあるがな
さて、int CompareTo(T o)だが、これは比較対象oのインスタンスに対し、自身のインスタンスが大きい場合正の数、等しい場合0、小さい場合負の数になるように実装するのさ
例をだそう。次のようなTというクラスがあったとしよう。
public class T {
private int id;
private String name;
//id、nameはgetterを持つが省略
}
このTのインスタンスは並べ替えをするときIDで並べ替えるとする。そしたら、Comparableを実装して
public int ComparaTo(T o){
return this.id - o.getID(); //自身のIDから基準のIDを引く
}
を実装する。すると、ソートしたときこのメソッドの戻り値でソートされるんだからIDでソートしたことになるだろ?
でもこいつをStringで並び替えたいってなったら
public int ComparaTo(T o){
return this.name.compareTo(o.getName()); //StringにもCompareToが実装されてるんでアルファベット順のように自然順序で並び替えられる
}
と実装すりゃnameで並び替えられるんよ
ただ、この2つのメソッドはT内部に実装するんで、並び替え順が固定されてしまうだろ?ってことは並び替えを変えたいとなったら実装変えなきゃならんだろ?
だから、この比較メソッドだけ分離できるように便利にCoparatorてインターフェースがあるんだ。
こいつはint compare(T o1, T o2)てメソッドがあってo1とo2を比較するんよ。こいつもたとえばidで並び得たいならreturn o1.getID - o2.getIDのように実装すればいい。
便利だろ?
ちなみに俺も取ったんだけどOracleのプログラマ試験の勉強やるとそこらへんすごく詳しくわかるようになる
アソシエイトじゃなくプログラマの方ね
Javaの内部的なことや重要かつ基本的なAPIの使い方がよくわかるようになる。まじおすすめ。
はいはい知識自慢してないで仕事してね
Javaの型安全性な言語だからジェネリクスとかちょっと見じゃわからないような複雑さがあるんだろうね
eclipse4.2にしたら見やすくなったな字体とか
JAVAオワコン化決定的www
>>375 Javaのジェネリクスに関しては
「アイディアの段階では上手くいきそうに思えるが、実際は微妙」
という評価がある。実際、複雑になった割に恩恵はそうでもない
C++でテンプレート型安全信者だった俺ですら俺の独自言語ではテンプレートなど無用。
>>373 へえ
これなんかにつかえそうだな
今まで使ったことなかったけど
381 :
361 :2012/08/23(木) 02:28:31.48
後出しで申し訳ないんですけど、自分がみてるチュートリアル貼っておきます。
http://docs.oracle.com/javase/tutorial/java/generics/boundedTypeParams.html >>365 そんなもんです
>>366 使ってます
>>367 もうちょっと考えて見ます。
>>373 すいません。書いてあることは分かってるつもりなんですけど、なぜジェネリックとしてのタイプパラメータTが消えてしまったのかが分からないです。
compareTo(T o)を実装するなら、クラス定義にimplements Comparable<T>つかないとおかしくないですか?
チュートリアルでジェネリックのところ勧めていて、ここくるまでは特にひっかからなかったんですけど
ここで一気につまりました。
>>361 の訂正というか補足なんですけど、インターフェイスで定義している理由は、compareToが基本的な型(intやStringやchar)でしか使えないため、
Comparable<T>でバウンドされたタイプパラメータを使用するでした。
どこか(compareTo実装するところかな?)でT extends なんちゃらみたいな形でバウンドしてやるのかなと思うんですけど
ちょっとつまりました。
とりあえず、今日は遅いので寝ます。教えてくれた人ありがとう ┌○
384 :
デフォルトの名無しさん :2012/08/23(木) 08:22:49.95
うざいってどこの方言ですか
>>381 >compareTo(T o)を実装するなら、クラス定義にimplements Comparable<T>つかないとおかしくないですか?
これを実装してるクラスTのみを引数にできるように<T extends Comparable<T>>と型指定してるんだぜ・・・
だからこのcountGreaterThanメソッドを呼ぶときTは必ずcompareToを持ってるってことになるんだぜ
ジェネリクスの場合はimplementsじゃなくてextends使うのはわかるかい?
コードを出さないから何を思い違いしているのか分からん
エスパーはよ
もう毎度言ってるんですけど的はずれな答え返さないでください
jniのネイティブライブラリで確保したメモリって、java側のSystem.exit(0)で解放されるの?
>>389 動的にとったものは自分で開放せにゃあかんよ
質問がされるか、されないかないのに 「あかんよ」ってばかなの?
392 :
デフォルトの名無しさん :2012/08/24(金) 14:03:06.11
うーん、うんこ。
うんこ刷れ
>>391 馬鹿じゃないよ
たったそれだけの文章で書いている人がどんな人かわからないのに馬鹿だと思うのあなたは
それこそ一方的に決めつけててあなたのいう馬鹿だと思いますけど
きっと
>>389 は解放されるかされないかわからないと思って動的に確保したものは(解放されないから、解放しなきゃ)あかんよってことでしょ
それくらいの文脈も読めなきゃちょっと人間としてあたまおかしいですよ
空白を補えない機械なんですか?
395 :
デフォルトの名無しさん :2012/08/24(金) 14:49:51.76
classファイルからコンパイルしたjavaのバージョンを知る方法を教えていただけないでしょうか?
このソースコードにアニメーションの停止と再開するボタンとその機能を付けたいんだが何を加えればいいのか教えて下さい。
>>396 クラスファイルのバージョンしか判らないと思う。
それでよければjavap -verboseで先頭の方に出るよ。
模範解答 馬鹿には無理
全く高校生はひどい自演をするなあ
馬鹿は黙ってなさい
WeakHashMapでガベコによってインスタンスが消される時に何かをしたいのですが、ガベコのときWeakHashMapの何かのメソッドが呼ばれたりするのでしょうか?
>>406 インスタンスのファイナライザに書け。
HashMap側でなんとかするのはたぶん無理。
WeakReference と ReferenceQueue を使ってごにょごにょすればできるけど、まぁファイナライザの方が楽っちゃ楽
ジャバをちゃんと使いこなそうと思ったらやっぱりアチコチごにょごにょしないとアカンのですよ
>>400 ありがとうございます。
ただ引数に指定したクラスはあるのに「ERROR:Could not find HashMap.class」なんて出てしまいました。
412 :
デフォルトの名無しさん :2012/08/24(金) 19:25:24.11
プリミティブ型、例えばdoubleをintにキャストしたら劣化する、つまり小数点以下の数値を保持できなくなりますが、 これはスタック型固有で、メモリ領域の差があるから起こる問題なのでしょうか? インスタンスが500kbあるクラスAを継承したクラスBが1000kbあるとき、 クラスBをクラスAにキャストしたからといって劣化はおきないものでしょうか?
>>394 空白を補えない機械とかどうでもいいからカネくれよカネ
>>389 1プロセスにJVMが複数同居する可能性まで考えるなら、解放されないんだろうな。
>>413 そんなに反応してよほど悔しかったかカス
馬鹿には無理
>>412 違います。メモリ領域の問題でもスタックマシン固有の問題でもありません。
インスタンスのサイズも関係ありません。
型のナローイング変換はプリミティブ型と参照型で全然違う処理を行います。
プリミティブ型では変換先の型で表現できる範囲でできるだけ近い値に変換します。
参照型では型の継承関係を確認し、問題なければその型での参照に変換します。
変換後の型が親クラスの場合、子クラスのメンバにはアクセスできなくなりますが
劣化とは呼ばないと思います。
>子クラスのメンバにはアクセスできなくなる ほんと? Javaだよ?
>>412 プリミティブ型でやってるのは変換。Nunber.intValueやObject.toString。問題ではなく仕様。
オブジェクトでやってるのは見方を変えてるだけ。実体は何も変わってない。
>>418 親クラスの型の参照変数からは不可視というつもりでした。
>>415 カスでもウンコでもいいからカネくれよカネ
422 :
412 :2012/08/24(金) 22:28:38.53
ありがとうございました。
いえいえ
425 :
デフォルトの名無しさん :2012/08/25(土) 00:16:19.37
nullが入っている(かもしれない)参照型変数の変数名を文字列型で取得する方法はないのでしょうか? Object obj; obj ← これを"obj"として欲しい
ecilpseのエディタを自作しようと考えていますが、 eclipseの編集中コンパイルについてなにか参考情報を下さい。
eclipseがあるのでいらない 糸冬
eclipseって時々固まったり、Linuxでは落ちたりしますよね? あとラージテキストはサポートされてません。 だからエディタを作る需要はあるとおもいまーす。
>>425 変数名は無理だよ・・・
何がしたいのかわからないけど・・・
クラス名なら取得できるけどね
>>429 ググって調べてみましたが、コンパイラーが消してしまうので無理なようですね・・・
諦めます
ありがとうございました。
>>428 がんばって 完成したらレビューだけするよ
ラージテキストってバイトサイズでどれぐらい必要なの?
少なくとも2^64バイトくらいはサポートしたい。これは必要があるからではなく男の意地であります。
今はそんなでかいサイズなんて誰が使うんだよとか思っててもいずれでてくるだろうね 昔1GBメモリなんて誰が使うんだと思ってたけど
eclipseのラージテキストってどれぐらいまでいけるの?
書き込み続けるプログラム書いて試してみたら?
すぐにシンタックスハイライト機能が邪魔して重くなりますよ。ラージテキストはサポートされてないといえます。
メモリ増やせば? いまなら8GB*4でも15kぐらいで買えるでしょ。
>>426 Eclipseプラグイン開発
日本語で解説してるサイトも本も少ないけど、
大きい本屋探せば売ってるよ
>>439 プラグインじゃなくて自分でエディタつくるんだってw
Eclipseの中で使うエディタじゃないのか?
プラグイン開発でいいじゃないか。 まぁ、質問者が具体的に何をしたいのかは読み取れないけど
ふう
444 :
デフォルトの名無しさん :2012/08/26(日) 02:00:15.98
配列は、Seiki[] seiki = {Penis, Vagina, Anal};で宣言できるんですが、 メソッドに引数渡すとき、例えばdoSomething(Seiki[] seiki)というメソッドに doSomething(Seiki[] seiki = {Penis, Vagina, Anal})とやってもコンパイル通らないのはなぜですか?
コンパイルが18歳未満だからじゃよ
>>445 いかにも中学生が書きそうな質問だしなw
AnalはSeikiじゃないからな
さすがjavaスレはギャグも冴えてますね
JavaFXはメジャーになる前から既にオワコンって話なんですけどどうしてですか? やっぱりORACLEだとやっつけ仕事しかできないからですか。
はい
String hoge = "こんにちは世界"; String msg = "System.out.println(hoge)"; -msgに何らかの処理- コンソールに「こんにちは世界」と表示させるようなクラスは用意されてませんか? 文字列にコードを書きたいのですが
まんこ
454 :
デフォルトの名無しさん :2012/08/26(日) 17:57:23.24
String hoge = "こんにちは世界"; String msg = "System.out.println"+hoge; これではあかんの?
馬鹿には無理w
456 :
451 :2012/08/26(日) 18:19:31.08
データベースにあらかじめやりたい命令を入れておき 引き出して使うことはできないのかと思いまして
>>456 classにメッセージ送ればいいじゃない。
Scripting API使って実行させるのが楽
460 :
デフォルトの名無しさん :2012/08/26(日) 19:06:07.11
C++経験者だが、Javaに転向しなければならないんだが、サクッと転向するには、独習Javaとか一冊読みきったほうが早いですかね? あと、MFCとかVCLとかのクラスライブラリは、Javaにもあったりしますか?
stl, boostはどれぐらい使ったことあるんですか?
MFCもVCLもjavaにありますよ
java,javafxはオワコンって話なんで今からやるならobjcでしょ。 vc++とかいうwindows専用言語しか出来ない人にはobjcもjavaもサクッ転向なんてほぼ無理だろうけど。
>>460 独習はvirtual 関連の説明が決定的に弱いが c++ ベースの人なら問題ないだろう。3日で読める。
基本、 -> が . にかわって delete が要らないだけ、という気がする。
androidとかwebベースの業務システムとかドカタしかないんですけどね
466 :
デフォルトの名無しさん :2012/08/26(日) 20:58:35.29
ドカタでも技術あるならいいじゃん
Javaがオワコンていってるやつ頭おかしい
これからどんどんハードのスペックがあがっていったらより高級な言語を扱うようになるに決まってる
>>467 終わったコンテンツだよ、まじで。
java は二分木すらまともにかけないんだから。
>>469 2分木かけないのはおまえのどう考えても頭が弱いからだろ。かけるだろ。
だったらどういった部分でオワコンだかいってみろよ
一般的なら実行速度と、可読性とかか?この2つについてどこら辺がオワコンかいってみろよ
471 :
デフォルトの名無しさん :2012/08/26(日) 21:24:33.82
先生方教えてくだされ。。 次の式を複合代入演算子とインクリメント・デクリメント演算子を使って書きなおしなさい。 【問題1】 a = a - 1; 【問題2】 a = a + (b +1); の答えと、なぜそうなるのかが理解できません。ご教授お願いします。
>>471 おまえさ、わかるのにいちいちレスすんなよ
どんだけかまってなんだよ
>>470 つ
>>292 書いてみてわかったのだが、まともに二分木が書けない。
速度とか可読性とかを持ち出すまでもなく、「当たり前のことができない」のが java の宿命であり限界。ここまでつきあっていた俺が馬鹿だった。
475 :
471 :2012/08/26(日) 21:38:06.29
ジャバはもうオワコンですからね。 その一旦を垣間見たんでしょう。 ジャバをやるのはもう諦めた方がいいでしょうね。
>>474 ひとつのこと、というより記述力がない、というのは言語として致命的ではないか?二分木すらかけないんだぜ?
馬鹿には無理
ふーん
いままでうざいと思ってた言葉がここまでしっくりくるのは驚き
以上、書けない人々の声を実況しました
まんこ
俺くらいのレベルになると二分木くらい余裕で書ける
>>483 じゃあ書いて ideone で見せてくれ。叩いてあげるから。それとも口だけか?
>>484 Javaに参照渡しがない(ある)のはどうしてですか?
GC がらみだと予想srが C# には参照渡し(call by reference) は存在するしねえ。
二分木なんて二分で書けるぜ。
なんだかんだJavaには関係なイワナ
>>487 じゃあ書いて ideone で見せてくれ。叩いてあげるから。それとも口だけか?
>>488 いや、おおありだ
Java の言語としての記述能力を問題にしている
二分木すらかけないようでは終わっている
ちょん乙
new java.util.TreeMap(); かけたー
Javaでライブラリの使い方ばかりに関心を持ってデータ構造の定義に関心があるのはあまりいないけど、Javaだとメモリ管理は不用だしデータ構造の勉強を独学で頑張ってみるのみいいんじゃないか。 次期Java8だと何でもコレクションに追加かあるって話だし、データ構造の内部がどうなってるかの理解はJavaに限らず基本中の基本だし。(Javaだとポインタの理解まではいらないけど)
>>493 残念ながら Java には基本的な記述能力に不足があり二分木すらまともにかけない
二分木好きなんだな 俺も好きだよ
>>494 ソースはoracleに置いといたから、勝手に読め。
>>502 それだけの情報でぐぐれかい。というか oracle にはない。
Java で二分木はまともに書けない以上、oracle にあるわけがない。
それとも書けるというのか?なら ideone で晒せ。
よう晒せんのか?
ちんけが
>>501 できないものを Fラン大でだすか?
灯台でもまともな回答はつかんだろう。
それとも回答があるといのか?ならば晒せ。叩いてあげる。
一方的に人に晒させるのも不公平だから、俺の回答を
>>292 に示しておく。
Java の記述能力が不足しているから、できがわるければそれはJavaのせい。
二分木すら書けないなんて酷い不具合ですね。 ぜひJavaのBugzillaに報告してください。
馬鹿には無理
不具合ではなく馬鹿な言語仕様のせいだ。 仕様や設計が悪いのだから、救いようがない、Java 脳と同じように。
509 :
292 :2012/08/27(月) 01:25:03.00
>>504 勝手にお前が書いたことにするなwwww
お前は俺だ!
>>503 まじで言ってるの?そのapiのソースのことだよ。
君の言うまともな二分木ってどんなの?
>>511 JavaスレでC++の参照渡しがどうとかいってる雑魚だ
相手にするな
早速逃げの体勢に入りました
>>511 それ JNI で書いてない?java 単独で効率のよい二分木は記述できないと思う。
JNIがJavaでないと。
効率の良し悪しなんて求められてないぞ いかなる方法でも二分木が実現できればよい
java.util.TreeMapの事だったらJNIつかっとらんよ
JVMをダウンさせる方法を教えてください。
>>518 単に終了するという意味なら以下の2通り:
・デーモンスレッド以外すべてのスレッドを終了する
・System/Runtime.exit()が呼んで終了する
プログラムからSQLの呼び出しについての質問ですが、 以下のSQLのテンプレートがあり、@〜Cにweb画面から渡された値を展開しています。 インジェクション対応していなかったようで、その対応を考えてます。 インジェクションでサブSQLを実行され情報漏えいできなければなんでもいいとのことで、 「(」だけをケアすればいいかなと思い、「(」を削除して Aは「'」を「''」にエスケープしますが、それ以外は「(」をカットしようかと考えています。 @とBにて、hogeの項目情報は公開されているので、他の項目を指定される文にはいいとの条件です。 select xx1, xx2 from hoge where @ = 'A' order by B C 「(」をカットだけすれば、とりあえず他テーブル情報を取得または更新されることは防げるでしょうか?
日本語でおk
1,3,4は限られてるんだから完璧にチェックしろ
>>521 インジェクション攻撃はセキュリティスレで聞いたほうがいいんじゃね
>>521 この例なら単純にPreparedStatementにするだけで事足りるような。
逆に自力でサニタイズするのはご法度というのが一般的。
XML-RPCとMetaWeblogAPIの関係がよくわかりません org.apache.xmlrpc.client.XmlRpcClientでMetaWeblogAPIのメソッド名を入力したりするのはどうして?
>>526 XML-RPCは文字通り汎用のXMLベースのRemote Procedure Callのプロトコルの1つです。
MetaWeblogAPI(MWA)はXML-RPC上に実装されたAPIです。
Apacheのxmlrpcは汎用ライブラリなのでMWAを使うにはMetaWeblogサービスを
提供しているエントリポイントをXmlRpcClient.setConfigで指定し、executeに
はWMAのメソッドを指示してあげる必要があります。
528 :
526 :2012/08/27(月) 18:18:51.65
>>527 なるほどプロトコルなのですね
ようはXML-RPCで○○がしたいというリクエストを送って、そこでMWAが実装されていたら
結果を返してくれると。
ありがとうございます。よくわかりました。
529 :
デフォルトの名無しさん :2012/08/27(月) 18:29:32.10
530 :
デフォルトの名無しさん :2012/08/27(月) 18:30:09.91
>>528 おまえ、頭いいな。
俺なんか、全然わからんで。
531 :
名無し :2012/08/27(月) 18:54:51.57
>>529 君ずーっとここに居るようだけど、ここにいて楽しいかい?
532 :
デフォルトの名無しさん :2012/08/27(月) 19:54:10.86
>>531 ボクぅ、2ちゃん初めてかぁ?
力抜けよ、ハゲ
534 :
デフォルトの名無しさん :2012/08/28(火) 00:03:51.94
最近始めたのだけど JComboBoxにActionListnerを継承したクラスをaddしたんだ この時、アクションがコンボボックスを選択した時と一覧から選択した時に発生するんだ 前者で処理をしないようにしたいのだけど、アクションの区別ってつかないかな?
535 :
デフォルトの名無しさん :2012/08/28(火) 00:06:33.75
Object obj1; Object obj2; obj1 = obj2; obj2 = new String("テスト"); この状態だと、obj1はnullのままなのはなぜですか? obj1はobj2の参照してるインスタンスを参照し続けないのですか?
obj1に代入した時点でobj2の参照してるインスタンスなど存在しない
537 :
デフォルトの名無しさん :2012/08/28(火) 00:20:22.51
obj1 = obj2; この操作で、obj1の差すメモリ番地は、obj2のメモリ番地を差すんだと思ったんですが、 nullなので、どこのメモリ番地も差してない状態だったんですね・・・
C言語とかだと書き方によってはそういう事もできるけどね
obj2が初期化されてないって怒られるのかと思った。
>>525 PreparedStatementって値しかできないんじゃなかったっけ?
order byにも使えるの?
543 :
525 :2012/08/28(火) 10:02:14.51
>>542 ごめん。そのとおり。
>>523 が書いている通り1と3,4はWebから渡された値を
そのまま使わずにSQLを作る必要があるね。
>>541 プラットフォームの制約がなければC#でいいじゃん。私も好きだよ。
Javaを使っている人はもっと別の理由で選択しているだけだと思う。
参照渡しを理由に言語を選ぶ人というのは初めて見たけど。
javaを実行するときクラスの読込で、クラスファイルフォルダとjarファイルのパスがありますが、 クラスファイルとjarに同じクラス(パッケージも含め)がある場合、クラスファイルフォルダのクラスがが使用されているようですが、 これはたまたまなのでしょうか?それとも仕様で決まっているのでしょうか? ファイセンスフリーのjarファイルのクラスを一部変えたい場合、 jarを作りなおさず、変更したいクラスを逆コンパイルして改変してクラスフォルダにアップして実行しています。
クラスパスの前から順番じゃなかったっけ
MicrosoftがJava気に入って勝手に拡張したせいでSunが怒って Microsoftがわび入れて一緒にやろうよと言っても認めなかったんで Java参考に新しく作ったbetterJavaがC#だからな。 基本設計が新しい分そりゃC#が良いだろ。 とは言ってもJavaも大改造と言っても良い仕様変更が入ったし そこまで差はないかな。
でもなぁ、ゴズリンとヘルスバーグだと、やっぱヘルスバーグのほうがセンスいいと思うよ
それは同意見w TurboPascal上がりの俺がC#に嫉妬するのもそこw 使いたいけど現場はJavaだからしょうがないんだがw
552 :
デフォルトの名無しさん :2012/08/28(火) 18:42:27.13
C#とJavaを一緒するなよ 確かにC#2.0 = Javaだけど、C#は3.0以降で大きく進化を遂げてJavaとは全然違う言語になった
真に趣味用の言語に変貌とげたよな、C#は。
だれか一緒にしてるか?
c++++といわれるc#はやりすぎで、c++--くらいのjavaがちょうどいい。
556 :
デフォルトの名無しさん :2012/08/28(火) 20:12:55.64
コンストラクタにfinalをつけられないのはなぜでしょうか?
557 :
デフォルトの名無しさん :2012/08/28(火) 20:26:50.15
JavaでGUIアプリ作るときは、開発環境なに使いますか? その開発環境は、VisualStudio(C#)やC++Builderみたいに、ポトペタでデザイン出来ますか?
>>556 元々オーバーライドも隠蔽もできないfinal状態だから。
>>557 作りません
Javaなんてサーバー専用です
ポトペタできる環境もあるけどC#みたいなのをイメージしてるとがっかりする Swingだと出来上がったアプリを見てもがっかりする 配布するときにもJVMとJavaアプリの嫌われようにがっかりする
Eclipseのポトペタはかなりましになったけど、 Swingを理解していないとつかいもんにならない。 とはいえグループレイアウトが出来て非常に作りやすくなったね。 NetBeansは昔から出来るけどさ。 JavaFXがやっと配布しても良いかなレベルに到達したから これからどうなるかだな。 FXスクリプト無くなってオワタと思ってたんだが、Oracleも本気で作ってるみたいだし。
SWT使いたかったからEclipseのWindowBuilder試したが糞すぎ 機能は名目上だけ見ればVC#と遜色ないんだが品質が酷い
そりゃOracleが何やってる会社か考えれば FXなんかどうでもいいのは明らかでしょ
FXには結構人数裂いてやってるみたいだぞ。 Swingはもう手の入れようが無いから、FXやるしかないだけかもしれんが。 まぁ今時のGUIのアプリ作るのにJavaFXを選択することは無いけどな。
>>557 emacs。帳票系作るわけじゃないから、LayoutManagerで流し込みがいい。
FXなんかさっさとやめてHTML5ベースでクライアント作れるようにすればいいのに どうせサーバーでHTMLを生成するだけの言語なんだから 今更従来のクライアントに力入れるよりそっちの方がまだ見込みあるだろ
>>564 Oracleのインストーラはかなり前からJavaベースなんだぜぇ。
SUNのUIは糞だから金の力で何とかしたいという気持ちも判らなくはないぜぇ。
569 :
デフォルトの名無しさん :2012/08/28(火) 21:47:25.49
570 :
デフォルトの名無しさん :2012/08/28(火) 21:55:24.02
ジェネリッククラスがあります その中でインターフェイス移譲をしているメソッドがあります pubic abstract Sender<T> { protected Hoge hoge; protected int id; protected final void notify(T arg, int id) { this.hoge.onUpdate(T args, this.id, this); } } public interface Hoge { public void onUpdate(???, int id, Sender sender) } ここで、Tは、Senderクラスに与える型パラメーターで決まりますが、 その与えたパラメーターをHogeにも伝える方法はないのでしょうか?
ms-silverlightとかadobe air (flash)とかはjavafxのhtml5的にライバルってことだったんですが、ライバルと目されていたmsもadobeもjavafxが出る前に完成品をメジャーリリースして、しかも正式勧告までやることないので既にhtml5から撤退してますからね。 javafxは、swingの延長路線でも、html5 webapp路線でも、クライアントui,ide,app路線ではms,adobeがてぐすね引いて待っているので出る前からオワコンなのかもしれません。 今のoracleでは、企業利益重視で不採算プロジェクトはそそくさクローズし先行投資など考えず今でも闇雲に会社を維持し大きくすることしか考えてないので、webappなどを駆使する若い開発者を獲得するのは無理でしょう。 ただ、2.2ではhttp streamとavc,aacをサポートしたみたいなので、クライアント向けとは言っても別の路線で棲み分けを狙っているのかもしれません。 普通の開発者ではセミナーとかでていたとしても3年後のdesktoppc, notepc, mobilepcがどういう姿になってるか予測できる人は居ませんからね。
なんでプラグインが必要なsliverlight,AIR(flash),JavaFXとHTML5が同じ土俵で比べられるのかわからん。 ブラウザ外のクライアント領域を狙ってるものだと思うんだが。
>>570 型引数をどう使いたいかによるが
Javaのジェネリクスは腐ってて、静的にTだけ伝えたところでほとんど意味がないから
Classオブジェクトを一緒に渡すのがふつう
protected final <T> void notify(T arg, Class<T> argtype, int id) { this.hoge.onUpdate(args, argtype, this.id, this); }
public <T> void onUpdate(Class<T> argtype, int id, Sender sender)
sun(javafx1)のときとoracle(javafx2)のときでアーキテクトが違うのでそう思うかもしれませんが、ブラウザ内外のプラグイン・アプリ(html5ウェブアプリ)かどうかってのはアーキテクトに吸収されている一機能、つまり枝葉のことだと思いますよ。 adobe, googleandroid(googlechrome)なんかはブラウザに依存するよりネイティブの方に方向転換したけど、javafxはどうするんでしょうね。 相変わらずネイティブ機能をまったく無視して全てのdesktoppcやmobilepcなどの端末をサポートするきなのでしょうか。 html5を理解しているというなら、webやapp (applet)の動作基盤として、osという概念が(既に旧式なので)ほぼ消滅してるってことに気がついた方がいいんじゃないですか?
575 :
573 :2012/08/28(火) 22:17:26.15
TはSenderクラスの型引数か。勘違いしてた。それなら pubic abstract Sender<T> { private Class<T> classOfT; public Sender(Class<T> classOfT) { this.classOfT = classOfT; } protected final void notify(T arg, int id) { this.hoge.onUpdate(classOfT, args, this.id, this); } こうやってコンストラクタでClass<T>を受け取っておいて渡す
576 :
デフォルトの名無しさん :2012/08/28(火) 22:18:28.37
>>573 ありがとうございました。
正直理解しにくいのでもう少し勉強します
577 :
デフォルトの名無しさん :2012/08/28(火) 22:19:14.75
>>575 ありがとうございました。
ジェネリクスは難しいので難しいので使用諦める方向にいたします。
Javaのジェネリクスって本来単純明快なものが Sunがクソ実装したせいでやたら複雑になってるんだよね
>>544 たぶん経験が浅いのでJavaの膨大な資産がよくわかっていないのだと思います。
.NETやMonoで動くJVMがあるからJavaのライブラリも使えるよ 逆は無理だけど
オラクル包囲網はちゃくちゃくと完成に近づいてる様ですね。 オラクルは、オラクル自身に技術力があるのではなく、開発・技術能力がある様々な企業を買収して大きくなっただけなので、開発力・技術力だけで比べればアドビにすらも劣るかもしれません。 オラクルは技術・開発企業というより営業・販売(ライセンス販売)が主たる業務の企業ですから、クライアント・ジャバとか(オープンソフトの)サーバーとか実はどうでもいいんじゃないですか。
Javaというウンコ言語にとどめを刺した点だけは Oracleを評価出来る
次はGoogleさんのとこのウンコ言語のクローンな上に ライブラリは元のウンコ以上にウンコなブツを何とかしてくれ
>>570 やりたいことが良くわからんが
public interface Hoge<T> {
void onUpdate(T arg, int id, Sender sender)
}
じゃ不満なのか?
普通にアップルさんの端末を買いますよ。 本体の差額も大したことないし、アプリはもちろん、ハードの方に魅力もないですし。
>>586 子クラスから親クラスのコンストラクタをどうやって隠蔽するの?
>>588 知りたいなら自分で調べれば?ただ隠蔽できるよ
まあバカにはわからないけど
また馬鹿が馬鹿なのは自分で調べてわからないとできないと決め付けて他人を非難するからなあ
まあ結果として馬鹿になりたくなかったらちゃんとわかるまで調べることだね
あいかわらずレベルの低いスレですなw
基本的なことすらわからないようなやつしかいないんだからoracleだろうがIBMが引き取ろううが衰退するわ
593 :
デフォルトの名無しさん :2012/08/29(水) 01:38:59.02
>>591 自分が他とは一線を画す態なやつ、いるよねぇw
このスレとは”一線を画す”レベルでないとお終いでしょw
まんこ
596 :
デフォルトの名無しさん :2012/08/29(水) 08:12:55.88
>>594 だったらこなきゃいいのに
わざわざここにきて優越感にひたりたいほど、現実世界では虐げられてるの?
>>589 JLSの8.8. Constructor Declarationsにある
They are never inherited and therefore are not subject to hiding or overriding.
を受けた
>>558 なのに文脈の読めない突っ込みを入れてる馬鹿はどっちなの、と。
OpenJREからOpenJREに変更してWebアプリケーションをtomcatで動作させてますが、今のところ同じように動いています。 OracleJREからOpenJREで動かす場合、何か気をつけなければいけないことはあるでしょうか?
なお、このスレはJNIや、JSP・サーブレットの質問はスレチになります
なりません
なりますん
なりましん
Java7でのSeekableByteChannelを開く際のオプションについて質問です. 新規のファイルを開く際に指定するオプションの中に、SPARSEというものがありますが、 これはどういうヒントなのでしょうか. apidocにはsparse fileであるということが書かれていましたが、 これは、こま切れで断片化しやすいファイルだよというユーザーからのヒントを指定する ということでよろしいのでしょうか.使いドコロについて教えてください
スパースファイルは、ディスク領域を使用しない空白地帯があるファイル 例えば、ファイルを作成して、すぐに 1GB の位置にシークし、1KB ほど書き込んで閉じたとする 普通のファイルは実際に 1GB + 1KB のディスク領域を必要とする スパースファイルは、書き込んだ 1KB だけディスク領域を使用し、シークして飛ばした 1GB ぶんのディスク領域は割り当てられない ディスク領域の割り当てがあるかないかだけが違っていて、見掛けのサイズはどちらも 1GB + 1KB で表示される
>>606 ありがとうございます、スパースファイルというものを作るのですね.
sparseの意味を調べてばかりで、スパースファイルについて知りませんでした.
分かりやすい説明ありがとうございます.
JavaでCORBAなんだけど、 動的起動インターフェースでクライアントのインターフェースの動的生成は可能だけど、 サーバ(プロバイダ?)側のインターフェースは動的生成可能なの? javaのCORBAの資料みてもクライアントは書いてあるが、サーバ側は資料なくて・・・
609 :
デフォルトの名無しさん :2012/08/29(水) 23:42:14.16
>>539 サンクス
返事が遅くなってすまない
ItemListnerの引数のItemEventが持つgetStateChangeから状態をもらって選択解除された時に処理を行うようにしたよ
しかしそれでも選択時に反応しちゃうなあ
JTableに入れてるからかなあ
610 :
デフォルトの名無しさん :2012/08/30(木) 01:03:26.85
public class A { B b = new B(); C c = new C(); } public class A { B b; C c; public A() { b = new B(); c = new C(); } } 前者と後者はどう違うんですか? それとも、VMの内部的には全く同じ処理をしていて、メンバ変数として宣言したものを わざわざどっかのローカル(この場合はコンストラクタ)でインスタンス代入しなくていいような糖衣構文が前者だったりしますか?
はい 前者で書けるならその方が読みやすいしミスもしにくいから前者で書くべき
612 :
デフォルトの名無しさん :2012/08/30(木) 07:59:45.30
マズィデ?前者のような書き方できんのか。。。。。。。。。。。。。。
613 :
610 :2012/08/30(木) 08:11:54.49
いえいえ
なぜBigDecimalにsqrtが無いのでしょうか 結局はdoubleでMath.sqrt()を使うのですが、 BigDecimalにsqrtメソッドが用意されない理由があるのですか?
ほぼ確実に誤差が出るからじゃないの
平方根の計算にそんなに高い精度があって何が嬉しいのかと どうせ絶対誤差出るんだし
>>620 自分の想像がつかなくても需要あるところにはあるんだよ
例えば、ホモとかまったく理解できないけど、需要が多いだろ?
そういう連中はBigDecimal用のsqrt自作するんじゃね?
匿名クラスって、 要は特定のメソッドだけをオーバーライドさせたくてかつ再利用する予定はないクラスを作れるってことですか?
>>623 はい、そういう用途は多いですね
そういうののために使うなら自然でいいいと思います
わかりました ありがとうございました
匿名クラスとかそんなマイナーな機能誰が使うんだよ あんなの初心者がちゃんとした設計できなくてその場しのぎに使うものだ
>>626 java8での目玉機能の根幹で、これからより一層使われることになるだろw
Project LambdaでSAM Typeな匿名クラスのシンタックスシュガーが導入されるからな
lambdaなら匿名クラスじゃなくてメソッドリファレンス使うはずだが。
どちらもSAM Type用なだけでlambdaとメソッド参照は別物だ
単純な内部クラス使う案はかなり昔に破棄されとるがな。 現在は実行時に「渡されたメソッドハンドル呼び出すだけの SAMを実装したクラス」を生成して使いまわすというアプローチだったはず。
それはメソッド参照の実装だろ
いや、lambda の実装。 メソッド参照にわざわざ SAM を実装したクラスを使う必要ないだろ。
メソッド参照は内部クラスのstaticインスタンスとして使いまわせるけど lambdaは束縛があるから使いまわせないだろ static interface Fn<R>{R f();} Fn<Integer> lm(int x, int y){ return () -> x+y; } としたらlm内で普通に匿名クラスが作られるから
>>631 それMethodHandle経由の呼び出しが遅いからとかで後回しになってるはず。
クラス数爆発を防ぎたいから将来的にはそっちにしたい、という程度じゃなかったか?
>>634 キャプチャ用のオブジェクト渡せばいいだけだぞ。
そのキャプチャ用のオブジェクトはどう作るんだよ プリミティブもボクシングして配列にでも突っ込むのか? 匿名クラスでの実装に対して明らかに効率が落ちるが
最悪でも匿名クラス生成と同等のコストにはできるし、 キャプチャする必要がない場合はクラス増やす必要も無い。 理論上は効率は上になる。 ボクシングなら実行時最適化でどうにかするんじゃないかね。 いつになる事やら知らんがプリミティブ型なくすって話も出てきてるし。
最終的にはMethodHandle#bindToあたり使いたいんだろうなぁ。
>>638 キャプチャ時は匿名クラス生成とキャプチャ用のオブジェクト生成のコストが同等になるから
そこにMethodHandleの処理が加われば同等のコストにならない
キャプチャする必要がない場合は匿名クラスはstatic化が可能で
その場合は生成コストが初期化時以外は0になる
クラスを減らすことは出来ても、効率が上になるわけがない
>プリミティブ型なくすって話
通るわけが無いな、ただの空論
また否定厨きたよ〜 否定する自分頭いい!
>>640 理論上ってのは、MethodHandle経由のメソッド呼び出しが通常のメソッド呼び出しと同等であればって事な。
明らかに効率は上。
あと、クラス数爆発ってのはクラスインスタンスの増大でなくクラス定義情報の増大の事だから……
総称型がイレイジャになっちゃった原因の一つだし結構重要。
lambdaの実装にはクラス定義は必ずしも必要ではないが、、
内部クラスを使うアプローチではクラス定義を増やさざるを得ない=効率悪い。
簡単にプリミティブ型なくなるとは思わんけど、そっちの方向で進んでくとは思うよ。
何年か後にプリミティブ型に128bit数値型とか追加するのもアレだし。
test_unko_lockit
パーマネント領域を無駄に食うと実行時コンパイルしたコード置くスペースまで削られるからな。 実行時効率だって良くなるわけはないわな。
>>644 C#設計者ってだけでサンデープログラマーでしょ。
ヘルスバーグがサンデープログラマなら、お前はプログラマですらないな
refied generics導入とかって話もあったな。いつになるか知らんが。
何はともあれ早めにjava8や9出して欲しいね 「Javaの開発者人気にかげり ―― 進化ペースの遅さが原因か」 なんてのも言われちゃってるしさ
ラムダとかクロージャの話は、オブジェクトプロトコルとかマルチテナンシーに比べると小粒だけど、数日前のシープラプラの二分木とか参照とかのネタよりよっぽどジャバってる。
>>647 ヘルスバーグはサンデープログラマー専用にC#言語をお気楽設計したってことじゃないの?
c#のコンパイラってフリーあるの? 実装いくつくらいあるの? どんなライセンス? javaと比較してくれるとありがたい。
c++もc#もすれちがい
多少なりとも知られた言語の中でお気楽設計されたものなんてねーよ
Brainfuckでさえ気合入ってるんだよ
>>652 windowsでもlinuxでもフリーでやれるからC#のスレ池
ラムダブロック内のthis,superの解釈と、エンクロージャthisの参照を得る構文は結局どうなったの? そろそろ仕様固まったんでしょ。 そういえば、ラムダブロック内での自身の再帰適用とかもどうなった?
シーシャプどっぷりの人にとっては、ヘルスバーグはゴズリングと同じくグルだから、お気楽設計とか言われるとすぐ目くじら立てて激高するのもよく分かるよ。
>>658 そんなマジレスだなんて
気合の方向性がおかしい とか期待してたのに
>>655 名前無いし不動点コンビネータで再帰することになるんじゃないの?
サンデープログラマー程度の技能で簡単に作れないなら、生産的効率的な設計のシステムであっても普及することは絶対ないだろうね。
Javaの話をしよう(提案)
MHはJava7の目玉だったのに、リリースしたらMHの話はめっきりしぼんじゃいましたよね。 サンプルも少ないし、どういうときに使うとエフェクティブなのか見えないし、lang.reflectと比べてもMHのどこがより効率的なのかよく分かりません。 MHは利用すると何かがアップするような場面もなく、使う前から既にお蔵入なんですか?
結局分からないで投げ出したって話し?
>>660 というかJavaのコードだと例えばどうなるの?
金をくれれば教えてやる
俺も!俺も! 金くれ!金くれ!
>>626 クラスAからインスタンスを5個ぐらい作ります
そのうち2つには、有るメソッドを実行させたいんですが、
この2つをクラスAのサブクラスとして定義するのが煩雑なので、
無名クラスとして、メソッドを実装させました。
というのはダメなんでしょうか?
>>557 C++Builderみたいに、イベントタブをクリックして、イベントの右の欄をダブルクリックしたら
自動的にコードが生成されます(たとえば、JBuilder)
Javaには、レイアウトの概念があって、Visual Basicなどとちょっとちがいます。
VBでは、自由に配置できますが、Javaでは、たとえば、
BorderLayoutというレイアウトマネジャを使った場合、
東西南北中央それぞれの領域いっぱいにコンポーネントがはめこまれます。
レイアウトマネジャとしては、FlowLayout, GridLayout, CardLayout, GridBagLayout, BoxLayout,
OverlayLayout, ScrollPaneLayout, ViewPortLayoutなどがあります。
任意の位置にも置けるけど
やだ
Javaにおいて、標準のJava機能だけで実現できないことは「禁忌」である。 環境に依存したライブラリを使うのはJavaに対する冒涜であり、全力で排除されなければならない。
674 :
デフォルトの名無しさん :2012/09/01(土) 10:48:32.38
んー、まあわかるけど言い方
質問スレでなんで質問を否定すんだよ わかんねーだけじゃねーのおまえら
原理主義的には、Java標準でない環境依存の機能を使った時点でJavaではないので Javaの質問ではない
原理主義の使い方が違う しかも環境依存の機能がダメなんてどこにも書いてないんだが
わざわさ2chで聞かないでブログ主に聞けばいいじゃん。
>>671 そのブログの前回の記事ってところ見たら
libusbとかJava用libusb win32wrapperのリンクとか導入の仕方とか書いてあるぞ。
681 :
518 :2012/09/01(土) 13:01:53.43
情熱プログラマという本より引用です。 jvmをクラッシュさせるプログラムをピュアJavaで書くとしたら、どんな手段を使いますか?
不正なバイトコードを読ませる
電源入れたままメモリをマザーボードから引き抜いてくださいって画面にメッセージを出す
ハードディスクやCPUに負荷をかけまくって壊れるのを待つ
685 :
671 :2012/09/01(土) 13:19:24.60
>679 ありがとう。入れました。 >ch.ntb.usb-0.5.9.jarをクラスパスに入れて、以下のコードを実行します。 こうでしょうか。 dos> java -classpath ch.ntb.usb-0.5.9.jar jp.gr.java_conf.ka_ka_xyz.usb.UsbMain 結果:jp.gr.java_conf.ka_ka_xyz.usb.UsbMain エラー: メイン・クラスjp.gr.java_ conf.ka_ka_xyz.usb.UsbMainが見つからなかったかロードできませんでした jdk1.7.0_05\bin>javac c:\samplesauce.java c:\samplesauce.java:5: エラー: クラスUsbMainはpublicであり、ファイルUsbMain.javaで宣言する必要があります public class UsbMain { ^ c:\samplesauce.java:1: エラー: パッケージch.ntb.usbは存在しません import ch.ntb.usb.Device; ^ c:\samplesauce.java:2: エラー: パッケージch.ntb.usbは存在しません import ch.ntb.usb.USB; ^ c:\samplesauce.java:3: エラー: パッケージch.ntb.usbは存在しません import ch.ntb.usb.USBExc ・ ・ ・
グラフィックス関連は低レベルで脆弱なAPIが多いからその辺触れば簡単に落とせそう
687 :
518 :2012/09/01(土) 16:25:42.99
オフショアでインド人の採用面接で著者が使っていた質問らしいです。 本自体は自己啓発の類いなので答えは載ってません。 お答えいただいた方ありがとうございました。
688 :
デフォルトの名無しさん :2012/09/01(土) 19:07:35.58
はじめ知恵袋で質問したのですが、閲覧すらしてもらえないので、 よろしければ考えるための手がかりだけでも教えてください。 開発中のWebアプリケーションを、実環境のTomcatに設置してみました。 ログイン画面のjspは表示されますが、実際にログインしようとすると 以下のようなエラーが返されます。これはどのような意味でしょうか。 HTTP Status 500 - com.ibatis.dao.client.DaoException: Error while configuring DaoManager. Cause: java.lang.RuntimeException: Error occurred. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/transactionManager/dataSource/end()'. Cause: com.ibatis.sqlmap.client.SqlMapException: There was an error configuring JndiDataSourceDaoTransactionPool. Cause: javax.naming.NameNotFoundException: Name [UserDatabase] is not bound in this Context. Unable to find [UserDatabase]. Struts1.3.10とibatis2を使っています。 ごく単純なjspやサーブレットなら表示できることは確認しました。 ローカルな環境ではログインできるので、サーバの設定が どこかおかしいのではないかと考えています。しかし、検索してヒットしたのは 微妙に違う内容で、しかも英語のサイトなので、いまいちよくわかりませんでした。 まず最初に何をすべきでしょうか。すみませんが、よろしくお願いします。
だからサーブレットは別だっていったろ
>>689 すみません。どこで聞き直せばいいでしょうか。
先ずは英語の勉強かな?
xmlのvalidateできないエディタで書いてんのか?
エラーがでてそのメッセージもあるのに自分で対応できないなら、そのライブラリを使うのはまだ早い。
まあ個人が作ったようなライブラリだと 全く説明になってない意味不明なエラーでどうしようもないのが基本だけどな
699 :
688 :2012/09/01(土) 22:38:44.73
とりあえず
ttp://marakana.com/forums/spring/general/104.html に従って
・MySQL Connector/Jを入れ忘れてたので tomcat/lib/ に入れました。
・クラスパスが間違えていたので修正しました。
・アプリケーションを再配備しました。
・Tomcatを再起動しました。
すると以下のエラーに変わりました。今から対応します。
HTTP Status 500 - exception.AppException: org.apache.tomcat.dbcp.dbcp.SQLNestedException:
Cannot create PoolableConnectionFactory (Access denied for user 'root'@'localhost' (using password: YES))
702 :
701 :2012/09/01(土) 23:18:19.14
10まそにまけとくけど、どう?
704 :
688 :2012/09/01(土) 23:47:52.03
705 :
688 :2012/09/02(日) 00:52:10.03
お騒がせしました。
>>699 のエラーは、単にMySQLのパスワードがローカルと実環境で異なっていたのが原因です。
その後、classファイルがごっそりアップロードできていなかったのがわかり、
これをアップし直したところ、配備が完了しました。
そんなに知りたかったら知恵袋で聞けよ
709 :
名無し :2012/09/02(日) 10:05:16.77
知恵遅れ袋で聞いてもしょうがないでしょ
>>708 回答側として目障りってことだ
それくらい分かれ
まぁ答えないならスルーか誘導が質スレの基本だから、 より適切なスレがあるんだったら誘導すればいいと思う。
いいと思うね
SONYのX-アプリ2.0というソフトをインストールしたんですけど 「Java6 Update35をインストールする準備ができました」というアップデートの通知が来ました 公式サイトを見ると最新版はJava7 Update7となっています 今入っているバージョンがJava6 Update20なので、少なくともどちらかは入れないといけないと思うんですが これはどちらを入れたらいいんでしょうか?
6系の最新バージョンが Java6update35. 7系の最新バージョンが Java7update7 どっちでもいいけど、SONYのアプリ使いたいならupdate35の方が無難じゃね?
さあ
>>714 ありがとうございます
公式だと7を推奨していますけど、同じ6の方を入れる事にしました
正直Javaが何なのかさっぱりなんですが、アプリに同梱されていたって事は必要な物なので削除はしない方がいいだろうと思って
その程度の認識ですいません
>>716 アップデートあった時の苦労も倍だけどな。
JavaFXはJavaに同梱されるようになりました
7って、XPのWindowsフォルダにゴミ突っ込んで アンインストールしても放置したままにするのって 直ってる?
Windows以下のフォルダに入れるのってjava.exe javaw.exe javaws.exe以外にもあったっけか
何かのDLLも入ってることがあった。
ある文章を定めたパターンとマッチングし、マッチしなかった「行を特定」する物を書きたいのですが 正規表現で理想の文章の形を定めてしまうと、マッチしなかった時に行が特定できず困ってしまいます。 文章とパターンを行ごとに分割し、マッチングしていく方法をいま考えているのですが、 他にスマートな解決方法はないものでしょうか?
ちょっと何言ってるかわかんないっすね
>>724 何行あるのか?
すべての行番号iで、b[i] = true;
1回めにマッチした行の番号iで、b[i] = false;
2回めに、if(b[i])で、マッチしなかった行のみ処理
>>724 その方法でいいんじゃない
パーサーみたいなもんだと思えば
>>725 申し訳ない
>>726 なるほど行数の大きさを持った配列に論理値を入れるわけですね
ありがとうございます
>>727 パーサーとは何か知らないので、後で検索してみたいと思います
教えていただき感謝です
みなさんありがとうございました
実際にシリアライズしてみたんだがすげー遅いw どうすれば早くなるんだこれ
730 :
名無し :2012/09/03(月) 20:05:49.12
int n=2; for(int i=0;i<5;i++) n=n+i; System.out.println(n); の結果がなぜ、12になるのかわかりません。。 内部的に 7(n)=2(n)+5(i)のあとに、nに7が再代入されて、n=7(n)+5(i)となってるのでしょうか?
開始 int n=2 n=2<n>+0<i>=2 n=2<n>+1<i>=3 n=3<n>+2<i>=5 n=5<n>+3<i>=8 n=8<n>+4<i>=12 終了
i=0…n=2+0 i=1…n=2+1 i=2…n=3+2 i=3…n=5+3 i=4…n=8+4 i=5はi<5の条件を満たさないのでここで終了 何がわからないのかわからない
733 :
名無し :2012/09/03(月) 20:18:18.60
いえいえ
やあやあ
うふうふ
new Thread(this).start(); という式がjavaでは通ります。しかし演算子の優先順位を考えるとこれは new (Thread(this).start()); と解釈されるはず。 これがなぜ意図どおり(new Thread(this)).start(); と扱われるのでしょうか?
738 :
名無し :2012/09/03(月) 22:48:45.26
すいません><もうひとつ良いですか? int[]a={10,20,30,40,50,60,70,80,90,100}; for(int i=a.length-1;i>0;i--){ System.out.print(a[i]+" "); が100 90 80 70 60 50 40 30 20 と出るのがよくわかりません。。 10 20 30 40 50 60 70 80 90 100 [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] ↑ A← ↑@ B for文の処理の流れとして、 @ a.length-1 (10からマイナス1した地点の9から初めて) A i-- (マイナス1しながら) B i>0 (0より大きい間(つまり1から)を表示するって事ですよね?)
難しい疑問質問は2chウンコなんかに頼らずに知恵袋で聞くしかないですね
742 :
名無し :2012/09/03(月) 22:53:43.73
>>740 すいません><
説明書いたら自分で理解してました ありがとうございます
いいってことよ><
2chはウンコ溜めなのでこんなウンコすれに頼ってばかりだとそのうちあなたもウンコになっちゃいますよ?!
745 :
名無し :2012/09/03(月) 23:16:48.15
とても助かる優良スレです>< 本当に感謝してます
ですよねー^^
747 :
671 :2012/09/03(月) 23:54:21.28
ちょっと進みました。 jdk1.7.0_05\bin>javac e:\a.java >e:\a.java:7: エラー: クラスUsbMainはpublicであり、ファイルUsbMain.javaで宣言する 必要があります public class UsbMain { ^ エラー1個 どうかお助けを。
UsbMain.javaにリネーム
おお。コンパイルできた! 実行はこうですよね・・・ jdk1.7.0_05\bin>java UsbMain エラー: メイン・クラスUsbMainが見つからなかったかロードできませんでした
だってカレントディレクトリjdk1.7.0_05\binだったら見つからんよね
>>750 なるほど。
c:\>java UsbMain
Exception in thread "main" java.lang.NoClassDefFoundError: UsbMain (wrong name:
jp/gr/java_conf/ka_ka_xyz/usb/UsbMain)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
ゴールが見えそうです。考えます。
参考書見てやれよ。
予約語もしくはクラスインスタンス生成式の一部。
配列生成式にも使われるぞ
757 :
名無し :2012/09/04(火) 09:04:21.24
今じゃEclipseなしで開発できない。本当はだめな事なんだろうけど
桜庭ななみ
swingで作ったアプリで終了時にウィンドウの座標と高さ、幅を保存しようとしています。
なぜか最大化後の座標を記録してしまうので無理矢理な解決策を作りました。
ソース
http://ideone.com/jJAlO お手数ですがソースを見ていただけると助かります。
・componentMovedでウィンドウの座標が変わるたびに座標を記録しています。
・最大化最小化を繰り返していると、最大化の時に、なぜか最大化後の座標で、
ウィンドウの状態はJFrame.NOMALで来てしまい、最大化後の座標を記録してしまいます。
・とりあえず、100行目付近のwindowStateChangedで、
座標記録直後に最大化してたら一つ前の座標に戻すようにしました。
これで何とか最大化後の座標が保存される事はなくなりました。
■質問
■1.最大化後の座標を記録しない方法は他にあるでしょうか。
自分の作ったとりあえずの解決策はどう見てもナンセンス。
ちゃんとした方法があったら知りたいです。
※ウィンドウが動くたびに座標記録すること自体ナンセンスだとは思いますがorz
■2.ウィンドウが最大化/アイコン化している時に、
通常に戻す時のウィンドウの座標と幅を取得する方法はあるでしょうか。
ウィンドウの挙動を見ていると、最大化から通常に戻したり、
アイコンから通常に戻せるので、どこかに座標や幅を記録してると思うのですが、
それを取得する方法を見つけられませんでした。
この座標と幅を取得できれば、ウィンドウが動くたびに座標を記録する必要もないと思うのですが。
1、2どちらでも構いません、ご存知でしたら教えてください。
swing ウィンドウサイズ 保存でぐぐってみては
>>761 2はなかったはず。
1は真面目にやると結構大変。
イベントが来るタイミングはプラットフォーム依存なので
例えば*nixではウィンドウマネージャによっては
最大化の際に拡大アニメーション途中でもウィンドウの状態が
JFrame.NORMALのままウィンドウ移動のイベントが来ちゃって、
>>761 のアプローチだと拡大アニメーション中の最後のサイズを記録しちゃったりする。
うちではTimerつかって500ミリ秒後にウィンドウがJFrame.NOMARLの状態だったら
そのとき(イベント来てから500ミリ秒後)の位置サイズを記録みたいにしてる。
終了時にオブジェクトごと保存してしまっては?ww
ウィンドウマネージャが持ってるから オブジェクトごと保存出来ても消えちゃうのよね
文字列から正規表現でマッチした箇所をリストで返すような便利なメソッドってJREにあるでしょうか?
ありません 直行性やオブジェクト指向を信仰してなんでも難しくするのがJavaですから
Pattern と Matcher 使えばそのくらい自作できるのではw たとえばMapのキーを正規表現が見つかった位置、、バリューはそれに該当する文字列にするw Patternで正規表現を入れたらMatcherで探すw start()は一致した開始位置を返すメソッドwww group()は一致した文字列を返すメソッドwwwwww もう完璧wwww
そして俺俺ユーティリティがまた一つ増え、コードのポータビリティが少し下がるのであった
俺俺ユーティリティごとポータブればいい
俺俺ユーティリティを作っちゃいかんのか?
ユーティリティをあまり多用するのは一般に好ましくないとされるね
>>772 はい、全てmainメソッドに書いてください
メソッドの作成はもちろんのこと、クラスの作成なんて論外です
java.lang.Mathやjava.util.Collectionsなどは最悪の例です
正しくまとまってれば問題ないが よくある何でもかんでも詰め込んだ大きなユーティリティクラスが出てくるのは糞
それはユーティリティに限ったことじゃないです
テストもしづらい
フォームからpostされた文字列を、文字列中に存在する絵文字(バイナリ)から docomo、au、softbankの3キャリアを判別するにはどの様にすれば良いでしょうか?
スレ違い
>>778 ファイルに保存
プリントする
判別する
条件分岐する
学生です。 javaの中身と直接関係ないのですが、どうすればコードを綺麗にまとめる事が出来ますか? 場当たり的に書いて後で見やすくしているのですが、量が多くなるとコーディングしていた時間よりまとめる時間の方が長くなってしまいます… 事前にどんなクラスが必要か等決めて、実際に書く前にフローチャートみたいな物を作ったりとぼんやり考えはしますが、具体的にどのような行動をすればいまいち掴めません。 コーディングの前段階では皆さんどのような行動をされていますか?
とりあえず 1クラスの責任というかドメインがあまり大きくならないようにする クラスの相互参照・循環参照を避ける とか
>>762 一応ぐぐったのですが、
ぐぐって出てきたマイナスの値を記録しない方式は、
マルチモニタを考えると危ない気がしました。
※後出しすいません
>>763 2はないのですか残念です。
プラットフォームのウィンドウマネージャーに依存してる部分なのかも?
>>764 >>765 まるごと保存してもダメとは恐るべしです
皆さんありがとうございました。
>>781 コードを丸めると余計な熱が発生するから丸めないほうがよい
コメントと空のif.for文だけでまずはここにこんな処理を書くって設計していけばいい
>>783 swingを選んだ時点で-100点からのスタートなんだから細かいこと気にしなくていいよ
>>781 「コーディングしていた時間よりまとめる時間の方が長い」ことの
いったい何が悲しいのか不明だが、
netbeansとかeclipseとかのIDEにはコードを素早く整理する機能が
いろいろあるので、最近は何も考えずにまずコーディングするなあ。
リファクタリング1件ごとに稟議回すとか
コメントアウト以外の方法で行を消してはいけないとかいう職場では
また事情が別
リファクタリング?
>>781 です。
eclipseの開発に便利な機能やプラグインを調べる、どんな条件式が必要になるか考える部分意識してみます
ありがとうございます
設計、クラス図の単語は聞いたくらいしか知識に無いので、調べてみます
>>781 小規模な設計ならクラス図も有効だけど処理の内容によっては
ステートマシン図やシーケンス図での検討も便利。
少し大きい規模になったらDFDとかユースケース図で
外部用件を整理してから内部設計に着手しないと破綻しがち。
アクティビティ図とかあんまり使わないなあ。
あとクラス図が読み書きできるようになったら デザインパターンというのを勉強するとよろし。
>>792 OMTとか頭からどうやってソフトを開発するか参考になる、開発手法というものがあるよ。クラス図も出てくる。
RUPはフルセット過ぎてとっつきにくい。
クラス図とかUMLを手軽に作って編集できるようなおすすめソフトないですか? あらかじめよく使うテンプレートが入っていて、無料なのがいいです。
asterを使ってる。コミュニティ版はたぶん無料。 重なった矢印が動かせなくなったりして操作性はあんまり良くないけど。 図を描くだけなら圧倒的にVisioが便利なのだけど有料だな。
スレチな話題だったのか。ごめん。
astaな
asunaかわいいよね
くそすれほしゅ
805 :
デフォルトの名無しさん :2012/09/07(金) 15:54:34.11
/ ̄ ̄ ̄ \ / ― ― \ / ( ●) (●) \ | (__人__) | __,〜 -,_ _ _ \__ `ー ´__/ |\`ー〜' \ /: : : : : l\ /j: : ::ヽ \| ̄ ̄ ̄| \ ヽ :ヽ: : : :7ヽ./>: : : :r:\  ̄ ̄ ̄ \( ̄ ⌒⌒⌒⌒ ̄⌒ ⌒ ⌒ヽ ヽ \
このままJava畜を続けていれば、Java8、9でワンチャンありますか?
どんな意味でワンチャンと言ってるのかわかりませんが、おそらくはあなたの能力次第なのではないでしょうか
能力あれば言語なんて関係ないべ
809 :
デフォルトの名無しさん :2012/09/07(金) 23:49:29.24
助産婦が出来損ないをキュッとシメて死産扱いにするっていうのは、復活させていいと思うんだよね。 うちのひいばあちゃんが産婆やってたんだけど、最初のお産立ち合いで生まれたのが、今で言うダウン症。 ひいばあちゃん、当時20歳、躊躇うことなく先輩に教わった通り〆たそうだ。 いわく「生かしといても、畑耕すわけじゃなし、兵隊できるわけじゃなし、読み書きソロバンするわけじゃない。 そういうのは穀潰し言うてな、養うことはなかったんよ」庶民は大体こうやって死産扱いしたそうだ。 ただ金持ちだとたまに殺さず生かしといて、これがハイパー池沼化、村の娘を襲ったり、お女中さんが飼い主に監禁されて池沼の性玩具にされたり、ということはあったそうだ。 実際ひいばあちゃんが立ち会ったお産で一番悲惨だったケースが池沼絡み。 戦中のケースだけど、12歳の女の子が池沼にレイプされ続けて妊娠、堕胎も出来ずひいばあちゃんが立ち会うも、 女の子は痛みに耐え切れず死ぬわ、取り出した赤ん坊は、一目見て奇形だったので、その場で処分したそうだ。 この可哀相な女の子を両親公認でレイプしてたのが、5つ年上の実の兄。 ひいばあちゃん、割と温厚な人だったけど、こんときは人生で一番激怒して、 「17年前にワシがこんゴクツブシを〆てやる言うたんを、やめさせたんはおのれら夫婦じゃ! なぜあのときワシの言う通りにしなかった!今からワシがあの出来損ないを処分しちゃる、それが産婆の責任じゃ! 連れて来い!」 って両親を怒鳴り付けたらしい。 結局池沼はその後土蔵に閉じ込められて、10年くらいで死んだみたいだけど、ひいばあちゃんは多分このケースのせいで死ぬまで知的障害者全てを忌み嫌ってた。 オレのばーちゃんもかーさんも、ひいばあちゃんに「出来損ない産んだらワシに言え。 始末してやるから安心しろ」言われてたってさ。 でもオレ、ひいばあちゃんは間違ってないと思うんだよな。うちのクラスの池沼とかみてると、こんなん生きてる価値ないだろって思う。 しかし自分から言わせて貰えば、そのひい祖母さんは正しい 重度障害児を生んでどうにか生かして、初めだけ頑張って数年で育児放棄して結局は施設入れるとか見てきて、本当に税金の無駄極まりない
障害者とわかってた上で育てるなら税金使うなって話だよな
>>809 コピペに反応しておく
昔は人が生きていくうえでのリソースが絶対量として足りなくかつ偏っていたので、そういうこともしかたがなかったのだろう。
しかし今は違う。たとえ社会に貢献する能力が不足しているといっても生命の価値に差はない、とするのが現代だ。
出生前にある程度判明しかつ産む産まないの決定権は両親特に母親にある。
母親が産むと決めたのならばたとえ障害を持つものであっても社会がその一生を支援してもいいはずだ。
知的障害をあえて取り上げているようだが、これが知性に影響のない生まれつきの視覚障害者であれば、
>>809 の論拠は現時点で崩壊する。
あるいは生まれながらの障害者と中途障害者にどれほどの差があるというのだろうか?
旧帝大に入学できないと判明した時点で、社会貢献の可能性が乏しいとして、食肉となる社会、
そこまでいかなくともある一定の地位以上には絶対に到達できない昔の武家社会だったらどうだろう?
そんな社会を現代に是認できるか?
今は出自学歴思想等により可能性を閉ざすことは表向き上ではありえない。
そして生まれながらにハンディキャップを持つ場合も、その生活を支援する社会でありたい、というのが現代の論調。
最近ではマイケル・サンデルがその理論を明晰に説明していた。興味深い話であった。
古代解決不可能であった問題も生産力の増強とリソースの配分方法により基本的に解決される。
ただし現代でも解決困難な問題は、そのリソースの配分の具体的方法、そして生産力の増加を上回って人が偏って増えてしまうこと。
おまいら sex するな
昔は年寄りも処分してたらしいな 食わせられない子供を奉公に出すとか 人買いに売るとかも
>>812 中世ヨーロッパでは食わせられない子供は教会に寄進していたとか。これは当時としてはどの程度有効だったのだろうか?
ヨーロッパの知的潜在力の増強に一役買っていたのだろうか?
そして中世ヨーロッパにまけるとも劣らなかった中世日本社会では、どのように処置していたのだろうか?
>>811 ただの視覚障害者・中途障害者は妹をレイプしたりしないからok
暴力的で他人に害をなす存在は、池沼だろうと正常な人間だろうと社会から排除されるべきだろ?
知的障害者が総じて暴力的な手を付けられない存在かどうかはもちろん検証しようがないが、
少なくともその産婆や
>>809 は、強姦行為を行った知的障害者に対して殺したほうが良かった
という感情を抱いている.
過去の社会においてもそういった他人に害をなす存在は排除されるだろうし、
さらに当時の食糧事情から言えば、正常な人間だろうとニートのような何もしないできない人間は
淘汰されただろう.現代社会において人間の社会的な発展によって保護されるようになったのは
そういった他人に迷惑をかけないが何もしないニートのような存在なのだよ.
だから現代においても、理性なく暴力的な池沼は受け入れ難いと思うね.
池沼という条件だけで現代のリソースの配分とやらで保護しつづけようとしている組織は実在するが.
不況の現代においては一部の危険な池沼は淘汰されるべき水準にあると思うね
>>814 >ただの視覚障害者・中途障害者は妹をレイプしたりしないからok
根拠がない。
>知的障害者が総じて暴力的な手を付けられない存在かどうかはもちろん検証しようがない
そのとおり。それがわかっているのであれば、リソースの乏しい昔の手法を今に普遍させるのは無理があることもわかるはず。
>過去の社会においてもそういった他人に害をなす存在は排除されるだろうし、
現代でも他人に害を及ぼす存在は疎外される仕組みだ。
>さらに当時の食糧事情から言えば、正常な人間だろうとニートのような何もしないできない人間は淘汰されただろう.
しかしそれが直接の原因で命を奪われることはないだろう。
>現代社会において人間の社会的な発展によって保護されるようになったのはそういった他人に迷惑をかけないが何もしないニートのような存在なのだよ.
命を奪えということか?
>だから現代においても、理性なく暴力的な池沼は受け入れ難いと思うね.
>一部の危険な池沼は淘汰されるべき水準にあると思うね
そもそもそのような知的障害者が存在するのか?むしろ社会にむしられる被害者側に位置することの方が多いのだが。
ありもしない存在を盾に論拠を展開するのは無理があるぞ。
あとそこまで存在を主張するのなら薬物という手段がある。
そうだ、俺が飲んでいるスルピリド
http://en.wikipedia.org/wiki/Sulpiride が素敵によく利くぞ。性欲が、それどころか恋愛願望すら根本的になくなる。
まあ承諾なく薬を飲ますというのは倫理的に問題があるかもしれないが。
存在するのか?なんて疑問形で考えているとしたら、 お前は何も知らないままそんな長文書いてることになる. 親戚にもいるんだよね、手を付けられないのが. だからと言って殺すべきだと実際に思って接してるわけじゃないけど. というかそろそろ黙るぞ
>>814 君自身がその暴力的な池沼であり弱知的障害者である可能性はその文面からでは否定できず、実は自分現在の境遇を告白しているんじゃないか?
ドグマチールか?! うつ乙な人なのか?w
>>818 単なる食欲不振から統合失調症まで適用症状は幅広い。個人的な経験では失恋によく効きます、は、は、はあ‥‥
ジスキネジアを経験したことがあるなら認めてやってもいいが、そうでないなら単なる現代シンドロームなだけ。いわゆる鬱乙な人。
鬱だからといって生産活動を完全中断したことはありませんが(一部撤退はありました)、アカシジアには苦しみましたね。 ところで現代シンドロームとはどのような考え方を指すのですか?よろしければ。
ドグマチール処方なのにジスキネジアでなくアカシジアの方ですか。 アカシジアを経験したことがあるなら、あなたは本物の病人ですし、認めて差し上げましょう。 セマンティクスとしての現代シンドロームは、うつ(症状・状態)と、うつ病の違いと同等です。
>>809 ちんこスレにとって
>>811 では高級な指摘が2つもなされているから、これとは別のアプローチによって、そのひいばあちゃんが実は危険思想であるということ示しておく。
ヒトラーは、自身の出生に疑問を持ちつづけたためにアイデンティティを喪失し、選民思想を持つに至り、ユダヤ人と各種障害者、ナチ思想ナチ社会不適格者を殺戮した。
ナチス政党は、アーリア民族が優等であり全ての人種をより劣等なので絶滅することを自らの正義とし、ヨーロッパ全土とロシアを焦土に帰し、その後50年以上(日本を除く)全人類から憎まれる思想遂行集団とみなされた。
これらの思想とその遂行は、君のひいばあちゃんの主張とまったく同じと断定できる。しかしなぜ、選民思想や唯一個体化がダメな選択なのかを理解するには、現代の知識で説明しても通常人では難しい。
ひいばあちゃんが激高したのは監禁やレイプなど通常でも起きる犯罪なのであって、助産婦の仕事とは関係なく、仕事に私情を挟むことで自分が生死を司る人類の神にでもなったような錯覚をしている。
つまり君はひいばあんちゃんの思想や感性を今でも安直に信じているに過ぎず、ひいばあちゃんのスピリチュアルを自分が寂しくなったときに確認しようとしているに過ぎない。
>でもオレ、ひいばあちゃんは間違ってないと思うんだよな。うちのクラスの池沼とかみてると、こんなん生きてる価値ないだろって思う。
>重度障害児を生んでどうにか生かして、初めだけ頑張って数年で育児放棄して結局は施設入れるとか見てきて、本当に税金の無駄極まりない
おばすて山と同じく口減らしの習慣は正しい。しかし、これがなぜ正しいのかを理解するには、現代の知識で説明しても通常人では難しい。
生きている価値が無いとか、重度障害者を社会が養うのは税金の無駄の極みであるとか、そういう曖昧なスピリチュルから出てきた主張であるなら、ヒトラーの思想とナチスの思想統制・弾圧まったく同じじゃないか?
勉強も仕事も順調で、順風満帆な生活であったが、酔っ払いの無謀運転によって巻き込まれ重度障害者になったとき、その人はもう生きていく価値はないのだから絞め殺し処分すべきなのだろうか?
>>809 日本で血液で100%安全にダウン症児か見分けられるのが却下されたけど、
あれ倫理的という側面より、日本ダウン症協会の利潤のためだろ。
しね小宮山プルプルババア
俺はポップコーンを初めて植えた時、多くなりすぎた苗を間引くことを中学のときに初めて教わった。
その時俺はポップコーンがかわいそうだと思ったけど、必要なことだと理解した。
人間も同じだと思うんだよね。
芽すら出なさそうな人間は先に間引く。これが社会に必要。
ダウン症児なら堕ろしてまた子作りすればいい。
天使産んで地獄見るより、堕ろして堕天使にしたほうが善い。
ダウン症児童や知的障害者に恨みを持ってるようですけど、同性愛者(ホモゲイ・レズ)の社会においての存在意義や、男性同士・女性同士の同性愛者の結婚についてはどう考えますか?
ポップコーンと人間を同レベルで考えることは論理的に間違いでありそこがバグの混入であったと思いませんでしたか?
現代の総知識を投入しても、中二病患者が難しい概念を理解することは出来ない。
愛がわからない人間だ。学校でおしえる義務はない(?)のかな
愛、公正… 頭でわかってもだめなんだって。行動でしめせ
馬鹿には無理
(´・ω・`)? ポップコーンと人間は同レベルだよ。 生物の違いではなく、倫理的な視点でね。
ヒトラーは中二病患者だったってのは現代では当然常識
ヒトラー教祖に教化され洗脳されちゃったナチの犬とかネオナチの青年とかももちろん全員中二病
834 :
デフォルトの名無しさん :2012/09/08(土) 06:24:58.56
Javaの質問していいっすかぁ?
>>823 二つもしたっけ?
それはともかく、ナチズム=悪で止まっているのは少し物足りなく、もしアーリア人種が選民思想を忠実に実行すればアーリア人種自身が滅亡する可能性があった、
いいかえると、選民思想がいかに集団にとって好ましくないかを、遺伝子の多様性云々を持ち出してかっこよく述べたいところだ。
>>835 だめですよ。そういう大事なこと本質的なこと、みたいなのを、こんなちんこスレで軽々しくトークしちゃうのは。
道徳・哲学や記号・論理を理解出来る知能をお持ちなら、トポロジーやコンテクストもご自身の直感で見えてるはずです。
馬鹿には無理
今はダウン症は生む前に検査すればわかる ダウン症とわかった場合は、だいたいは生む前に堕胎する それを知ってて産む人もいるけどな
840 :
デフォルトの名無しさん :2012/09/08(土) 08:17:11.62
高速道路を北に向かって走っていた私は、 トイレに行きたくなったのでサービスエリアに立ち寄りました。 手前の個室はふさがっていたので、その隣に入りました。 便器に腰を下ろそうとしたその時、隣から 「やあ、元気?」と声がしたのです。 男は皆そうですが、トイレで見知らぬ人と話をすることはありません。 どうしていいかわからなかったので、ためらいがちに「まあまあだよ」と答えました。 すると隣人は「そうか……それで、今何してるの?」と言うのです。 妙だなと思いましたが、私はバカみたいにこう答えました。「君と同じだよ。ウンコしてるんだ!」 やがて隣の男は、声をひそめてこう言ったのです。 「おい、あとでかけ直すよ。隣の個室に、俺の声にいちいち答えるアホがいるんだ!」
韓国ついでに、マイクロソフトの方の話は無いんですか?
>>828 穀潰しに愛を持てない奴がいても仕方あんめ
ちと昔で言うと黒人に愛を持てない奴と同じになってしまうが
今生きてる障害者を殺そうとは思わないしパラリンピックも素晴らしいと思うが
生まれる前にダウン症かどうか分かるのはそれはそれで素晴らしいと思う
846 :
751 :2012/09/08(土) 14:29:29.44
む、無理です。。。 助言をお願いします。 bin>javac -classpath e:\ch.ntb.usb-0.5.9.jar e:\UsbMain.java @→bin>java -classpath e:\ch.ntb.usb-0.5.9.jar UsbMain エラー: メイン・クラスUsbMainが見つからなかったかロードできませんでした A→bin>java -classpath e:\ UsbMain Exception in thread "main" java.lang.NoClassDefFoundError: ch/ntb/usb/USBException at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2442) ・ ・ ・ bin>javac -J-version java version "1.7.0_05" Java(TM) SE Runtime Environment (build 1.7.0_05-b06) Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode) bin>java -version java version "1.7.0_05" Java(TM) SE Runtime Environment (build 1.7.0_05-b06) Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode) QT無
>>846 作成したクラスがどこに作られたか確認する。(またはjavac -dできちんと指定する。)
そのクラスがロードされるようにclasspathを指定する。ここで注意するのは、ファイルではなく基点となるディレクトリを指定すること。(jarの場合は特別。)
7は使ってないので、何か変わってたら知らない。
>>846 あ、違った。複数のクラスパスを通す方法か。
区切り文字で列挙してください。
>>846 System.getProperty("path.separator");
path.separator=:
で、区切り文字がとれる。環境によって違うので注意。
851 :
751 :2012/09/08(土) 17:18:44.92
>開発環境を仕え >複数のクラスパスを通す方法か。 すみません。意図が理解できませんでした。 コンパイル時、実行時に下記試しましたがエラーは変わらずです。 -cp .;c:\hoge VMでOSから初期化しましたが同じエラーです・・・ 本件、パス設定の問題だと認識しています。そうであれば どなたか正しいコマンドを教えていただけないでしょうか。 XPのクリーン環境にJDK7をインストールした状態で、ch.ntb.usb-0.5.9.jar, UsbMain.javaはc:\java\にあります。
◆親日活動をした韓国人を検索するアプリ登場
韓国では親日派の韓国人を捜索する動きが急になっていて、今回の事件は親日派一掃のための始まりではないか、
といった見方が日本のネットにはある。韓国の有力紙、中央日報が電子版(12年8月29日)で紹介したのは、
新発売されたスマートフォンアプリ「親日派スマートフォン検索」。
記事には、「誰が民族を愛し、誰が裏切ったのか、国民が正しく判断する契機になるだろう」と書かれている。
韓国、「竹島は日本の領土」と書き込んだ 「親日派」韓国13歳の少年検挙
韓国では2012年8月下旬に放送通信審議委員会が、親日発言をして、韓国を卑下する内容のブログ、コミュニティーなどを制裁することを決めた。
親日発言をするコミュニティーやブログを検閲し、制裁を加えるとの発表があったが、とうとう検挙者が出たようだ。
詳細 J-CASTニュース 2012/9/7
http://www.j-cast.com/2012/09/07145698.html?p=2
>>851 まずはクラスパスがきちんと設定できてるか表示するだけのプログラム書いて確認したら?
windowsのシェルが使いにくいってオチじゃないの。
すみません、お知恵を貸してください。 JDK6、IE9の環境で開発しています。 HPからファイルを自動でダウンロードするプログラムを考えています。 その際、ファイルのダウンロードページまで画面遷移をして、ファイルをダウンロードするようにしたいと考えています。 Selenium や watij を利用して、Webページを操作してファイルをダウンロードしようと試したのですが、 ファイルの保存画面の操作ができずに困っています。 Selenium や watij でファイルの保存をできるようにする方法があれば、教えてください。 仮に無理な場合、javaでhttp通信をして同様の操作をしようかと思うのですが、画像やボタンをクリックして 画面を遷移していく方法がわからないため、参考になるものを教えて頂けますでしょうか。 以上、よろしくお願いします。
PHPならコピペだけで一瞬でできるよ
>>854 通信を盗聴してブラウザのフリをするプログラム作ればいいだけ。エロ画像収集がんばれ。
857 :
デフォルトの名無しさん :2012/09/08(土) 23:46:36.08
サーバーサイドで、 JSP/サーブレット PHP 使うなら、どっちがいいですかぁ?
>>857 何をしたいか、何ができるかによる。
だから両方使われてる。
なんでウェブページのこと画面とか言うのかね。VBerの証拠?
最新鋭気取りのweb屋ですら普通に画面遷移って言うだろ
単位が画面と言うような会社もあるだろうな
Ajaxで 1画面=1ページ が崩れてくると尚更ページじゃなくて画面と呼ばれるんじゃないか
>>846 >@→bin>java -classpath e:\ch.ntb.usb-0.5.9.jar UsbMain
>A→bin>java -classpath e:\ UsbMain
これを合体したら上手くいく気がする
bin>java -classpath e:\ch.ntb.usb-0.5.9.jar;e:\ UsbMain
864 :
751 :2012/09/09(日) 00:40:43.14
すばら!!! さすが名無しさん達。 みんなありがとう!動いたよ。 bin>java -cp e:\ch.ntb.usb-0.5.9.jar;e:\ UsbMain
865 :
854 :2012/09/09(日) 00:51:11.16
>>856 さすがにエロ画像収集じゃないですww
一応公官庁で出している情報を収集するツールを作りたく。。。
直接許可貰え 捕まるぞ?
>>866 一般的な資料でもダメなのかな?
たとえば、市役所の報道発表みたいな一般に公開されているものを定期的に保存したいだけなんだけど。。
大丈夫なんじゃね それに捕まったら岡崎の図書館みたいに、ひろみちゅが騒いで応援してくれるよ
どこぞの図書館にアクセスした人は逮捕されたんだっけw 迷惑かからないようにしてれば大丈夫だろう
static void procedure(String[] a) { //void proc(char **) a[0]="get"+a[0]+"World"; //malloc,strcat } public static void main(String[] args) { String greeting[]={"Hello"}; //char *greeting[]={"aaa"} System.err.println(greeting[0]); //*greeting (cではiso規格準拠) procedure(greeting); // proc((char**)greeting) System.err.println(greeting[0]); } gotoと同じくワザとやりにくい方針で設計しているので、ジャバをやるならオブジェクト指向の思考にすぐ慣れてしまうことをおすすめします。
韓国ついでに、ゲイツの方のネタは無いんですか?
今ラムダの検査例外の扱いってどうなってんの? ドラフト読んでも特に考慮されてないみたいだし、 結局throws Exceptionだらけになるのを受け入れることで決定?w
例外透過の話か? なら関数型ないからないぞ。
これで検査例外が全く役に立たなくなるな ついにJavaから検査例外が事実上消えるのか おめでとう
これで毎度毎度 catch(Exception ex){ ex.printStackTrace() } って書く手間がはぶけるな
なんの話しとんの? lambdaはsamで定義された例外型しか投げられんよ。
>>879 それが問題なんだよ。たとえば、ラムダといえばまず思いつくのがこういうの。
items.where(x -> check(x)).map(x -> convert(x));
で、whereの引数には interface Filter<T> { boolean pass<T>(T x); }
こういうSAMインターフェイスを渡すことになる。これだと、checkメソッドのthrowsリストに
passメソッドのthrowsリストにない例外型が含まれているとコンパイルできない。
だから、SAMのthrowsリストにない型の例外でもスローできるようにしてthrowsを伝播させよう
というのが例外透過。でも今のところ例外透過はサポートしない方向らしい。そうすると
passメソッドをthrows Exceptionとするしかなく、チェック例外の仕組みが崩壊する。
今でもCallable#callみたいなのはthrows Exceptionになってるが、
ラムダは性質上そういう一般的すぎるインターフェイスが多用されるからね。
例外透過なしでlambdaを快適に使うには、 ・ラムダを使うメソッドはthrows Exception ・常にRuntimeExceptionのみを使う。 の二択となり、どちらにしろ検査例外は役に立たない もしそれでも検査例外をまともに使いたければ try { outputAll(items.where(x -> check(x))); } catch (Exception e) { if (e instanceof HogeException) throw (HogeException)e; } こんなアホみたいなコードになる
java.util.functions 見るに、フィルタとかは検査例外投げないコードが前提になってるような……
>>882 ならAndroidAPIでGoogleがやってるみたいになんでもRuntimeException化の方向だね
ラムダが一切例外をスローしないなんて現実的に不可能
フィルタくらいならなんとかならないこともないけど、 java.util.function見たらforEachとかあるな こんなもん例外避けられるわけないからRuntimeExceptionにラップ推奨か
例外型のジェネリクスも後付けしようと思えばできるだろうし、 例外透過欲しければ言語仕様作ってる連中の居るところいって騒げばいいと思うよ。
>>885 実際のところ、中の人のうちでも検査例外なんて内心もう捨てたいと思ってる人が多いんじゃね
もう大して重要じゃないからそのために複雑にすることないという判断なんでしょ
良い判断だと思う
ExceptionA | ExceptionB とか Serializable & Comparable みたいな型の和みたいなものを 型システムに組み込むとかそっちの方に話題がいっとったような。 総称型でやるとwildcardと相性悪いとか。
そもそも並列でforEachやるのに例外投げてええんかいのぅ?
別に並列専用ではないし 現実に投げられるかどうかはともかく投げる可能性があるメソッドを読んでいるというだけで catchしてRuntimeExceptionにラップするか握りつぶすコードを書かなきゃいけない ラムダ内にw
並列実行中にタスクが例外投げるのは全然問題ない なんせExecutorに渡すCallableはthrows Exceptionだし
つまりlambda受ける側はExecutor並に例外ハンドリングしろと。
デスクトップアプリではロギングってあまりやらないんですか?
というかJavaでデスクトップアプリ自体が流行っていないから 必然的にサーバー向けの機能ばかり充実する
>>892 デスクトップじゃないけど、androidとか取るよね。
個人的にはなんでも取る。出力先を標準エラー出力にして使うけど。
Androidやデスクトップではどっちかというとリリース前のデバッグ用だろ Androidでなんでもかんでもログ吐くのはやめてほしい
>>895 ログレベル変えればいいんじゃない。
どこかと通信するときはinfoで残してる。
javaでつくられたアプリはへんなログ吐くのが標準
Javaは大抵ライブラリがログ吐きやがるから 混ざってカオスになる
ラムダとクロージャはまったく違うんで例外の扱いも違う設計なんですよ まったく違うってことを理解できない人が多かったから関数型とか例外とかでかなりもめてそのせいでジャバ全体が2年遅れたんです
>>882 標準はミニマムで、必要なら自作するかサードパーティライブラリ使えってのがJavaの伝統だから、
今回も例外透過したければ専用のライブラリ漁れ、もしくは自作しろって事だと思うが。
>>899 関数型云々なんて高尚な話じゃなく、検査例外なんて邪魔なものを採用してるのがそもそもJavaだけ
ScalaやC#なんかは最初からそんなもの捨ててるから問題にならない
>>900 ライブラリでどうやって検査例外を実装するんだよw
コンパイル時にチェックするのが売りなのに
検査例外はdeprecatedにするから今後検査例外を見つけたら 片っ端からRuntimeExceptionにラップしろとお触れを出すのが一番みんな幸せになれる
try-catchを書くのがいちいち面倒とか、面倒なことは握りつぶして無かったことにする(のをデフォとしてる)とか、そういうオチ?
そういう問題じゃなくて、検査例外は失敗だったということで完全に決着がついてるの 公式すらもFX Scriptで捨ててるしな 作法的な問題に限っても、むしろ検査例外のせいで例外が握りつぶされる害の方が大きいだろ
GUIは通常処理よりも例外処理の方が多いしそれがコードのほとんどを占めるから、検査例外のコードを書くことが実際のコーディングじゃないの? さらにGUI以外でも並列計算のスレッド辺りでも例えばinterrupted exceptinとかでたまに使うし、使うような場面に遭遇したこともなくいつものルーチンワークだけやっていてそれが無いと困るような現場をこなしたこともないからそう考えるんだろうね。
何を言おうが失敗認定されているのは事実なわけだが
>検査例外は失敗だったということで完全に決着がついてるの kwsk
>>907 検査例外 失敗 で検索
でも何より、後の言語に全く採用されていないという事実が証明している
NumberFormatExceptionはruntime exceptionだけど、検査強制の例外にするべきだと思うよ。 この機会に例外とthrowについてよく考えてみたら?javaの設計方針はかなりよくできてるから。 グーグルがプッシュしてるscala(とかdartも)なんてのを触ることも使うことも絶対無いし、scalaを使ってコーディングの30秒を楽にできても後々の30時間をバグ取りで浪費することになるだろうね。
君より遥かに頭がよく経験豊富な人たちが散々議論して出した結論をどうとらえるかは自由だよ
911 :
名無し :2012/09/10(月) 09:46:57.16
すみません。
初心者です。
質問なのですが、以下のリンク先で現在学習中です。
http://www.javaroad.jp/java_class2.htm この真ん中あたりに「【例2】クラスの継承を使用した例です。」という例のソースが記載されておりますが、
実際Eclipsで作成する場合は、ExClass2とsubExClass2の二つのクラスファイルを作成しなければならないのでしょうか?(これなら実行はできましたが)例をみると1つのクラスファイルで書かれておりましたが、Eclipsで試すと、1つのクラスファイルでは実行できませんでした。
また、「【実行結果2】 」を見るとjavac subExClass2.java となっております。
通常クラスファイル名は頭文字は大文字です。なぜ小文字で実行できるのでしょうか?
>>911 >例をみると1つのクラスファイルで書かれておりましたが
Javaでは一つのソースファイルにつきpublicクラスを一つしか持てない。
つまりpublicでなければいける。
>通常クラスファイル名は頭文字は大文字です。なぜ小文字で実行できるのでしょうか?
なぜかクラス名の先頭が小文字になってるから。
別にクラス名の先頭を大文字にしなければならない決まりはない。
public classの名前がファイル名と一致していればよい。
913 :
912 :2012/09/10(月) 09:54:20.90
それとパッケージに注意 Eclipseだと勝手にパッケージが作られてるから、デフォルトパッケージに変更すれば エラーが出なくなる
グーグル先生が出す結果に頼って、偏った情報ばかりに長時間接して頭おかしくされないよう気をつけたおいた方がいいですよ。 グーグルは検索大手ではなく、あくまでもインターネット広告代理店大手であって、所詮は何をやってるのか知れないインターネット情報屋ですから。
>>908 javaを越える言語を設計してくれるならそれはそれで有難いけど、javaの設計やjavaが持つポテンシャルを余裕で越える有望な言語って未だにでてきてないでしょ。
しかも、cと同じくjavaは現在でも主流だし、scalaとかdartとか消えてもらってもどうってことない。
>>901 個別にthrows HogeExceptionつけりゃいいだけじゃね?
需要ありそうなのSQLExceptionとIOExceptionぐらいだし。
>>910 あなたが盲信しているその議論は、二者択一ありきだったんですか?
>>917 あなたが盲信しているJavaの仕様が実際に長期間運用されて
積み重ねられたを基にした議論の結果ですよ?
日本語でおK?
馬鹿には無理
>>916 どうせAndroidがどうとかGoogle先生万歳どうとかの人でしょ。
スルーじゃないですか。ここは。
都合のいいところしか目に入らないの?
試しに何かやらせてみても雑魚は雑魚
引用して煽るならこっちだな 「EckelのWebサイトにある議論を見ていると反応が大きく分かれていることが分かります。 一部の人は彼の考えが馬鹿げていると思っており、 一部の人は素晴らしい考えだと思っています (私の意見としては適切に例外を使うのは確かに難しく、 また間違った使い方をされる例は多いものの、 彼に同意する人たちは間違った理由から同意していると思います。 ちょうど政治家が、誰でもチョコレートがもらえるような補助を主張すると 10歳の子供から絶大な支持を受けるのと似た話のように思います。)」
ゲーツの文書の俺的要約: 前半部分、問題提起: 例外を正しく使うには馬鹿には無理だが、 そんな人間にチェック例外を強要すると状況が悪化する。 普通の人にとっても面倒くさくて、 ちゃんと書くのにそのうち疲れてつい同じような馬鹿なことをしてしまう。 最後: 非チェック例外を通して使うと決めたなら、 メソッドが投げる全ての非チェック例外を文書化しましょうとある。 結局、正しく書く分には手間が減るなどということはなく 例外処理を省くわけにはいかない。一言で言えば、要するに馬鹿対策
検査例外の最大の問題点は、例外をキャッチする上位のメソッドから発生源まで
すべてのメソッドのインターフェイスと実装を汚染すること。正しく使えば同じという話ではない。
Java盲信者の目には
>>881 のコードが正しく書かれているように見えるのか?
ラムダに限ったことじゃなく、インフラで発生した例外をフレームワークでキャッチしたい場合などに
同様の問題が起こる。
次期ラムダの例外はどう扱うのかって話じゃなかったんですか?
>>929 契約にない例外を投げられたら、結局、対処に困るだろ。
ブライアンゲーツだって、ちゃんと文書化しろと書いてある。
契約とワンセットなんだから、非チェック例外だからといって汚染が起こらないわけじゃない。
ラムダに関してはしらん
>>931 上位でキャッチしてで適切に処理するのであれば、
特に途中の経路がその例外を関知する必要はない。
ラムダが分かりやすい例だ
ある程度上位の適切な場所で例外処理していれば、 下位のメソッドの実装が変更されてスローする種類の例外が増えても 検査例外でなければ上位の例外処理のみを変更するだけで済む。 検査例外だと上位から下位まですべてのメソッドの修正が必要になる。 しかもキャッチして再スローしてthrowsを追加するだけの無意味な作業。
Webアプリケーションのサーバから直接プリンターに印刷する処理を加えようとしているのですが、 javaから印刷するときの標準ライブラリまたはフリーな便利なライブラリなどあるでしょうか?
例外をちゃんと使ったことがあるまたはちゃんと勉強したことがあるなら、なんでチェック例外を用意したのかよくよく分かるはずです。
目先の理想論でやってみたら思慮が足りなかった、といういい例です 当時はいろいろ新しい言語だったんだから中には失敗くらいあるさ
例外については、setjmp.hから始まってインスタンスとか内部クラスとかも勉強してその先のクロージャまでやれば多少は理解できるかもしれません。 しかし、ただのコーダーレベルでそこまでの理解が必要なのかって言われると、ルーチンワークしか出来ないコーダーにとってはクロージャどころかラムダとかイテレータとかも(理解するのが難しいから)不用だったのかも知れません。
初心者なんだけどホットコード置換って何? コンパイルするときになんか時々出るんだよね
941 :
938 :2012/09/10(月) 16:55:40.20
直近の数レスしか読んでなかったわw たった十数レス上で既出だったとは
馬鹿には無理
>>932 上位でキャッチして適切に処理するには、
下位からどんな例外が投げられてくるか把握しておく必要がある。
つまり、下位メソッドは、どのような例外が下から投げられてきて
それをそのまま上にスルーするのかを把握し、上位に教える必要がある。
実装みりゃわかるだろ、とか、
ある特定の範囲でメソッドの共通の契約を文書化しておくとか
という話ならまあそれまでの話なのだが
>>934 全てのメソッドに非チェック例外に関する契約が記述されていたら
全てのthrowsを変更するのと同様、全ての契約の記述を変更しなければならない。
これも、実装みりゃわかるだろ、とか、(ry
>必要がある ない
>>944 上位(処理するところ)と最下位(投げるところ)は契約が通じているが
その間の経路は俺は知らん、という状況はけっこうある
そのいい例がまさにラムダやフレームワークな
馬鹿には無理
Iterator#next下でReaderを使うだけで 非チェック例外のお世話になるのがチェック例外()
× interface Func<E> { void f() throws E; } ○ interface Func<E extends Exception> { void f() throws E; } あと総称型は元からthrows節に置けたかも。
見事なハシゴ外しww
おまえらどうせandroidとかwebの業務システムみたいな土方仕事しかしないんだから printStackTraceで済ましとけばいいじゃん
955 :
デフォルトの名無しさん :2012/09/10(月) 19:02:35.60
911です。 912さん、質問に対してのご回答有難うございました。
いえいえ
957 :
デフォルトの名無しさん :2012/09/10(月) 19:27:26.09
Javaでフレームワーク、Strutsという言葉を聞くがわかりやすくいうとなんでしょうか Javaについて書かれている本というのはJavaの文法、Servlet,Jspがおおいのですけど フレームワーク、Strutsについて書かれている本が少ないような気がします。 難しすぎて書く人がいないでしょうか。
958 :
デフォルトの名無しさん :2012/09/10(月) 19:36:38.92
XMLっていうのはなんでしょう Javaとなにか関係でもあるんでしょうか
959 :
デフォルトの名無しさん :2012/09/10(月) 19:40:54.08
【強制ID化を求む!】
釣り質問して釣りでしたって言っても騙り扱いされて終わり。
トリップ付ければ本人確実だからTwitterで()煽りも同一だって分かるけど、普通の質問者が最初からトリップ付けることってかなり少ないから
トリップ付きはすぐ警戒されるのが目に見えてる。
IDなら自然に判別してくれるし、用が済んだらいくらでも変えられて便利。
またIDの変え方を知らない初心者にはID追跡して粘着をすることが可能。
その他にも多くの恩恵がある。
今同志集めて強制ID導入してもらおうとしてるから暇な奴いたら協力してくれ。
ここに善良な2chユーザーのフリして一言導入を求める投稿をしてくれればいい。
http://toro.2ch.net/test/read.cgi/tech/1345798577/
960 :
デフォルトの名無しさん :2012/09/10(月) 19:42:31.69
>>958 XMLの3文字を検索窓に打ち込むことすらできないゴミがム板なんか来るな
>>957 低単価PGを出来るだけうまく使うための枠組み
>>958 HTMLが調子に乗った仕様
JSONの先輩
うん
Thread.stop(Throwable)やジェネリクスを悪用した方法もあるが、 前者は推奨されないメソッド、後者はコンパイル時の警告付きで、 意図せず間違えるのは難しい。やっぱり、Class.newInstance() が一番だな
947+1 :デフォルトの名無しさん [sage] :2012/09/10(月) 21:49:47.82 p Time.gm *"2002-03-17".split("-") この*ってどういう文法なんですか? 948+2 :デフォルトの名無しさん [sage] :2012/09/10(月) 21:59:13.99 最後の引数の直前に * がついている場合、その引数の値が展開されて 渡されます。展開はメソッド to_a を経由して行なわれます。つまり: p Time.gm("2002", "03", "17") と同じです。 配列を引数に展開して呼び出す、という事ですが、 これをJavaでするにはどうすれば良いですか?
可変長引数のメソッドをリフレクションで呼ぶ場合って、引数を配列にしないと呼べなかったのですが、 可変長引数のまま呼ぶことはできないでしょうか?
可変長引数っていうのはJavaコンパイラが勝手にそう解釈してるだけで 単に配列型の引数にマークが付いただけだから
void f(int a, String... b){} f(0, "a", "b"); は void f(int a, String[] b){} f(0, new String[]{"a", "b"}); と同じ
ObjectInputStreamの ・readObject ・readUnshared の違いって端的に言うとどういうこと? 非共有ってのがよくわからん。
同一インスタンスは返さないよってこと
http://ideone.com/kEb8D >true:15 15
>2回目のreadUnshared
>Exception .. InvalidObjectException: cannot read back reference as unshared
974 :
デフォルトの名無しさん :2012/09/11(火) 19:03:14.51
詳解Javaの訳本ってもうでないのかな? 原書は年末に4版が出版されるみたいだけど。
i列目の高さがheight[i]という配列にしてるんですが、この高さを表すheightをArraysクラスなんかでソートすると、対応する列がわからなくなります。 対応する列番号も保存したまま高い順にソートするにはどうしたらいいですか
まず rows[i].getHeight() にするところから始めよう 次にComparator
>>976 Comparator難しくてよくわからないです
あの<T>とかみただけで嫌気がさしてきます
シンプルな方法ないですか
高さの数値に行番号もエンコードしてみるとか 高さ42 (1行目) = 42001 高さ23 (2行目) = 23002
>>978 >>979 ありがとうございます
ソースまであってありがとうございます
考えないでできるので嬉しいです
DIコンテナ 依存性の注入ってよく聞きますが、結局何がしたいんですか?w
SWTのTableで、ドラッグアンドドロップで行を入れ替え可能にしようと考えています。
サンプルコードを探しているのですが、ご存知ありませんか?
>>981 状況に応じたサブクラスの選択。
全部引数で渡していくと、呼びだし元のメソッドから受け取りそのまま
自分が呼び出すメソッド (コンストラクタも含む) に渡す、というコードが多くなるので。
984 :
981 :2012/09/11(火) 21:54:21.92
>>982 新しくパソコン買ったので、Wは間違えて入力してしまいました。スマソ
設定ファイルでサブクラスを選択できるということでしょうか?
リフレクションを使えば同じようなことができると思うのですが、
リフレクションとは何が違うのですか
985 :
名無し :2012/09/11(火) 22:04:20.63
こんばんわ、教えていただけませんか? int x; System.out.print("input integer: "); InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); try{ String buf = br.readLine(); x = Integer.parseInt(buf); }catch(Exception e){ x = 0; } System.out.println("Input Number = " + x); でコンソールに入力した数字を String nen = buf.substring(0,4);を使って●●文字目を抜き出したいのですが、どこに追記すればいいのかわかりません>< 例 19900504の1990(頭から4文字)を抜き出したい。
986 :
982 :2012/09/11(火) 22:20:24.41
自己レスですが、これかも。しばらく読んでみます。
http://www.java2s.com/Tutorial/Java/0280__SWT/DragandDropinsideTable.htm >>984 例えば以下は、DIコンテナの一つであるGoogle Guiceの場合です。
com.google.inject.Moduleをimplementsしたクラスに、
以下のようなインターフェースとクラスの対応を書いておきます。
(メソッドごとに対応関係を一つ表し、複数の対応を一つのModuleに書ける)
public Class<? extends TheInterface> bindTheInterface() {
// class TheClass implements TheInterface
return TheClass.class;
}
すると、他のクラス群ではインスタンス変数にアノテーションを付けるだけで、
自動的に対応するクラスのインスタンスが代入されます。
@Inject
TheInterface x; // 自分で代入しなくてもTheClassのインスタンスが代入される
Moduleごとに別の対応を定義できるので、使用する側のコードで
別のModuleを選ぶと、代入される実装クラスは、一斉に切り替わるのですよ。
987 :
982 :2012/09/11(火) 22:22:24.47
>>984 Google Guiceもリフレクションを使っているはずなので、使い回せる部分を自分で書かなくて済む、
ということかも。
988 :
982 :2012/09/11(火) 22:25:25.45
>>985 こんな感じ?
String buf = br.readLine();
String nen = buf.substring(0,4);
x = Integer.parseInt(nen);
>>986 解説ありがとうございます
特定のシチュエーションで高い効果がありそうな気がしました
990 :
名無し :2012/09/11(火) 22:45:11.36
>>988 ありがとうございます。もう少しがんばります
うめ
立ててからやれ
995 :
982 :2012/09/12(水) 00:35:45.16
>>985 こんな感じ?
String buf = br.readLine();
String nen = buf.substring(0,4);
x = Integer.parseInt(nen);
>>996 コンパイルしてアプレットビュワー(appletviewer)でみればいいと思います。
またお前か
999 :
デフォルトの名無しさん :2012/09/12(水) 08:22:46.28
マイペースでJavaを学習したいです
馬鹿には無理
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。