1 :
デフォルトの名無しさん :
2011/08/10(水) 15:38:59.00
2 :
デフォルトの名無しさん :2011/08/10(水) 15:39:39.78
3 :
デフォルトの名無しさん :2011/08/10(水) 15:40:20.63
JavaというかEclipseなのですが、実行⇒サーバーで実行 で急にエラーが出るようになりました。 \Servers\ローカル・ホスト の Tomcat v6.0 サーバー-config の Tomcat サーバー構成が欠落しています。 というエラーメッセージなのですが、全く理解できません。 どなたか解決方法を教えて頂けないでしょうか。よろしくお願いします。
5 :
デフォルトの名無しさん :2011/08/10(水) 17:41:17.67
>>4 Tomcatサービスが既に起動してたりしませぬか?
タスクマネージャでそれっぽいサービスがあったら止めてみて
eclipse使わずに起動できるならeclipseが悪いんだろ
8 :
デフォルトの名無しさん :2011/08/11(木) 00:07:25.02
ファイルの読み書き、Socket通信、そういった部分に出てくる、 「ストリーム」の概念がよくわかりません。 サンプルソースをコピペして、実装したい機能のコーディングはできていますが、 これらの概念がよく分からず使っている状態です。 String型やbyte[]型のオブジェクトを、 InputStream、OutputStream(それらの派生クラス)に対して読んだり書いたりするとデータのやり取りができる ・・・ぐらいの認識しかないです。 的確に理解できる説明をいただきたいです。
あんま難しく考えないほうがいい。 Stream とは・・ファイル入出力、標準入出力、ネットワークIO・・などなど、 データソースがバラバラながら、入出力という点で共通しているだろうという思想のもと、 オブジェクト思考(笑)により唯一のインターフェースをでっち上げた言語開発者のオナニー くらいに思っとけ。
>>8 データの通り道だと思ってればいいよ
キーボードから文字を読み込むのとファイルからデータを読み込むのは
物理的には全然違う処理だけど、入力は入力として、統一された操作で扱いたい
だから、キーボードからの読み込みを抽象化して、ストリームからの読み込みとして扱う
ファイルからの読み込みも、ストリームからの読み込みとして扱う
ネットワークからの読み込みもね
要するに、IOを抽象化してるだけ
そしてそれをストリームって呼んでるだけ
>>9 ストリームの概念は、オブジェクト指向よりも前から存在していましたが。
またおまえかw
HttpServletResponse.setHeader()メソッドでレスポンスヘッダを設定しているのですが、 Javaのクライアント側でHttpURLConnection.getHeaderFields()メソッドから設定したヘッダが取得できません。 Live HTTP headersで見てみると設定したヘッダ情報が見れるのです。 なぜHttpURLConnection.getHeaderFields()だとヘッダ情報が正しく取得できないのでしょうか。 どなたかよろしくお願いします。
>>8 大きかったり終わりが分からなかったりするから全部を一度にメモリ展開できないので
頭から順々に読んでいこう!その代わりランダムアクセスは(自分でバッファしないと)できないよ
-> InputStream
sl4jとlogback を使用しています。 ファイルと標準出力にログを出力するようにしてあります。 Eclipseから実行すると、両方に出力されるのですが コマンドプロンプトから実行すると、標準出力にしか出力されません。 どういった原因が考えられるでしょうか? なお、コンソールにはエラーらしきものは一切出力されてません。
>>15 Javaでのアクセスコントロールの話かと思ってました。
ファイルでの実装は検討したのですが、
クラスごとにサブジェクトを設定できないので却下された経緯があります。
じゃあアプレット経由でアクセスさせてポリシィ設定する
19 :
デフォルトの名無しさん :2011/08/12(金) 11:58:16.20
スレ立てお疲れ様です。 早速質問なんですが public void actionPerformed(ActionEvent e) { という文の"e"の部分が何なのか分かりません・・ サンプルソースとかを見ると"ev"となっているものもあって・・ どなたか詳しい方説明お願いします。
>>19 変数名は、immediateでなくとも、i でも良いだろ。
event と言う変数名も e でも evでも良いってこった
21 :
デフォルトの名無しさん :2011/08/12(金) 12:32:16.73
>>20 返信ありがとうございます。
括弧の中で変数を宣言してもいいのですねー
すでに宣言されたものしか使えないのかと思ってました。
23 :
デフォルトの名無しさん :2011/08/12(金) 15:01:56.20
swingなんだけど、親要素で子要素のイベントを拾うことは出来ないの? 子要素全てにリスナー登録するとかだるすぎる。
24 :
デフォルトの名無しさん :2011/08/12(金) 19:16:43.64
質問です。 Java6→Java7で、何が変わったんですか? 軽くググったんですが、「クロージャ導入か?」みたいな古い記事ばっかりです。 詳しい人教えてください。
>>24 詳細検索で1ヶ月以内とか指定すると、最近の記事だけがひっかかるようになるよ。
>>23 リスナクラスの定義が変なだけじゃないの…
>>23 glass pane 使えば、ウィンドウ全域のイベント横取りできたと思う
>>23 出来るけど、switchで判定と分岐の嵐になると思う。。。
30 :
デフォルトの名無しさん :2011/08/13(土) 00:00:29.95
>>25 おー。いい感じに検索できました。
ありがとうございました。
最近apache commonsのコンポーネントに幾つか触れたのですが、 どれもバイナリをDLするとバイナリのjarファイルだけでなくドキュメントやソースの これらのjarファイルは何の役に立つのでしょうか?ワザワザjarファイルにして 固めてあるのは何か意図があると思うのですがよく分かりませんでした jarファイルもついてくるようになっていました これらのjarファイルは何の役に立つのでしょうか?フォルダとしておいておけば いいものをワザワザjarファイルにして固めてあるのは何か意図があると思うのですが よく分かりませんでした
>>31 Eclipse等でソースファイルとしてアタッチしておくと
デバッガで入っていける
33 :
31 :2011/08/13(土) 00:54:10.47
すみません、
>>31 の2行目と3行目は飛ばして下さい
>>32 なるほど、今調べましたがソースアタッチという手法があるのですね
今までJD等で無理やり調べるものだとばかり思っていましたが
こちらのほうが正確に内容がつかめるんですね
もう少し詳しく調べてみます、ありがとうございました
(個人撮影)(無修正)長野県援交 高3 内○結 17才 (生ハメ中田氏 濃厚フェラ マジ抜ける).avi これをjavaにしてください 生ハメ中田氏というとこができません
質問です 1つのクラスから2つのオブジェクトをインスタンス化しています その2つのオブジェクトに別々の引数を渡して 画像の大きさや表示位置を変える処理をやりたいのですが、 1つ目のオブジェクトを実行した後2つ目のオブジェクトを実行したら 2つ目のオブジェクトでの画像しか表示されていません 1つ目のオブジェクトに画像の大きさ:100、表示位置:左 2つ目のオブジェクトに画像の大きさ:50、表示位置:右 という引数を渡して、呼び出されたクラスの画像表示メソッドを実行すれば、 画面上の左右に別々の大きさの画像が表示されるって事で良いんですよね? 2つ目だけ表示されるのは単純に上書きされてるのでしょうか・・・? Javaは経験浅いのですが、1つのクラスから複数のオブジェクトを生成すれば、 クラス内の処理の使いまわしができるというらしいのでやってみたんですけど・・・
実装が分からんが、2つのオブジェクトが同じ画像を持ってるインスタンスを参照してるんじゃね。 画像持ってるインスタンスをクローンっていうかCopy見たいなメソッドがあるんじゃねーか?
>>35 一つずつだと正常に表示されてるの?
話はそれからだと思うんだけど
ソースを見るのが手っ取り早いだろうな
わからないなら入ってこないでくださいね
ApacheのDefaultHttpClientでSSLセッションIDを取得しようとしています。 ManagedClientConnection#getSSLSession()で取得できそうなことまではわかったのですが DefaultHttpClientからManagedClientConnectionを取得する方法がわかりません。 どなたがご存知の方教えていただけないでしょうか?
42 :
デフォルトの名無しさん :2011/08/14(日) 11:26:57.48
Java6 の Javadoc 日本語ってダウンロードできなくなったの? ja のリンクや言語の選択すらできん
所詮はオラクルがやることだからな
45 :
デフォルトの名無しさん :2011/08/14(日) 15:17:29.75
>>44 ありがとう!!
Oracleはヤル気ないならOpenOfficeのように手を引いてもらえんかなー。
帳票はどうしてる?
47 :
デフォルトの名無しさん :2011/08/14(日) 20:07:11.05
synchronized修飾子のついたメソッドは、 複数スレッドから呼ばれたときは実行順が保証されませんが、 単一スレッドから呼ばれた場合は、通常のプログラムと同様に実行順は保証されるのでしょうか? 下のようなプログラムでhoge(1)はかならずhoge(2)より先に実行されるのか、といことです。 手元で試した範囲ではそうなっていましたが。。。 synchronized void hoge(int i){ // do something } void fuga(){ hoge(1); hoge(2); }
逆に、入れ替わる理由は?
される
>>48 最適化とかで命令の順番並び替えるってのはよくやるから、
最適化でメソッド呼び出しの順番も並び替えちゃうかもって心配してるんじゃね?
51 :
デフォルトの名無しさん :2011/08/14(日) 20:59:16.68
>>49 ありがとうございます!!
>>48 あるメソッドがロックをとれなかったときに、
実行待ち状態にだけなって先に進むのかと勘違いしていました。
そうすると、別スレッドがロックを取得しているときに
hoge(1)とhoge(2)がともに実行待ち状態になる状況がありえて
入れ替わったりもありえるのかなあと。。。
実行待機というのはブロッキングされるのですね、まったくの勘違いでした。
52 :
デフォルトの名無しさん :2011/08/14(日) 21:49:23.25
Javaで byte[]を確保するときに、長さはやっぱり2の累乗が効率よく使えるのかな。 GCあることを考えると断片化ってもねえ、という感じもするのだけれど。
>>47 void fuga() {
synchronized (this) { this.a1++;@ }
synchronized (this) { this.b1++;A }
}
synchronizedが無ければ入れ替わることはあるが、
synchronizedに囲まれた1と2が入れ替わることは許されていない。
ただ
>>47 に書かれていることと
>>51 の内容が乖離しているのだが・・
相変わらずバカ回答者しかいないw
>>54 意味の無いレスせずにオマエが実のある回答してみろよ
>>52 >Javaで byte[]を確保するときに、長さはやっぱり2の累乗が効率よく使えるのかな。
管理情報の領域が必要だろうから2の累乗はキリが悪いんじゃね?
>>52 BufferedInputStreamのバッファサイズ無しコンストラクタの実装では8192バイトになってたりするね。
効率が良くなるかどうかはともかく、2の累乗の方が自分のプログラムでも扱いやすくない?
初心者が適当に回答書いてみるスレだからアホでいいんだよ
>>52 ルート2の累乗を使うおいらは少数派なのかい。
10001要素のために20000要素確保するのは我慢ならんが
14142要素確保ならまあ許せるかな、といった気持ちの問題。
意味のある数字か切りの良い数字にしとけよ 今時そんな大昔の慣例に従うなんて馬鹿馬鹿しい
>>62 ごめん単純な疑問なんだけど。
・
>>62 に出てくるどの数値がルート2の累乗?14142?
・ ルート2の累乗だと何か良いことあるの?
>>63 ルート2の累乗のこと?大昔にそんな慣例あったの?
サーバ側にHTTPボディをPOSTしたいのですが、以下のコードだと上手くいきません。
どこが悪いか教えて頂けないでしょうか。
url = new URL("
http://localhost:8080/hogehoge ");
HttpURLConnection http = (HttpURLConnection)url.openConnection();
http.setRequestMethod("POST");
http.setDoOutput(true);
OutputStreamWriter ow = new OutputStreamWriter(http.getOutputStream());
ow.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?");
ow.write("<Information>");
よろしくお願いします。
>>65 ぱっと見たところ、
・flushしなくていいのかな
・文字コード指定が無い
>>65 connectとかgetResponseCodeとか呼ばないと送信しない
>>66 ,67
上手くいきました。ありがとうございます!
69 :
デフォルトの名無しさん :2011/08/16(火) 21:39:44.52
皆さんPCは何を使ってますか? プログラム作成にMacProはオススメですか? MacBookやMacAirでも楽々こなせますか?参考にさせてくださいよろしくお願いします。Windowsの方が多いですか??
Javaならどうせeclipseしか使わないから何でも一緒 Appleの開発環境に触れる機会も全く無いからMacの意味も無い
obj-c以外でmacはない。
Linux入れてそっちでやればいいよ プログラミングなんてやりだしたらどんどん環境が汚れるし
>>69 Apple製のJDKは腐れてたからお勧めしないけど。
文字回りとか(OpenJDKは知らんが)。
今のMac上のJDKはOpenJDKがデファクトスタンダードになってるんだっけ?
ハイスペックなワークステーションノートに仮想環境載っけて開発環境作って大容量外付けバッテリー持ち歩くのが至高。
>>73 OpenJDK for macがjava7対応だから今後主流になると思われ。
Javaの開発環境について質問させてください。 現在、卒業制作で作るシステムの開発環境をどのようにするか調査しています。 制作にあたり指定された条件として、 構築するシステムはapache+JBoss+mysqlでJavaEE5準拠であること、 SCM(構成管理)、BTS(バグ追跡)、タスク管理、CI(継続的インテグレート)の 各種ツールを選定して使用することを言われています。 今のところ、 IDEはeclipse(pleiades e3.6確定)、 SCMはSubversionかGit、 BuilderはMaven3、 BTSはmantis、 タスク管理はredmine、 CIはJenkins(Hudson)を考えているのですが、 定番の組み合わせなどありますでしょうか。 メンバーは5名、予算は2万円まで支給、それ以上は自腹になります。
>>75 卒業制作なら
JDK 7 + Eclipse Indigo + Tomcat + mysql
これでおk
それこそ担当のセンセに聞けよ
SCMとかCIとか一般的でない略称使ってオサレなつもりかね
サーブレットでリファラの文字コードが何か判別するにはどのようにしたら良いでしょうか?
75です。レスありがとうございます。 まずサーバ環境は指定されているので残念ながら変更できません。 各種ツールについてもバージョン管理以外は正直使いたくないのですが、使えという条件なのでどうしようもなく。 実務でよく使用されている組み合わせというのがあるなら乗っかりたいと思っての質問です。 あと、SCMとかCIって言葉はオサレなんですか? たしかにうちのセンセはオサレさんなので、そういうの意識して言葉を選んでいるかもしれないのですが。
バージョン管理をSCMっていうのは初めて聞いた Subversionでサプライチェーンマネジメントとか意味ワカメ
普通じゃね?
85 :
デフォルトの名無しさん :2011/08/17(水) 13:20:00.88
123,567 → 123567 のようなカンマ区切りの入った文字列をintに変換する方法はありますか? 自分で作るしかないでしょうか?
Integer.parceInt("123, 456".replaceAll("[^\\d-]", ""))
parseIntでないの
>>75 なかなか実践的な課題やね。
ついでにMaven利用にも挑戦すると吉。
SCMやCIがオサレとかどこの現場だよ…
レス初期の占い課題の学生じゃないだろうな。
>>78 プログラミングかじってる人間にとってはすごく一般的ですけどね^^;
>>87 Java7になってもparseIntはカンマ読めないみたいよ。
それはさておき、新機能の_付数値リテラルも読めないってどういうことよ。
>>88 今日も現場ですか ^ ^ ;
いつもいつもIT土方ごくろうさまさまです ^ ^ ;
>>85 デフォルトのDecimalFormatインスタンスのparse()で読めるはず。
「コンマは小数点」って国も結構多いらしいが、日本語ロケール環境ならまず大丈夫だろう
>>90 リテラルっぽい文字列読み込むなら Integer#decode(String) じゃね?
っても、jdk7使っても、2進数リテラルも_で区切ったリテラルも読み込めないけどね。
アンダースコア付きリテラルは数値表記の話だろ? Stringのパースと何の関係があるのやら・・。
そんなJavaプログラマしかわからない表記を読めるようにする意味は無いし 今更そんな基本的なところを変えられてもトラブルの元になるだけ
JDK1.7のDocってないのでしょうか?1.4のころはあって、そこにパッケージの内容 が記述されてたものがHTMLで見れてたのですが。 あるのであれば、どこにあるのか教えてください。 よろしくお願いいたします。
[Documentation]→[API Documentation]の2クリックだろ。
>>97 ありがとうございます。
ダウンロード版ではなくなっているのですねー。
WEBから直接参照なんですね。
勉強になりました。ありがとうございました。
>>98 「Java SE White Papers」→「API」?
>>
>>100 どこみてけつかんねん
[Java]→[Java Platform, Standard Edition (Java SE)]→[Downloads]→[Java SE 7 Documentation/Download]
>>98 よく読まずに変なこと書いた。
[Java SE API]のワンクリックだろ。図の右の方に隠れている
Java SE White Papersから辿ると、旧バージョンだけど、日本語版が読める
>そんなJavaプログラマしかわからない表記を読めるようにする意味は無い 最近のLLから逆輸入されたんだからJavaプログラマにはわからないの間違いだろ。
>>104 Javaソースコードで扱う表現はプログラマーにとってのもの。
Integer.parseで扱う表現はアプリケーション利用者にとってのもの。
これらを区別することが重要と言っているのにお前と来たら
106 :
デフォルトの名無しさん :2011/08/18(木) 05:00:20.26
List<Test>型の配列を作りたいのですが、書きの用に書いてもコンパイルできません。 List<Test>[] test = new List<Test>[8]; 何故か解る方いらっしゃいましたら、お願い致します。
107 :
106 :2011/08/18(木) 05:01:37.71
書きの用→下記の様
>>106 List<Test>[] test = new List[8];
さらに警告消したいなら @SuppressWarnings("unchecked")
クラスの外に公開したコレクションに要素が追加された時に その要素に対して特定の処理を行いたいのですが、どうするのがいいんでしょうか。 1)getItemsメソッドは読み取り専用コレクションを返し、別途addItemメソッドを用意する。 2)コレクションは公開しないで、getItem(index)とかaddItem(item)とかgetItemCount()とか並べる。 3)コレクションを自作する
1)かな
112 :
106 :2011/08/18(木) 17:58:58.74
113 :
デフォルトの名無しさん :2011/08/18(木) 23:56:50.19
すみません、質問させてください。 メモ帳にて、"Sample.java"という名前で作成したソースファイルをコンパイルしようとしたところ、ファイルがないと言われました。 dirにて、ファイルを確認したところ、ファイル名が「Sample.java.txt」 となっていて、拡張子がtxtになっているようです。 名前をつけて保存の段階で、ファイルの種類を「すべてのファイル」にしていたのですが、拡張子.txtで保存されてしまいます。 .javaの拡張子で保存するには、名前の尾に.javaと入力するだけではいけないのでしょうか…? よろしくお願いいたします。
>>113 そりゃ、Windowsの基本的な使い方をしらないだけじゃんw
115 :
113 :2011/08/19(金) 00:01:29.45
保存の時、ファイルの種類を「すべてのファイル」にした後に 再びファイル名を書き直したら、無事コンパイルできました。 お目汚しすみません、お騒がせいたしました。
まずは拡張子を表示させる設定にしようか
クラス内のメンバー変数だが、 クラス内では読み書き可能だけど、 サブクラスからは読み込みのみにしたい これは可能?
>>117 private int value;
protected int getValue(){ return value; }
>>118 protected はサブクラスからはアクセスできるんじゃないですか?
変数自体はprivate
すいません。Java.netを学びたいのですが、どの製品を買えばよろしいでしょうか?
J#ということか?
>>121 英語版のVisual Studio 2008。
残念ながら国外でもVisualStudio2008でサポートを終了したようだ。
国内ではもっと早かった。
>>120 いくら変数が privateでも、同一ファイルのサブクラスからアクセスすればアクセス可能なんですけど?
もしかして:インナークラス
同一ファイルのサブクラスなんて作れたっけ?
>>125 class A { private int value;
protected int getValue(){ return value; } }
class B extends A { B(){ super.value = 0; } }
同一ファイルなだけならコンパイルエラーだな。
メンバクラスや内部クラスがフルアクセスできるのは当たり前だし。
次はこうか。 リフレクションでry Unsafeでry
macにjdk7はインストール出来る?
OpenJDK7のmacが完成するまで待て。 linuxとのデュアルブートにしてlinux版入れるとかあるけど。
親のJFrameから起動されるコンフィグ画面をJFrameで作成していたのですが、 JDialogというクラスもあることに気が付きました。 語感的にはJDialogの方が適切なように思うのですが、実際はどちらを使うべきなのでしょう? APIドキュメントを見比べてみても、JFrameにはsetIconImageメソッドがある、 位の違いしか分かりませんでした…
133 :
132 :2011/08/21(日) 05:46:41.44
すみません、書き込んでから気が付きました… setIconImageはjava.awt.Windowから継承されているメソッドなので両方にありますね。 あと、それぞれの継承元であるjava.awt.Frameと同Dialogには差異がありますね。 setModalとかありますし、やはりJDialogに変えるべきでしょうか(でもJFrameもモーダルにできたような…?)。
JFrameはネイティブじゃなかったっけ
ピア噛ましてるけどそこは気にするところか?
というかJComponentとJPanelが機能的に(現場的に)どう違うのか教えてくれないか?
Chromeみたいに、コンフィグ画面をJTabbedPaneで作るのが 今後のトレンドかも。
PrintWriter#printfの書式で精度を引数で指定したいのですが Cの %.*e のような指定はできないんですか?
pw.printf(String.format("%%.%de", arg1), arg2) みたいにすりゃいいんじゃね?
>>138 JTabbedPane(相当)で作られたコンフィグ画面は昔から一般的だと思いますけど、
作業ウィンドウと同じ体裁で表示されるのが目新しい、ってことでしょうか。
個人的にはコンフィグ編集内容をDiscardできるキャンセルボタンは欲しいですね。
Google Chrome程度の設定なら確かに不要かもしれませんが。
後は、チェックボックスやラジオボタンを押すと全ウィンドウに即座に反映されるって実装、
それなりのコスト掛かりそうですが、本質的でないところに力を割きたくないので
そんなトレンドにはなってほしくないですね…
>>134 何をもってネイティブって言っているのか分かりませんが、
JFrameもJDialogも一緒でしょう。
>>141 最近のバージョンのWindowsのコントロールパネルなんかは混在してるね。
Chromeは初期起動時のホームページを一括削除してしまって復活できないと知ったときはちょっと泣けたな。
145 :
デフォルトの名無しさん :2011/08/22(月) 22:23:44.73
GNU ReadlineがJava/Windowsで使いものになるようなライブラリはありますか? GNU Readline for JavaとJLineというものを試してみました。 前者は、自分の力ではコンパイルできませんでしたし、2003年ころの古いソフトです。 後者は、配布されていた.jarを配布されていたサンプルプログラムとリンクしてみたのですが、 Linux上ですら、ろくに動きません(Ctrl-kができてもCtrl-yができない)。 Windows上ではCtrl-[ky]両方できません。
DJunitでJavaのテストをしているのですが、外部ライブラリを上手くダミー化する方法はないでしょうか? orion SSHで外部サーバに接続するモジュールなのですが、単体テストでは接続させたくありません。 外部ライブラリがFactory的な動きをしてインスタンスを取得するような場合はバーチャルモックにしようにも、 コンストラクタが隠蔽されていたりしてうまくいきません。 アドバイスお願いします。
外部ライブラリをラップしたクラスもしくはファクトリを用意してDIする
Win7やvistaでjavaw.exeはどこにインストールされるのかわかる人いる? c:\Windows\systemの下だとかリリースノートかなにかに書いてあったけど、 自分のみたらc:\Windows\system32の下だし、 知り合いのはc:\Windows\SysWOW64になってるし、 なんでこんなにまちまちなんだろう。
WOW64って書いてあるだろ。
Map#containsKey(Object key) のcontainは動詞ですよね。sは3単現のsですよね。 Map#equals(Object o)も上記と同じですよね。 じゃあMap#get(Object key)やMap#put(K key, V value)はなんで3単現のsが無いんですか><;
>>150 get/put, push/pop なんかは慣例に従ってるからでしょうね。
とはいっても他にs付いてないのなんていくらでもあるでしょうけど。
自作クラス作ってるときに困るんですよね…ちゃんとs付けるべきなのかどうか。
CentOS5.6+Java6でJFreeChart1.0を使用しているのですが、 縦軸名の表示が勝手に縦書きになって長音が”|”にならず”ー”のまま残ってしまいます。 普通に横書き表示に戻したいのですが、これはJavaのフォント設定か何かが間違っているのでしょうか?
>>151 booleanを返すメソッド(〜かどうかを判定する)は3単現の動詞から始まる
Beanのbooleanを返すのはgetXXXXだよね…
>>150 馬鹿?
mapからgetする
mapがcontainする
主語が違うじゃん
Map#keys() Map#values() はどうして、 Map#getKeys() Map#getValues() じゃないのか。謎は深まる。 (どうでも良いレベル80くらいの話だがw)
>Map#keys() なんすか、これ?
>>156 Hashtable#keysに引っ張られたんじゃね?
戻り値の型Enumerationだし。
ゆとり? 馬鹿丸出しだなw
java.utils のソースを見たいのですが、可能ですか?
文字列から最後の2文字だけ削除するにはどうすればいいでしょうか? PHPにあるような便利な関数はあるのでしょうか? 例えば hoge = "aabbccdd"; ddを削除したいのです。
String#substring じゃない?
165 :
163 :2011/08/24(水) 17:25:54.92
本を片手にJavaの勉強を始めたのですが、練習問題で早速つまづいてしまっています。 菱形をforループを使って表示させるものなのですが、上手くいかない上に その本には正解が載っていないという泣きっ面に蜂状態です。 はじめにstart(菱形の上の*の数), end(下の*の数), max(最大幅?)を入力します。 blankはそれぞれの行の空白、starはそれぞれの行の*の数にしているつもりです(T_T) forループはJava以前の問題かもしれませんが、よろしくお願いいたしますorz int blank,star; blank = (max - 1) / 2; star = max - blank; for (int t = 0; t < max; ++t) { for (int b = blank; b == 0; --b) { System.out.print(" "); } for (int s = start; s < star; ++s) { System.out.print("*"); } System.out.println(); }
ガベージコレクタって切ることってできませんか? 使いまわしするってわけじゃなくて、ただゴミを片付けないという形です。 できればVMじゃなくてコンパイルしたクラスファイルに設定したいです。
VMを自作したらいい
使い回しっていうか単に staticなArrayList<Object>にnewしたもの全部突っ込んで放置すればGCされないよ メモリリークともいう
>>169-170 ありがとうございます。切るのは無理そうなのでその二つのほうほうでやってみます。
インターフェースにstaticな変数持たせて使ってるクラス全部に実装させればいずれOld世代に移動するんじゃね?
参照を張っておいたところで GCが止まるわけではないから……
Java SE 6まではダウンロードできたのにJava SE 7の日本語ドキュメントがOracleのダウンロード項目にないのは気のせい? まだ日本語ドキュメントが公式にアップロードされていないだけ?
DatagramSocketを使って文字の送受信をしたいのですが、2回目以降、 SocketExceptionのエラーで上手く受信することができません。 送信はできてるようなのですが、原因はなんなのでしょうか?
jdk-api-jaが死んでるから翻訳版はないよ。
英語版を読めば良いじゃない。
>>178 うん。そういう方針だったら廃れるよね、っていう話。
正確には、日本でJavaが廃れるのではなく、 世界で日本人のJavaプログラマが廃れるということなのでは^^;
むしろもう廃れてるから日本語翻訳も進まないんじゃね?
質問相談初心者スレで何度でも言ってやるさ。 英語嫁、英語嫁、英語嫁、英語嫁!
>>177 そこは基本的に品質向上用のプロジェクト。
ここは誤訳だよとか、ここは直したほうが分かりやすいよ、
みたいな指摘を受け付ける窓口であって、そこで翻訳してるわけじゃないよ。
>>174 いままでの実績だと半年〜1年遅れぐらいじゃなかったっけか?
と思ったらjdk6の時は3ヶ月遅れか。
日本人の英語に対する筋金入りの出来なささは世界中でも有名 だからこそわざわざ日本語だけは翻訳バージョンが公式に用意されていたのだろうが Oracleはそんなの知らないと言うかもしれない
5.0からは公式に中国語版もあるけどな。
日本ではジャバの採用実績が思ったより少なくモービル・デバイスなどの日本市場参入も出来なかったので日本人をサポートするためのコストはかけられません。
どういう思惑があるか知らないけど、 そういう虚偽な事書かない方がいいよ
サンは組み込みセットボックスでもモービルでもJavaFXがこけたからオラクルに喰われちゃった聞いたけど、本当の所はどうなの? ウェッブ的に見てもジャバはもうオワコンなんでしょ?
ジャッバはオワコン化、時代はCラングエッジ
>>177 そう簡単に廃れるかい。
Javaの仕事は日本でも多いしな。
日本語ドキュメントがなくなったくらいで廃れるなら、
とっくに廃れた言語なんか腐るほどあると思うぞ。
JDK6の日本語ドキュメントは残っているし
有志による翻訳もあるんじゃないのか。
しっかし、これでしばらくMergeDocを使う機会もなくなったな。
>>185 そういえばそんなこともあったか。あのときも有志が翻訳しているベータ版も
どこかでダウンロードできたような気がするが、どこだったか忘れた。
よく知らないんだけど、androidじゃJavaが主流なんだよね?
>>193 Androidを動かせる言語で、Java以外になんかあった?
アンドロイドはメーン開発者のグーグルがモトローラを買収した時点でオワコンになった
>>196 monodroid使えば.NET系の言語も使えるんじゃなかったっけ?
韓国でジャバが流行ることなど絶対にないでしょ。
Androidで使えるのはJava言語であってJavaではないぞ
こまけーこたどうでもいいんだよ。 そもそも「Javaを使う」についてJava言語なのかJ2SEライブラリを含むのか定義は無いだろ
javaっていうとVMと言語とライブラリぜんぶ含めたプラットフォームだとsunが定義してるが。
javaのクライアントサイドのスレッドってある? java製のFlashPlayerってないか聞いてみたいので Flash操作のマクロとかテストで利用したい
204 :
デフォルトの名無しさん :2011/08/26(金) 15:47:55.80
for文の中で、毎回変数の名前を変えるにはどうしたらいいでしょうか? for(int i=0; i<50; i++){ String str_? = "fugafuga"; } ?の部分を毎回変えたい、iを入れられれば一番いいのですが。
この前面接行った時に、 「Java言語を簡単に説明してください」 って言われたんだけど、皆ならなんて答える? ちなみに俺は 「そーっすね・・・ま、えーっと・・・、 メモリ?・・とか気にしなくていいっていうかー・・・ まぁ・・・安全?・・・そこらへんは安全なんじゃないでしょうか。 あとは、うん・・・オブジェクト的な感じで・・・はい・・」 ってなって(ああもう駄目だな)って思ったけれども
C++コンパイラでかいてもCかもしれないが、 Javaでかけば、いちおうオブジェクト指向でかいたことになる。 型にうるさい点で、Javaは、C++ににている。 型がないRubyは、ものすごく楽だから、油断する。
208 :
デフォルトの名無しさん :2011/08/26(金) 16:07:56.00
>>205 レスありがとうございます。
例では単純Stringとしましたが、独自クラスで変数名が被るのを避けたい状況です。
例えば、ArrayListを使って
hogehoge.get(0) で呼び出す物と、
hogehoge.get(1) で呼び出す物の変数名が同じだと都合が悪いのです。
>>208 つまり、forループで書くべき処理ではないってことかもよ
210 :
デフォルトの名無しさん :2011/08/26(金) 16:13:00.95
>>209 forループ内で毎回変数名を+1付け足して、
名前変更するような処理は出来ないってことでしょうか?・・・
名前変えないと何ができないのか良くわからん。
1回目のループではFooクラスの変数が1つ宣言されてて、 2回目のループではFooクラスの変数が2つ宣言されてて、 ってことか? 無理じゃないか?
リフレクション使えばできるよ。
215 :
デフォルトの名無しさん :2011/08/26(金) 16:28:45.01
>>213 リフレクションをどういう感じで使うんでしょうか?
ご教示お願いします。
日本でジャバが流行らないのはなんでですか?
>>215 よく見たらローカル変数か。
リフレクションでローカル変数の取得は無理だったわ。
名前の違うフィールド増やす、だとしてもリフレクションじゃ無理だな。
配列じゃなくてArrayListならいいとか、Map<String,Object>ならいいとか、そういうこと?
220 :
デフォルトの名無しさん :2011/08/26(金) 16:48:20.13
念のためArrayListを使って確かめてみましたが、 やはり、結局変数名が同じになってしまうのでダメでした。 毎回変数名を変えるのは諦めて、別のアプローチをしてみようかと思います。 相談に乗って頂き、ありがとうございました。
結局、質問の意味が解らんかったな。
こういうときは、何をする処理を書きたいかを聞いた方が的確に答えてもらえるよな。 本人の中では、その処理をするためにそれは必要だと思っているのだろうけど。
みなさん、こんぬつは。 私はもうプログラマをやめて営業職をしていますが(他業界) 今でも8080ナンバーの車をみると Tomcatのポート番号かあ・・と思ってしまいます。
どうぞそのまま営業職を頑張って続けてください
>>223 intel 8080 ではないのですね。
227 :
デフォルトの名無しさん :2011/08/27(土) 09:42:58.49
とある事情で暇になり、新規にjavaプロジェクトを立ち上げようと思っている者です。 自分はperlプログラマでもあるので、富豪的プログラミングや、プログラミングの簡易化などを目標に、 即戦力となる利便性の高いライブラリを公開していきたいと考えています。 具体的にはFileUtil、StringUtil、OptGets、Config、DataDumper、MD5、ExcelUtil、GUI関連のクラス、NullUtilなどがあります。 それで、今は仮に「lazyutil」と呼んでいるのですが、自分はネーミングセンスがないので、 もっとよい呼び名はないか、考えてはいただけないでしょうか。 よろしくお願いします。
junkutil
commonsと被ってる部分が結構多そうな予感……
wasteoftime
reinventingthewheel
232 :
デフォルトの名無しさん :2011/08/27(土) 11:02:07.10
>>228 junkutilですか。かっこいいですね。使ってもいいですか?
>>229 commonsがさっさとリリースしてくれれば俺が書かなくても
済むんですが……。
>>230 時間の浪費(WoT)ですか。
ちょっと馴染みが無い表現ですね。
>>231 車輪の再発明(RtW)ですか。
なるべく丸く作るよう努力します。
final class おれ様Utils extends ちんこ勃起
236 :
デフォルトの名無しさん :2011/08/27(土) 16:04:50.68
234 implements Impotenz
apache→アパッチ族→ゲロニモ→シャーマン→巫女→巫女みこナース→巫女みこ→micomico→micomi-commons んじゃ「Micomi Commons」で。
>>227 >FileUtil、StringUtil、OptGets、ExcelUtil、NullUtil
まずこんなクラスを排除することから始めるんだな。クラス設計が腐ってる
いや柔軟性とか拡張性とか言い出したら使いづらくなってわざわざユーティリティ作る意味が なくなるからオブジェクト指向設計的にどうとか考えなくていいと思うよ。
それって公開するの?使いやすいライセンスにしてほしいな。個人的にはGPLでもいいのだけれど 名前がどうのこうのよりドキュメントをちゃんと書いて欲しい。これがないユーティリティなんて悲惨だわ
俺っちコモンズで
243 :
デフォルトの名無しさん :2011/08/27(土) 20:10:21.27
Jakartaでええがな
>>239 まずユーティリティークラスの存在自体がかなりおかしい。
そのクラスは何を表す概念なの?
J2SEのAPIに???Utilなんて無いでしょ。
いるよねー利便性じゃなくて OOP的にどうなの?的ないちゃもん付けるやつ 殆ど100%ろくにプログラムすら書けないの
パッケージにはjava.utilがあるから、パッケージjunk.utilとか作ってそこに収めればどうだろう? ところで、自作のパッケージってどこに入れたらいいのかな?java以下に勝手に入れるとまずいよね。
>自作のパッケージってどこに入れたらいいのかな?java以下に勝手に入れるとまずいよね。 使うのをためらってしまいそうな発言だな…w
いやいや、246!=227だよ。ちょっと便乗しただけさ。 今はorig.〜みたいに勝手に作ってやってるけど、これってどうなん?自由なんって思っただけ。なんかスマンw
OpenJDKがGPLだからGPLで結局問題ない
>>248 自由。
トラブル起こらないように自分が持ってるドメイン名の逆を使った方が良いよ、という程度。
昔はパッケージ名の登録所みたいなサイトが有ったけど最近は使ってないな。
てかユーティリティ公開するのに自サイトの一つくらいもってないのかw
>>244 標準APIに無いからしかたなく???Utilってつくるんじゃん。
そらJ2SEのAPIには無いわ。
253 :
244 :2011/08/27(土) 21:44:00.63
>>245 >OOP的にどうなの?的ないちゃもん付けるやつ
ほう。OOP的に間違っていることは理解できるんだ。
特定のクラス内で閉じたり特定のクラスと関連が強いのにわざわざUtilに出す
アホが多くて困るわ。
>>252 お前の作るUtilが標準APIに無いのは当たり前だろ。
すべてのUtilクラスの存在がおかしいと言っているんだ。アホですか?
ふんがー!ふんがー!
語尾にs付いてないから間違いとか言い出しそうだw
>>244 SwingUtilitiesがあるだろ
>>244 適当言ってんじゃねえよ。
javax.rmi.CORBA.Util
javax.swing.text.Utilities
標準ライブラリをラップしただけのユーティリティが世の中にこれほど量産されて それが有難がられるってことはそもそも標準ライブラリの設計にも問題があるんだろうな 実際使いづらいし
そうかな。 バージョンの重ねるごとに改善されて行ってると思う。 7のFileSystemとPathはまだ違和感があるけどw
>>238 そうするとどういう設計がいいんでしょうか?
なんとかUtilってクラスメソッドの置き場所に困ってるからとりあえず名前で括っとくか的なノリだよね。
凝縮度が高いUtilクラスもあるわけで、 Utilクラスだから凝縮度が低いわけじゃない。 Fileクラスに足りない機能を作りたい場合にFileUtilクラスを作る場合もあるけど、 これは通信的凝集にあてはまるので凝縮度が低いとはいえない。 SwingUtilitiesは偶発的凝集かな? 論理的凝縮のUtilクラスの例は思いつかないなぁ。
状態を持たないなら寄せ集めでも大して問題はない
>>266 SwingUtilitiesは手続き的凝集を機能毎にSwingUtilities、SwingUtilities2、SwingUtilities3に分けてある。
汎用性の高いものだけ公開APIにしてあるから偶発的に見えるだけ。
SwingUtilitiesこそSwing実装の共通部分を疎結合にするためにある。
SAXなどでxmlの中の全要素をxmlの記述で取得することはできないでしょうか? たとえば、 <a><b><c/>dddd<e>fff</e>ggg</b>hhh</a> というxmlで、<b>〜</b>の <c/>dddd<e>fff</e>ggg を取得したいのですが?
パーサーにそんな機能はないので自分でやる。 というか自分でやる以外にない。
ですよねー。
HTMLの特殊文字エスケープを逆変換するメソッドってありますか? < → < とか & → & の変換をするコードはけっこう見つけたけど、 String中の & や < を元に戻すコードは見つからなかったのですが
273 :
272 :2011/08/28(日) 11:07:24.03
失礼。2行目 × < → < とか & → & ○ < → < とか & → &
274 :
272 :2011/08/28(日) 11:31:57.16
ごめんなさい。自己解決しました。 Apache commons langってのがあるんですね
数行書けばいいだけのことにcommonsはでかすぎないか?
276 :
272 :2011/08/28(日) 12:51:41.61
>>275 確かに。。。
面倒臭がらないで自分で書くべきですかね
ちょいと参考書について質問があるんだけど、 ハンドラーとかDTOとか、用語からの概念を説明しているサイトなんかは沢山あるけど それが実際にどういったソースコードで表現されているかを サンプルソースをふんだんに使って解説している参考書は無いかな?
クラス設計やユーテレテー設計を日本語で勉強するならジャバよりもシーシャープの方が全然勉強になるって聞いたんですけどどうしてですか?
>>278 そら、Javaのクラス設計は汚いからな。
C#も2.0までは糞だったが、3.0からかなり良くなった。
それならどういうクラス設計にするとジャバ全体の設計は良くなるんでしょうか?
11月 旅行 結婚式 12月 1月 | ▼ ▼ | | −−−−−−−−−−−−−−−−−−−−−−−−−−−− こんな感じのを出したいんですけどなんかそれっぽいライブラリありませんか?
それぐらいだったら、ライブラリなんか探さなくても System.out.println("11月 旅行 結婚式 12月 1月"); System.out.println("| ▼ ▼ | |"); System.out.println("−−−−−−−−−−−−−−−−−−−−−−"); でいいじゃない。
>>281 こうあるべき、だけじゃなくて使う人のことを考える
>>280 2.0も3.0もだいたい同じだな
さては大して使ったこともないのに適当にいってるんだろ?
どんなにスンバラシイ設計をしたとしても誰かからは イチャモンつけられるんだから、 自分が使いやすいように好きに設計すればいいいんだよ^^
設計云々よりも英語も出来ないのにジャバを勉強しちゃおうなんてのは時間の無駄
>>286 お前、3.0のWPFでGUIが完全に全部作り直しになったのに同じって、
本気で言ってるのか?
WPFなんてSWT並に普及してないだろ。
日本では実はC#よりもVBでドットネットにアクセスしている人の方が多い。
ライブラリ全体がガラッと変わったかのような口ぶりだったのにGUI周りだけの話かい
Java 7のFIleSystemとPathは使いやすいのか使いにくいのか良くわからんな。
カタカナ書き流行ってんの? 今のところ揶揄したがりさんしかカタカナ書きはしてないようだけどさ
同じ奴に決まってるだろ
>>293 相互変換もそんなに苦じゃないわけだし、自分のコードの中で使う分には使いやすさは同等。
だけど標準APIやらCommonsやらのインタフェースがFileばっかりなので…
GAEの掲示板つくろうと思ってるんやけど テンプレートエンジンはどれがいいかな VelocityやThymeleafがあるのは知ってるけど ORACLEのJavaEE関連ではテンプレートエンジンってあるの? 掲示板のテンプレートサンプルあったら そのまま使ったろー思ってちょっと調べたけどみつかんなかったわ
300 :
227 :2011/08/29(月) 22:43:29.12
無駄にシングルトンにしないで全部staticでいいよ インターフェイス被せたりしないなら何の意味もない
302 :
227 :2011/08/29(月) 23:14:13.25
配列に関する質問です。 例えば Hoge[]hoge = new Hoge[10000]; という配列を作り、 hoge[100]までしか使わないことによって、どのようなデメリットが発生しますか?
lengthが使えないので面倒 メモリの無駄
Java SE 6 ドキュメント 日本語版がほしいんだけど DLできません 英語版はDLできる どうなってんだ
スレの上の方に補完あるよ
>>307 ありがとう補完分を手に入れられました。
冷静にスレ読んだら英語版だけになったのをやっと理解しました
久しぶりに勉強再開するので日本語翻訳版があって当たり前だと思い込んでました。
2つ入力欄があって Aに入力あり Bに入力ありの場合 Aに入力あり Bに入力なしの場合 Aに入力なし Bに入力ありの場合 Aに入力なし Bに入力なしの場合 で処理を分けたいんですけどどのようにすればスマートに行きますか?
if文を使えばいい。
311 :
デフォルトの名無しさん :2011/08/30(火) 09:31:28.78
Obserberパターンだな 項目の状態を監視するクラスを作って、更新の都度メソッドを呼び出せばいい。 複雑な設定画面や帳票画面なんかでよく使われる。
すまん上げてしまった。
313 :
デフォルトの名無しさん :2011/08/30(火) 11:06:53.46
唐突にすいません。ちょっと困っています。 今研究室でニュートン法やSD法などを勉強しながらjavaを使ってプログラムをしたりしているのですが、そういった解析に関するプログラムについての質問はどこですればいいのでしょうか? もしよければ教えてください。
学校の先生に聞け JavaよりCの宿題スレとかFortranのスレとかの方が詳しい人いると思う
マルチうぜえ
>>309 白い目で見られると思うけどビットフラグ
Javaを使ってコマンドプロンプトの閉じるボタンを押しても無効化できる方法ってありますか?
んな環境依存なことJavaでまともな方法でできるわけない
拡張子が.javaらしいファイルを落としてきたのですが これをどうすればいいですかね
jdkをインストールする所から始めると考えると結構骨だな
>>320 らしいって何だ
拡張子見ても.javaじゃ無いって事か?
拡張子表示してないんだろう。。。
>>320 メモ超ひらいて.jaraらしいファイルをドラッグ&ドロップ
326 :
デフォルトの名無しさん :2011/08/31(水) 02:35:46.19
誰か居る?
iruyo
328 :
デフォルトの名無しさん :2011/08/31(水) 02:47:02.51
使い終わった配列をnullにするとどのタイミングでガーベージがクリアしてくれるんだろう。
状況によるとしか言えないんじゃないのか 少なくともnullを代入した直後にすぐgcはされないだろうけど
nullにしたあとマークされた後にGCが来るタイミングじゃないの?
>>329 リファレンスカウントを使った実装が
無いとも言い切れないんじゃないかと思うが
そういやG1GCってもうデフォで有効になってるんだっけ?
>>328 その質問に明確な答えが用意されていれば
Javaの普及率はもっと進んでいたであろう
って答えじゃダメかい?
長く使ったオブジェクトなら使い終わってもなかなかGCは来ないよ 早くGCしてほしいなら中途半端に保持しないで速攻で使い捨てろ
338 :
デフォルトの名無しさん :2011/08/31(水) 12:42:36.28
HashMapとArrayListの両方の機能を持ち合わせたようなクラスがあるとうれしいんだけど そういう機能を持ったクラスって無いのかな?
リフレクションを使って取得したオブジェクトを、文字列化しようとしています。 Object rtObj = method.invoke(obj, new Object[]{}); //getterを呼ぶ if (rtObj != null && rtObj.getClass().isArray()) { try { rtObj = Arrays.asList((Object[])rtObj); //String[]などをList化する } catch (Exception ex) { //TODO: boolean,int,float,doubleの配列を加工する } } String rtObjStr = (rtObj==null) ? "null" : rtObj.toString(); //Listなので"[1, 2, 3]"と表示される TODO のところがわからないので教えてください。 プリミティブ型の配列の型を判別し、List化または文字列化するには どのようなコードを書けばよいのでしょうか?
>>338 google collectionsのmultimapみたいな奴?
>>339 //List版
if (rtObj instanceof boolean[]) {
boolean[] pa = (boolean[])rtObj;
Boolean[] wa = new Boolean[pa.length];
for (int i = 0; i < pa.length; i++) wa[i] = Boolean.valueOf(pa[i]);
rtObj = Arrays.asList(wa);
} else (rtObj instanceof int[]) {
//以下延々と続く……
//文字列版
if (rtObj instanceof boolean[]) {
boolean[] a = (boolean[])rtObj;
StringBuilder sb = new StringBuilder("[");
for (int i = 0; i < a.length - 1; i++) sb.append(a[i]).append(", ");
if (0 < a.length) sb.append(a[a.length - 1]);
sb.append("]");
rtObj = sb;
} else (rtObj instanceof int[]) {
//以下延々と続く……
342 :
デフォルトの名無しさん :2011/08/31(水) 15:05:11.59
>>340 すげーな。俺は
>>338 が何を聞きたいのかさっぱりわからんかったぞ。
>>339 CommonsのLangにToStringBuilderみたいな名前のが無かったっけ?
要求にマッチしてるかは知らんけど。
こういう書き方ってありですか? ArrayList<String[]>hoge = new ArrayList<String[]>(); … hoge.get(1)[2] = "らららー";
ちょっとした内部実装に使うのはあり クラスの外に晒すのはなし
>>339 オブジェクト指向風味
public class ListAdapter extends AbstractList<Object> {
private final Object target;
public ListAdapter(Object target) { this.target = target; }
@Override public Object get(int index) { return Array.get(target, index); }
@Override public int size() { return Array.getLength(target); }
}
>>216 MATLABなんかに使われてるところなんかからすると、日本人の言語や思考にあってないのかもね。
理系の人が少ないのもあるだろうし。
jvmの未定義オペコードがだいぶ残っている状態でずいぶん経ちますが複素数とかスタック構造体とかアレイ・ストリーム演算(sse,vectorなど)とか欲しいですよね。 そのようなjava言語改定もせず余っているオペコード枠も埋めないのはどうしてですか?
数値計算はマイナーな用途だから 値型は確かに欲しいけどそれより浮動小数点例外が欲しい
浮動小数点例外てのはqnan,snanですよね。 webでも使ってるところをあまり見たことないですがどんな用途の時に使うんですか?
デバッグに使うんだよ 数値計算だとバグで結果がNaNやInfで埋め尽くされることはよくあるので その原因特定に使える
どういう理由でオペコードがだいぶ余っているのか知りませんが、(仮想)計算機はosと同じくcpu,gpu,dmaなどのハード・チップ提供の機能にアクセスする手段を持ってこそナンボのものだと思うんですけど・・・
元々その辺はJNIに任せる予定だったんじゃなかったかな。 Javaはそれよりも高いレベルの処理を受け持つといったように役割が明確に分かれてたはず。
ところが最近のモーバルとか組み込みはcpu 1G, strage 4Gなんて当然ですし、オペコードが15年前の32bits pc仕様のままなのはどうなんでしょう・・・
Javaで、Rubyでいうところのクラスインスタンス変数に相当するものはありますか。 クラスインスタンス変数とは、子クラスごとに違う値を設定できるようなクラス変数です。 class Parent { static String var = null; } class Child1 extends Parent { static { var = "Foo"; } // Parent.var とは違う値を保持する } class Child2 extends Parent { static { var = "Baz"; } // Child1.var とは違う値を保持する }
子クラスと親クラスで同名のprivate static final なフィールドは宣言できたと思うけど。 もちろん子クラス同士でも。 Java的な方法はgetterをオーバロードしてそれぞれの子クラスで返す定数値を定義する、でしょうね。
>>357 ない。
メソッド使っていいのなら似たようなことは可能。
class Oya {
private static String VAR = null;
public static String getValue() {
return Oya.VAR;
}
}
class Ko {
private static String VAR = "Foo";
public static String getValue() {
return Ko.VAR;
}
VAR, getValue()はオーバーライドではなく、隠蔽であることに注意。
内部情報はそのまま晒すなと。
Ko にextends Oyaつけ忘れてた。
脳内補完頼む。
>>358 オーバーロードとオーバーライドは別物だよ?
>>356 スタックマシンだから少なくて済むし
何のための仮想マシンだと思ってるのか
特定のCPUに依存したら意味がない
バイトコードはあくまで軽く前処理されたソースコードであって、そこから先はJITコンパイラの仕事
>>359 なるほど。
やりたいことは、ActiveRecordのように、クラス毎にテーブル名を設定することです。
protected class Entry {
public static String getTableName() { return null; }
}
public class Product extends Entity {
private String tableName = "products";
public static String getTableName() { return tableName; }
}
public class Order extends Entity {
private String tableName = "orders";
public static String getTableName() { return tableName; }
//or public static String getTableName() { return "orders"; }
}
とするしかないってことですかね。
うーん、いまいち。
>>360 ごめん別の解法書いてて書き直した際にそこだけ修正漏れた
>>362 クラスとテーブルの対応が動的に変わらないのなら、自分ならアノテーションを考える。
@Bind(table="fooMaster")
public class FooEntity extends Entity {
/* ... */
}
>>365 上にあるとおり、サブクラスで親クラスと同じ名前のstatic変数を定義することで、
親クラスの変数を隠蔽すれば、それっぽい感じにはなるな。
ただ、そのまま見せると変更に弱くなるからメソッドを挟んでおくってだけ。
例えばVARをStringから何かのクラスに変更して、返すのはそのクラスの属性にするとかね。
>>364 アノテーション使っても、子クラス毎にstatic変数やstatciメソッドを定義しないといけないから、解決になってないと思うけど。
for (Annotation ann: FooEntity.getDeclaredAnnotations()) {
if (ann instanceof Bind) {
String value = ((Bind)ann).value();
FooEntity.setTableName(value); // これをするためには
}
}
class Entity {
private static tableName;
public static void setTableName(String name) { tableName = name; } // 親クラスに定義するだけではだめで、
}
class FooEntity extends Entity {
private static tableName;
public static void setTableName(String name) { tableName = name; } // 子クラス毎に定義しないといけない
}
クラス変数を子ごとに別に持ちたい奴が変更なんて考えてるわけないから隠蔽するだけでいいよ。
>>368 ちがうよ。アノテーションで指定した値をクラス変数に保存するためにstaticなsetterを使ってるのであって、変更を許すかどうかは関係ない。
まともなジェネリクスがあれば解決できるパターンだが、Javaだからな…
>>367 ごめんなさい。きちんと意図が伝わらない書き方だったかな。
アノテーションに書けばクラス変数は不要だろうと考えた。
O/Rマッパーなりフレームワークなりの規約として変数が必要なら仕方がないんだけどね。
>>361 それが、jvm仕様より歴史が古くさまざまなcpu向けのシー言語ですら_Complexやスタックstructが当り前のようにサポートされていますが、15年以上前の思想のまま止まっていて32bitsマシンが前提のバイトコードに付いて何か勘違いしてませんか?
>>372 バイトコードはJavaのソースコードのセマンティクスをだいたい維持してるよ?
詳細な最適化をjavacの段階で行う代わりにJITの段階で行っているに過ぎない。
そもそもJVMはスタックマシンで機械語とは構造が全く違うだろう。
JVMがポータブルな形でユーザー定義値型に対応することはもちろん可能だろうし
個人的にはそうなって欲しいが、なぜそれをCPUの命令と直接結びつけて考える必要がある?
15年前は1995年でウインドウズ95が出た頃ですが、その頃の量産型計算機(いわゆるパソコン)は cpu 200-400M, mem 16-80Mでfpu unit(mmx,sse,ieee)と、graphics vramが16M-64Mなど大きくなり2d graphics(directx gdi+, awt grahics2d)が本格的に一般化するころでした。 ただしjavaでは1.4辺りまではawtでソフト処理のままハード提供(2000年当時はos提供)の2d graphicsを利用せず、 結果的にswingが遅く実用的でないので2dとdesktopはswt(eclipse)やflash(applet)に食われてしまいました。 現在2010年での32bits普及型(タブレットやスマート)はcpu 400M-1G, gpu 3d(opengl), array unit(cell,vector)など ハードで用意されてますが組み込み採用を目指している現在のjvm仕様ではその機能にアクセスできないので簡単に利用できないのと同じです。 バイトコードの追加はc99機能程度のは当然ですが、他にアレイ演算(ベクトル処理)やマルチコア(マルチプロセス)などもサポートして現代的なjvm仕様が望ましいと思います。
つ C#
CやJavaが言語仕様レベルでSIMDをサポートしてるのか? そんなもんコンパイラの問題だろ? それと同じ理屈なんだが バイトコードが1対1で機械語に変換されるとでも思ってるのか?
awtの前例を出したのは、今までのようにJITを前提としたosの抽象化のこだわりが、awt/swing時の問題点とまったく同じ状況なのです。 1.4ではVolatileImage, BufferStrategyが出てawt抽象化のこだわりを捨てて2dがだいぶ改善されたのと似ていますが、 現在のjvmバイトコード仕様とJIT依存でなくユーザが追加バイトコードを介してそれらハード機能を直接利用できるようにすることに結局なるだろうということです。
>>376 現在の32bitsハード提供機能について15年前の古い思想のままで何か勘違いしてると思いますが、
現代的な32bitsスマートやボーブル・パソコンは、fpu(ieee float)が使えるのは当然でSIMDや3D(opengl,directx)やマルチコア(プロセス)などもfpu unitと同じくどのjavaが動くハードなら当り前に使えると考えて問題ありません。
逆に問題あるようなハードでjavaを動かすなら、コンパイラがソフト(ライブラリ)でレイヤーするアプローチをします。
379 :
デフォルトの名無しさん :2011/09/01(木) 16:38:26.44
380 :
デフォルトの名無しさん :2011/09/01(木) 16:52:29.66
間違えました JDK 5.0 Update 22 を選ぶと英語で記入欄が出てきます。 java環境でプログラミングしたいんで、手順教えてください・・・
何が言いたいのかよく分からんが、そういう機能はJNIを使って提供すればいいんじゃね。 個人的にはバイトコードを直接解釈するIPが肥大化してしまうから、組込みにするのに不利になる気がする。
>>380 それに情報を全部書き込んでSubmitするといいよ。
Java7出てるんだけどね、一応
385 :
デフォルトの名無しさん :2011/09/01(木) 17:14:54.39
>>383 英語の指示って無理無理wwww
俺は本とかでみたんだが、かなり簡単だったぞ・・・
acceptなんちゃらクリック→なんとかmulti languageクリックで
かなり簡単な方法だったが、仕様って変わるよなぁ・・・
386 :
デフォルトの名無しさん :2011/09/01(木) 17:20:38.79
387 :
デフォルトの名無しさん :2011/09/01(木) 18:03:04.33
ひょっとして英語が出来ないのにプログラムやろうとしてるのか?w
388 :
デフォルトの名無しさん :2011/09/01(木) 18:18:35.11
>>387 DLしようとするとき、サインイン?みたいなのが出てくるときと
出てこないときの差って何なのだろう?パッケージの違いなんだろうか?
javaのテストは100点でしたよw文法覚えたのに環境導入できないというw
新たな仕様を理解して、PCに導入、設定を理解、そのインターフェースを理解
することが真の開発スキルということは最近感じつつあります。
それができないので、どうか教えてください。
先生に聞けよ
日本語のJavaの本を買えば
>>388 昔はふるいのやEA取得しようとすると
サインインの必要あったような気がするな。
あと3Dとかも。
違ったっけ。
>>386 You must accept the Oracle Binary Code License Agreement for Java SE to download this software.
Java SE(このソフトウェア)をダウンロードするためには、あなたはオラクルのバイナリコードライセンスを
受け入れなければなりません。
○Accept License Agreement ○Decline License Agreement
はい、許諾契約を受け入れます。 契約を承諾しません。
(中略)Download ダウンロード
ここまで理解していてダウンロードできないなら、お前は先生に土下座したほうがいい。
インターネット上からHTMLファイルを取得して、 それをファイルとして保存せず、 全て変数(String型とか)に流し込んでしまう方法はありますか?
InputStreamを開いたら後はファイルから文字を読み込むのと一緒だ
Windows Offline Installation, Multi-language
の項目が出てくるパッケージはどれですか?
>>396 一応本とおりに・・
バージョンは全然違いますが。
1.5……サポート切れ。どうしても欲しいなら情報書いてSubmitしろ。 1.6(Java6)……サポート中。ライセンスに同意してダウンロードしてね。 1.7(Java7)……サポート中。がんがんダウンロードしてね。 でもEclipseとかが動くかどうかなんて些細なことは知らないよ。
JITが嫌なら、実行ファイルを直接生成する静的コンパイラもあるよ?
今時のハードウェアの機能を利用できるようにバイトコードを拡張して、 それを使うように言語仕様を拡張しろ(あるいは全とっかえしろ)と言ってるのか JITによる動的コンパイルは時代遅れだから バイトコード生成時に最適化しろ(静的コンパイルが今のトレンド)といってるのか
それは既に言語の選択の時点で間違ってる気がするが。
バイトコードにスレッド機構さえ入れなかったのは正解だと思うけどなー
monitorentorとか普通にあるよ .NETの仮想マシンだとsynchronizedもライブラリだけど
いまひっぱりだこのARMならJazelleっていうjavaをネイティブに実行する拡張命令があるよ。
406 :
デフォルトの名無しさん :2011/09/02(金) 05:27:47.03
拡張命令があるね
static変数につけたアノテーションの取得方法がわかりません。 public class FooClass { @FooAnnotation(123) protected static Object var1; } としたときに、var1につけたアノテーション@FooAnnotation(123)はどうやって取ってこれますか。
>>407 FooClass.class.getDeclaredField("value").getAnnotation(FooAnotation.class).value()
×"value" ○"var1"
staticイニシャライザで、自クラスを参照するにはどうしたらいいでしょうか。 class Foo { static { doSomething(Foo); // 現在定義中のFooを参照したい } } thisに相当するものがstatic { } の中でも使えるとベストなのですが。
Fooで参照するしかないような。 匿名クラスは内部クラスだからstaticイニシャライザ使えないし、 逆に言うとstaticイニシャライザ使えるのに 名前が参照できないってケースはないだろうし。
class Foo { static { doSomething(Foo.class); } private static void doSomething(Class<Foo> clazz) { System.out.println(clazz); } public static void main(String[] args) {} }
415 :
デフォルトの名無しさん :2011/09/02(金) 11:44:35.12
>>404 .NETだけにしかつけないようなもの意味無いよ。
>>414 Fooじゃだめで、Foo.classにしないといけないんですね。
そういえばJavaはそんな仕様でした。
ありがとうございました。
>>415 MonitorEnterとMonitorExitならJMMにあるだろ。
というかパクったのが.netだ。
>>412 1. static final Class THIS; とか宣言する。
2. staticイニシャライザ中で THIS = Foo.class; とか初期化する。
3. コンストラクタの頭で assert THIS == this.getClass(); とかチェックする。
まあ心配症なのでこの辺まではやる。誰がリファクタリングするかわからんので。
assert有効にして一度でもテストが通れば一安心てところ。
特定の患者さんの精神が安定します
Java7で書いたプログラムをJava6のJVMで動かす場合って、 javac -target jsr14すれば全ての新機能もちゃんと動くの? なんか怖いんでつけど。
jsr14って5の一部を互換コード吐くオプションだけど7もいけるの? どっちにしてもfork/joinがライブラリ依存でinvokeDynamicがバイトコード変更してるから無理だろ。
よくわからんが javac -source 1.7 -target 1.6 ではだめなん?
クラスにつけたアノテーションが取得できません。 // mark.java public @interface mark { public String value(); } // Hoge.java @mark("value123") public class Hoge { public static void main(String[] args) { java.lang.annotation.Annotation[] anns = Hoge.class.getAnnotations(); System.err.println("*** debug: anns.length="+anns.length); } } // 実行 $ java Hoge *** debug: anns.length=0 # 長さは0じゃなくて1のはずなのに。。。 助けて下さい。
インデントが消えたので再投稿。 // mark.java public @interface mark { public String value(); } // Hoge.java @mark("value123") public class Hoge { public static void main(String[] args) { java.lang.annotation.Annotation[] anns = Hoge.class.getAnnotations(); System.err.println("*** debug: anns.length="+anns.length); } } // 実行 $ java Hoge *** debug: anns.length=0 # 長さは0じゃなくて1のはずなのに。。。 助けて下さい。
>>427 自己レス。
@Retention(RetentionPolicy.RUNTIME)
public @interface mark { ... }
にするとできました。
デフォルトでは、アノテーション情報を実行時にリフレクションで読むことができないんですね。残念。
デフォルト値が何かも確認せずに使い、 自分の使い方と合わないと不満もらすバカ発見。
>>429 残念だったのは自分の想像力であって
別にJavaが残念だなんていってないけど?
別スレで聞くべきでしたら、申し訳ありません。 Java でネットワークプログラミングするときに最低限読むべき本を 教えていただけないでしょうか。 ソケット通信でなくて、標準ライブラリのHttpURLConnectionなどを 使用する場合の基本を学びたいのです。 よろしくお願いします。
434 :
デフォルトの名無しさん :2011/09/03(土) 13:38:33.01
Javaを趣味でやるときは、なんだかんだいっても、GUIプログラムだよね? みんなはどう?
GUIやりたいならJavaはちょっと…
>>435 え?そうかな・・ でも、JavaのGUI関連はわりとわかりやすい設計だと思うんだけどな〜
人によって違うからね。自分は、C#でもやっていたけど、どうせ同じ仮想マシン使うならと思って
Javaでやってるんだ。
437 :
デフォルトの名無しさん :2011/09/03(土) 14:05:38.65
swingでええがな
質問いいでしょうか。eclipse で Java 組んでいます。 やっているのは Android プログラムなのですが、質問自体は Java 関連なのでここで質問させて頂きます。 例外の catch の仕方についてです。 ・メソッド A, B, C, ... を順番に実行したい ・A, B, C, ... はそれぞれ色々な例外を返す ・A で例外が発生した場合、B 以降は実行しない。B, C, ... も同様 この条件で、例外が起きた場合、「どのメソッドで」「どの例外が起きたのかを」「独自のメッセージで」表示したいのですが、なかなか上手く組めません。 (つづく)
439 :
438 :2011/09/03(土) 15:19:37.49
■案1 try { A(); B(); } catch (〜Exception e) { /* 例外処理 */ } ・問題点:どのメソッドで例外が起きたか分からない ■案2 try { A(); } catch (〜Exception e) { /* A に対する例外処理 */ } try { B(); } catch (〜Exception e) { /* B に対する例外処理 */ } ・問題点:A で例外が発生しても B を実行してしまう、A に対する finally を置く位置に困る ■案3 try { A(); try { B(); } catch (〜Exception e) { /* B に対する例外処理 */ } } catch (〜Exception e) { /* A に対する例外処理 */ } ・問題点:ネストが深くなる、B でキャッチし忘れていた例外をたまたま A でキャッチしていた場合、IDE が警告を出してくれない ネットや書籍のサンプルだと、紙面の都合?案1が多いです。 例外は LogCat 上などではなく、ユーザに見えるように(Toast など)で出したいです。 データベースやネットワーク処理を行ってるとよく出てくる箇所で、いつも詰まっています。 よろしくお願いします。
try { A(); } catch(Exception e1) { return;} try { B(); } catch(Exception e2) { return;} try { C(); } catch(Exception e3) { return;}
そういうコードは誰が組んでも汚くなるね しかたない
> 問題点:どのメソッドで例外が起きたか分からない と > 例外は LogCat 上などではなく、ユーザに見えるように(Toast など)で出したいです。 は別問題じゃ? ユーザに適切なエラーメッセージ出したいなら 自作アプリケーション用の例外をちゃんと設計するだけで終わる問題なような。 それともユーザに例外が発生したメソッド名を見せるって話? getStackTrace()でも使えば?
try { a(); b(); c(); } catch (Exception ex) { StackTraceElement[] a = ex.getStackTrace(); String methodName = a[a.length - 2].getMethodName(); System.out.println("methodName = " + methodName); }
444 :
デフォルトの名無しさん :2011/09/03(土) 16:08:20.46
超初心者なんですが 基本的なことを教えてください。 mavenっていうのはrpmとかyumみたいなものですか?gccみたいなものですか? JAVAを使わないといけない用事があってマニュアルを読んでいるのですがさっぱりわかりません。 mavenを入れたらtomcatはいらないんですか?apache + mavenってどういう意味なんでしょうか
445 :
デフォルトの名無しさん :2011/09/03(土) 16:18:54.20
javaのバッチ処理(1000万件)をまったくの初心者に 2週間で書かせるって、無茶な要求ですか?
>>444 mavenはプロジェクト管理ツール。
多人数が関わり、多くのライブラリを扱うプロジェクトで環境構築やバージョン管理が楽になる。
しかしそれはmaven自体の設定や管理がめんどくさいということも意味するw
要はJavaを勉強したいだけの初心者が使う意味はないw
antでおkwwwwwww
>>445 バッチの内容による
初心者がjava初心者かPG初心者かによる
>>446 ありがとうございます。
いまはやりのgitとかの類ですか?
完成品のソースがあってmavenでインストールしろとか書いてあるんです。
mvn なんたらみたいな
いやMakeの類
>>442 エラーの原因でなく進行状況に応じてメッセージを変えたいんだから、
例外クラスを量産するのはおかしい。
>>440 で各returnの前にメッセージを仕込むのが適切。
ユーザー見えのメッセージを変えたいといってるのに対し
スタックトレースをユーザーに見せる
>>443 はアホ
450 :
デフォルトの名無しさん :2011/09/03(土) 17:02:22.10
ポスシステムで管理された会員の購買データから、翌月のポイント数を出すのですが。 PG経験数か月、javaは未学習です。
>>449 try {
a();
b();
c();
} catch (Exception ex) {
StackTraceElement[] a = ex.getStackTrace();
String methodName = a[a.length - 2].getMethodName();
// 例外が発生したメソッドの名前がここに入っているので、メソッド名に応じた処理を行う。
// たとえば
if ("a".equals(methodName)) {
System.out.println("メソッド a の実行中に例外が発生した。");
} else if ("b".equals(methodName)) {
System.out.println("メソッド b の実行中に例外が発生した。");
} else {
System.out.println("それ以外のメソッドの実行中に例外が発生した。");
}
}
わからなければ黙ってればいいのに。
> a[a.length - 2].getMethodName() こんなコードはメンテしたくないな。
それ以前にJVMの実装依存だろ
わからなければ黙ってればいいのに。(笑)
これやるなら独自例外投げるわなぁ しかし処理を続行しつつビューに値を返したい、って時はどうしてもクソコードになるよな。 例外の特性?なのか。
>>451 そのコードをmainにおいとかないとズレるんじゃないか?
length-2決めうちだし。
というか未定義動作 実装の自由で、省略しようが長さ0の配列を返そうが構わないことになってる
>>449 別に型で判別する必要は無いんだから量産しなくてもいいだろ
identifier付けてください
>>455 ならねーよ。
リスナー登録するようにしても良いし、
SwingWorkerみたいに継承利用しても良いし。
気になってたけど、リスナーってJavaの用語?コールバック関数が使えないからクラスの継承と オーバーライドを使って代わりにしてるって認識だけど、それであってる?
AndroidでstacktraceがとれないJavaVMってあるのか?
わからなければ黙ってればいいのに。(笑)
わかんなかったんでしょ?
>>461 その通りJava用語。
>コールバック関数が使えないから
その通り
コールバックは実装すれば使えるだろ。 より汎用性のある形ではないかね。
コールバックもWinの専門用語だよな Tcl/tkとかだとトリガーとか呼ばれてるし
>>461 リスナはJava用語というかSwing用語?元々はOvserverパターンあたりが出自じゃないかな。
コールバックと呼んだりハンドラと呼ぶ人もいるけどね。
あとリスナはクラスの継承やオーバライドで実現する物じゃない。
わからなければ黙ってればいいのに。(笑)
独自の例外クラスって、ライブラリとして他人に使ってもらう場合にしか作らないんだけど、 なんか他に作った方が良い場合とかあるの? ↓なのにしてる。 /** * あずにゃんを探します。 * (ry * @throws AznyanNotfoundException あずにゃんが見つからない場合 * @throws Exception こっちの問題。そっちじゃ解決できないからあきらめれ。 */ Aznyan findAznyan() throws AznyanNotfoundException, Exception;
a[a.length - 2].getMethodName() だってw相変わらずアホなスレですな
使い捨てプログラムみたいなもんじゃなければ、普通は例外設計も行うと思うよ。
なんでかっていうと
>>438 みたいにエラーハンドリングが必要になるから。
printfで十分だろ
使い捨てプログラムならね。
>>465-468 ありがとう。そういえばコールバックも環境固有だったか。Unixだったらハンドラみたいな言い方をしてたっけ。
リスナって、インターフェイスがあってそれを継承してメソッド書いて使うものだと思ってたけど、それ以外の何かってあるの?
クラスは継承(extends)するけどインタフェースは実装(implements)する っていう意味の違いを言ってるんじゃない
>>476 なるほど。Javaではその2つをきっちり区別しないといけなかったか。納得したわ。
>>479 > CVSとかSVNとかGitとか、知るかボケ! バージョン管理システム爆発しろ!
> バグ報告、パッチの投稿、クラスまるまる一つの置き換えなど、全部手動。基本的に、フォーラムへの投稿や、zipファイルのやりとりなどで進めていきます。
これは…!
さすがにCVSはいいかげん古すぎの感もあるが……
WindowsならMercurialかな
Windowsのgitも十分使えるレベルな気がする
EclipseだったらWindows上とかあんまり関係ないんじゃない
まあバージョン管理できてないソースからできた成果物なんて使いたくないな、 ってスレ違いだヴォケ
バージョン管理使ったことないんだろうね
>>488 使ったことあるよ。
誤登録したファイルを完全に抹消できないことが分かって、使うのやめたよ。
スレ違い
>>447 gitはリビジョン管理、svnとかと一緒と考えればいい。
mavenは、antが、ローカルにjarファイル置かなくてよくなって、
必要に応じてネット上からjarを拾ってきてくれるようになったものだと思えばよい。
実際使うと、ある程度の仕組みくらいはしらないといろいろ詰まるけどな。
バージョン管理使わない奴はプログラマの素質ない
素質なくても20年やってるんで
494 :
テスト :2011/09/04(日) 00:23:37.46
この業界で20年ですけど、伊達にめし食ってませんから。(笑)
>>494 素質なくても20年やってるんで^^^^^^^^
Javaもまともなブラウザコンポがあればいいんだけど。ねえんだよな。。
カスタムアノテーションを定義する時に public @interface myannotation { public String value(); } としますけど、"class"や"interface"といった予約語ではなく、"@interface"というアノテーションで定義できるのが不思議です。 これってどうやってじつげんしているのでしょうか。 また、"@interface"に相当するものを作るにはどうしたらいいでしょうか。
不思議でも何でもない "@interface"っていう予約語なんだよ
500 :
テスト :2011/09/04(日) 20:30:41.63
>>497 JavaFXに含まれてるwebkitベースのが使えるんじゃなかったっけ?
Interfaceが普通のインターフェイスで@Interfaceが特殊なインターフェイス。 ちなみにclassは普通のクラスでenumは特殊なクラス。 言語仕様に書いてある。列挙とアノテーションの定義だけ特別扱い。
public annotation interface Hoge { ... } と書けばわかりやすい? 文法的にはこのannotationのところを代わりに@と表記しているだけ @interface自体はアノテーションではない
>>502 >Interfaceが普通のインターフェイスで@Interfaceが特殊なインターフェイス。
ここでいう特殊とはどういう意味?ただの interface だとだめなの?
>ちなみにclassは普通のクラスでenumは特殊なクラス。
>言語仕様に書いてある。列挙とアノテーションの定義だけ特別扱い。
???
>>503 >public annotation interface Hoge { ... } と書けばわかりやすい?
いやわかんない。その「annotation」は新しい予約語なの?
>文法的にはこのannotationのところを代わりに@と表記しているだけ
>@interface自体はアノテーションではない
@Overrideはアノテーションなのに@interfaceはアノテーションではない?
ますますわからなくなった。
だいたい、アノテーションを定義するのにアノテーションを使うことに違和感がある。
@interfaceはキーワードだアノテーションじゃない。何人同じ事言ってんだ
>>506 >>505 の2行を読んだら「@interface」がキーワードじゃないってわかるだろ。
どうして嘘つくかなあ。
>>504 >だいたい、アノテーションを定義するのにアノテーションを使うことに違和感がある
アノテーション型の定義にアノテーションっぽい記述を使うのは、
Java言語が糞だからとしか言いようがない
俺たちにはもうiphoneしかない。
Javaも予約語増やすのが嫌ならコンテキストキーワードに手を染めちゃえばいいのに annotation interface で一つのキーワードでいいじゃん
>>509 コンテキストキーワードは確か公式仕様では使われてはいないがjavacに実装されてはいる。
昔プロパティ試案版を作ったときにコンテキストキーワードとしてproperty使った時に入った。
プロパティは削除されたがコンテキストキーワードの機能は削除されてないで残ってる。
コンテキストキーワードならC#ですね。やっぱり。
もしコンテキストキーワード使うなら public annotation Identifier { } でいいよな。わざわざinterface付ける必要ないだろ。
javascriptやC#みたいになれと?
わけのわからん記号だらけになるよりマシ コンパイラの実装がちょっと汚くなるだけ
なら今の@を使ったアノテーションでいいがな
516 :
デフォルトの名無しさん :2011/09/06(火) 01:25:00.33
*を付けて参照しようとするとエラーになるし、 付けないと"java.util.AbstractList$Itr@ca0b6" を表示するだけだし、何かメンバー関数あんのかな。 --------------------------- java.util.Vector<String> Vector1 = new java.util.Vector<String>(); Vector1.addElement("項目001"); Vector1.addElement("項目002"); Vector1.addElement("項目003"); java.util.Iterator Iterator1 = null; for (Iterator1 = Vector1.iterator(); Iterator1.hasNext(); Iterator1.next()) { System.out.println(*Iterator1); } --------------------------- tamesi002.java:24: 式の開始が不正です。 System.out.println(*Iterator1); ^
*って何そんな仕様あったの
わかったぞ、これでいいのか。 java.util.Iterator Iterator1 = null; for (Iterator1 = Vector1.iterator(); Iterator1.hasNext();) { System.out.println(Iterator1.next()); }
うわさによると、Javaはポインタがないらしいな。
windowsphoneでしょ。これからの時代はやっぱり。
javaちょっとだけ知っとこうと超初心者むけの本買ったんだが 読み進めて、さぁjavaに触れてみようみたいなトコでダウンロードができない java-7-windows-x64を落とせって書いてあって 自分のOSはXPで32bitだから旧verでいいのかなっとダウンロードしようとしたが オラクルアカウント作成で蹴られまくって涙目・・・ 日本語のページ無いしバージョンは多いしでワケわからん オラクルのHP作ってる奴は糞だ
525 :
521 :2011/09/06(火) 03:16:08.13
>>524 3or4ページ目に32bitが無いんだが64とかで大丈夫なの?
それでいけるなら嬉しい
x86あるだろ
527 :
521 :2011/09/06(火) 03:33:48.47
x86を調べてみたら
>>x86・・・WindowsXP以前のOS、WindowsXP(32bit版)、WindowsVista(32bit版)
大丈夫みたい。ありがとうございます
さっそくダウンロードしましたm(__)m
ちなみに初心者が辿るリンク
2や3あたりで日本語を選んでトップに飛ばされたりって感じです
後、参考にしたHP
ttp://www.javadrive.jp/install/jdk/index1.html このやり方でアカウント登録スキップできなかったりもしました
>>524 俺もこないだつまったので報告しておく
・1で、1つ目の英語ページではなく3つ目の日本語ページに行く(Java SE ダウンロード - Sun Developer Network (SDN))
→ JDK が欲しい!そもそも SE って何だ?しかもトップにあるのが 「Java SE 6 Update 24」 Update ってこれただのパッチじゃないよね?とりあえず右の 「JDK ダウンロード」 をクリック
→ 「Java SE Development Kit with JavaFX (JDK 6u23 / FX 1.3.1)」 とか言うのに飛ばされたんだけど!? 内容全然ちがくね??JavaFX って何???ファイル名も違うよ????
→ 他のも見てみるか… JavaEE って何?わかんねー!! しょうがないからダウンロード方法のページ見ても、バージョンが違うせいか全然結果が違う!!えーーーー
結局適当なものを落として入れてみて、何か動いてるからいっか…てな感じになった
長文すみません。 Struts1でひとつのActionの処理を分割する際、システムをView、Business、Persistenceの3つに分け、 ViewにActionFormとAction、BusinessにServiceとDomain、 PersistenceはO/R Mapperに任せる、またはDaoを書くと習いました。 今の私の理解では、ActionFormは入力チェック、Actionはメッセージ設定と画面遷移の制御、 Serviceは業務ロジック全体のまとめ役、Domainはデータ保持と自身が興味を持っている領域の業務ロジック、 Daoを用意する場合はDBアクセスはここでといった感じです。 基本的にはServiceがDaoを使ってDomainを取得し、Domainにメッセージを投げるのだと思うのですが、 Domainの中でDaoを使って別のDomainを取得する、または何らかのデータを参照するのは大丈夫なのでしょうか。
夕飯というテーブルに主食、オカズというカラムがあって、 集合関数をつかってString型のsyuruiという変数に主食のレコード数をぶちこむにはどうすればいいですか? count関数を使えばいいというのはわかってるんですが使い方がわかんないです
>>530 それJavaじゃなくてSQLの質問だろ。
Select count(*)
From 夕飯
Where 主食 is not null;
とかでいいんじゃねーの?
仕様わからんから適当だけどな。
全レコード取得して、Javaで書いてもいいんだぞ?
処理遅すぎでアレだろうけどな。
ごはん、パン、めん、などの主食の種類を数えたいのかな?
変数名がsyuruiか。 種類ならdistinctすればいいね。
なんでわざわざ英語にしたがるかね分かりやすいのが一番だろプログラマの素養ないね
536 :
デフォルトの名無しさん :2011/09/06(火) 17:48:15.85
プリミティブ型の配列って、要素数を動的に増減できないですよね。 初期化時にサイズを指定するか、サイズ指定なしで初期化するしかない。 たとえば、引数に文字列の配列を受け取り、その配列の要素が null なものの位置の配列を返す 関数を作るとします。 返却値が Integer のリストなら、null なものがあったら、どんどん add していけばいいので簡単です。 public List<Integer> getNullAddresses(String[] argArray) { List<Integer> resultList = new ArrayList<Integer>(); for (int i = 0; i < argArray.length; i++) { if (argArray[i] == null) { resultList.add(i); } } return resultList; } この返却値を int の配列にしたいが、実行してみないと配列の要素数がわからない。 こういうときどうしたらいいでしょうか?
>>536 commons langのorg.apache.commons.lang3 ArrayUtils#toPrimitive(Integer[]) みたいのを使う。
ArrayUtils.toPrimitive(resultList.toArray(new Integer[resultList.size()]))
あとaddressじゃなくてindexじゃね?
538 :
536 :2011/09/06(火) 18:19:46.41
>>537 レスどうもありがとうございます。
CommonsLang の ArrayUtils はさっき気づいたのですが、
今のプロジェクトに新しい jar は追加できないルールとなっています。
JDK 標準の API だと、手作業で int[] に変換するしかないですよね?
> あとaddressじゃなくてindexじゃね?
そういわれると・・・・・
下手な英語ですみません
事前に一回ループ回して結果の要素数を数えておけば?
>>538 commonsなんてソース見えるんだから適当なユーティリティクラスにコピペりゃいいだろ。
まさかクラス追加もNGのルールのクソプロジェクトか?
>>538 int[] indexes = new int[argArray.length];
int count = 0;
for (int i = 0; i < argArray.length; i++) {
if (argArray[i] == null) {
indexes[count++] = i;
}
}
return java.util.Arrays.copyOf(indexes, count);
>>536 > プリミティブ型の配列って、要素数を動的に増減できないですよね。
プリミティブ型かどうかは関係ないけどね。
というのはさておき
そのList<Integer>作った後、int配列に写すのは駄目なのかい?
勝手にソース書き換えちゃ行けないプロジェクトなんだよ
iphoneとかwindowsphoneとかは世の中にあるようですけど、javaphoneとかjavafxphoneは何で存在しないんですか?
androidがあるからじゃね?
JavaFXは本当に見事な大失敗だったね
アンドロイドは徐々にモトローラになっていくっていう話ですけどjavaphone(javaseとかjavafx)と何か関係あるんですか?
JavaFXって、売りのFXスクリプトをなくしたんだよね。 なんのことはない、普通のGUIライブラリになるだけという・・
549 :
536 :2011/09/07(水) 00:11:16.38
みなさんレスどうもありがとうございます。
>>542 結局そうしました。
FXMLとかcssの-fx-とか
androidは3からライセンスがクローズドなりましたね。 結局はモトローラの都合によって徐々にクローズドな開発になっていくんでしょう。
質問です。 今まではこういうコードを書いてましたが、 Something obj = new Something(); obj.setName("foo"); obj.setValue(123); return obj; 面倒なので、setterをチェーンできるようにしたいとします。 return new Something().setName("foo").setValue(123); これを実現するためには、setterがthisをかえすようにすればいいと思いました。 class BaseObject { private String name; public String getName() { return name; } public BaseObject setName(name) { this.name = name; return this; // setterがthisを返す } } 続く
続き しかし、これを継承した場合、親クラス.setXxx()は「return 親クラス」であり「return 子クラス」ではないため、うまくチェーンできません。 class Something extends BaseObject { private int value; public int getValue() { return value; } public Something setValue(int value) { this.value = value; return this; } } return new Something() .setName("foo") // これが return BaseObject なので .setValue(123); // 子クラスのメソッドが呼べない いちおう、子クラスで public Something setName(String name) { super.setName(); return this; } と再定義して、戻り値の型を子クラスに変えればいいことはわかりました。 でもせっかく継承を使っているのに、親クラスのメソッドを子クラスでいちいち再定義するのが面倒です。 なんか、もっといい方法はないでしょうか。 Genericsあたりを使って格好よく解決できることを期待してます。
何が面倒?
コンストラクタでセットしたら失格なん
セッターチェーンてよくありそうなのにな。commons CLIとS2DAOくらいでしか見たことない。 まあ実装の面倒さに比べてメリットが少ないからだろうけど。
無検査キャストの警告が出るけどジェネリクスで一応できた class Super<E>{ E own = (E)this; String a; public E setA(String a){ this.a = a; return own; }} class Sub extends Super<Sub>{ String c; public Sub setC(String c){ this.c = c; return own }} public class Test{ public static void main(String [] args){ Sub s = new Sub(); s.setA("this is a").setC("this is c"); System.out.println(s.getA()); System.out.println(s.getC()); }}
今のやっぱ梨で 実行はできた
>>557 > class Sub extends Super<Sub>{
こんな書き方ができるんですね。Subが2回現れているのがDRYじゃないけど。
とりあえず試してみます。
ありがとうございました。
public abstract class Super<E extends Super<?>> { protected abstract E chainTo(); private String a; public E setA(String a) { this.a = a; return chainTo(); } } public class Sub extends Super<Sub> { @Override protected Sub chainTo() { return this; } private String b; public Sub setB(String b) { this.b = b; return this; } }
Effective Javaにも言及されてるが パラメータが3〜4個以上現れるコンストラクタが出てきたら Builderを考えてみるのは基本な
で、何が面倒?
>>557 ,561
そのアプローチだと子クラスまでは対応できても孫クラスまでは対応できなくね?
孫クラスを作るなってことだ、言わせんな恥ずかしい/// そもそも、継承を前提とせずに設計された具象クラスを 継承するのは、使う側の責任なので許容範囲☆(ゝω・)v
Grandchild setName(String name) { return (Grandchild)super.setName(name); }
すりゃいいだけなんだけどな。
>>553 みたいに。
>再定義するのが面倒
これを解決するのが大前提だからしょうがない
普通に
>>566 あたりをぺぺっと自動生成させるのが順当
>>564 class Parent<E extends Parent<E>> {}
class Child<E extends Child<E>> extends Parent<E> {}
class Grandchild<E extends Grandchild<E>> extends Child<E> {}
って連鎖してけばよくね?
ある研修で数当てゲームを作っています。 先頭が0、例えば010が入力されたらエラーになるようにしたいんですが どういう処理をしたらいいでしょうか。
何で困ってるの
String#startsWith
データの中身が var B = A(hoge.anko); var C = B.poke; var D = C.data; var E = D.initial; var sendDataSort = E.sendDataSort; のようになってるのですが、 Aから直接sendDataSortを抜き出すことは可能でしょうか? また、どうすればよいのでしょうか?
研修なのに2chで聞いてる時点でアウト
if(String.charAt(0)=="0"){ えら〜 }
フリーなXMLライブラリがいくつもありますが、そのライブラリ群が使用するXMLパーサーというものは自身のライブラリで持ち合わせているわけではなく JREに含まれているデフォルトのパーサーというものを使用するものなのでしょうか? その場合、OSによって選ばれるパーサーは違うのでしょうか?
教えてください。
当方、java初心者で、servletののプログラムを始めました。
現在、
http://localhost:8080/test/a と、入力すると、画面aが開かれます。
その画面内のinput項目にhogehogeと入力しました。
で、サブミットを再びaに行うと、aが読み込まれません。
out.printlnを、doPostの直後に仕込んでも、なにも出力が行われません。
やりたいことは、aの画面を表示、必要事項入力、aにサブミットすると、
サーブレット内で入力された内容を登録するです。
なお、a再帰読み込み時、input非表示こうもくに再帰であることを示す項目を追加してますので、
それで再帰か、初回表示かを判断させようとしています。
ある jar を利用してプログラムを作り、LINUX 上で実行しようとしたところ,コンパイルはできたものの実行ができませんでした。 以下のような手順でやってみたのですが、どこに問題があるのでしょうか? 実行時にも A や jar ファイルへのクラスパスを指定してみましたがダメでした。 宜しくお願いします。 ---------------------------------- package packageA import hoge.foo.bar.JarFileClass class A{ ... } package packageB import packageB class B{ ... } ---------------------------------- $ javac packageA/*.java -cp .:jar/jarfile.jar $ jar zcf jar/packageA.jar packageA/*.class $ javac packageB/*.java -cp .:jar/packageA.jar $ java packageB.B ---------------------------------- Exception in thread "main" java.lang.NoClassDefFoundError: hoge/foo/bar/JarFileClass at ... Caused by: java.lang.ClassNotFoundException: hoge/foo/bar/JarFileClass at ...
>>577 ServletソースもHTMLソースもないので、何もアドバイスできないよ。
>>578 java実行時にもクラスパスを設定する必要がある。
> 実行時にも A や jar ファイルへのクラスパスを指定してみましたがダメでした。
どう設定したか書きましょう。
メッセージのとおり、クラスAでインポートしているJarFileClassにクラスパス通ってないんじゃないの?
582 :
577 :2011/09/07(水) 18:45:05.20
>>579 すみません、自己解決しました。
doPostじゃなくdoGetばかり見てました。
doPostからdoGetに処理を投げていませんでした。。。orz
>>580 レスありがとうございます。
以下のようなパターンを試してみましたがダメでした。
$ java package.B -cp jar/jarfile.jar
$ java package.B -cp jar/packageA.jar
$ java package.B -cp jar/jarfile.jar:jar/packageA.jar
>>581 そうだと思い
>>583 のようにしてみたのですがやはり同じエラーでした。
ちなみに、jar ファイルを解凍して hoge/foo/bar/JarFileClass が入っている hoge を実行ディレクトリに持ってくれば実行できました。
ただこれだと面倒なので、今後の事も考えて解凍せず実行したいと考えています。
>>583 > $ java package.B -cp jar/jarfile.jar:jar/packageA.jar
エラーメッセージのとおりならこれで動くはずですね。
(package.B -> packageB.B だけど)
586 :
578 :2011/09/07(水) 19:07:17.66
>>585 ありがとうございます、ただそれでも動きませんでしたが、自己解決しました。
以下のように、-cp オプションを実行対象ファイルの後ろから前に持ってきたら動きました。
$ java -cp jar/jarfile.jar:jar/packageA.jar packageB.B
-Xms などは特に警告されなかったんですが、classpath は特別なんでしょうか。
意見・アドバイスしてくださった方々、ありがとうございました。
クラスBのmainメソッドの引数argsの値がどこから取ってきてるか知ってるかい?
お前が面倒。 言わせんなよ。
なんだコイツ?w
>>587 なるほど、そりゃそうですね。
LINUXのコマンドの多くは順不同なイメージだったので・・・。
ありがとうございました。
Usage嫁
>>538 > 今のプロジェクトに新しい jar は追加できないルールとなっています。
そういう頭悪いプロジェクトは、早めに抜けるべき
>>588 面倒だと感じることが出来ない奴は
普段から、どんだけ質の低いやり方してるか露呈して
恥ずかしいぞ
良くも悪くもJava的な愚直さに慣れていると
>>552 みたいな発想は出てこないかもしれない
どんだけー☆
いや普通は
>>562 だから…
あと個人的にはメソッドチェーンつかうとエディタにソースフォーマット全任せしたとき
ややこしいことになるので嫌い。
>>597 Effective Javaを信仰してるんすか?
Javaで、クラスを受け取ってそのインスタンスを返すようなstaticメソッドを書きたいんだけど、 どう書けばいいの? 下のコードでいうと、???のところがわからない。 class Utility { static ??? create(Class<? extends BaseClass> clazz) { ??? obj = clazz.newInstance(); return obj; } } /// こんな感じで使いたい import static my.pkg.Utility.*; FooClass obj = create(FooClass.class);
デフォルトコンストラクターがあることが前提でいいなら clazzzzz.getConstructor().newInstance()
>>600 static <T extends BaseClass> T create(Class<T> clazz) {
return clazz.newInstance();
}
>>601 メソッド定義がどうなるかを訊いてるんですけど。
>>602 Return type for the method is missing
とEclipseに怒られてコンパイルできません。
>>595 javascript系ではよく見るよ。
スクリプトなら良いと思うけど、
setterがthisを返すって俺は気持ちが悪いけどなぁ。
jQueryとかでの使い方は、getterとかクエリで取ってきたオブジェクトの一部を持つ
jQueryオブジェクトを返すんであって(なんか書き方がおかしいけど…)、
Javaでいうオブジェクトを返してるんじゃないからなぁ。
縦型ツールバーで選択ファイルをzipで圧縮したいのですが、Windowsの送るにあるzipってコマンドじゃないようで使えません 何か方法はあるでしょうか?
引きニート 21才 java独学で始めたけど計算ばっかじゃん これ一人で出来るの?
>>597 おれもソースフォーマットの関係で一行ずつ書く方が好きだな
あとデバッグの時に追いやすい
エラーはいた時に箇所がわかりやすい
setterの戻りがnullの時に調べるのがめんどそう
何がしたいのかもわからず「できるのか」とか流石に知能が低すぎる。
計算なんてほとんど出てこないけど
計算以外に条件によって分岐というのもある。
おたずねします。 メニュー構造のような階層をもつ定数値を格納しておくのに最適な方法は何ですか? 階層ごとに取り出して処理したいのですが。
初心者にはHSPがお似合い
xmlじゃね
618 :
デフォルトの名無しさん :2011/09/09(金) 16:52:55.77
RuntimeExceptionについての質問です。 引数チェック時のIllegalArgumentExceptionなど、明示的に実行時例外をthrowするケースがあると思のですが、 この時メソッド定義のthrows節やJavaDocの@throwsに実行時例外を記述しますか? メソッドの仕様を明らかにするという目的でJavaDocに@throwsを書くべきだと思うんですが、 メソッド定義のthrows節はどうするのが良いか気になっています。
表示しないけどJTreeつかうとか。
>>608 java zipでググればすぐ出てくるじゃないか
>>618 標準ライブラリでは付けてないみたいね。
>>602 >static <T extends BaseClass> T create(Class<T> clazz) {
> return clazz.newInstance();
>}
たぶん
static <T extends BaseClass> T create(Class<T> clazz) thows Exception {
return (T)clazz.newInstance();
}
にしたいんだろうけど(例外まわりはおいといて)、この定義だと
いきなり T が現れているから、コンパイルエラーになる。
どう書けばいいのかは、おれにはわからないんだけど。
>>618 実行時例外は何らかの形でドキュメントに明示しておく必要がある。
ただし、IllegalArgumentExceptionについては全てのメソッドのJavadocに書くと面倒なので、
Javadocのoverviewで前提条件に違反したらこれらを投げると明記しておいて、
特に特記事項が無い限り、後は省略してしまうのが簡単かもしれない。
また、NullPointerExceptionについても同様に、
特記しない限り非nullということにして(コレクションや配列の要素も非nullを既定として)
これに違反した引数が渡されたら投げるとoverviewに書いてしまうのが簡単。
(ただ、たまたまnullでもOKなロジックを持つメソッドが作れてしまうと悩ましい。)
メソッドの定義のthrows節については、Effective Javaによると書かないらしい。
これは、Javadocを見たときにチェックされる例外と区別できるからとか。
>>624 キャストも要らんし、手抜きでthrows Exceptionにするのもなんだかなぁ……
>>626 IllegalArgumentExceptionは結局メソッド毎に前提条件列挙しないといかんような。
なので@throws IllegalArgumentExceptionで前提条件列挙しても手間大して変わらん。
overviewに特に記述がなければnull渡したらNullPointerExceptionと書いてあるなら
null渡してもOKなメソッドについては全部文書化するべきだな。
>>628 前提条件が各引数で独立なら、
@param でそれぞれの引数毎に記述した方が分かりやすいと思う。
従属しているような複雑な前提条件だったら、
@throws に全部書き込むのは無理矢理かもしれない。
簡単に書けるものなら…むにゃむにゃ
nullについては、引数だけじゃなく、メソッドの返却値にも同様に、
明記しない限り非null(コレクションや配列の場合は要素も非null)
ということにするのが簡単。
チェーンメソッドの全てに、返値は非nullです!って書くのは面倒
>>627 Class.newInstance()は、throws節には書いてないが、
ありとあらゆるチェックされる例外が投げられるアホなメソッドだから
Exceptionを投げる(かキャッチする)方がマシだぞ
>>624 戻り値の型をObjectにして、呼び出し側でキャストするしかないのかなぁ。
そんなエレガントな方法あるなら、javax.rmi.PortableRemoteObject#narrow()のような
クソ仕様は生まれなかったはずだし。
>>624 <T extends BaseClass> で定義してあるじゃないか。
-source 1.5 以上になってないとかいうオチか?
>>630 それなら getConstructor().newInstance() すればいいんじゃね?
>>629 例外発生条件があっちこっちに分割して書かれるのってケアレスミスの元じゃね?
@paramに全部の条件かけるならともかく、そうでないなら@throwsに一括して書く方が良いね。
@return 算出された日付。非nullです! とか書かないだろ、普通。
@return 算出された日付。途中でエラーが発生した場合はnull。とかは書くかもしれんが。
実行環境のclasspathに存在する全クラスの一覧を取得するにはどうすればよいですか?
>>635 クラスローダーとリフレクションでググれ
>>634 APIによっては書くだろ
コレクション返すAPIとか、サイズゼロなのかnullなのか。
>>625 ほんとに?
/* BaseClass.java */
public class BaseClass {
}
/* Example.java */
public class Example {
static <T extends BaseClass> T create(Class<T> clazz) thows Exception {
return (T)clazz.newInstance();
}
}
$ java -version
java version "1.6.0_26"
$ javac Example.java
Example.java:2: ';' expected
static <T extends BaseClass> T create(Class<T> clazz) thows Exception {
^
1 error
どんなコード書いたらエラーにならないんだろ。
thows
>>639 そういう恥ずかしい所は指摘しちゃ絶対ダメだよw
618です。 実行時例外についてのレスありがとうございました。 話題はJavaDocの書き方に移ったようですが、 少なくともthrows節には書かないので良さそうですね。 …って地震だ!
個人情報を入力していくJavaで作った画面があるんだけど、 その入力されたデータをデータベースに登録されている同じ人のデータを入力された値に更新して 更新日をその変更した日に更新したいんだが、違う項目に値が入って肝心の更新日が変更されない。 だから更新日で検索かけてもその人が出てこないって状況なんです。 これって中のプログラムが悪いんですかね?
>肝心の更新日が変更されない ってとこまで判ってるならその原因探れよ
>>642 >違う項目に値が入って肝心の更新日が変更されない。
プログラムは、書いたとおりに動くよ、。
プログラムは、書いたとおりにしか動かないよ。
Java
天才の俺様が間違える分けない コンパイラのバグだろう Sunの開発者は送球に修正すべし
648 :
雪 :2011/09/10(土) 23:13:55.71
Swingに関して質問なのですが、 LayoutManagerをnullにしたところ、ScrollPaneが表示されなくなりました。 setBoundsしたら表示されるようなのですが、 何が原因で表示されなくなるのかご存知の方が居られましたら教えてください。
>>647 たった3行の文章なのに、間違いが・・・
LayoutManagerをnullにしたのが原因なんじゃないかな
651 :
雪 :2011/09/10(土) 23:21:15.87
>>650 まあ、確かにそのとおりですね。w
失礼しました。
LayoutManagerをnullにすると、無効になるパラメータ等があるのかと思って
質問させていただきました。
どうなのでしょうか。
LayoutManagerにnullをセットすると absolute positioningになるんじゃなかったっけ? だからだよ。
653 :
雪 :2011/09/10(土) 23:40:11.87
>>652 absolute positioning では、
setPreferredSize()等のレイアウト指定処理が無効になっている、
ということでしょうか。
一々setBounds()しなければならない、と。
面倒ですが、仕方ないですね。
お返事、ありがとうございました。
>>653 LayoutManagerにnullセットするのが邪道なんだよw
Null Layout is Evil。わざわざ自らトラブル招いてるんだから。
そのAPIの意味や、背後の思想を理解して使えば
何が起きるか予想できる。
逆に、行き当たりばったりで使うと
「ハマり」から自力で脱出出来なくなるよ
655 :
雪 :2011/09/11(日) 11:14:31.61
>>654 null Layout自体が駄目ですか。
でも、レイアウトマネージャを使うと、枠一杯にボタンが広がったりしますけど、
例えば、メッセンジャの画面のような、
・大きなコントロール(チャットログ)
・小さなコントロール(発言入力枠)
・ボタン
を、一つの画面に同時に配置するときとか、どのようにしてらっしゃいます?
特にボタンの運用に困ることが多々あるのです。
ちょっとでか過ぎるでしょう。
borderlayout
GridBagLayoutを多用している俺は異端なのか… 設定やら配置やらの面倒な処理を共通クラスに押し込めてやれば多少複雑な コンポーネントの配置でもそこそこ見やすくコーディングできるんだがなぁ
>>656 それサンプル見ただけで拒否反応起こるんだけど、どういう状況を想定したレイアウトなんだろう?
>>658 ああ、確かにありがち。
マジックナンバー使いまくりの醜いコードしか見たことないけど、
うまい使い方あるんですかね?
>>660 borderlayoutなら
>>655 の
・大きなコントロール(チャットログ)
・小さなコントロール(発言入力枠)
・ボタン
も簡単にできるよ。
まずチャットログはcenterに配置する。
それから別のJpanelを用意して、このjpanelもborderlayoutにする
でこのcenterに発言入力枠をいれて、eastにボタンを配置する。
後は、このjpanelをsouthに配置すればいい
よろしくお願いします eclipseでjavaを書いています。 同一プロジェクトの中に同じ名前のclassファイルを置きたいです。 もちろんフォルダ(パッケージ)は分けていますが、出来る場合はどのようにimport すればいいのでしょうか?
665 :
雪 :2011/09/11(日) 14:38:27.36
やっぱり、JPanelを入れ子にする方法ですか…。 あれ、面倒なんですよね…。 画面遷移もしているのですが、 JPanelを益々、沢山作らないといけなくなりますね。
667 :
デフォルトの名無しさん :2011/09/11(日) 17:00:02.28
インターフェースについて質問です 下のstrListは、ArrayList型ですか?List型ですか? List<String> strList = new ArrayList<String>();
>>667 arryalist 型でしょう、普通。
実行時の型を聞いているのか コンパイル時の型を聞いているのか
670 :
雪 :2011/09/11(日) 17:53:51.74
>>666 申し訳ない。
出掛けに慌ててレスするものじゃないですね。
GroupLayoutはあまり使った事が無く、一瞥して理解するのは難しそうなので、
これから試してみたいと思います。
ありがとうございます。
そんなのライブラリによるとしか言えないだろ そりゃ「XMLをパースするライブラリ」なら自分で書いてるだろうし もっと高レベルなライブラリなら標準の使ってるかもしれないし自作かもしれないし他の使ってるかもしれない
ゆとりってバカだよなw
DOMパーサ実装がどのように選ばれるか/設定するかは javax.xml.parsers.DocumentBuilderFactoryのドキュメントとかにいろいろ書いてある。 SAXパーサ実装もほぼ似たようなもの。
標準のファクトリ使ってないかもしれないじゃん もしかしたらプルパーサかもしれないし
条件が続くかぎり、ループ処理を入れ子にしていくようなループって作れるでしょうか?
ループ処理を入れ子って具体的には?
>>677 すみません、ちょっと例を準備して再度書き込ませていただきます。
>>677 下記のような感じです。ピラミッド型になっていき、これを50回も繰り返せば目的は達成できるのですが、他にまともなやり方はないかと思いまして。
下を見ても意味がわからないかもしれませんが、自分でも書いてて意味がわからなくなってきました・・・。
int j= 0; while(j<hogecs.get(number).size()){
int number2 = hogecs.get(number).get(j);
///////////
int k= 0; while(k<hogecs.get(number2).size()){
int number3 = hogecs.get(number2).get(k);
///////////
int l= 0; while(l<hogecs.get(number3).size()){
int number4 = hogecs.get(number3).get(l);
///////////
int m= 0; while(m<hogecs.get(number4).size()){
int number5 = hogecs.get(number4).get(m);
///////////
nantoka.add(awawa(number5));
m++;
}
nantoka.add(awawa(number4));
l++;
}
nantoka.add(awawa(number3));
k++;
}
nantoka.add(awawa(number2));
j++;
}
nantoka.add(awawa(number));
再帰のことかな? スタックオーバーフローで死ぬパターンw
すみません、タブが削除されちゃうみたいで、修正しました。こういう感じです。 int j= 0; while(j<hogecs.get(number).size()){ int number2 = hogecs.get(number).get(j); /////////// int k= 0; while(k<hogecs.get(number2).size()){ int number3 = hogecs.get(number2).get(k); /////////// int l= 0; while(l<hogecs.get(number3).size()){ int number4 = hogecs.get(number3).get(l); /////////// int m= 0; while(m<hogecs.get(number4).size()){ int number5 = hogecs.get(number4).get(m); /////////// nantoka.add(awawa(number5)); m++; } nantoka.add(awawa(number4)); l++; } nantoka.add(awawa(number3)); k++; } nantoka.add(awawa(number2)); j++; } nantoka.add(awawa(number));
再帰でいいよ どうせ入れ子の階層が増えるとループ回数が激増するから スタックオーバーフローするほど深くはできないでしょ
再帰だと、hogecsとnantokaはインスタンスフィールドと仮定して public void recursive(int number) { for (int i = 0; i < hogecs.get(number).size(); i++) { recursive(hogecs.get(number).get(i)); nantoka.add(awawa(number)); } }
>>682 ,683
再帰ですか、ちょっと調べてみたら凄い難しくて頭が沸騰しそうです。
頑張って勉強してみます、ありがとうございました。
こういう時こそC/C++をちゃんと勉強したことがあるかどうかだよな
関係ないだろ
javaで画像の縮小や切り取りを綺麗にできるライブラリってなんでしょうか?
688 :
デフォルトの名無しさん :2011/09/12(月) 19:23:48.12
GoFのパターンで重要なのはどのパターンですか?
シングルトンパターン
FlyWeight
GoFのパターンの1つとして数えられてるわけじゃないが超重要なのは移譲の概念 だいたいその応用
-以上-
>>687 java.awt.imageパッケージ
695 :
デフォルトの名無しさん :2011/09/13(火) 00:52:29.78
ジェネリクスで指定したクラスを配列にして、空データを返す そんな事をしたいのですが、 下記のソースコードではうまくいきませんでした。 どこが間違っているのでしょうか? public xxx(T outputObj){ Class resultObject = outputObj.getClass(); T[] r2 = (T[])Array.newInstance(resultObject, 1); r2[0] = (T)resultObject.newInstance();
696 :
デフォルトの名無しさん :2011/09/13(火) 01:20:52.86
タイマーの作り方がいまいちわからない。 threadとsynchronize を上手く使えばいいのか?
698 :
デフォルトの名無しさん :2011/09/13(火) 03:16:12.96
MacのCocoa Bindingみたいに、JavaでもGUIの状態と変数を自動で同期してくれるような仕組みってありますか?
>>698 一口にGUIといっても色々あってだな…
AWTにはそういう仕組みはない。
SWTとSWINGは識者の登場を待ってて。
サードパーティ製品にはそういうのがあった気がするけど個人が手を出せる価格ではなかった(年間サポートつき数十万単位)。
>>695 あーやっとわかった気がする。これか。
public class Class695 {
public <T> T[] xxx(T outputObj) throws InstantiationException, IllegalAccessException {
Class<T> resultObject = (Class<T>) outputObj.getClass();
T[] r2 = (T[]) Array.newInstance(resultObject, 1);
r2[0] = resultObject.newInstance();
return r2;
}
public static void main(String[] args) throws InstantiationException, IllegalAccessException {
String[] res = new Class695().<String>xxx(new String("test"));
System.out.println(res[0]);
}
}
やっぱり何をやりたいのかはさっぱりだが。
javaxのパッケージは何の意味を持つものでしょうか? java誕生以降に追加された機能とか書いてあったりしますが。 OpenJDKなどのサードパーティーのJREにも必ず含めないと行けない決まりがあるのでしょうか? AnyRunを考えると、環境によってjavaxがない場合もあるから使用しちゃいけない、なんてことあるのでしょうか? javaってこのあたりがよくわかりません。
何の意味も無いよ。 自己責任で自作パッケージ名をjavax.で始めるもよし。 あるパッケージがランタイムに含まれているかどうかは、 その都度各版のAPIドキュメント見て確認するしかない。 半年もサーブレットの開発してれば、SEやEEのパッケージ名の大半は 区別付くようになるけどなー。
>>703 javaxやjavaで始まるパッケージ名を使うのはライセンス違反じゃなかったっけ?
705 :
デフォルトの名無しさん :2011/09/13(火) 17:05:05.11
WindowsのDLL向けに作ったJNIのラッパーは LinuxのSOにもそのまま使えますか?
同名同引数同戻り値型で同じ動作をする関数しか使ってなければ、 JNIのC言語のソースも再利用できるって程度。
707 :
705 :2011/09/13(火) 17:49:25.21
>>706 Java側のラッパー(.classまたは.jar)はそのまま利用できますか?
711 :
デフォルトの名無しさん :2011/09/13(火) 19:57:35.20
色んな文字コードの可能性があるStringオブジェクトをUTF-8に変換するにはどうすればいいですか?
↑なんだコイツ?
716 :
デフォルトの名無しさん :2011/09/13(火) 22:43:45.48
str.equals("あ") はjavaファイルの文字コードによって意味が変わりますか?
思い切り意味が変わるから、くれぐれもソースコンパイル時の文字コード指定は きちんと指定しような
718 :
デフォルトの名無しさん :2011/09/13(火) 22:57:45.81
やっぱそうですか^^ やはりUTF-16での数値で比較する方がベターなんですかね? 可読性は落ちますが
コンパイル時にちゃんとエンコーディング指定すりゃいいだけだな。
721 :
デフォルトの名無しさん :2011/09/13(火) 23:04:30.12
ちがうの?
昔は糞サーブレットプログラムでnew String(s.getBytes("ASCII"), "Shift_JIS") なんてソースをよく見たな
main()の頭で assert 'あ' == 0x3042; とか書いとけばビルドミスは検出できる。 海外の開発環境も交えて真剣に国際化に取り組むなら、 日本語文字列はプロパティファイルに\u記法で書いて 実行時に読み込むのが定番。
>>723 普通UTF-8で統一する。
JavaよかソースファイルのエンコーディングにセンシティブなGroovyなんかでは顕著。
GrailsはフレームワークでUTF-8決めうちしてるしな。
そこに、絵文字を扱えるように! というご託宣が、、
そういえばUnicodeに絵文字が追加されてたな
パソコンでみえない
涙でみえない
730 :
デフォルトの名無しさん :2011/09/14(水) 16:52:54.47
センシティブって何?
732 :
片山博文MZ :2011/09/14(水) 17:20:40.70
>>730 sensitive
敏感な,感じやすい; 傷つきやすい,過敏な
文字列の場合は大文字小文字を区別する
大文字小文字の話なら case sensitive
735 :
デフォルトの名無しさん :2011/09/14(水) 20:16:39.33
キャストの判別ってだらだら長いコードにならないようにしたいよねえ。 なんかいい方法ある?
visitor使うとかenumで振り分けるとか
C,C++からJavaに移る時、注意する事。ハマりやすい所があったら教えてください
739 :
デフォルトの名無しさん :2011/09/14(水) 22:30:52.34
質問です。 java EE6 SDK をダウンロードしてインストールしてるのですが、 sunオンラインアカウントの登録というところでずっとエラーが出てしまうのですが、 どうすればインストールできるのでしょうか?OSはWindows7のHomePremierです。
740 :
デフォルトの名無しさん :2011/09/14(水) 23:56:26.22
eclipseでブレークポイント設置する時にいつも↓みたいにやってるんですが もっとスマートな方法教えてください if(str.equals("abc")){ system.out.println("(;´Д`)");//ここにブレークポイント }
それのどこがブレークポイント設定してるんだ?釣りにしてはひどすぎる。
742 :
デフォルトの名無しさん :2011/09/15(木) 00:25:51.03
if文の条件が真のときに (;´Д`)で止めようとしてんでしょ
(;´Д`)が真だってのかよ
744 :
デフォルトの名無しさん :2011/09/15(木) 00:34:13.47
何いってんの?
Eclipseって条件付きデバッグの設定できなかったっけ
みす 条件付きブレークポイント
>>740 それは何をやっている(つもりの)コードなの?
748 :
デフォルトの名無しさん :2011/09/15(木) 01:06:14.36
ビルドパスとクラスパスの違いを教えてください
∧_∧ (´・ω・) いやどす ハ∨/~丶 ノ[三ノ | (L|く_ノ |* | ハ、__| ""~""""""~""~""~""
どすどす
>>750 わからないならレスしないでください
迷惑です
わからない奴の方がめずらしいんだが
CLASSPATH
>>737 この前は仮想デストラクタではまりました。ああ逆か Java -> C++ の話ね。
>>753 みんなわかってないみたいです
誰に聞いても「わかったようなこと」しか言いませんから
>>758 つーか、ググればわかる事を人に聞く奴には
Javaは向いてない。身の丈考えず背伸びするのやめて
もっと素人向けの言語使ったほうがイイぞ
うぜえ mixiとsourceforgeでやってろ
764 :
デフォルトの名無しさん :2011/09/15(木) 10:03:15.52
JDKダウンロードした後は環境変数を設定するんですよね?だから ユーザー変数 Path 変数値 ;C:\Program Files\Java\jdk1.7.0\bin としたのに、コマンドプロンプト上では ↓ ↓ C:\Users\Owner>cd c:\java 指定されたパスが見つかりません。 ↑ ↑ となります・・・どうしたらいいですか? 再起動もしました。
Cドライブ直下にjavaディレクトリをつければそのコマンドは通る
766 :
デフォルトの名無しさん :2011/09/15(木) 10:13:56.45
>>765 確かにそれは通ったんですが
↓↓
c:\Java>javac sample.java
'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
c:\Java>java sample
Error: could not open `C:\Program Files\Java\jre7\lib\i386\jvm.cfg'
↑↑
となります・・・どうしたらいいでしょう?
にちゃんねるはおそろしいところですね
>>766 java -version の結果を貼れ
本当にPathを「;C:\Program Files\Java\jdk1.7.0\bin」のみにしてしまったとか? さすがにそんなアホな事は……いやまさか……だがしかし……
770 :
デフォルトの名無しさん :2011/09/15(木) 10:32:42.04
>>768 こうなりました・・・
↓↓
C:\Users\Owner>cd \
C:\>java-version
'java-version' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
↑↑
Os はVistaです。
>>770 java-version じゃない java -version だ
772 :
デフォルトの名無しさん :2011/09/15(木) 10:38:19.94
>>771 お手数かけます・・
↓↓
C:\>java -version
Error: could not open `C:\Program Files\Java\jre7\lib\i386\jvm.cfg'
↑↑
こうなりましたね。ちなみにコマンドプロンプトのインデックスバー
は日本語で"コマンドプロンプト"ってなってて
"C:\WINDOWS\system32\cmd.exe"じゃないです。
専門学校では夏休みはいつからいつまでなんですか?
776 :
デフォルトの名無しさん :2011/09/15(木) 10:48:45.77
>>773 東京大学ですよ、僕は。情報系です。
>>775 えぇ・・同じ結果になるだけでは?一応かなりスムーズにインストールできた
んですが・・
パッケージは
Java SE Development Kit 7
Windows x86 79.48 MB jdk-7-windows-i586.exe
です。
できればこれ以外でサインイン無しでインストールできる
ものはないでしょうか?
>>776 お前が誰かなんてどうでもいいから、
黙って管理者権限でアンインストール&再インストールしろ。
779 :
デフォルトの名無しさん :2011/09/15(木) 10:51:40.33
完全にアンインストールする方法はどうしたらいいでしょうか? C直下にjavaディレクトリをいれたいのですが、それを丸ごとごみ箱 に移動し、削除すればいいのでしょうか?
780 :
デフォルトの名無しさん :2011/09/15(木) 10:54:06.49
>>778 パソコンの中身見られるのは怖いので・・一応最後に追加された
とこだけ・・だめですか?
C:\Users\Owner>echo %PATH%
----非可視-----
;C:\Program Files\Java\jdk1.7.0\bin
↑↑
こうなりました・・
>>779 アンインストーラの使い方も知らないんだったらプログラミングは諦めて
PCの使い方らか勉強しなおしてこい。
783 :
デフォルトの名無しさん :2011/09/15(木) 11:00:51.46
>>782 僕の場合javac sample.javaのコンパイルというのでしょうか、それすら
とおりませんので・・環境変数設定間違ってますか?
おまえにJavaは向いてない あきらめれ
jreはインストールしたがjdkはインストールしてない、とか間抜けな事やってる可能性も
PC音痴のド低脳の相手をするのもだんだん飽きてきたな。
ところで、専門学校では夏休みはいつからいつまでなんですか?
>>783 判断に必要な情報見せないのに判断しろとか……
>>783 知るかボケ。
echo %PATH% の結果晒すか、環境変数設定変更するか。
それが嫌ならOSからクリーンインストールしろ。
>>785 奴にjreを選択的にインストールする知能があると思うか?いや無い。
791 :
デフォルトの名無しさん :2011/09/15(木) 11:17:01.11
すいません・・ 環境変数Pathの;C:\Program Files\Java\jdk1.7.0\bin の先頭のわけのわからない;みたいなのをはずして javaディレクトリをprogram fileに入れなおすと C:\Users\Owner>javac -version javac 1.7.0 となりました!! 成功ですか? だけど今度はコマプロ上でC:\javaにもっていくことができません。
相変わらずアホ全開のスレですな
コマプロ(笑)
>>791 そうか…… C:\Program Files にインストールしたJavaディレクトリを
手動で C:\ 直下に移動させたのか……
この……ド低脳がッ!
専門学校では夏休みはいつからいつまでなんですか?
796 :
デフォルトの名無しさん :2011/09/15(木) 11:27:04.85
環境変数Pathのprogram filesをどけました・・ で今javaディレクトリはC直下にあります。 でコマプロ上で c:\Java>javac -version javac 1.7.0 c:\Java>javac sample.java javac: ファイルが見つかりません: sample.java 使用方法: javac <options> <source files> 使用可能なオプションのリストについては、-helpを使用します ↑ こうなってしまいます・・・どうしたら・・
>>796 Javaは諦めろ。おまえの知能指数では無理だ。
798 :
デフォルトの名無しさん :2011/09/15(木) 11:33:03.61
c:\Java>javac sample.java sample.java:1: エラー: クラスHelloWorldはpublicであり、ファイルHelloWorld.javaで 宣言する必要があります public class HelloWorld { ^ エラー1個 c:\Java>java sample Error: could not open `C:\Program Files\Java\jre7\lib\i386\jvm.cfg' c:\Java> javac HelloWorld.java c:\Java>java Helloworld Error: could not open `C:\Program Files\Java\jre7\lib\i386\jvm.cfg'
>>796 これ以降は有料になるのでマイクロソフトのサポート係に電話してください
わざとやっている感しかない・・・レスつけてるのも本人か?
お前に足りないものは、それは〜情熱思想理念頭脳気品優雅さ勤勉さ! そしてェなによりもォーーーーーーー知能が足りない!!」
803 :
デフォルトの名無しさん :2011/09/15(木) 11:52:05.70
すみません。今日は諦めることにしました。 お付き合いくださりありがとうございます。
先生!しつもーん 基本的な事になるかと思いますが java.nio.charset.Charset.defaultCharset().displayName() ; で調べると出るキャラクタセットを別のものに変える事って出来ますか? 開発環境と実行環境でこの値が違っており、発生している文字化けの原因はこのあたりだと見ています。 よろしくおねがいします
file.encodingでググろう!
ところで、クラスパスとビルドパスの違いを明確に説明できる奴ってここにはいないの?
807 :
798 :2011/09/15(木) 12:35:58.37
コンパイルは通りました。 c:\Java> javac HelloWorld.java c:\Java>java Helloworld Error: could not open `C:\Program Files\Java\jre7\lib\i386\jvm.cfg' 最後の最後で裏切られました・・・・ だいたいC直下にjavaディレクトリいれたのに `C:\Program Files\Java\jre7\lib\i386\jvm.cfg' のProgram Filesってなんなんでしょうか・・・
808 :
798 :2011/09/15(木) 12:38:50.17
あれ?何もいじってないのに、急に実行できた。
>>805 せんせえありがとうございます!!ここを見ておかげで問題点が絞り込めたと思います
http://www.simeji.com/wiki/index.php?cmd=read&page=Java%A4%CE%CD%AB%DD%B5&word=file.encoding#content_1_5 環境はGAEなんですが jspでコレ↓を実行すると
out.println("Default encoding: "+new java.io.InputStreamReader(System.in).getEncoding()); // ※1
out.println("file.encoding: " +java.lang.System.getProperty("file.encoding")); // ※2
実行環境(グーグルサーバ)での表示状態
Default encoding: ASCII
file.encoding: UTF-8
開発環境(マック)での表示状態
Default encoding: UTF8
file.encoding: UTF-8
となりましたあ
システムプロパティの設定で file.encodingはUTF-8と指定したので合ってるんですが ※2
このデフォルトでのエンコーディングが環境により異なるんですよねえ ※1
この環境設定のデフォルト・エンコーディングをいじくる方法がわからないので
処理が必要なところのその場しのぎ判定でやりくりするしかなさそうな現状・・・・・・(T−T)
811 :
798 :2011/09/15(木) 12:41:13.57
ちなみに東京大学じゃなくて東京の大学です。 東京工科大学です。ちょっとマジで意味がわからない。 急にできるようになった。
812 :
798 :2011/09/15(木) 12:47:10.85
一回jreのディレクトリから始めてjvm.cfg探しに 手動で探ったからですかね。ディレクトリ探った だけで実行できるようになるのかな?もう意味がわからない。 相変わらずjava自体はC直下 環境変数は ユーザーが 変数名 PATH 変数値 C:\Java\jdk1.7.0\binとなってます。 Path PATHの大文字小文字の違いも関係あるのかな・・
813 :
デフォルトの名無しさん :2011/09/15(木) 13:04:53.21
814 :
804 :2011/09/15(木) 13:08:46.19
ありがとうでもそれやってもだめだったお・・・・・(T−T) 方法は下記だお appengine-web.xml <system-properties> <property name="DEFAULT_ENCODING" value="UTF-8" /> </system-properties>
東京工科大学と専門学校(IT・情報系)では質がいい学生が多いのはどちらですか?
多さなら東京工科大学だろ 底辺は大差ないみたいだけどw
817 :
デフォルトの名無しさん :2011/09/15(木) 13:19:15.39
マジレスすると 東京工業 東京工科 東京理科のどれかに入ってれば就職は 良さそう。
818 :
804 :2011/09/15(木) 13:22:56.24
GAEのバグかしらね・・・・・
appengine-web.xml
<system-properties>
<property name="DEFAULT_ENCODING" value="UTF-8" />
</system-properties>
をかえて
http://code.google.com/intl/en/appengine/docs/java/config/appconfig.html#System_Properties_and_Environment_Variables ココ↑に明示されているとおり
appengine-web.xml
<env-variables>
<env-var name="DEFAULT_ENCODING" value="UTF-8" />
</env-variables>
で環境設定するとローカルの開発環境のマックではこんなのでる↓
com.google.appengine.tools.development.AbstractContainerService$IncorrectEnvironmentVariableException:
One or more environment variables have been configured in appengine-web.xml that have missing or different values in your local environment.
We recommend you use system properties instead, but if you are interacting with legacy code that requires specific environment variables to have specific values, please set these environment variables in your environment before running.
{DEFAULT_ENCODING=UTF-8}
at com.google.appengine.tools.development.AbstractContainerService.checkEnvironmentVariables(AbstractContainerService.java:515)
(以下略)
ちなみにこれで実行環境(グーグルサーバ)にデプロイして
out.println("Default encoding: "+new java.io.InputStreamReader(System.in).getEncoding());
out.println("file.encoding: " +java.lang.System.getProperty("file.encoding"));
の jsp出力がコレ↓
Default encoding: ASCII
file.encoding: UTF-8
高卒脳には解決ムリぽだわ
東京工業 東京工科 東京理科 専門学校(IT・情報系) このなかで偏差値レベルでなくIT系英語を余裕でこなせるような学生が多いのはどこでしょうか?
>>819 そんなくだらない質問をするあんたよりはマシだから安心して採用しろ。
821 :
798 :2011/09/15(木) 14:39:22.60
環境変数を読み込むタイミングを知らなかったのが原因でした。
822 :
デフォルトの名無しさん :2011/09/15(木) 15:03:15.26
ArrayList<ArrayList<String> hoge = ArrayList<ArrayList<String>>(); 上のようなarraylistがあって、1つの単語を上書きしたいのですが、 hoge.get(0).get(0) = "上書き"; では出来ません。 remove→add をする意外にスマートな方法ってないでしょうか?
hoge.get(0).set(0, "上書き")
hoge.set(0, "上書き")
ついでに。 set(int index, E element) リストの指定された位置にある要素を、指定された要素で置き換えます。 置き換えます 置き換えます 置き換えます 置き換えます 置き換えます
LD_LIBRALY_PATHってなんですか
>>806 NetBeansのプロパティ見りゃ一発。
slf4jはビルドパスに必要だけどlogbackは不要。
実行時のクラスパスには両方指定する必要がある。
>>828 Java関係ない。
そんなのも分からないならWindows使うよろし。
831 :
695 :2011/09/16(金) 00:08:32.77
いろいろと修正してどうしてもうまくいきませんでした。 public class AAccessor{ public AAccessor(){} @SuppressWarnings("unchecked") public <T extends DbResult>T[] get(Class<T> resultObject) throws IllegalAccessException, InstantiationException{ T[] blist = (T[])Array.newInstance(resultObject, 1); blist[0] = resultObject.newInstance(); return blist; } } public class TClass extends DbResult { public TClass(){ super(); } } こんな風なソースなのですが、 (new AAccessor()).get(TClass.class); と呼び出すとInstantiationExceptionでうまく動きません。 どのようにすれば動くようになるでしょうか?
java初心者なのですが javaをダウンロード・インストールして ネットに載っているサイトを見ながら環境変数を整えたのですが コマンドプロンプトでjavacと入力すると エラー:メイン・クラスcom.sun.tools.javac.Mainが見つからなかったか ロードができませんでした というのが出てきました どうすればいいのでしょうか?
eclipse使え
.cfgなんてまだ生き残ってたんだな。
専門学校では夏休みはいつからいつまでなんですか?
String d = "2011/9/16"; のようなStringの日付をCalendar型に変換するにはどうやればいいのでしょうか?
Calendar cal = Calendar.getInstance(); cal.setTime(new SimpleDateFormat("yyyy/MM/dd").parse("2011/9/16"));
クラス内で、関数名なしにいきなり{ }でくくられているコードは、どのように働くのでしょうか? 具体的には下記のようなコードです。 public class GraphicUtil { private static final BitmapFactory.Options options = new BitmapFactory.Options(); static{ options.inScaled = false; options.inPreferredConfig = Config.ARGB_8888; } }
スタティックイニシャライザ でググろう!
>>841 ありがとうございます!検索しようにもキーワードすら思いつかず困っていました。
843 :
デフォルトの名無しさん :2011/09/16(金) 22:37:44.48
あ?おりゃ、無職じゃ。文句あっか?
求人 でググろう!
Javaを始めてしばらく経ったけれども、 よく分からない記法とかコードとかもう出尽くした感じだ 匿名クラスとか、staticイニシャライザとか、ジェネリクスとかの他に 何か特殊な書き方してるコードとかある?
break ラベル;とかリフレクションとか
847 :
デフォルトの名無しさん :2011/09/17(土) 01:04:41.05
配列よりArrayListの方が便利なんですが 性能的にはどうなんですか?
>>847 読んで字のごとく内部で配列使ってるんだから素の配列使うより遅いに決まってるだろ。
javaの配列自体遅いから気にする程でもないが。
要素がオブジェクトなら言うほど遅くないが IntegerとかDoubleとかでボックス化しまくるととんでもなく遅くなる
名詞じゃないんだからBOX化ってへんじゃないか?
なんでJavaなんかやってるんですか? どうせWindowsで開発してるんだしC#の方がいいじゃないですか Javaが出来るよりC#が出来た方がVS IDEまかせで簡単のならなんでもに作れるじゃないですか!
854 :
デフォルトの名無しさん :2011/09/17(土) 12:28:29.92
バージョン管理システムって何がおすすめ?
855 :
デフォルトの名無しさん :2011/09/17(土) 12:29:20.44
C#の方が便利だとは思うがLinuxに移植するときのことを考えるとJavaかな
といっても結局Windowsでしか使いませんよね たまに使わないLinux GUIなんかWeb Html 5ベースでいいんじゃないですか!
ぶっちゃけ、GUI関連のクラス設計とかはC丼よりJavaの方が優れてるよね(´・ω・`) C丼は手間がかかる。
Java5より前にboxって言葉使われてたっけ? .NETだとボックス化は公式用語だけど、それ由来?
c#よりJavaの方がGUIが優れているなんて あり得んだろ。 あんな整理されていない糞ライブラリが
C丼・・・(笑)
C#は規格化されているとはいえWPFとか式木とかMS独特の言語拡張が多いですがGUIはやっぱりwinformsが主流なんですか?
C丼 並 汁だくで〜
イギリス在住で 「Boxing Day」を、人を殴りまくっていい日かなんかと 勘違いする日本人は多いらしい。
GUIでWinForm使うやつは老人。 WPF>>>Java>WinForm
C#は、現場の文化レベルが5〜6年前という感じ 洗練されてなくて泥臭い
WPFはそんなに流行ってないだろw
WPF使う位ならJavaでいいわ WinFormの手軽さが、GUI系ツール作りがあまりイケてないJavaから見た 数少ないメリットなのに
java7便利なのに 驚く程話題にあがらないな 時代に取り残されてる奴しかつどってないのか
Javaであまりイケてないのはlafがカスタム出来ないことですよね? 日本語でsynthのページがまったくないんですが仕様がxmlだからWPF xamlとほとんど同じじゃないですか! JavaFXは始まる前からオワコンていう話ですし、JavaSEはsynthがあるからまだまだイケるんじゃないですか?!
クライアントでダメなのはSwingがクソだからに尽きる
日本でJavaが流行らないのはJavaのせいじゃなくて、ほとんどの日本人開発者(コーダー)は英語だと読めないし理解もできないからです
>>871 何年前の話だw
おまえの周りだけじゃね?
>>868 日本語のページだけしか見てないでしょ?
>>874 どう見てもこのスレの話だろw
日本語すら読めないのか
日本語の使い方すらわかっていない痛い奴だったか
実際ここ最近の質問も回答も話題も 何年前の知識だよ?って内容ばっかりだよねー ま、質問スレだからしょーがないけど
つまりJava7というのは使いにくいってことでしょうか?
Java5の総称型すらも正確に理解できない開発者(コーダー)がJava7にまで手が回るわけない
あれだけ人いたのに急に閑古鳥。。 Java7誰も知らないんですかね
ジェネリクスを正確に理解って何のことだろ イレージャーがうんたらとかそんなん? コバリアンスがうんたらとか言えばいいの? 奥行きそんなにないだろ
総称型いらないわぁ
>>883 アパッチのコレクションズ(3.2.1)が未だに総称型をサポートしてないのはどうしてですか?
今更invokedynamicとかくだらんもののためにJVM弄るんなら 総称型もイレイジャのクソ実装じゃなくてJVMに組み込めただろうと
Javaは型推論がまだまだ弱いな 7で少しだけマシになったがアレだけじゃなあ
>>868 質問・相談スレッドだからね。
Java7以前の質問が大半なのは当然。
>>887 Java1.4でも使えるようにするため。
>>868 何か質問があるのであれば具体的にどうぞ。
7も知らない人に質問することはありません^^
ParallelArrayってマルチコアじゃなくても効果でますか?
>>894 処理途中でブロッキングIOが入るとかなら効果でるよ。
>>852 javaだとそのままカタカナ英語にしてオートボクシング/アンボクシングだし基本値とオブジェクト型のラップを勝手にやるjavascriptじゃ名前すら無い。
C#でしか聞いたこと無いしググってもDVD-BOXかwikipediaかC#しかでてこなかった。文法はあってんだけど感覚的に変な訳だな。
まあボックス化っていうとboxalizeの訳語か?みたいにみ聞こえるのは確か。
javaとhtml web開発がほとんどなら別にwindowsのライセンスを買ってまでwindows上で開発しなくてもなくてもいいかなって思う。 windowsで普段使うアプリというとoffce,ide,browerぐらいだからubuntuで十分だし。
>>898 javascriptは別に勝手にラップしてるわけじゃないんだな暗黙的にメソッドが呼ばれてるだけで
すべてがオブジェクト型だからラップがいらない・・たとえば数値はNumberを継承したオブジェクトで文字列に数値型を加算しようとしたらtoStringが呼ばれてたり・・
#スレチ
すみません。内部クラス(アダプタクラス)内でメインウィンドウの参照を得るにはどう記述したらいいのですか? ↓こんなような場面です。 jButton1.addActionListener(new ActionListenter() { public void actionPerformed(ActionEvent e) { jFileChooser.showOpenDialog(親ハンドル); // ↑ここでthisと書きたい(メインウィンドウの参照) } }
903 :
デフォルトの名無しさん :2011/09/17(土) 23:05:51.12
上げわすれました・・
905 :
デフォルトの名無しさん :2011/09/17(土) 23:39:15.86
引数に指定したオブジェクトを書き換えるメソッドを作る場合、 戻り値を返してメソッドの外側で書き換えるのと voidにしてオブジェクトをメソッド内で書き換えるのは 一般にどっちの方がいいんですか?
>引数に指定したオブジェクトを書き換えるメソッドを作る場合、 て自分で言っといて何を言ってるんだ
あおいからすうぜえ
908 :
894 :2011/09/18(日) 00:34:10.68
>>902 それ、内部クラスとは言わない
おかしなオレオレ用語を氾濫させるなカスが
909 :
894 :2011/09/18(日) 00:35:55.64
910 :
デフォルトの名無しさん :2011/09/18(日) 00:48:06.66
以下のコードでstrが書き換わらないのはなぜですか? public static void main(String[] args) { String str = "a"; System.out.println("str:" + str); changeStr(str); System.out.println("str:" + str); } static void changeStr(String aStr){ aStr = "b"; } 実行結果 str1:a str1:a
911 :
894 :2011/09/18(日) 00:53:19.08
>>910 Stringがプリミティブじゃなく参照型だからだ
プリミティブなら書き換わらないのは理解できるけど、 参照型なら変わるように思えるが
書き換えたいならStringBuilderを使うといいよ
>>913 それはわかってるけど、なんでStringじゃ書き換わらないのかを聞いてるんだけど
まだまだ暑いですなぁ… 釣れますか?
916 :
デフォルトの名無しさん :2011/09/18(日) 00:58:23.38
917 :
デフォルトの名無しさん :2011/09/18(日) 00:58:35.88
Stringは文字列のアドレスを渡してて StringBuilderはStringBuilderのアドレスを渡してるからだよ
922 :
デフォルトの名無しさん :2011/09/18(日) 01:04:14.72
嘘が反乱してるな Stringはオブジェクトだから参照渡しだよ
>>919 Javaは参照をコピー渡しだろ
釣りとアホと勘違いのコンボが酷くなってきたな
>>923 変数の値をコピー渡しじゃん
変数の中身がプリミティブがリファレンスかは知らん
// aStr = "b"の直前 str -> "a" <- aStr // aStr = "b"の直後 str -> "a" aStr -> "b"
927 :
デフォルトの名無しさん :2011/09/18(日) 01:16:13.96
>>925 結果は合ってるが
なぜstrとaStrの参照が変わるかの解説がないので△
10年前の話題だと急に活気づくな
929 :
デフォルトの名無しさん :2011/09/18(日) 01:37:51.59
aStr = "b"; ↑はaStrが参照しているオブジェクトの値を書き換えたのではなく参照先が変わった処理 aStr = new String("b");と同じ strは依然として"a"のアドレスを参照していて aStrは"b"のアドレスを参照しているため strは"a"のまま
930 :
902 :2011/09/18(日) 01:38:45.31
>>904 どうもありがとうございます。お礼が遅くなりすみません。
コンビニに行ったついでに、ちょろちょろしてきました・・
今夜はいい気候です。
932 :
デフォルトの名無しさん :2011/09/18(日) 01:45:09.52
javaの仕様を決めた人が文字列処理の表記を簡単にした結果 わかりにくくなってしまったんだよな aStr="b"; を見ると値が書き換わっていると誤解しやすいな
933 :
デフォルトの名無しさん :2011/09/18(日) 01:55:01.56
>>931 厳密にはこう
aStr = new StringBuffer().append("b").toString();
934 :
デフォルトの名無しさん :2011/09/18(日) 02:00:42.61
すっきりわかったわ
>>933 いや、そういう話じゃなくて。
newしなければ同じ文字列なら同じ参照使うよねって話
936 :
デフォルトの名無しさん :2011/09/18(日) 02:07:42.87
同じ文字列じゃないじゃん
厳密には違うことにはかわりない 本当は違うのに等価だと誤って覚えるのは いくないよ
DIコンテナというのに興味があります 今から覚えるならseasarとspringどっちがいいですか? 理由付きでご意見下さい
939 :
デフォルトの名無しさん :2011/09/18(日) 02:13:26.73
批判厨ばっか
>>938 シーサーはドキュメントが糞。
沖縄県人以外は使ってはいけない
941 :
938 :2011/09/18(日) 02:18:26.11
>>940 ドキュメントの沖縄方言が酷いということでしょうか?
特にプロジェクトで指定されてるとかでなければあえて覚えるメリットないだろ>Seasar あとな、数年前のXMLをゴリゴリ書く必要があった時代ならともかく、 いまのDIは「なんか知らんけど動くぞ」というレベルまで使いやすくなってる。 要は使えないのがおかしいレベル。つうことでSeasarもSpringもどっちも覚えとけ。
943 :
938 :2011/09/18(日) 02:38:23.71
りょ、両方ですかー>< 統一の規格?のようなものに則っているとかでないなら、 出来ればまず片方をきちんと極めてからにしたいのですが、、
public class Astr { String str; Astr(String s) { str = s; } String get() { return str; } void changeStr(String s){ str = s; } public static void main(String[] args) { Astr str1 = new Astr("a"); System.out.println("str1:" + str1.get() ); str1.changeStr("b"); System.out.println("str1:" + str1.get() ); } }
何がしたいんだ?
947 :
938 :2011/09/18(日) 03:23:33.46
>>946 英語は読めます。
Springの方が良いのは
どの辺りなのでしょうか?
ツマラン
最先端さんカッコイイなあ
C#にはrefやoutがあるのに
専門学校では夏休みはいつからいつまでなんですか?
これだからJabaは、っていわれるいつだっていいだろ
>>950 C++にもあるよ。Javaは敢えて取り除いた。
C#の拡張メソッドみたいなことを、Javaでやりたいのですが、 バイトコード弄るライブラリなどを使えば実現できるでしょうか?
>>947 SeaserやSpringも悪くはないけどJavaEEのDI/CDIを勉強するのオススメ。
日本はまだまだStruts1+Spring(SAStruts + Seaser2)が多い感じだけど海外はJavaEE5とJavaEE6で賑わってる。
>>955 バイトコード弄っても無駄。
コンパイラかプリプロセッサ作ればできる。
Java8まで待てばdefender methodが付く予定。
958 :
955 :2011/09/18(日) 15:43:31.12
>>957 そうですか、、あれ便利なんですよねー。
Date型とか使いにくいので、自分好みに染めたいなあ、と。
Java8を首長くして待ちます
defender methodは元のインターフェイスに宣言を追加する必要があるから 代わりにはならない それに元々Java7の提案でそれ以降音沙汰無し
new Query(items) .where(new Predicate<Hoge>() { public boolean predicate(Hoge item) { return item.isEnabled(); } }) .select(new Mapping<Hoge, String>() { public String map(Hoge item) { return item.getName(); } }) .toList(); 拡張メソッドが無くてもこんな風に…と思ったがラムダがないと使い物にならんな
>>959 lamda-devで時折defender methodプロトタイプかなんかのhgのchangesetが流れてたような。
関数型っぽいことやりだすとチェック例外が邪魔になるんだよな expression transparencyとか泥沼
964 :
デフォルトの名無しさん :2011/09/19(月) 00:07:21.24
変数名に変数をつけたいのだが どうすればいいのだ? 例えば buttonに末尾にどんどん数字をincしたい for (i = 0; i >= 10;i++) { button + i = hogehoge; } 的なことはできないの?
> 数字をincしたい
配列でいーんじゃねーの?
スレチかもしれんが教えてくれ SJC-Pの試験を受けようと思ってるんだが、 チケットの購入からいまいちやり方がわからん すまんが教えてくれ
ハンターハンター読め チケット買うところから試験が始まってる
今OJC-Pになってるんだよな
>>969 盲点だった。SJC-Pでググるからダメなんだな
オラクルが試験やると ボッてるイメージが先行するのは何でなんだぜ
「StrutsによるWebアプリケーションスーパーサンプル」 現在の最新は第3版だけど第2版と第1版が中古で安く売っている。 中身があまり変わらないなら安い中古でいいかなと思ってるのだがどうだろう?
(MainWin.java) import java.awt.*; import java.awt.event.*; class MainWin extends Frame implements ActionListener { public MainWin(String title) { setTitle(title); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); MenuBar menuBar = new MenuBar(); setMenuBar(menuBar); // [File] Menu menuFile = new Menu("File"); menuFile.addActionListener(this); menuBar.add(menuFile); } } (Test.java) import java.awt.*; import java.awt.event.*; public class Test { public static void main(String args[]) { MainWin main_win = new MainWin("MAIN"); (省略) } Java入門サイトに載っているメニューを表示するプログラムを入力しました。 しかし「MainWinはabstructでなく、java.awt.event.ActionListener内のabstructメソッドactionPerformed(java.awt.event.ActionEvent)をオーバーライドしません。」とコンパイルエラーが出ます。 何が悪いのでしょうか?
>>975 原因はコンパイラが出してくれているエラーメッセージそのままだ。
MainWinでactionPerformedメソッドを定義する必要がある。
もう一度祖のサイトやらを見直せ。
記載コードと自分のコードに差異があるはずだ。
取り敢えずコンパイル通したいなら
> class MainWin extends Frame implements ActionListener {
から implements ActionListener を削除しろ。
引数のgraphics gのイメージがわきません どこから受け取るのでしょうか? gじゃないとダメなのでしょうか?
俺には引数なくても描写できるイメージがある
そんなことどうでもいいからじすれ
教えろや
次スレ建てたら教えてやらないこともない かもな
じゃあ終了で
ジャアバいばい
梅
埋葬
> このメソッドは型booleanの結果を戻す必要があります for()に入らない場合のreturnが無いよね
うめ
立てる。
991 :
デフォルトの名無しさん :2011/09/20(火) 18:42:59.56
993 :
デフォルトの名無しさん :2011/09/20(火) 20:35:27.18
ノノノノ ( ゚∋゚) /⌒\/⌒ヽ_______ | ̄⌒\ 彡ノ_ | |_________\_|__ 丿____| /_____________\彡ノ_________\ ‖ \ヽ ‖ ヽミ
995 :
995 :2011/09/21(水) 15:04:23.79
javaを勉強したいのですが、オフラインの環境でも勉強・プログラミングは可能でしょうか。
想像でマスターしたよ
もちろんできるけど、初めの環境揃えるのにインターネット接続環境があった方が便利だし、 何かわからないことあったらすぐググれるのは大きいね。 オフラインだと上記の問題をどう解消するか、ということを考えとかないといけないと思う。
>>998 今は完全にオフラインで完結しようとなると日経ソフトウェアの言語特集でCDーROM付くのを待つしか無いかな
(東京付近在住なら、書泉ブックタワーとかでバックナンバー買えたはずだけど)
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。