★★Java質問・相談スレッド149★★
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2011/10/18(火) 19:54:23.87JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理 http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
(p)ttp://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
★★Java質問・相談スレッド148★★
http://hibari.2ch.net/test/read.cgi/tech/1316477239/
次スレは>>950あたりで。
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
0002デフォルトの名無しさん
2011/10/18(火) 19:54:50.61■ AWT と Swing は --
Java低速GUI Swing 9
http://hibari.2ch.net/test/read.cgi/tech/1261232019/
■ SWT は --
Java 高速GUI SWT 3
http://hibari.2ch.net/test/read.cgi/tech/1164877399/
■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part22
http://hibari.2ch.net/test/read.cgi/tech/1295766416/
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 9
http://hibari.2ch.net/test/read.cgi/tech/1249357352/
■ Androidアプリの作成は --
【Google】Androidアプリ作成part8 ※ dat 落ち
■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 71 ★★
http://hibari.2ch.net/test/read.cgi/tech/1309076891/
0003デフォルトの名無しさん
2011/10/18(火) 19:55:09.03NetBeans Part6
http://hibari.2ch.net/test/read.cgi/tech/1273665879/
■ Eclipseに関する雑談は --
Eclipse統合M31【Java/C++/Ruby/Python/Perl】
http://hibari.2ch.net/test/read.cgi/tech/1295886572/
**** 開発環境が必要の場合は ****
■ J2SE 5.0 (1.5.0)
http://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
http://java.sun.com/javase/ja/6/
■ Java SE 7(Early Access)
http://jdk7.java.net/download.html
**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
http://www.java.com/ja
0004デフォルトの名無しさん
2011/10/18(火) 21:46:29.270005デフォルトの名無しさん
2011/10/18(火) 22:05:20.01どんまい
さっさと削除依頼出してこいマヌケ
0006デフォルトの名無しさん
2011/10/18(火) 22:10:04.17Swingは描画クラスですよね?アプレットとの関連は?
0007デフォルトの名無しさん
2011/10/18(火) 22:24:21.59全てのものはオブジェクトです。
0008デフォルトの名無しさん
2011/10/18(火) 22:31:04.45ありがとうございます。アプレットクラスってありますか?
0009デフォルトの名無しさん
2011/10/18(火) 23:26:09.04ググれよ
http://java.sun.com/javase/ja/6/docs/ja/api/java/applet/Applet.html
0010デフォルトの名無しさん
2011/10/19(水) 01:16:30.840011デフォルトの名無しさん
2011/10/19(水) 02:31:49.07あっちはテンプレ間違えてるだろアホか
0012デフォルトの名無しさん
2011/10/19(水) 02:32:38.440013デフォルトの名無しさん
2011/10/19(水) 05:07:57.39今度JOGLを勉強しようと思っているのですが、ダウンロードできる場所と
インストールの方法が良く分かりません。
java.netの説明がたくさんあるのですがそこに行っても、ダウンロードできません。
よろしかったら教えてください。
スレ違いだったらすいません。誘導していただければ幸いです。
0014デフォルトの名無しさん
2011/10/19(水) 07:20:50.76HOME: http://jogamp.org/jogl/www/
BIN; http://jogamp.org/deployment/jogamp-current/archive/
DOC: http://jogamp.org/wiki/index.php/Main_Page
0015デフォルトの名無しさん
2011/10/19(水) 19:33:06.70パケットクラス作るものだと思ってたんですが、
byte[]が普通なんでしょうか。
0016デフォルトの名無しさん
2011/10/19(水) 20:29:53.80if(buf[243]==OK)
とかやっとれんから作るでしょ
0017デフォルトの名無しさん
2011/10/19(水) 20:43:55.42そういう話じゃないのか?
普通はストリーム垂れ流しでパケット単位とか面倒くさい事しないと思うが。
0018デフォルトの名無しさん
2011/10/19(水) 20:55:31.37非常識な実装でしょうか。
非常識なら非常識で良いのですが、普通はどのようにするのでしょうか。
0019デフォルトの名無しさん
2011/10/19(水) 21:11:31.850020デフォルトの名無しさん
2011/10/19(水) 21:13:27.76ツールバーにトグルボタン追加して
ボタンがONの時に、キャレット位置の文字列を取得して
OFFにしたら、その文字列を表示する
というのを試しているのですが
public void run(IAction action) {
if (action.isChecked()) {
//文字列取得
}else{
//表示
}
}
if文の中で、文字列の取得やってるんですけど
今の場合だと、ボタンをONにした時しか文字列を取得しません。(つまり1回だけ)
ONの間にキャレット位置を変更したら、文字列も取得しなおす
というようにするには、どうしたらいいでしょうか?
一応javaなのでここで質問したのですが、違ったらすいません。
0021デフォルトの名無しさん
2011/10/19(水) 21:23:36.22言わんのはわかったのですが、普通はどうするのでしょう。
ByteStreamで各値を入れていく様な形でしょうか。
0022デフォルトの名無しさん
2011/10/19(水) 21:29:32.570023デフォルトの名無しさん
2011/10/19(水) 21:37:46.210024デフォルトの名無しさん
2011/10/19(水) 22:09:48.510025デフォルトの名無しさん
2011/10/19(水) 22:30:33.18finalクラスの中のメソッドと同じ扱い。
0026デフォルトの名無しさん
2011/10/19(水) 22:33:20.780027デフォルトの名無しさん
2011/10/19(水) 23:49:55.240028デフォルトの名無しさん
2011/10/20(木) 02:22:35.75普通を選ぶのが普通じゃないか
0029デフォルトの名無しさん
2011/10/20(木) 02:40:13.840030デフォルトの名無しさん
2011/10/20(木) 02:44:38.310031デフォルトの名無しさん
2011/10/20(木) 07:43:05.330032デフォルトの名無しさん
2011/10/20(木) 08:01:00.98せいぜいリクエストとか、コマンドって言うんじゃね
GETリクエストを、GETパケットとか言うのかなり違和感がマッハだし
0033デフォルトの名無しさん
2011/10/20(木) 08:32:59.53それだけでしょうか。
Socketに対するPacketのつもりで書いただけだったので、
その誤解は想定外でした。
申し訳ない。
0034デフォルトの名無しさん
2011/10/20(木) 10:39:32.93業界用語だろうか?
0035デフォルトの名無しさん
2011/10/20(木) 11:55:28.820036デフォルトの名無しさん
2011/10/20(木) 13:04:48.750037デフォルトの名無しさん
2011/10/20(木) 19:19:22.130038デフォルトの名無しさん
2011/10/20(木) 19:43:21.48list.remove(10);
とやっても要素が削除されないんですがなぜでしょう?
0039デフォルトの名無しさん
2011/10/20(木) 19:49:08.720040デフォルトの名無しさん
2011/10/20(木) 19:58:56.41foreachで取り出してるからかー
0041デフォルトの名無しさん
2011/10/21(金) 00:05:56.55この{}って何ですか?
0042デフォルトの名無しさん
2011/10/21(金) 00:55:20.050043デフォルトの名無しさん
2011/10/21(金) 10:23:28.700044デフォルトの名無しさん
2011/10/21(金) 21:41:26.130045デフォルトの名無しさん
2011/10/22(土) 00:07:54.03改行コードが \r\n として読み込まれてしまいます。
C言語では、\r\n は \n に自動的に置き換えられると思うのですが、
Javaで自動的に置き換えるにはどのようにすればよいのでしょうか?
0046デフォルトの名無しさん
2011/10/22(土) 00:13:30.33ですが、Cloneable自体はclone()を宣言していないのでcloneableObject.clone()とは書けません。
このような場合、
cloneableObject.getClass().getMethod("clone").invoke(cloneableObject);
と書くしかないのでしょうか。
良い書き方があれば教えてください。
0047デフォルトの名無しさん
2011/10/22(土) 00:19:18.510048デフォルトの名無しさん
2011/10/22(土) 00:19:37.71System.getProperty("何か忘れた")で改行文字をOS毎に識別してみては?
0049デフォルトの名無しさん
2011/10/22(土) 00:22:46.62確かCollection<Cloneable>のオブジェクトは最初からcloneメソッドを実装していないと思います。
実装者がcloneメソッドをオーバライドしてdeepcopyするロジックを書かないといけないのかもしれません。
まちがってたらごめんなさい。
0050デフォルトの名無しさん
2011/10/22(土) 00:48:46.46どんなメリットがあるんですかね…
ゲッタとセッタで間に合ってるような気がするんすけど。
0051デフォルトの名無しさん
2011/10/22(土) 01:36:50.29http://journal.mycom.co.jp/articles/2007/05/16/java7/index.html
http://journal.mycom.co.jp/articles/2007/05/16/java7/001.html
便利機能ですね
0052デフォルトの名無しさん
2011/10/22(土) 02:24:21.750053デフォルトの名無しさん
2011/10/22(土) 09:23:11.06しているクラスを探すにはどうしたらよいですか?
また、ロードしている全クラスの中から上記のようなクラスを探すことは
元のクラスの量的に大変でしょうか?
0054デフォルトの名無しさん
2011/10/22(土) 09:40:46.88まず前者はどういう規模でやりたいんだ?
一つのプロジェクトで、とかならソース集めてgrepするのが速い。
全世界で、とかいうなら諦めろ。
後者については「どのクラスローダーが?」って問題があるけど、時間をかければ十分可能。
005553
2011/10/22(土) 10:01:42.19プログラム自身が自分を構成するクラス群の中から
あるクラスを継承しているクラスを探します
なので検索対象はメモリの中のクラスになります
時間をかければ可能ということは、遅いということですね
クラスローダなどから、検索対象を基本的なクラス(JRE内のクラス?)
ではなくユーザ定義のクラスのみに限定することはできるでしょうか?
0056デフォルトの名無しさん
2011/10/22(土) 11:17:40.56プログラム自身ってのがフレームワークのコンテナみたいなものを考えているのなら、
クラスローダを自作してloadClass()をoverrideするときにロードしたクラスを記録しとけ。
0057デフォルトの名無しさん
2011/10/22(土) 12:05:24.17やろうとしていることがいまいち分からん。
「あるプログラムを構成するクラス群」なんて、メモリ内を検索するまでもなく、
ソースコードの段階で、(基本的には)一意に決まってる物なんじゃないの?
それとも、外部からライブラリを持ってきていて、
その中であるクラスが使われているかを調査したい、みたいな事なのか。
その辺の事情も書かないと、有効な回答は出ないと思うよ。
005846
2011/10/22(土) 12:22:46.24コード例を挙げると、
List<Cloneable> cl = Arrays.asList(cloneableObjectArray);
List<Cloneable> copyOne = new ArrayList<Cloneable>();
for(Cloneable c : cl.iterator()) {
copyOne.add(/* ここにc.clone()のようなものを書きたい */);
}
引き続きよろしくお願します。
005953
2011/10/22(土) 12:40:00.59プログラム自身が実行中にメモリ内から探すので
ソースコードを用意してその中から探すのではありません。
そして、クラスの利用の有無ではなく
直接・間接を問わずあるクラスを継承、またはインタフェースを実装しているクラスを探します。
0060デフォルトの名無しさん
2011/10/22(土) 12:42:11.28List createDeepClone(List list) {
for(Object o : list) {
if(o instanceof List) {
createDeepClone(o);
} else {
// オブジェクトをクローンして値を格納。
Object newObj = o.clone();
(省略)
}
}
}
List型のみに限定するとこんな感じかな。ちょっと詰めが甘いけど。。
0061デフォルトの名無しさん
2011/10/22(土) 12:48:24.37Object#clone()はprivateだから無理。
0062デフォルトの名無しさん
2011/10/22(土) 12:49:24.67private じゃなくて protectedだな。
0063デフォルトの名無しさん
2011/10/22(土) 12:50:51.42むり
0064デフォルトの名無しさん
2011/10/22(土) 12:54:36.52ああそこはcloneメソッドを実装しているクラスかインタフェースにルール決めするしかないかな^^
0065デフォルトの名無しさん
2011/10/22(土) 12:56:41.49Cloneableはただのマーカーだからcloneの成功が保証されるわけじゃないから結局実装クラスで呼び出さないとわからない。
0066デフォルトの名無しさん
2011/10/22(土) 13:05:35.39だから>>46はList<Cloneable>ってCloneable限定してるじゃないか。
>>46
deep copyする必要があるクラスがわかっているのなら、
自分ならインタフェースを別で作る。
public interface MyCloneable extends Cloneable {
public Object clone();
}
んで、Collection<Cloneable>の代わりにCollection<MyCloneable>を使う感じ。
006745
2011/10/22(土) 13:16:06.03C言語のコードを移植したいので、
できればread()で得られたint型が改行かどうか判定する方法を探しています。
System.getProperty()で改行文字を得る方法は、戻り値がString型になってしまうので、困っています。
0068デフォルトの名無しさん
2011/10/22(土) 13:25:16.08>戻り値がString型
えー
Windowsなら13 → 10 の順番に来た文字コードを怪しめばいいと思うけど
0069デフォルトの名無しさん
2011/10/22(土) 13:30:39.57お勧めの書籍やサイトを教えてください。フレームワークというのも重要と聞きました
それも教えてもらえるとありがたいです
0070デフォルトの名無しさん
2011/10/22(土) 13:35:52.760071デフォルトの名無しさん
2011/10/22(土) 13:38:25.19まず書店に足を運んで初心者向けの書籍を立ち読みする。
初心者向けと銘打たれている中にも難易度の差があるから実際に読んでみて一番しっくり来たものを1冊購入する。
フレームワークは重要だけどこれからJava始めますってレベルなら無用の長物。
まずは基本をがっつり固めて勉強するべきだと思う。
あとは・・・Oracle認定Javaアソシエイツ(OCJ-A)かOracle認定Javaプログラマ(OCJ-P)の勉強をすると文法には詳しくなる。
0072デフォルトの名無しさん
2011/10/22(土) 13:50:13.45詰まらないサンプルコードとにらめっこして
クラス定義、メソッド、プライベート、パブリックなど初歩から地道にやってくことになる
他のオブジェクト指向言語を知っているなら
Java APIドキュメントやWebに転がってるサンプルコードを見ながら簡単なものを作ってみるのもいい。
テキストエディタでゴリゴリ書いてもいいけど開発環境使うならEclipseがオススメ
0073デフォルトの名無しさん
2011/10/22(土) 14:18:33.96ファイルを行ごとに分けたいが、行末判定は自前で書きたくない、というのであれば、
BufferedReader#readLine() がおすすめ。"\n" と "\r" と "\r\n" で勝手に区切ってくれる。
0074デフォルトの名無しさん
2011/10/22(土) 14:30:03.01>>72
ありがとうございます。オブジェクト指向すら知らないので本屋にいって探してきます
0075デフォルトの名無しさん
2011/10/22(土) 14:35:21.46HttpClientクラスがHTTP送受信の機能を提供してるみたいだけど何がやりたいの?
007657
2011/10/22(土) 14:38:14.93聞きたいのはそこではなく、なぜ「プログラム自身」が「実行中に」検索する羽目になるのか、という点。
一足飛びにメモリ検索まで行かなくても、他に妙案が出るかもしれないでしょ。
それはそうと、適当にググったらこんなのが見つかった。詳細は知らんけど。
interface com.sun.jdi.ClassLoaderReference#definedClasses()
このクラスローダによって定義されたすべてのロード済みクラスのリストを返します。
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/jpda/jdi/com/sun/jdi/ClassLoaderReference.html
0077デフォルトの名無しさん
2011/10/22(土) 14:51:03.23えっと、HttpClientからサイトに描画している文字列をinputstream経由で取りたいんです。
0078デフォルトの名無しさん
2011/10/22(土) 15:09:29.310079デフォルトの名無しさん
2011/10/22(土) 15:10:50.09じゃあHttpClientクラスなどに頼らず、URL、HttpURLConnection、ByteArrayOutputStreamなどを使って
一から実装したほうが近道なのでは?
ここなんかシンプルですよ
http://x68000.q-e-d.net/~68user/net/java-http-url-connection-1.html
008045
2011/10/22(土) 16:36:30.50一行ごとだと、そんな便利な機能があるんですね。
でも、今は、一文字ごとの読み込みで考えています。
一文字ずつ読み込んで、字句解析の様な事をするプログラムを作ってます。
解る方いらっしゃいましたらよろしくお願いいたします。
0081デフォルトの名無しさん
2011/10/22(土) 16:47:00.08字句解析なら1バイト長で取得したほうがきれいに作れる気がしますが・・
008245
2011/10/22(土) 16:53:12.84一バイト長の読み込みが良いのですが、\r\nは自動的に\nに変換してほしいんです。
0083デフォルトの名無しさん
2011/10/22(土) 17:01:40.78guiは不用でnative dll作成 (jni,jna)とdirectx,sse,avx,gpu(intel,amd)など常に最新のnative機能とライブラリにそのコンパイラ環境でアクセス出来るかどうかがメインです。
出来ればgplライセンスでなくフリーでプロジェクトの活動も活発なものを期待していますが、そんなオープンソース・コミュニティーみたいな都合がいいwindows用のC言語プロジェクトはwindows環境には存在しないですよね?
0084デフォルトの名無しさん
2011/10/22(土) 17:28:08.12その前に、中学校の勉強をしっかりやった方がいいんじゃないかな。
0085デフォルトの名無しさん
2011/10/22(土) 17:47:56.950086デフォルトの名無しさん
2011/10/22(土) 17:52:00.12>>68 で解決だろ
0087デフォルトの名無しさん
2011/10/22(土) 17:52:33.470088デフォルトの名無しさん
2011/10/22(土) 17:53:41.721byte長で読み込むけどCR-LFを判別したいってことか。
標準にはそんな仕様ないから自分でCR見つけたら次の1byte読んでLFなら捨てるようなメソッド組めばいいんじゃない?
あ、LFだったとしても文字コードによってはマルチバイトで次がある可能性があるから気をつけて実装しないとダメだよ。
008957
2011/10/22(土) 18:19:57.87試しに作ってみた。使用クラスが >76 とは違うけど。
ttp://ideone.com/W8svq
それっぽくは動くんだけど、ほんとに合ってんのかな?
よく考えたら、確認の仕様がないな・・・
0090デフォルトの名無しさん
2011/10/22(土) 18:43:43.72X<B#>A<B#>というStringがあったとして
<*>で囲まれたもの以外のalphabetをreplaceAllを用いて"|"に変換するにはどうすれば良いのでしょう?
Javaでの正規表現の書き方について、参考になるホームページなどがありましたら、教えていただけると助かります。
0091デフォルトの名無しさん
2011/10/22(土) 20:41:02.750092デフォルトの名無しさん
2011/10/22(土) 21:18:59.07どうしてもできないのなら、俺みたいにJython使えばいいんじゃね?
でもきっと、ちゃんと正規表現が使えると便利なんだろうな・・・・
009345
2011/10/22(土) 21:30:29.96すみません。コメントしていただいたのに見逃してました。
そうですね。少し手間はかかりますが、そうすることにします。
>>88
なるほどです。そうすることにします。
ありがとうございます。
0094デフォルトの名無しさん
2011/10/22(土) 22:07:00.61正規表現は不味いんですか?
char[]に分解して書くとかなり大変なので
正規表現で片付けようと思ったのですが。
>>92
学校の課題なので、Jythonはちょっと・・・
理屈自体はTuringMachinの講義を受けた際、勉強したはずなのですが
実際に使うとなるとさっぱりです。
ただ、正規表現が使えるといろいろ夢が広がりそうなので、
O'reillyのMastering Regular Expressionsでも読んで見ることにします。
0095デフォルトの名無しさん
2011/10/23(日) 00:06:59.18その場合警告が出るのを避ける方法って無いかな?
abstructクラスの部分集合のクラスかインターフェイスを定義したいんだが無理ですよね?
0096デフォルトの名無しさん
2011/10/23(日) 00:22:51.59そのクラスも”abstruct ”って宣言しないと
0097デフォルトの名無しさん
2011/10/23(日) 02:53:33.86例の文字列を対象にするなら
replaceAll(".*?(<[^>]*?>).*?", "l$1")
ってのはどうだろう
0098デフォルトの名無しさん
2011/10/23(日) 03:34:13.90「Could not find the main class」
になって突然全く実行できなくなった。
JUnitのテストコードも、動いてたものが全部
java.lang.ClassNotFoundException:
と言われた。
どんな原因が考えられますか?
0099デフォルトの名無しさん
2011/10/23(日) 03:38:12.510100デフォルトの名無しさん
2011/10/23(日) 03:41:36.57再コンパイルせずに起動スクリプトまわしたとか
0102デフォルトの名無しさん
2011/10/23(日) 03:57:28.48010398
2011/10/23(日) 04:16:31.04実際はbinにクラスファイルがありませんでした
原因は最近アンインストールしたsoyatec eumlというプラグインで、
インストール時にプロジェクトのビルドパス設定にsoyatecのものが自動的にセットされていたようで
アンインストールした事でそれが見つからなくなりクラスファイルが出力されていませんでした
0104デフォルトの名無しさん
2011/10/23(日) 10:05:24.17adapterパターンでググれ
ただしそのabstractクラス設計者が意図している対応かは知らん
0105デフォルトの名無しさん
2011/10/23(日) 10:22:51.24Runnable r = someMethod();
Thread t = new Thread(r);
t.run();
Runnable r2 = someMethod();
t = r2;
}
ってやったら、rへの参照がなくなって実行中なのにGCされてしまう可能性はありますか?
0106105
2011/10/23(日) 10:23:33.60でした。
0107デフォルトの名無しさん
2011/10/23(日) 10:36:16.96俺も似たようなのしか思いつかなかったんだけど、
それはreplaceAll使えっていう出題者の意図に沿った回答なんだろうか…
0108デフォルトの名無しさん
2011/10/23(日) 10:46:14.62自分が書いたコードの範囲だけみると確かに参照が無くなっているように見えるけど、
内部的には参照が保持されてる(ThreadGroupでググろう)。
なのでそういう心配はない。
あとは…デーモンスレッドについてもググっておけばOK。
0109デフォルトの名無しさん
2011/10/23(日) 10:50:35.96そんなことを心配する前に、mainスレッドがGCされるかどうかを心配すべきだ、って書いてあった。
(つまり実行中のスレッドはGCされないから心配するな、ということ)
0110デフォルトの名無しさん
2011/10/23(日) 13:10:14.45>>104
サンクス、調べてみまつ
0111デフォルトの名無しさん
2011/10/23(日) 13:38:28.190112デフォルトの名無しさん
2011/10/23(日) 14:40:58.79プログラム内でPDFを作成して印刷するのはあったんですが…
0113デフォルトの名無しさん
2011/10/23(日) 18:44:11.95これで
#{set title:&{'this.page.title'} /}
みたいにやりたいんだけどエラーが出る。
・ページごとにタイトルを変えたい
・各言語の設定ファイルにページタイトルを記述したい
ということがしたいのだけど、やり方が分からない。
0114デフォルトの名無しさん
2011/10/23(日) 18:47:05.81乙
0115デフォルトの名無しさん
2011/10/23(日) 19:09:52.12問題:二次元配列に、文字a,b,c,d,e,f,g,h,iを初期値として設定して、二重の繰り返し分を用いて二次元配列の値を出力させて次のように表示するプログラムの書き方がわかりません。
a d g e
i a c b
e h f d
初期値の設定まではわかるのですがその後の処理が見当もつきません。
0116113
2011/10/23(日) 19:10:09.94#{set title:'arg'}
の'arg'に変数を使う方法を知りたい
変数には
%{'variable.name'}
これでアクセスできるんだけど、入れ子に出来ないみたいで
#{set title:&{'this.page.title'} /}
これはエラーになる
誰かわかんないかなあ
0117デフォルトの名無しさん
2011/10/23(日) 21:32:10.11宿題スレ行け。
for (int i=0; i<配列.length; i++) {
....for ( int j=0; j<配列[i].length; j++) {
........ // 配列[i][j]出力
....}
}
0118デフォルトの名無しさん
2011/10/23(日) 21:47:33.41たらい回しされ過ぎワロタ
for (int i = 0; i < 配列.length; i ++) {
for (int j = 0; j < 配列[i].length; j++) {
// 配列[i][j]出力
}
// 改行出力 (←new!!)
}
0119デフォルトの名無しさん
2011/10/23(日) 22:19:02.870120デフォルトの名無しさん
2011/10/23(日) 23:10:05.48{'a', 'b', "c"},
・・・
}
とか、
a[0][0] = 'a';
a[0][1] = 'b';
a[0][2] = 'c';
・・・
とかなんじゃないの。
0121デフォルトの名無しさん
2011/10/24(月) 01:05:28.610122デフォルトの名無しさん
2011/10/25(火) 11:59:38.65どうしたらいいでしょうか?
0123デフォルトの名無しさん
2011/10/25(火) 12:37:40.740124デフォルトの名無しさん
2011/10/25(火) 13:09:35.050125デフォルトの名無しさん
2011/10/25(火) 13:56:43.88JMFを使いキャプチャした画像を他のPCに送り表示させようと考えているのですが、
250KB/Sの送信量になり、受け取るPCで大量の取りこぼしが発生し、画像を再構築することができずにいます。
現在、DatagaramChannelを使い、画像を1024byteのパケットに分割した上で、送っているのですが、
取りこぼしが少なくなるように改善することはできないでしょうか?
よろしくお願いします。
0126デフォルトの名無しさん
2011/10/25(火) 14:15:55.490127デフォルトの名無しさん
2011/10/25(火) 14:17:14.950128デフォルトの名無しさん
2011/10/25(火) 14:25:37.95取りこぼしが嫌なら、なんでDatagramChannelを使っているの?
0129デフォルトの名無しさん
2011/10/25(火) 16:09:43.57データ量が多いのでUDPを使って通信したいと思ったからなのですが、
socketを使用するべきでしょうか?
0130デフォルトの名無しさん
2011/10/25(火) 16:54:31.30他人に聞かないとできないなら、素直にSocket使った方がいい。
0131デフォルトの名無しさん
2011/10/25(火) 17:12:01.180132125
2011/10/25(火) 17:17:49.20取りこぼしたなら、取りこぼしを補填するような方法を考えるべきでした
Socketを使う前にその辺を改めて考えてみます
ありがとうございました
0133デフォルトの名無しさん
2011/10/25(火) 17:20:22.670134デフォルトの名無しさん
2011/10/25(火) 18:37:51.850135デフォルトの名無しさん
2011/10/25(火) 19:51:35.01自分の中では↓の認識なのですが、合っているでしょうか。
JavaEEはWebの大規模開発に必要な機能の仕様を一式まとめただけで、
実際に実装されるコンポーネントやらなんやらは「APサーバ製品」が各自で提供する。
OSSのフレームワークとは違い、提供される部品やらなんやらはAPサーバのものなので、
JavaEEの仕様通り作って、なんかあったらAPサーバのサポートでなんとかしてもらえる。
だから企業とかで色々キビシイ状態?でシステムを作る場合は、JavaEEに準拠してれば安全だね。って仕組み?
0136デフォルトの名無しさん
2011/10/25(火) 20:07:56.49昔あったWindowsMEみたいなもんですか?
0137デフォルトの名無しさん
2011/10/25(火) 20:52:53.63効果音のライブラリですか?
0138デフォルトの名無しさん
2011/10/25(火) 20:56:36.96株式やデイトレード用のシステムですか?
0139デフォルトの名無しさん
2011/10/25(火) 21:03:40.270140デフォルトの名無しさん
2011/10/25(火) 21:07:37.830141デフォルトの名無しさん
2011/10/25(火) 21:14:29.910142デフォルトの名無しさん
2011/10/25(火) 21:32:15.35,..-──- 、
/. : : : : : : : : :: \
/.: : : : : : : : : : : : : : ヽ
,!::: : : : : :,-…-…-ミ: : :',
{:: : : : :: : :i '⌒' '⌒'i: : :}
{:: : : : : : | ェェ ェェ | : :} ∩___∩
{ : : : : : :| ,.、 |: :;! / ヽ
__ヾ: : : :: :i r‐-ニ-┐| :ノ | ● ● |
ゞ : :イ! ヽ 二゙ノイ‐′ | ( _●_) ミ <ハァ? あ、import java.io.*;ね。
` ー一'´ヽ \ ,,-''"彡 |∪| __/`''--、
) |@ |ヽ/ ヽノ ̄ ヽ
| | ノ / ⊂) メ ヽ_,,,---
| .|@ | |_ノ ,へ / ヽ ヽノ ̄
| |_ / / | / | | ヽ_,,-''"
__|_ \\,,-'"\__/ / ,────''''''''''''''"""""""
~フ⌒ ̄ ̄ ~ヽ ヽ  ̄ ̄"""'''''''--、""''''---,,,,,,__
/  ̄''、|ノ )ヽ
___/  ̄ ̄) / |___
0143デフォルトの名無しさん
2011/10/25(火) 21:44:20.62>実際に実装されるコンポーネントやらなんやらは「APサーバ製品」が各自で提供する。
そう。
JavaSEだってそう。Oracleが公開してるものがデファクトになってるけど。
>JavaEEの仕様通り作って、なんかあったらAPサーバのサポートでなんとかしてもらえる。
ホントに仕様通り作れる?
あの膨大な英文ドキュメント目通した?
それに、JavaEE仕様だけでなく、その前提も知ってないと。
たとえば、Deployment DescirptorファイルはXML形式だからXML仕様知ってないと。
まぁ、仕様通りにできてなければ、何がダメだったか回答してくれるとは思うけど。
>だから企業とかで色々キビシイ状態?でシステムを作る場合は、JavaEEに準拠してれば安全だね。って仕組み?
JavaEEに準拠して作れば、どこのAPサーバでも動くモノになるね。って仕組み。
色々キビシイ状態?でも動く、ってところはAPサーバのウデの見せ所。
0144デフォルトの名無しさん
2011/10/25(火) 21:56:26.810145デフォルトの名無しさん
2011/10/25(火) 22:01:54.590146デフォルトの名無しさん
2011/10/25(火) 22:13:16.17ご丁寧にありがとうございます。
追加で1点><
APサーバの中身がどうなっているのかよくわからないのですが、
例えばJavaEEが動く仕様のAPサーバで、EJBの代わりにSpringを使いたい場合は、
APサーバにSpringの部品?を入れて、EJBの部品を使わないイメージなんでしょうか?
0147デフォルトの名無しさん
2011/10/25(火) 22:27:08.620148デフォルトの名無しさん
2011/10/25(火) 22:35:42.94>EJBの部品
EJBアプリはプログラマが作るモノ。部品として用意されてるわけではない。
(APサーバによってはアプリの部品となるようなEJBを同梱してたりするけど)
APサーバはServlet仕様やEJB仕様に基づいて作られたアプリを動かす実行環境。
>EJBの代わりにSpringを使いたい場合は、APサーバにSpringの部品?を入れて
EJB使わなきゃいけないて訳じゃないし、実際、EJB使わない、ってプロジェクトが多いし。
0149デフォルトの名無しさん
2011/10/25(火) 22:44:41.71むむむ。
ではEJBコンテナとかSpringuコンテナとか言われているのは、
具体的には何のことを指すのでしょうか?
EJBアプリ=EARファイル のイメージなのですが。
それをコンテナ?上に配置するとはどういったことを指すのでしょうか?
0150デフォルトの名無しさん
2011/10/25(火) 22:57:45.940151デフォルトの名無しさん
2011/10/25(火) 23:08:48.16APサーバが持つEJBコンテナの上でEJBアプリが動く。
クライアントアプリ(Servletとか)からの呼び出しはEJBコンテナが受ける。
EJBコンテナはDeployment Descriptorの情報に従い、権限チェックを行ったり
トランザクション準備といった前処理をした後、EJBアプリを呼び出す。
EJBアプリを呼び出した後、トランザクション決着(コミットやロールバック)といった後処理をして
呼び出し元に返す。
SpringはAPサーバから見ればアプリの一ロジックにしか見えない。
ServletやEJBのお作法は難しいしめんどくさいから、面倒なところは誰かやってよ、ってことで
SpringとかStrutsとかのフレームワークがあると思っとけばいいんじゃね。
EARファイル=Webアプリ(WARファイル)+EJBアプリ(JARファイル)を固めたもの。
0152デフォルトの名無しさん
2011/10/25(火) 23:25:11.500153デフォルトの名無しさん
2011/10/25(火) 23:25:22.49なんとなく理解できました。ありがとうございます。
まとめるとこんな感じであってますかね?
JavaEEサポートのAPサーバは、WebコンテナやEJBコンテナなどの実行環境のみを提供する。
中で動くアプリは勝手につくりなさいよ。JavaEE仕様のものだったら動くって保証するんだから。
でもJavaEE仕様でつくるのはめんどいし、痒いところに手が届かない場合もあるので、
OSSとかの各種フレームワークを使ってアプリを作りますよ。
んでつくったアプリ(WARファイル、JARファイル)をAPサーバにデプロイしてあげれば、
JavaEE仕様に準拠してなくても、フレームワークが色々補完してちゃんと動きますよ。
0154デフォルトの名無しさん
2011/10/25(火) 23:27:59.65>なんとなく理解できました。ありがとうございます。
お疲れ様でした。
0155デフォルトの名無しさん
2011/10/25(火) 23:28:11.470156デフォルトの名無しさん
2011/10/26(水) 01:48:33.330157デフォルトの名無しさん
2011/10/26(水) 03:30:04.30まちがってる。
0158154他
2011/10/26(水) 04:36:51.320159デフォルトの名無しさん
2011/10/26(水) 12:39:33.63InputStreamとかが投げるIOExceptionの中に、何種類か意味が違うものがありますが
あれの内容によって別の処理を走らせるというのは、一般的な手法でしょうか。
また、そうする場合、Exceptionのどのパラメータを基に判別すれば良いでしょうか。
0160デフォルトの名無しさん
2011/10/26(水) 12:55:41.67これの答えが手持ちの問題集では×らしいんだが、
◯だよな?
0161デフォルトの名無しさん
2011/10/26(水) 14:47:24.80てか解説載ってないの?
0162デフォルトの名無しさん
2011/10/26(水) 17:45:10.31例えばRADツールでframeとpanelを作って、panelにlabelを配置して、そのpanelをframeに配置したとしますよね
その後でlabelに変更を加えて、その変更をframeに反映させたいときはどうすればいいのでしょうか
一度frameからpanelを削除して、また改めてpanelを配置するしかないのでしょうか
0163デフォルトの名無しさん
2011/10/26(水) 18:14:23.530164デフォルトの名無しさん
2011/10/26(水) 18:37:50.86普通はlabelクリックしたら編集モードに入るだろ。そこで編集しろ。
0165デフォルトの名無しさん
2011/10/26(水) 19:05:13.76ボケはおまえだ
0166デフォルトの名無しさん
2011/10/26(水) 19:13:41.550167デフォルトの名無しさん
2011/10/26(水) 20:19:13.44同じフォントサイズで表示するにはどうしたらいいのでしょうか。
0168デフォルトの名無しさん
2011/10/26(水) 20:55:14.79どんだけエスパー頼みなんだよ。
0169デフォルトの名無しさん
2011/10/26(水) 21:32:41.60JButtonクラスのオブジェクト内に表示させる文字です。
0170デフォルトの名無しさん
2011/10/26(水) 23:13:06.24C言語とGDIに変換したいです。
JavaをC言語に変換するツールってありませんか?
ぐぐってもどこもリンク切れだったりDLしてもなぜかバグってるのばかりです。
0171デフォルトの名無しさん
2011/10/26(水) 23:36:49.30その2つのバイト列の論理積を取ろうとした時、
for(int i=0; i<a.length; i++){
a[i] &=b[i];
}
みたいに書くと1バイトずつ論理積とっていきますよね。
しかし昨今のCPUなら8バイト以上同時に論理積を取れます。
Cならこのへんは最適化されるだろうけど、Javaだとどうなんですか?
0172デフォルトの名無しさん
2011/10/26(水) 23:44:18.670173デフォルトの名無しさん
2011/10/26(水) 23:54:13.54すみません、ただフレームに張り付けたパネルに張り付けたオブジェクトに変更を加えた場合の一般的な表現をしたかっただけです
伝わらなければ家に帰ってからソースをそのまま張り付けようと想うのですが
そもそも開発環境に依存した話なのかjava自体の話なのかも分からないのです
0174デフォルトの名無しさん
2011/10/27(木) 00:27:03.43Cだとそのへんはどういう最適化がされるんですか?
0175デフォルトの名無しさん
2011/10/27(木) 01:01:19.99少なくともキャストが可能だからint配列として処理できるし
複数バイト同時に論理積を取る事で実際のループ回数を減らせるはずです
0176デフォルトの名無しさん
2011/10/27(木) 01:12:22.390177デフォルトの名無しさん
2011/10/27(木) 01:15:58.500178デフォルトの名無しさん
2011/10/27(木) 01:23:37.07もう少し誠意を持って答えるべきじゃないのかと思います
私は>>176とは縁もゆかりもありませんけれどもそう思いました
0179デフォルトの名無しさん
2011/10/27(木) 01:25:16.360180デフォルトの名無しさん
2011/10/27(木) 01:27:36.920181デフォルトの名無しさん
2011/10/27(木) 01:39:28.140182168
2011/10/27(木) 01:59:38.92追加で3点
�@ Win でコンパイルしたクラスファイルを Mac に持っていったのか、それとも、Mac でコンパイルし直したのか
�A System.out.println(button.getText()); の結果
�B setFont() しているならば、その部分をコメントアウトして実行した結果
>>173
安価ミスかな?
「Label の変更」とは、具体的に何なのか。
その変更は RAD ツールで静的に行うのか、それとも、実行時に動的に行うのか。
前者ならば、使用している RAD ツールは何なのか。
後者ならば、そうだね、まずはソースを貼ってもらった方が、話は早そうだね。
0183デフォルトの名無しさん
2011/10/27(木) 04:06:59.58この程度ならJITがやってる。プログラマの仕事じゃない。
0184デフォルトの名無しさん
2011/10/27(木) 05:06:29.260185デフォルトの名無しさん
2011/10/27(木) 05:35:34.840186デフォルトの名無しさん
2011/10/27(木) 05:59:45.62Zオーダーだっけ?アレの解消って皆どうやってる?
0187デフォルトの名無しさん
2011/10/27(木) 06:06:53.35いや同じバイナリデータについて
long[]とbyte[]双方で論理積のベンチとって見たら明らかになるかな
最適化されてなければ、データが十分にでかいと
long[]のほうが数倍速い
0188170
2011/10/27(木) 07:22:26.37GCJでやったらとんでもなく重たくなったのでC言語にして
GCCでコンパイルしたいです。なにかないですか?
0189デフォルトの名無しさん
2011/10/27(木) 08:49:11.610190デフォルトの名無しさん
2011/10/27(木) 08:52:01.75良いサーバーってありますか?
0191デフォルトの名無しさん
2011/10/27(木) 11:02:00.54ふつうは catch で分ける。
try {
...
} catch (FileNotFoundException notFound) {
...
} catch (EOFException eof) {
...
} catch (IOException ioe) {
// それ以外
}
0192デフォルトの名無しさん
2011/10/27(木) 12:20:10.02いっそのことVMをC言語で書くってのはどうだ。
>>176
スタック上のbyte型値は32bitとVM仕様で決まっているが、
byte配列の1単位が何bitかは何も決まっていない。
JNI仕様との兼ね合いもあるので、
まあどのVM実装もみっちり詰め込んでんだろうと思うよ。
0193デフォルトの名無しさん
2011/10/27(木) 12:27:51.370194デフォルトの名無しさん
2011/10/27(木) 13:12:59.13Java7のFork/Join Frameworkってそういうのに使えるんじゃなかったっけ。よく知らんけど。
>>176
ググったらダイレクトbyteバッファー使えって出てきた。よく知らんけど。
>>192
JNI仕様では(必要があれば)コピーして渡すことになってるのでみっちり詰め込んでなくても仕様上の不都合はない。
そんなことしてるJVMがあるのかは知らんけど。
0195デフォルトの名無しさん
2011/10/27(木) 13:49:25.86fork/joinはスレッドで並列処理するシロモノだから関係ないぞ。
0196デフォルトの名無しさん
2011/10/27(木) 19:44:23.62Windows SDKのコンパイラで/O2 /archオプションをつけて
コンパイル
ここの部分のCのソースコードに対して
for (i = 0; i < 8; i++) {
a[i] &= b[i];
}
こんなコード吐き出した
; Line 15
xor eax, eax
$LL6@main:
; Line 16
mov dl, BYTE PTR _b$[esp+eax+260]
and BYTE PTR _a$[esp+eax+260], dl
inc eax
cmp eax, 8
jl SHORT $LL6@main
全然最適化されてない模様
0197デフォルトの名無しさん
2011/10/27(木) 19:50:19.93i < 8をaとbの長さに一致させたら?
0198デフォルトの名無しさん
2011/10/27(木) 20:11:16.620199デフォルトの名無しさん
2011/10/27(木) 20:57:55.53Tomでいいじゃん。
知らず知らずのうちに、Tomに依存した作りになってるかもしれんぞよ。
0200デフォルトの名無しさん
2011/10/27(木) 21:31:58.82世の中にはTOMって略す奴もいるんだなw
0201デフォルトの名無しさん
2011/10/27(木) 21:50:37.48再利用、また人の目で確認するためにはxmlで保存するというのが
普通のやり方になるのでしょうか?
java.xml.parserでパースすると、<element>hoge</element>みたいな場合に
hogeがelementの値ではなく子要素になるところや、改行もテキストノードになってしまうところが
なんとなくもやもやして、他の方法はないのかなあと考えています。
0202デフォルトの名無しさん
2011/10/27(木) 22:28:44.95こんな感じじゃないの。よく知らんけど。
http://pastebin.com/0NYWxiHv
0203デフォルトの名無しさん
2011/10/27(木) 22:30:03.19><element>hoge</element>みたいな場合にhogeがelementの値ではなく子要素になる
え?
"element"のElementノードの下に"hoge"のTextノードができるだろ?
>改行もテキストノードになってしまう
DocumentBuilderFactory#setIgnoringElementContentWhitespace(boolean whitespace)
このファクトリで作成されたパーサが、XML ドキュメントの構文解析時に要素の内容の空白
(大まかに「無視できる空白」と呼ばれることがある) を排除するように指定します (XML Rec 2.10 を参照)。
0204デフォルトの名無しさん
2011/10/27(木) 23:20:31.31>"element"のElementノードの下に"hoge"のTextノードができるだろ?
はい、言葉足らずですいません。
<element>hoge</element>のように書いたときは
"element"ノードの値としてhogeをもってほしい感じがするのですが
実際は下にできる、つまり親子関係のようになってしまうということです
<parent><child></child></parent>のようにタグの入れ子なら親子関係なのも理解できるのですが。
>DocumentBuilderFactory#setIgnoringElementContentWhitespace(boolean whitespace)
ドキュメント見ろ、という話でしたね。ありがとうございます!
0205170
2011/10/27(木) 23:24:09.52自力で翻訳プログラム作ってみようかなとも思うんでJavaのプログラム解析するパーサとかってないですか?
0206デフォルトの名無しさん
2011/10/27(木) 23:25:17.230207デフォルトの名無しさん
2011/10/27(木) 23:31:05.36その考え方がなんとなくしっくりこないので他のやり方は
ないのかなあと思い質問させていただいた次第です。
0208デフォルトの名無しさん
2011/10/27(木) 23:34:34.82そんなキミはjavax.xml.xpath辺りのAPI使うといいかも。
XPathFactory xpf = XPathFactory.newInstance();
XPath xp = xpf.newXPath();
String val = xpf.evaluate("/element", doc); // valに"hoge"がセットされる
0209デフォルトの名無しさん
2011/10/28(金) 01:29:34.550210デフォルトの名無しさん
2011/10/28(金) 10:54:10.60<element value="hoge" />
にでもしたらいいのでは。
XML以外だと、JSON で頑張るとか。
0211デフォルトの名無しさん
2011/10/28(金) 11:55:00.14オライリーの「Head First Java」という本の中で以下のような問題がありました。
問:コンパイル可能かを答えてください
(※DogクラスはAnimalクラスを継承している、どのコードも文法的に正しいクラス、メソッドに属しているものと考える。)
1, ArrayList<Dog> dogs1 = new ArrayList<Animal>();
2, ArrayList<Animal> animals1 = new ArrayList<Dog>();
3, List<Animal> list = new ArrayList<Animal>();
4, ArrayList<Dog> dogs = new ArrayList<Dog>();
5, ArrayList<Animal> animals = dogs;
6, List<Dog> dogList = dogs;
7, ArrayList<Object> objects = new ArrayList<Object>();
8, List<Object> obList = objects;
9, ArrayList<Object> objs = new ArrayList<Dog>();
正解は以下のように示されていました。
3×
6×
7×
8×
まず×印がコンパイル可能なものに付けられているのか、あるいは不可能なものにつけられているのかすら分からないのですが
仮に可能なものに付けられているとしてもEclipseで実際にコードを打ってみた結果と符合しませんし
不可能なものでも同様でです。いかんせん解説がついてないので困りました。
どなたか正しい答えがわかるかたいらっしゃるでしょうか。
0212デフォルトの名無しさん
2011/10/28(金) 13:34:02.26XMLにこだわりがないのならYAMLとかJSONとか調べてみると幸せになれるかもね。
0213デフォルトの名無しさん
2011/10/28(金) 22:11:01.16セッションスコープのデータをレプリケーションできるのに
アプリケーションスコープのデータをレプリケーションできないようですが、
代替となる方法はありますか?
0214デフォルトの名無しさん
2011/10/28(金) 22:12:17.73携帯のjavaアプリがいまあるんですがこれをPC上で動かして遊びたいのですが可能ですか?
0215デフォルトの名無しさん
2011/10/28(金) 22:31:31.18アンドロイドアプリならエミュレータが必要
0216デフォルトの名無しさん
2011/10/28(金) 23:09:40.31JavaDocを漁ってみたところ、AbstractMap.SimpleImmutableEntry<S, T> というものをみつけました。
内部クラスではありますが、public宣言されているので普通にインスタンス化は可能です。
ここで質問なのですが、このような内部クラスはたとえpublicであっても使わないほうが良いのでしょうか。
パッケージプライベートとかprotectedなら使うなという意思表示がされていると思うのですが。
0217デフォルトの名無しさん
2011/10/28(金) 23:19:24.740218デフォルトの名無しさん
2011/10/29(土) 01:44:05.52アノテーション付いてるクラスを探すことをしています。
Class.forName()でクラスロードしたときに
呼ばれるイベントリスナーみたいなものありますか?
SLF4Jのクラスをロードすると警告が出力されて、
これを握りつぶしたいのですけどThrowableが投げられてるわけでは
無い様で困ってます。
0219デフォルトの名無しさん
2011/10/29(土) 03:04:26.49該当クラスのstaticイニシャライザなのかは既に調査済み?
0220デフォルトの名無しさん
2011/10/29(土) 08:44:19.67みたいなURL引数を自動的にパースしてくれるライブラリってJavaSEに無いんですか?
0221デフォルトの名無しさん
2011/10/29(土) 09:15:16.40プログラムを打ち込み、コマンドプロンプトから実行しようとすると
この文字は、エンコーディング MS932 にマップできません
というエラーが出ます。
MKEditorやテラパッド、メモ帳などでShift_JISで保存したのですが
どうしてもエラーがでます。
もう3時間はパソコンの前で格闘しています
原因としては何が考えられるでしょうか??
0222デフォルトの名無しさん
2011/10/29(土) 09:26:10.760223デフォルトの名無しさん
2011/10/29(土) 11:18:50.61ソースコードから日本語全部取り除いて一度試してみては
0224デフォルトの名無しさん
2011/10/29(土) 11:46:03.98ソースをちょいと見せてみ?
0225デフォルトの名無しさん
2011/10/29(土) 11:47:38.65>>216
特に決まりはないと思う。
自分なら使用する箇所が基盤系か業務系かで分けるかな。
基盤系なら、内部クラスだろうとinternalだろうと必要なら気にせず使う。
業務系なら、基本は使わない。どうしても必要なら、新しいクラスを作ったうえで外部に見せないように利用する。
0226デフォルトの名無しさん
2011/10/29(土) 11:55:53.00「�@」とか
IME変換時に「環境依存文字」て出るのは大抵ダメだった気がする
0227デフォルトの名無しさん
2011/10/29(土) 12:00:50.480228デフォルトの名無しさん
2011/10/29(土) 12:22:58.30ソフトウェア工学上、内部クラスを別パッケージから使ってはならないという
慣習はたぶんないよ。
java.text.NumberFormat.Field使っちゃいかんといわれたら困る。
囲みクラスのカプセル性を内部クラスが台無しにするのとかは論外だけど。
老害マネージャーがかわいそうだから内部クラス禁止
という職場もあるそうだが…
0229デフォルトの名無しさん
2011/10/29(土) 12:45:51.18「内部クラス」には該当しないからなぁ。
0230デフォルトの名無しさん
2011/10/29(土) 12:54:40.94具体的な実装はみてないけど、
普段の内部保持がSimpleEntry、Map#entrySet()とかやるとImmutable版が戻るのかな。
0231デフォルトの名無しさん
2011/10/29(土) 13:05:03.85うちがまさにそういう職場だ。
1. 無名クラス禁止って言われてGUIのイベント駆動を全部クラス化させられた。
2. メソッド分割禁止って言われて1業務1クラス1メソッド構成。
理由は「客が」理解しにくいから。
PMがどんなにがんばって説得してもダメだったよ。
構築+保守で食っていく予定を変更して構築だけで撤退。
0232デフォルトの名無しさん
2011/10/29(土) 13:12:24.25ライブラリ作成の都合上コメントつきで1000行越えるクラスをよく書くけど、main()1つしか使わないのはすごいクラスになるだろうね。
0233デフォルトの名無しさん
2011/10/29(土) 14:42:04.41あくまでもメソッド分割が禁止なだけだから業務ごとにクラスは分かれてる。
AD03M1HogeGyomu hoge = new AD03M1HogeGyomu();
hoge.execute();
って感じで起動するわけだが、AD03M1HogeGyomuクラスにはexecute()メソッド一つしかないし、業務ロジックはここにしか書けない。
DBアクセスもデータの詰め替えも全部ここに書いていて読みにくいことこの上ない。
客曰く、いちいち他の場所を見にいくのは非効率的だ。一ヶ所で全部網羅してるこっちの方がいい、そうで。
0234デフォルトの名無しさん
2011/10/29(土) 14:46:27.01追記。今話したシステムは1業務クラス1メソッドでJavadoc込み4,000行オーバーのファイルサイズ150kとかだよ。
関係者全員が口を揃えて「こんなクソに自分の署名残したくない」ってぼやいてた。
0235デフォルトの名無しさん
2011/10/29(土) 14:46:40.740236デフォルトの名無しさん
2011/10/29(土) 15:32:47.210237デフォルトの名無しさん
2011/10/29(土) 15:45:58.750238デフォルトの名無しさん
2011/10/29(土) 17:02:44.51import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ImageStep extends JFrame implements ActionListener {
ImagePanel panel; //イメージ描画用パネル
JButton button; //移動ボタン
public ImageStep(String title) {
super(title);
setSize(700, 800);
setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);//[x]ボタンでフレームを閉じる
setLocationByPlatform(true); //開始時の表示位置はOSに任せる
setLayout(new BorderLayout()); //画面の下にボタンが置けるレイアウト
//ファイルからイメージを読み込む ファイル名を指定する。
Image im = new ImageIcon("zeng01.jpg").getImage();
panel = new ImagePanel(im); //パネルを作る
add(panel, BorderLayout.CENTER); //パネルを中央に配置
button = new JButton("移動"); //移動ボタンを作る
button.addActionListener(this); //押された時のアクション指定
add(button,BorderLayout.SOUTH); //下に配置する
0239デフォルトの名無しさん
2011/10/29(土) 17:05:25.56ImageStep frame = new ImageStep("張り付け+移動");
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
JButton b = (JButton)e.getSource();
if(b == button) { //移動ボタンが押された。
panel.moveImage(); //イメージを移動させる。
repaint(); //再描画(中身が変わったとき必要)
}
}
}
class ImagePanel extends JPanel {
int width=450,height=300; //パネルの幅と高さ
Image image; //描画するイメージ
int x=10,y=10; //描画する位置
//
ImagePanel(Image im) {
super(); //通常のパネルを作る。
image = im; //イメージを保持
setMinimumSize(new Dimension(width,height)); //パネルの大きさセット
setPreferredSize(new Dimension(width,height));
}
public void paintComponent(Graphics g) {
super.paintComponent(g); //描画のデフォルト動作
g.drawImage(image, x, y, this); //イメージを描画
}
public void moveImage() {
x = x+10;//x,y座標とも10づつ動かす。
y = y+10;
}
}
0240デフォルトの名無しさん
2011/10/29(土) 17:10:08.990241デフォルトの名無しさん
2011/10/29(土) 17:17:01.29スペース文字や日本語の一部が文字コードおかしくなったりする。
手打ちでソースかきなおしてみ。
0242デフォルトの名無しさん
2011/10/29(土) 17:20:48.920243デフォルトの名無しさん
2011/10/29(土) 17:33:33.96サーバからのエラー通知をログに残して
クライアントでは何事も無かったかのように処理を続行する場合、
エラーなんだから、ERRORレベルでログに残すべき?
それとも、別にクライアント側の動作には
そんなエラー通知など必要ない情報なのだから、WARNレベルでログに残すべき?
0244デフォルトの名無しさん
2011/10/29(土) 17:54:28.83>>241
もう一度自分で打ち直してみましたが同じエラーが出ました...///
原因がさっぱりわかりません!!
0245デフォルトの名無しさん
2011/10/29(土) 18:17:12.27MS932…なんてエラーでないぞ
0246デフォルトの名無しさん
2011/10/29(土) 18:34:11.610247デフォルトの名無しさん
2011/10/29(土) 18:45:21.95いや、もしかしてソースをjavacコンパイルして.classにしないで
.javaのまま実行しようとしてる可能性もあるな
0248デフォルトの名無しさん
2011/10/29(土) 19:05:58.920249デフォルトの名無しさん
2011/10/29(土) 19:38:34.29実行じゃなくてコンパイルじゃないのか?
C:\tmp>javac ImageStep.java
ImageStep.java:6: 警告:この文字は、エンコーディング MS932 にマップできません。
JButton button; //遘サ蜍輔?繧ソ繝ウ
^
ImageStep.java:10: 警告:この文字は、エンコーディング MS932 にマップできません。
setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);//[x]繝懊ち繝ウ縺ァ繝輔Ξ繝シ繝?r髢峨§繧?
^
ImageStep.java:10: 警告:この文字は、エンコーディング MS932 にマップできません。
setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);//[x]繝懊ち繝ウ縺ァ繝輔Ξ繝シ繝?r髢峨§繧?
ちなみに↑はUTF-8でソースファイルを保存してコンパイルしたもの。
Shift-JISで保存したらコンパイルも実行も成功した。
0250デフォルトの名無しさん
2011/10/29(土) 19:55:21.50いまパソコンが使える環境じゃないので
>>245
>>246
MKEditorとTeraPad,メモ張で
それぞれ打ち直して見ましたが同じエラーです
>>247
コンパイルするとエラーがでます
eclipseではまだ打ち直してないのですが
大学のパソコンで打ったときは
タブの左にバツ×が表示され
実行できませんでした。
eclipseで打ったソースを
コマンドプロンプトからコンパイルしても
これまた同じエラーがでます。
自分のパソコンにeclipseがインストール
されていないので、インストールしてからeclipseでも
もう一度打ち込んでみようと思います。
自分のパソコンがおかしいんすかね??
ちなみに友達に送ってもらった
動作確認済みのソースも動きません。
ぐぐってみても、自分と同じような
ケースがみつからないし。
また明日がんばります。
変化があり次第書き込みます
ありがとうございました!
0251デフォルトの名無しさん
2011/10/29(土) 19:59:34.670252デフォルトの名無しさん
2011/10/29(土) 20:01:25.33MKEditor,TeraPad,メモ張
どれも間違いなくShift_JISで
保存し、コンパイルしたのですが
やっぱりエラーがでます。
もう一回メモ帳でやってみます。
0253デフォルトの名無しさん
2011/10/30(日) 00:10:01.12せめて名前くらいつけろ
NGするやつが困るだろ?
しょーもない話題で
>>243みたいな良質な質問が流されるのは勘弁してくれ
0254デフォルトの名無しさん
2011/10/30(日) 00:11:00.28ログレベルはなん種類使ってて
どーいう運用してるのか?位は書かんと
答えようないな
0255デフォルトの名無しさん
2011/10/30(日) 01:02:36.52Javaは向いてない。
もっと低級向け言語あるんだからそっち使えばいいのに。
0256デフォルトの名無しさん
2011/10/30(日) 02:12:10.520257デフォルトの名無しさん
2011/10/30(日) 03:06:47.130258デフォルトの名無しさん
2011/10/30(日) 03:17:19.69行列aをコレスキー分解するプログラムを作ったのですがうまくいきません。どこが間違ってるのでしょうか?ご教授お願いします。
public static void main(String[] args) {
int[][] a = {{1,2,-1,2,1},
{2,5,0,5,4},
{-1,0,6,2,2},
{2,5,2,10,4},
{1,4,2,4,11}};
double[][] l = new double[a.length][a.length];
double sum1=0.0;
double sum2=0.0;
for(int j=0; j<a.length; j++){
for(int k=0; k<j-1; k++){
sum1 +=l[j][k]*l[j][k];
}
l[j][j]=Math.sqrt(a[j][j]-sum1);
for(int i=j; i<a.length; i++){
for(int k=0; k<j-1; k++){
sum2 +=l[i][k]*l[j][k];
}
l[i][j]=(a[i][j]-sum2)/l[j][j];
}
}
matrix(l,a.length);
}
public static void matrix(double[][]a,int l){
for(int i=0; i<l; i++){
System.out.print("\t[");
for(int j=0; j<l; j++){
System.out.print(a[i][j]);
}
System.out.println("]"); }}
0259デフォルトの名無しさん
2011/10/30(日) 05:32:38.85> for(int k=0; k<j-1; k++){
二ヶ所ともj-1回ループ回さにゃいかんのにj-2回しか回ってなくね?
0260デフォルトの名無しさん
2011/10/30(日) 10:38:12.44>sum1 +=l[j][k]*l[j][k];
lじゃなくaじゃないの、とか
>l[j][j]=Math.sqrt(a[j][j]-sum1);
どう考えても sqrtの中身が負だろ、とか
根本的に考えなおしたほうがいい。プログラミングの問題じゃないような気がする。
0261デフォルトの名無しさん
2011/10/30(日) 12:48:21.23ttp://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%AC%E3%82%B9%E3%82%AD%E3%83%BC%E5%88%86%E8%A7%A3
少なくとも、「sum1,sum2 の初期化位置」と「i の初期値」は違ってそうだね。
for (int j = 0; j < a.length; j ++) {
// L[j][j] を計算
double sum1 = 0.0;
for (int k = 0; k < j - 1; k ++) {
sum1 +=l[j][k] * l[j][k];
}
l[j][j] = Math.sqrt(a[j][j] - sum1);
// L[i][j] を計算
for (int i = j + 1; i < a.length; i ++) {
double sum2 = 0.0;
for (int k = 0; k < j - 1; k ++) {
sum2 += l[i][k] * l[j][k];
}
l[i][j]=(a[i][j] - sum2) / l[j][j];
}
}
0262デフォルトの名無しさん
2011/10/30(日) 13:03:52.55自身が全くわかってないだろう「コレスキー分解」という概念を
何の説明もなくそのままの用語で使うことに
何の疑問も抱けないあたりだな
0263デフォルトの名無しさん
2011/10/30(日) 13:13:06.310264デフォルトの名無しさん
2011/10/30(日) 13:13:21.84馬鹿が伝染るだろ
0265デフォルトの名無しさん
2011/10/30(日) 14:06:21.53例えばString[] s = {"あ","い","う","え","お"};
とあった時、ランダムに
"あ","え","い","お","う" とか "え","お","あ","う","い" という風に取り出したいです
ただし配列のインデックスと文字の対応は崩したくありません
s[0]="あ"、s[1]="い" のままでってことです
0266デフォルトの名無しさん
2011/10/30(日) 14:19:31.030267デフォルトの名無しさん
2011/10/30(日) 14:23:14.43インデックスの配列を作ってシャッフルする
0268デフォルトの名無しさん
2011/10/30(日) 15:21:32.57コンストラクタは初期化に必要なものだとは分かりますが。
0269デフォルトの名無しさん
2011/10/30(日) 15:27:55.840270デフォルトの名無しさん
2011/10/30(日) 15:44:32.18C++と違って、デフォルトコンストラクタに文法上の特別な便宜はたぶん無いよ。
0271デフォルトの名無しさん
2011/10/30(日) 16:00:13.63初心者さんちーす
0272デフォルトの名無しさん
2011/10/30(日) 16:23:32.970273デフォルトの名無しさん
2011/10/30(日) 16:24:48.280274デフォルトの名無しさん
2011/10/30(日) 17:10:08.19こんにちは
0275デフォルトの名無しさん
2011/10/30(日) 18:10:05.61ばか乙
0276デフォルトの名無しさん
2011/10/30(日) 19:57:11.65コピーコンストラクタに配慮してくれる文法がJava言語にも欲しかったな。
なんか問題があって、あえてCloneableになったんだっけ?
0277デフォルトの名無しさん
2011/10/30(日) 19:59:54.23例えばどんなことやりたいかコードで書いてもらえないか
0278デフォルトの名無しさん
2011/10/30(日) 22:02:11.95んですか?
0279デフォルトの名無しさん
2011/10/30(日) 23:58:34.050280デフォルトの名無しさん
2011/10/31(月) 00:17:13.970281デフォルトの名無しさん
2011/10/31(月) 00:24:34.430282デフォルトの名無しさん
2011/10/31(月) 00:27:40.28正しくはないよ
0283デフォルトの名無しさん
2011/10/31(月) 01:20:45.77正しい説をおねがいします
0284デフォルトの名無しさん
2011/10/31(月) 13:56:25.03俺はXP使いだから知らんけど・・システム規定の文字コードで単純に保存じゃないの?
0285デフォルトの名無しさん
2011/10/31(月) 14:03:11.36http://d.hatena.ne.jp/akumakario/20080621/1214039807
0286デフォルトの名無しさん
2011/10/31(月) 18:12:24.01((Pritty)you).run();
else you.walk();
についてですが、この場合何で(Pritty)のキャストが付くんですか?
youがif()内でtureだったらPrittyクラスなんだから
付けなくて良くないですか?you.run()じゃだめなんですか?
0287デフォルトの名無しさん
2011/10/31(月) 20:07:43.57他のスレッドがyouを書き換える可能性を否定できない、
とかイチャモンつけたりもできるな。
所詮イチャモンだけどな。
0288デフォルトの名無しさん
2011/10/31(月) 20:20:47.11キャストつけなかったらどうなるんですか?
javaの場合、参照の型のメソッドなりを返すから
つけなくてもいいんじゃ?
0289デフォルトの名無しさん
2011/10/31(月) 20:30:28.41意味不明
0290デフォルトの名無しさん
2011/10/31(月) 20:41:52.53キャストつけるときってどんな時?
0291デフォルトの名無しさん
2011/10/31(月) 20:44:38.930292デフォルトの名無しさん
2011/10/31(月) 20:47:51.31の場合必要ないでしょ
0293デフォルトの名無しさん
2011/10/31(月) 20:48:27.030294デフォルトの名無しさん
2011/10/31(月) 20:49:27.560295デフォルトの名無しさん
2011/10/31(月) 20:51:06.87オブジェクトがどのクラスにあるか分かるときは
キャストの必要なくないですか?
0296デフォルトの名無しさん
2011/10/31(月) 20:51:30.89>>289の説明になってないよね。
0297デフォルトの名無しさん
2011/10/31(月) 20:52:41.47プログラマだけが分かってても意味ないんじゃね?
0298デフォルトの名無しさん
2011/10/31(月) 21:58:08.53参照型にダウンキャストした上でメソッドを行わなければならない?
良く分かりません。Prittyのインスタンスなのにダウンキャストする?
理解できん。何で?
0299デフォルトの名無しさん
2011/10/31(月) 22:06:12.95コンパイラさんの役割がまるで理解できてなさそうだな。
0300sage
2011/10/31(月) 22:16:53.27コンパイラが(you instanceof Prity)の結果を覚えていられないから
という理解じゃダメ?
if文の外でもキャストが必要なら、then部でもelse部でもキャストが必要。
0301300
2011/10/31(月) 22:17:38.180302デフォルトの名無しさん
2011/10/31(月) 22:44:41.40ところで、>>289で引用された部分の説明を一切しないのはなぜ?
0303デフォルトの名無しさん
2011/10/31(月) 22:46:09.87自分でも良く分からないから整理しただけ、>>289は忘れてください。
0304デフォルトの名無しさん
2011/10/31(月) 22:50:14.54キャストが必要な時ってどんな時ですか?
自分はキャスト=型を変換するって理解なんですがダメでしょうか?
例えばxはPrittyクラスなのに、(Pritty)xとキャストする意味が分からなくて・・
0305デフォルトの名無しさん
2011/10/31(月) 22:53:55.13どのメンバにアクセスするのか曖昧になる可能性があるな。
0306デフォルトの名無しさん
2011/10/31(月) 22:54:52.84分かってるならinstanceofする必要ないじゃん。
0307デフォルトの名無しさん
2011/10/31(月) 23:00:15.720308デフォルトの名無しさん
2011/10/31(月) 23:01:12.95すいません、変な部分だけ切り取って質問したんで・・
明快Java入門編の413pなんですけどね、見てくれたら分かると思います。
instanceofの説明が良く分からなくて・・
0309デフォルトの名無しさん
2011/10/31(月) 23:02:39.16買って送ってくれ。たぶん見たらわかると思うから。
0310デフォルトの名無しさん
2011/10/31(月) 23:05:17.28空白や改行、タブを区切りとしてStringのデータを得たいのですが
何か良い手段はないでしょうか?
StringTokenizerやCharaceter.isWhitespaseやら試してみたのですが
この馬鹿には使いこなせない物だったらしくうまくいきませんでした
よろしくお願いします
0311デフォルトの名無しさん
2011/10/31(月) 23:07:21.820312デフォルトの名無しさん
2011/10/31(月) 23:08:00.000313デフォルトの名無しさん
2011/10/31(月) 23:08:28.73どううまく行かなかったか?
をまず示してもらわないと何とも。
0314デフォルトの名無しさん
2011/10/31(月) 23:11:22.26class Pritty extends Human
な感じで。
ついでに、>>286のyou変数は
Human you = new Pritty();
みたいに(Prittyから見た時の)スーパークラス型の宣言してない?
この時、you.run();とやっちゃうと、
Humanでrunメソッドを宣言してなければエラーだし、
宣言してればHumanのrunメソッドを使っちゃう。
どうしても、Prittyのrunメソッドを使いたい時に>>286みたいな書き方をする。
で良かったと思うけど。
明快Javaとか言う本は知らない。
0315デフォルトの名無しさん
2011/10/31(月) 23:12:36.84作者名で検索かけてメールだの本人主催の掲示板だので直接質問すればいいんじゃね?
0316デフォルトの名無しさん
2011/10/31(月) 23:15:06.39インスタンスメソッドだったら、そんな事にはならんよ。
実際にはPretty#run()でなくてPrettyKid#run()呼ぶかもしれんけど。
0317デフォルトの名無しさん
2011/10/31(月) 23:26:30.570318デフォルトの名無しさん
2011/10/31(月) 23:26:51.66StringTokenizerで試した方のソースはこれです
http://ideone.com/t9uuL
これは単語をひとつも読み込めず
Result:
there is no word.
total : 0 words
とコンソールに出て終わってしまいました
FileReaderクラスのreadメゾッドでファイルから読み込みintからcharへキャスト演算子で変換するループを
(Character.isWhitespace(hoge) != true)をWhileの判定式に使って終了させるというのも試しましたが
こちらは空白で読み込みを終了できず失敗しました
0319314
2011/10/31(月) 23:32:53.99あれ、そうだった。
× Humanでrunメソッドを宣言してなければエラーだし、宣言してればHumanのrunメソッドを使っちゃう。
○ Humanでrunメソッドを宣言してなければエラーになっちゃう。
でいいのか。
0320デフォルトの名無しさん
2011/10/31(月) 23:34:32.57split(String hoge)のhogeを複数設定することは出来るのでしょうか?
0321デフォルトの名無しさん
2011/10/31(月) 23:38:18.50ttp://java.sun.com/javase/ja/6/docs/ja/api/java/lang/String.html
0322デフォルトの名無しさん
2011/10/31(月) 23:45:04.56catchWordが呼ばれてないような
0323デフォルトの名無しさん
2011/10/31(月) 23:53:52.88ありがとうございました
>>322
ありがとうございます
ここで聞く以前のミスですみません
直したら java.lang.IndexOutOfBoundsExceptionが47行目のwhile出でたのでそこも直してきます
0324デフォルトの名無しさん
2011/10/31(月) 23:56:18.03いやサブクラスのPritty型でnewでyouを宣言する設定で考えましたが。
明快Java入門の413ページなんで、良ければ見て教えてください。
この本ではPetがスーパーで、Robotpetがサブという設定ですが。
0325デフォルトの名無しさん
2011/11/01(火) 00:18:00.81コード貼れよ
いつまでだらだら続けるつもりだ
0326314
2011/11/01(火) 00:19:54.88キャストしなくても結果が変わらなければ蛇足なキャストなんじゃない?
キャストしなけりゃ結果が変わるんなら何か意味のあるキャストなんでしょ。
0327310
2011/11/01(火) 00:23:44.89アホな質問に付き合っていただきありがとうございました
今後はこのようなことがないように気をつけます
0328デフォルトの名無しさん
2011/11/01(火) 03:17:35.36youはPritty型として宣言されてないでしょ、多分。
だからキャストしてあげる必要がある。
0329デフォルトの名無しさん
2011/11/01(火) 03:25:16.79だからinstanceofやキャストは必要ないんじゃないかと疑問を呈している。
0330デフォルトの名無しさん
2011/11/01(火) 03:50:34.93ttp://www.bohyoh.com/Books/MeikaiJavaA/MKJavaAC12.pdf
0331デフォルトの名無しさん
2011/11/01(火) 07:32:51.82キャストしなけりゃコンパイルエラー
キャストすればコンパイル通って実行もできる
なら意味があるんじゃね?
0332デフォルトの名無しさん
2011/11/01(火) 08:07:03.380333デフォルトの名無しさん
2011/11/01(火) 13:03:14.37そのライブラリを他のアプリでも使えるように修正中なのですが、
シングルトンを継承させるような感じで
動作を定義することって出来ないでしょうか?
0334デフォルトの名無しさん
2011/11/01(火) 14:34:10.050335デフォルトの名無しさん
2011/11/01(火) 14:46:11.59では提示してください
0336デフォルトの名無しさん
2011/11/01(火) 17:03:15.080337デフォルトの名無しさん
2011/11/01(火) 17:08:28.110338デフォルトの名無しさん
2011/11/01(火) 17:13:07.34ファクトリは設定ファイルを見てインスタンスを生成するように変更。
継承クラスを定義。
設定ファイルを継承クラスのインスタンスを生成するように変更。
とかすれば何とかなるんじゃね?
0339デフォルトの名無しさん
2011/11/01(火) 18:08:44.35if (o instanceof Foo) {
((Foo) o).bar();
}
こういう場合ならキャストが必要なことに納得してくれるのかなぁ。
0340デフォルトの名無しさん
2011/11/01(火) 18:13:04.15継承したくなった時は移譲で実現可能かを検討しろ。
0341デフォルトの名無しさん
2011/11/01(火) 18:38:48.68いまいち分からなかったので
移譲する形でやってみます。
ライブラリの設定さえできればいいので、
呼び出す前に設定を渡す形にした方が簡単でした
0342デフォルトの名無しさん
2011/11/01(火) 18:55:37.59それジェネリックスつかってinstanceofできない時と未チェックでたときと実行時にClassCast例外出たときにパニクるんじゃないか?
0343324
2011/11/01(火) 20:36:11.28すいません、
配列で宣言していて、
普通に本ではPet []aみたいな感じでした。
中のa[i]=new PetRobotの右辺だけ見て判断してました。
すいません。 Pet A[]みたいなところ見逃してました。
自分のミスです。ちゃんとスーパークラスで宣言されてました。
ダウンキャスト必要ですよね。
0344デフォルトの名無しさん
2011/11/01(火) 21:02:27.630345デフォルトの名無しさん
2011/11/01(火) 21:07:53.35そのブロック内にてその型でアクセスできることは明らかなのに、
なぜ型推論もされず、ダウンキャストがないとその型でアクセスできないの?
っていう話のはず
0346デフォルトの名無しさん
2011/11/01(火) 21:44:59.43arrayが既存のClass型の配列でelementが足す要素だとすると
Class[] newArray = new Class[array.length + 1];
for(int i = 0;i < array.length;i++){
newArray[i] = array[i];
}
newArray[array.length] = element;
array = newArray;
という処理をいつもメソッドに書いているのですが
簡単にすることはできないでしょうか?
ちなみにListなどのクラスは使いたくないです。
0347デフォルトの名無しさん
2011/11/01(火) 21:52:34.950348デフォルトの名無しさん
2011/11/01(火) 22:32:06.690349デフォルトの名無しさん
2011/11/01(火) 23:09:27.60ありがとうございます。
個人的に>>348みたいなイテレータを使ったメソッドを真似て
自分でスタティッククラスとメソッドを実装したいのですが、
イテレーターというかジェネリクスというかよくわからないですが、
どんなクラスの配列でも引数にできるメソッドの作り方が乗ったドキュメントとか無いでしょうか?
0350デフォルトの名無しさん
2011/11/01(火) 23:27:02.45全く明らかじゃない。論理破綻しすぎだぞw
0351デフォルトの名無しさん
2011/11/01(火) 23:29:01.22わかってない単語を背伸びして使うのやめれ
バカにしか見えない
0352デフォルトの名無しさん
2011/11/01(火) 23:46:42.35久々にイミフ過ぎた
0353デフォルトの名無しさん
2011/11/02(水) 01:56:32.56ありますよ。
キーワードのヒントはジェネリクスとかイテレーターです。
これでグーグルエンジンでサーチすると、ジェネリックなクラスやインターフェースのコーディングのホームページがヒットします。
探せばイテレーターのメソッドをインプリメントしているようなサンプルソースをホームページでゲットできるかもしれません。
でもドキュメントをサーチしてきてコンテンツをもとにラーニングするよりも、
ArraysやArrayListのようなコレクションのジェネリクスクラスのソースコード中の
ジェネリクスのインプリメンテーションのイグザンプルをダイレクトにリファーした方がベターだと思います。
0354353
2011/11/02(水) 02:14:48.13アディショナル・インフォメーションですが、他にもMapインターフェースをインプリメントしたクラスのソースコードもリコメンドしておきます。
インターフェースMap<K,V>をインプリメントしているクラスで、
public V put<K key, V value)
public void putAll<Map<? extends K, ? extends V> m)
をどのようにインプリメントしているか見てみて、それをベースにトライしてみると、どんなクラスの配列でも引数にできるメソッドが作れると思います。
0355デフォルトの名無しさん
2011/11/02(水) 02:23:41.060356デフォルトの名無しさん
2011/11/02(水) 02:32:09.920357デフォルトの名無しさん
2011/11/02(水) 03:20:44.560358デフォルトの名無しさん
2011/11/02(水) 04:50:10.98いじめられたのかい?
0359デフォルトの名無しさん
2011/11/02(水) 05:18:58.65スルーできないお子ちゃまなのかい?早くおうちに帰りなさい。
0360349
2011/11/02(水) 09:06:53.22超絶暇人さんもご苦労様です。
ググる前になんとな〜く適当な単語並べて聞いただけなんで助言とかどうでもいいです。
死ねウンコ共。
0361デフォルトの名無しさん
2011/11/02(水) 09:10:22.38雑魚ゆとり?(笑)
0362デフォルトの名無しさん
2011/11/02(水) 14:19:14.130363デフォルトの名無しさん
2011/11/02(水) 16:15:39.260364デフォルトの名無しさん
2011/11/02(水) 16:22:38.370365デフォルトの名無しさん
2011/11/02(水) 16:30:33.65使い勝手よさそうなものってある?
GoF以外の物を説明してるのほとんど見たことないから、
いいものがあるなら、教えてほしい
0366デフォルトの名無しさん
2011/11/02(水) 21:43:34.550367デフォルトの名無しさん
2011/11/02(水) 21:43:56.48あるStringが3行目以上あったら、表示を打ち切りたいのです。
if( message.replaceAll("[^<BR>]", "").length() >= 12){ //<BR>のみ残して、<BR>が3個以上あったら
for (int n = 0; count >=3; n++){
message.charAt(n);
if(★message().charAt(n).equals("<BR>")){
count++;
}
}
System.out.println(message);
}
ここまで頑張ったのですが、★のif文が解りません。。
どなたがご教授頂けませんか?
0368デフォルトの名無しさん
2011/11/02(水) 21:48:49.09javaでバイトコード
どうやって操作してるんだ?
だって、本家がそういう仕組みを提供してないのに
asmなどはどうやって操作してるのだ?
0369デフォルトの名無しさん
2011/11/02(水) 21:51:15.660370デフォルトの名無しさん
2011/11/02(水) 22:01:40.17そういうことかよ
0371デフォルトの名無しさん
2011/11/02(水) 22:06:22.290372デフォルトの名無しさん
2011/11/02(水) 22:15:52.61message.charAt(n)って何のメソッドか分かってる?
一回生成されたStringは不変だからね?
メソッドを呼び出して文字列に何かしらの操作をしたら、
返り値のStringを見てみないと結果を見れないからね?
0373デフォルトの名無しさん
2011/11/02(水) 22:16:37.420374デフォルトの名無しさん
2011/11/02(水) 22:17:40.100375デフォルトの名無しさん
2011/11/02(水) 22:22:04.27int cnt=0;
for (String ss : s) {
System.out.println(ss);
cnt++;
if (cnt == 3) break;
}
0376デフォルトの名無しさん
2011/11/02(水) 22:43:22.77馬鹿が知ったか
低レベルの分際でw
0377デフォルトの名無しさん
2011/11/02(水) 22:44:46.27このスレのレベルじゃないだろ
本当に理解してる人は一握りの猛者のみ
あとはカスばかりだよ
0378デフォルトの名無しさん
2011/11/02(水) 22:50:06.61雑魚ばかりですよ
せいぜいフレームワークの提供するAPIが使える程度
それさえも設定ファイルの書き方がわからずに嵌ってる土方PGばかりが集ってるw
0379デフォルトの名無しさん
2011/11/02(水) 23:02:09.02うるせー煽ってる暇があったらなんか話題振れハゲ
0380デフォルトの名無しさん
2011/11/02(水) 23:03:39.45そうですね
バイトコードが理解できる達人レベルなら
こんな糞スレには来ないでしょうから^^
0381デフォルトの名無しさん
2011/11/02(水) 23:57:56.87x-JIS0208は、5の途中のバージョンから使える?
0382デフォルトの名無しさん
2011/11/03(木) 01:46:56.55JIS X 0208・・・日本工業規格
0383デフォルトの名無しさん
2011/11/03(木) 01:57:38.02不思議と性根も悲惨なの多いね。
ワンレスで化けの皮が剥がれたり。
0384デフォルトの名無しさん
2011/11/03(木) 02:01:58.250385デフォルトの名無しさん
2011/11/03(木) 02:14:46.16ご教授くんは日本語をまずなんとかしてくれ。ご教授って。。。
肝心のコードだな一行目からしてイミフ、動かんよそれ。for文もおわらんでしょ。charAtのAPI見直してこい。
などなど酷すぎて目が潰れそうだ。
なによりコンパイラ位使ったあとにに貼れ、と。
0386デフォルトの名無しさん
2011/11/03(木) 04:43:11.570387デフォルトの名無しさん
2011/11/03(木) 06:14:26.670388デフォルトの名無しさん
2011/11/03(木) 06:36:02.530389デフォルトの名無しさん
2011/11/03(木) 07:39:25.54int[] A;
for(int i=1;i<100;i++){
A=new int[i];
A[i-1]=i;
}
ではダメだよね?
どうすれば良いか教えてほすい
0390デフォルトの名無しさん
2011/11/03(木) 07:43:09.45説明不足すまん、最初にnew int[100]しないでいい方法が知りたい
0391デフォルトの名無しさん
2011/11/03(木) 07:44:28.230392デフォルトの名無しさん
2011/11/03(木) 08:07:03.84forの中でappendするってのはダメ?
あとはnumpy使うとか。
0393デフォルトの名無しさん
2011/11/03(木) 10:17:36.72それ楽になってないじゃん。
0394デフォルトの名無しさん
2011/11/03(木) 10:52:46.64配列ではなくリストならそうするね
0395デフォルトの名無しさん
2011/11/03(木) 11:22:49.690396デフォルトの名無しさん
2011/11/03(木) 11:27:23.47今はListの時代
0397デフォルトの名無しさん
2011/11/03(木) 11:31:54.510398デフォルトの名無しさん
2011/11/03(木) 12:13:27.32ver list = (1 to 100).toList
0399デフォルトの名無しさん
2011/11/03(木) 12:29:47.71とあったとき、
0000000100000000
0000000000000001
のどちらをイメージすべきですか?
0400デフォルトの名無しさん
2011/11/03(木) 12:34:27.52こういうのが知りたいってこと?
0000 0000(2) 0(10)
0000 0001(2) 1(10)
0111 1111(2) 127(10)
1000 0000(2) -128(10)
1111 1111(2) -1 (10)
0401399
2011/11/03(木) 12:43:38.09違います。
b[0]の右側と左側どちらにb[1]があるのか、ということが知りたいです。
b[0]の最上位ビットの左側がb[1]の最下位ビットでしょうか
b[9]の最下位ビットの右側がb[1]の最上位ビットでしょうか
0402399
2011/11/03(木) 12:44:24.91× b[9]の最下位ビットの右側がb[1]の最上位ビットでしょうか
○ b[0]の最下位ビットの右側がb[1]の最上位ビットでしょうか
0403デフォルトの名無しさん
2011/11/03(木) 12:49:20.610404デフォルトの名無しさん
2011/11/03(木) 12:57:25.130 0
0 0
0 0
0 0
0 0
0 0
0 0
1 0
0405デフォルトの名無しさん
2011/11/03(木) 13:13:44.41ご教授に噛みつく人何人か見かけるけど
別に間違ってるわけじゃないから。
間違ってるのは君の知識の方。
0406デフォルトの名無しさん
2011/11/03(木) 13:17:11.590407デフォルトの名無しさん
2011/11/03(木) 13:44:57.03間違ってる高卒が多すぎて、訳が分からなくなってるけど。
0408デフォルトの名無しさん
2011/11/03(木) 14:20:00.320409デフォルトの名無しさん
2011/11/03(木) 15:38:12.090410デフォルトの名無しさん
2011/11/03(木) 16:24:00.970411デフォルトの名無しさん
2011/11/03(木) 16:30:54.46ビッグエンディアンかリトルエンディアンかって話?
byte[]はどっちでもないよ。
java.io.DataInput DataOutput はビッグエンディアンだけど。
java.nio.Buffer は自由に指定できる。
0412デフォルトの名無しさん
2011/11/03(木) 18:57:09.03元素崩壊による半導体のソフトエラーの話なら、
メモリセル間でどんな誘爆パターンがあってもおかしくない。
0413デフォルトの名無しさん
2011/11/03(木) 21:27:40.940414デフォルトの名無しさん
2011/11/03(木) 22:10:45.350415デフォルトの名無しさん
2011/11/04(金) 03:40:05.41院卒だよ。
どこの病院かは教えてあげないけど。
0416デフォルトの名無しさん
2011/11/04(金) 08:13:52.010417デフォルトの名無しさん
2011/11/04(金) 08:56:53.11おそらく 0000000100000000 じゃないのかな
でないと、b[1] のアドレスが b[0] より小さくなってしまってややこしい
リトルエンディアンなら 1000000000000000 かな
0418デフォルトの名無しさん
2011/11/04(金) 10:43:21.92ビッグエンディアンが1000000000000000で
リトルエンディアンが0000000100000000じゃないの?
0419418
2011/11/04(金) 10:44:02.00ビッグエンディアンが0000000000000001だ
0420デフォルトの名無しさん
2011/11/04(金) 10:47:40.34ASCIIの文字列入れれたらいいんだけど。
0421デフォルトの名無しさん
2011/11/04(金) 10:49:21.240422デフォルトの名無しさん
2011/11/04(金) 11:08:29.16ry
0423デフォルトの名無しさん
2011/11/04(金) 15:14:47.08どうおかしいのか具体的な指摘が無いのでなんともだけど、
教授に「ご」をつけるのがおかしいっていう意図なら、教授するのは相手なので問題ないよ。
あとは…自分の知ってる教授の意味と違う!っていう意図ならもう一度辞書引いてみて。
どっかで聞きかじった知識なんだろうけど、生まれたての雛鳥じゃあないんだから
初めて聞いた知識をそのまま鵜呑みにするんじゃなく自分で正誤を確かめようよ。
指摘も具体的にしなくちゃ。そんなんだとプログラミングに携わる者として大成しないよ。
0424デフォルトの名無しさん
2011/11/04(金) 15:19:41.58○ご教示
0425デフォルトの名無しさん
2011/11/04(金) 15:27:54.660426デフォルトの名無しさん
2011/11/04(金) 15:43:54.76トークンリングに流すなら 00000001 00000000 だ。
PCI-Expressではどうなんだかよく知らん。
スイッチングハブやPCIブリッジを設計する人でもない限り、
LSBより先にMSBを知りたい、とかこだわる人はいない。
正直Javaプログラマにはどうでもいい。
0427デフォルトの名無しさん
2011/11/04(金) 16:52:20.05だからさ、それだと
×ご教示
○ご教授
と同程度の意味合いにしか読み手には伝わらないんだ。
もうちょっとがんばろう!ね!
0428デフォルトの名無しさん
2011/11/04(金) 17:33:39.40間違いだと言う人もいれば日本語として問題ないって人もいるから別にどうでもいい
0429デフォルトの名無しさん
2011/11/04(金) 17:37:36.210430デフォルトの名無しさん
2011/11/04(金) 17:45:15.450431デフォルトの名無しさん
2011/11/04(金) 18:16:28.560432デフォルトの名無しさん
2011/11/04(金) 18:18:18.830433デフォルトの名無しさん
2011/11/04(金) 20:19:32.19charAtメソッドの果たす役割とその価値を1年かけて体系的に教えて欲しい
ってくらいで「ご教授」になるかしらん。まだ足りないかな
0434デフォルトの名無しさん
2011/11/04(金) 20:28:31.400435デフォルトの名無しさん
2011/11/04(金) 21:02:54.98C言語だと'A'だけで1byteでしょ?
0436デフォルトの名無しさん
2011/11/04(金) 21:41:06.87どんなアホだよwww
0437デフォルトの名無しさん
2011/11/04(金) 21:59:40.35教授と教授の違いなんてググれよksg。いつまでもスレチなことやってんじゃねぇ。
0438デフォルトの名無しさん
2011/11/04(金) 23:05:17.640439デフォルトの名無しさん
2011/11/04(金) 23:08:02.67もっと、堂々と「ご教授」を使おう!
0440デフォルトの名無しさん
2011/11/04(金) 23:13:03.730441デフォルトの名無しさん
2011/11/05(土) 00:31:36.97恥ずかしい奴だ
0442デフォルトの名無しさん
2011/11/05(土) 01:10:27.510443デフォルトの名無しさん
2011/11/05(土) 03:46:02.150444デフォルトの名無しさん
2011/11/05(土) 03:53:12.330445デフォルトの名無しさん
2011/11/05(土) 03:56:59.96{
int x,y;
public my(int a,int b)
{
x=a;
y=b;
}
public int compareTo(my arg0) {
if(x==arg0.x)
return y-arg0.y;
return x-arg0.x;
}
}
これが何をやってるクラスかどなたか教えていただけないでしょうか…
0446デフォルトの名無しさん
2011/11/05(土) 07:08:54.73そのコードを見て分かるのは、せいぜいこの位。
・ 2つの int 値 x, y をプロパティとして持つ
・ そのクラスの大小比較に当たっては、y の大小よりも、x の大小の方が優先される
そうではなくて、「Comparableって?」とか「implementsって?」とか聞いてんだったら
人に聞く以前の問題だから、ggrk(ry
0447446
2011/11/05(土) 07:40:54.75例えば、3年x組 出席番号y番の生徒を
new my(x, y);
で表す事にし、
ymd = new my(3, 5); // 3組5番の山田さん
tnk = new my(1, 5); // 1組5番の田中さん
szk = new my(1, 8); // 1組8番の鈴木さん
の三人から、生徒名簿に最も早く出現する人を探すとき、
tnk.compareTo(ymd) < 0、かつ、tnk.compareTo(szk) < 0
つまり、「田中<山田」、かつ、「田中<鈴木」だから、答えは田中さんだ!
・・・みたいに使う。
0448デフォルトの名無しさん
2011/11/05(土) 08:05:36.600449デフォルトの名無しさん
2011/11/05(土) 08:33:27.77my[]p = new my[n];
for(int i = 0 ; i < n ; i ++)
{
nm = in.readLine().split(" ");
int x1 = Integer.parseInt(nm[0]);
int y1 = Integer.parseInt(nm[1]);
p[i] = new my(x1,y1);
}
Arrays.sort(p);
それをこんな風につかっているのですがpの中がどどう動いてるか
解説おねがいします。
0450デフォルトの名無しさん
2011/11/05(土) 09:10:46.02どうでもいいけど、斬新な命名規則だな。。。
自分は書き捨てコードでもMyFrameとかMyClassとかにしてるのに。。。
個人の自由だから別に良いけど
0451デフォルトの名無しさん
2011/11/05(土) 09:42:54.910452446
2011/11/05(土) 10:22:32.84n = 3 だとして、山田さん、田中さん、鈴木さんの順に入力すると、
順に p の先頭から埋まっていく。
3人入力し終わったところで、何とびっくり!!
名簿の出現順(田中,鈴木,山田)に並び替わる。
並び替えは Arrays#sort() が、my#compareTo() の結果を元に行っている。
具体的にどうやって並び替えてるの?って質問は、
もうすこしおおきくなってからにしようね。
>>450
おいおい、おれは >445 に合わせてるだけなんだぜ?
0453デフォルトの名無しさん
2011/11/05(土) 10:34:51.520454デフォルトの名無しさん
2011/11/05(土) 11:00:57.330455デフォルトの名無しさん
2011/11/05(土) 12:06:36.96Solr では使わないでとか言ってた奴。
0456デフォルトの名無しさん
2011/11/06(日) 00:32:56.34回転+移動や,移動+スケール変更など,2つ以上の動きを同時にさせるにはどうすればいいでしょうか?
2つの動きをシーングラフに追加したり,
TransformGroupを個別に用意したりしても,
片方が優先されてしまいます.
0457デフォルトの名無しさん
2011/11/06(日) 01:26:48.68言ってた奴だね。
0458デフォルトの名無しさん
2011/11/06(日) 02:35:13.67親切にありがとうございます。
なぜyよりxの大小が優先されるのですか?
0459デフォルトの名無しさん
2011/11/06(日) 02:42:06.010460デフォルトの名無しさん
2011/11/06(日) 08:30:45.770461デフォルトの名無しさん
2011/11/06(日) 08:53:13.110462デフォルトの名無しさん
2011/11/06(日) 09:27:00.31Transform3D 同士でをかけ算すればいいんじゃないかな
0463デフォルトの名無しさん
2011/11/06(日) 10:49:24.850464デフォルトの名無しさん
2011/11/06(日) 11:26:13.250465デフォルトの名無しさん
2011/11/06(日) 12:05:28.690466デフォルトの名無しさん
2011/11/06(日) 17:16:38.61Transform3Dによる回転や移動を,Interpolatorクラスでアニメーション表示させることは可能なのでしょうか?
0467デフォルトの名無しさん
2011/11/06(日) 17:18:35.040468デフォルトの名無しさん
2011/11/06(日) 17:41:19.870469デフォルトの名無しさん
2011/11/06(日) 18:13:18.97InputStreamのjavadoc読んだ?
0470デフォルトの名無しさん
2011/11/06(日) 19:15:42.990471デフォルトの名無しさん
2011/11/06(日) 19:17:36.210472デフォルトの名無しさん
2011/11/06(日) 19:39:10.340473デフォルトの名無しさん
2011/11/06(日) 19:41:51.69mark(int) reset() ぐらいしか。
素直にもう一回開きなおすか、
どこかに貯めておいてそっちから読み込む方が楽っちゃ楽。
0474デフォルトの名無しさん
2011/11/07(月) 12:49:34.25タスクマネージャで1コアしか負荷が発生していない
なんでだろう?
各スレッド開始時にprintln()してるから複数スレッド走ってるのは間違い無いし
処理内容は全部一緒なんだけど
0475デフォルトの名無しさん
2011/11/07(月) 13:18:41.57IOが時間喰ってないか?
もっとスレッド数を増やしたらどうなる?
0476474
2011/11/07(月) 13:49:44.23IOはあるが1コアに負荷が集中する理由にはならない
スレッド数は4コア8スレッドのマシンで8スレッド作ってるからこれ以上増やす意味は無さそう
JVMオプションに使用可能なコア数を指定できたりしないかと思って検索してみたけど見当たらず
たぶん、何スレッドあっても1コアで処理するような設定になってしまってる。どこかで。
0477デフォルトの名無しさん
2011/11/07(月) 14:01:45.540478474
2011/11/07(月) 14:11:30.25と
t.start()
の違いがわかってなかった!
0479デフォルトの名無しさん
2011/11/07(月) 14:14:36.870480デフォルトの名無しさん
2011/11/07(月) 14:24:16.44何読んだか覚えているんならPushbackInputStream使え。
0481デフォルトの名無しさん
2011/11/07(月) 14:55:42.330482474
2011/11/07(月) 20:50:14.020483デフォルトの名無しさん
2011/11/08(火) 00:01:20.970484デフォルトの名無しさん
2011/11/08(火) 00:21:13.460485デフォルトの名無しさん
2011/11/08(火) 08:57:53.25テーブルには各種制約(not null, unique, referenceなど)があるのですが、
Java上にこれらの制約を持ち込むのはマズいのでしょうか。
特にそういうのを気にせずにSQL投げてSQLExceptionが発生したら対処するパターンはよく見るのですが。
制約を持ち込んだ場合の利点としてはアプリ側で更新できないものを前もって判別できる、
欠点は制約内容の確認のために1回以上のSELECTが発生する、DBの制約を変更するたびにJavaソースも変更されるところかなと考えてます。
0486デフォルトの名無しさん
2011/11/08(火) 11:27:54.400487デフォルトの名無しさん
2011/11/08(火) 11:36:00.41>Java上にこれらの制約を持ち込むのはマズいのでしょうか。
この、「Java上にこれらの制約を持ち込む」というのが、
Java上でどういったことをすることを意味しているのかがわからないんだが。
0488デフォルトの名無しさん
2011/11/08(火) 12:25:58.49でもエラー検出したとこでなにかできるわけじゃないしな。
0489デフォルトの名無しさん
2011/11/08(火) 12:41:40.24違う場所(スキーマとJavaのソース)に二つ書くことになるから、
色々問題が生じる。
典型的には制約を変更を加えた場合、
両方を書き換えなければならなくなる。
SQLException で処理していれば、スキーマだけ書き換えれば済む。
(もちろん、いずれにしても結合テストは、変更、再実行が必要になる)
0490デフォルトの名無しさん
2011/11/08(火) 13:09:00.94DBで制約として定義されている内容をJava側でもチェックする感じです。
制約が原因となるSQLの例外が出ない状態までvalidateする実装になると思います。
O/R マッパーなどでテーブル間の関係(1:nとか)をJavaに持ち込むのはよく見ますが
制約についてはみないなと思ったのが質問のきっかけです。
0491デフォルトの名無しさん
2011/11/08(火) 14:28:35.07ORマッパは、DBのテーブルの関係を Java に「持ち込む」というより、
むしろ、「持ち込まない」ためのツールだと思うけどな。
データ保持の都合で設計されたデータベースのテーブルと、
Java の処理の都合で設計された Java のクラスを、
それぞれにとって都合の悪いことを
(なるべく)「持ち込まずに」対応づけられるようにするのが、
ORマッパの目的でしょ。
0492デフォルトの名無しさん
2011/11/08(火) 14:32:29.32生SQLが良い
0493デフォルトの名無しさん
2011/11/08(火) 15:10:13.760494デフォルトの名無しさん
2011/11/08(火) 20:23:08.68ありがとうございます。
やはり制約を持ち込むのはNGですね。
491さんの「持ち込まない」という説明がとてもしっくりきました。
お忙しいところレスいただきありがとうございました。
0495デフォルトの名無しさん
2011/11/08(火) 21:51:03.58いま jdk-7u1-windows-i586.exe をDLしてきました。
使っているのはWindow XPです。
いまJavaのアプリケーションは動いています。
プログラムの追加と削除のところに
J2SE Runtime Environmenr 5.0 Update 10
J2SE Runtime Environmenr 5.0 Update 6
Java 2 Runtime Environmenr SE v1.4.2_12
Java(TM) 6 Update 23
というのがあります。
それでjdk-7u1-windows-i586.exeをインストールする前に
上記の4つを削除する必要がありますか?
削除した場合、jdk-7u1-windows-i586.exeをインストールすれば
前と同じように今使っているJavaのアプリケーションは動きますか?
0496デフォルトの名無しさん
2011/11/08(火) 22:22:12.85既知のセキュリティホール放置する事になるので削除を推奨する。
今までのアプリはたぶん動くけど、
特定バージョンに依存してる可能性もあるので絶対じゃない。
0497デフォルトの名無しさん
2011/11/08(火) 22:40:55.97win95,win98は2005年頃に消滅したから10年しかもたなかってけど、xpはまだ5年はもつつまりjdk8でもサポートするんだろうね。
ubuntuは日本語も完全に整備されてるしideもあるから既にubuntu環境に移行したからwindows platなんてどうでもいいけど。
0498デフォルトの名無しさん
2011/11/08(火) 23:51:14.500499デフォルトの名無しさん
2011/11/09(水) 03:34:40.12Android環境入れたいのかもしれないし
0500デフォルトの名無しさん
2011/11/09(水) 10:00:24.860501デフォルトの名無しさん
2011/11/09(水) 14:17:50.220502デフォルトの名無しさん
2011/11/09(水) 15:08:39.86なんでinterfaceのメソッドをstaticなメソッドで実装できないんですか?
ユーティリティークラスみたいなものを外部から与えてもらいたい時にどうしたらいいですか?
staticなメソッドを宣言したinterfaceが書ければ実装は外部から渡してもらうという事が出来ます。
0503デフォルトの名無しさん
2011/11/09(水) 15:18:14.070504デフォルトの名無しさん
2011/11/09(水) 15:18:25.48ヒント:インターフェースは実装するためのもの
0505デフォルトの名無しさん
2011/11/09(水) 15:37:39.29例えばそれができたとして、
public interface InterfaceA {
static void MethodA();
・・・
public class ClassA implements InterfaceA {
public static void MethodA() {
・・・
}
とかした場合、呼び出し元では、 MethodA() をどうやって呼び出すの?
0506502
2011/11/09(水) 15:55:37.29俺へのレスかな
public void proc(InterfaceA util){
util.MethodA();
}
public static void main(String args[]){
proc(new ClassA());
}
これでClassA.MethodA()が呼び出されれば良いと思う。
interfaceじゃなく継承とオーバーライドで同じ事を試すと、
継承元のメソッドしか呼ばれない。(メソッドシグネチャに書かれた型が呼ばれて、渡されたオブジェクトの型は関係しなくなる)
0507デフォルトの名無しさん
2011/11/09(水) 16:04:24.42その使い方なら、メソッドが static 呼び出しである必要はなんかあるの?
インスタンス作らなきゃならないなら、
通常のメソッドでも何も変わらんと思うけど。
0508502
2011/11/09(水) 16:08:34.83他のプロジェクトで使われてるstaticなユーティリティークラスを受け取って
その機能を使うにはどうしたらいいか
複数種類あって、実装は外部のプロジェクト任せでinterfaceしか分からないという場合
俺の結論としては、staticクラスをラップしたクラスを作るって事になった。
0509デフォルトの名無しさん
2011/11/09(水) 16:16:39.86実装先でstaticメソッド宣言してもinterfaceのstaticメソッドを隠蔽するだけで上書きできんよ?
0510デフォルトの名無しさん
2011/11/09(水) 16:17:59.170511デフォルトの名無しさん
2011/11/09(水) 16:36:21.40「〜という場合」、というけど、今の Java の仕様では、そもそも、
そういう場合というのがありえないわけだから、対応する必要もないのでは?
「やりたいこと」と「解決すべき問題をかかえた現状」をごっちゃに語ってないかい?
0512502
2011/11/09(水) 16:43:09.87なぜJavaがこういう仕様になっているかの説明を聞いて、他の実装方法を思いつければと思っていた。
でも結局、staticなユーティリティークラスを使っているのは、
主にインライン展開を期待したパフォーマンス上の理由なので
staticクラスのままで、必要な時だけラッパーを使うという形が妥当だと思った。
俺がこの件に関して持った認識はそれだけ
0513デフォルトの名無しさん
2011/11/09(水) 16:48:53.060514デフォルトの名無しさん
2011/11/09(水) 16:55:47.21(というか、staticメソッドを特別扱いしない)
javacはstaticメソッドだからといってインライン展開したりしない。
0515デフォルトの名無しさん
2011/11/09(水) 17:04:22.53→ジャヴァの interface を使ってみよう!! という発想?
0516デフォルトの名無しさん
2011/11/09(水) 17:06:15.25>なぜJavaがこういう仕様になっているかの説明を聞いて、他の実装方法を思いつければと思っていた。
いや、だから、なぜ、「他の実装方法を思いつ」く必要があったの?
自分の認識では、 単に Interface に static メソッドを定義できるようにしても、
それに整合するように他の部分の仕様を変えていくと、
>>506
のようになってしまい、最終的に satatic ではないメソッドとの相違点がなくなってしまうから
実装以前に言語仕様的に無意味だとしか思えない。
(だからそのような仕様になっていないのは当然と思える)
0518デフォルトの名無しさん
2011/11/09(水) 17:30:42.450519デフォルトの名無しさん
2011/11/09(水) 17:53:52.68@Before
public void setUp()
{
obj = new MyObject();
obj.setWhatImReading( new Book( "Java 2 From Scratch" ) );
}
こんなふうに@Beforeとか@TESTみたいに@の付いコードの意味はなんでしょうか?
0520デフォルトの名無しさん
2011/11/09(水) 17:56:52.50アノテーション
身も蓋もない言い方をすれば、リフレクションするときの目印
0521デフォルトの名無しさん
2011/11/09(水) 17:57:03.810522デフォルトの名無しさん
2011/11/09(水) 18:29:48.94ダウンロードできるやつ
7はありませんよね?
0523デフォルトの名無しさん
2011/11/09(水) 18:37:31.01http://hibari.2ch.net/test/read.cgi/tech/1312958339/44
0524デフォルトの名無しさん
2011/11/09(水) 19:14:10.45勉強になります
どうもありがとうございます
0525デフォルトの名無しさん
2011/11/09(水) 20:44:07.40public void setLocationCells(ArrayList<String> loc) {
locationCells = loc;
}
本来だと一行目はArrayList<String> locationCells = new ArrayList<String>();だと思うのですが、
newされずに使われてるのはどうしてなんでしょう?
0526デフォルトの名無しさん
2011/11/09(水) 21:02:20.270527デフォルトの名無しさん
2011/11/09(水) 21:03:52.34new された ArrayList<String> のオブジェクトを、
locationCells にセットするためのメソッドだから。
0528デフォルトの名無しさん
2011/11/09(水) 22:27:46.73現在はorder,agent,reporterといった3つのスレッドで処理してます
order thread
・DBより作業要求を取得
・スレッドプールでagent threadを動かす
agent thread
・要求を受けて処理実施
・結果をreporterに渡すためにConcurrentLinkedQueueにpush
reporter thread
・ConcurrentLinkedQueueよりpoll
・DBに結果を保存
0529デフォルトの名無しさん
2011/11/09(水) 22:43:32.22のはないな。あれこれやりすぎ。
0530デフォルトの名無しさん
2011/11/09(水) 22:45:27.04で、orderという命名はないな
0531デフォルトの名無しさん
2011/11/09(水) 22:46:24.09動かしてみないと何ともいえないが。ボトルネックにはならんでしょ。
0532デフォルトの名無しさん
2011/11/09(水) 22:55:05.69要求が Web から来るとかなら分かるんだけど、
DBにプールされてるなら、逐次処理してもかまわなさそうな気がするけど。
0533デフォルトの名無しさん
2011/11/09(水) 23:41:37.96(DBからタスクを取得してagentへ渡す)
当初これを別のシステムで作っていたのだが
・同時かつ大量に処理させたい
・agentで実行される処理時間が異なる(数秒から数十分)
・決められた時間内で終わらせる
という理由がありましたのでこれを作りました
reporterはorderと統合もできたのですが、
役割を明確にするためにも分離しました
コードを書いたのが2年以上前で同様の処理をさせたい案件が最近出てきたので
もっといい案があればとご高説は承りたく質問いたしました
0534デフォルトの名無しさん
2011/11/09(水) 23:50:16.490535デフォルトの名無しさん
2011/11/09(水) 23:57:32.740536デフォルトの名無しさん
2011/11/10(木) 00:17:58.18命名センスが致命的に欠落してることはわかった。
司令だすからorderって、あんたそれじゃ全部のクラスがorderになるわ。
0537デフォルトの名無しさん
2011/11/10(木) 00:22:32.56って要約したくなるようなクラスに
> rder thread
って命名する時点でおわってるってことね。
どうせゴミみたいな設計なんだから、1日くらいかけて再設計・実装しなおせよ。
0538デフォルトの名無しさん
2011/11/10(木) 01:16:59.27全角の〜(から)や−(ハイフン)、NEC特殊文字などが?(ハテナ)になります
どうすれば文字化けさせずに文字コードを変換できますか?
0539デフォルトの名無しさん
2011/11/10(木) 01:18:25.730540デフォルトの名無しさん
2011/11/10(木) 01:22:43.44Javaのデフォルトの文字コードです
0541デフォルトの名無しさん
2011/11/10(木) 01:23:14.540542デフォルトの名無しさん
2011/11/10(木) 01:27:17.66とにかくそれをShift-JISにしないといけないのです
そうしないと出力したファイルをEXCELで開いたときに文字化けするのです
0543デフォルトの名無しさん
2011/11/10(木) 01:30:57.030544デフォルトの名無しさん
2011/11/10(木) 01:36:21.06ちょっと調べてみます
0545デフォルトの名無しさん
2011/11/10(木) 01:37:01.54確か「〜」「−」とかは文字化けしちゃうから
replaceで類似文字に変換するべきだったはず
0546デフォルトの名無しさん
2011/11/10(木) 02:33:00.15センスうんぬんは分かってます
だからこそ実装方法について質問しているのですが…
0547デフォルトの名無しさん
2011/11/10(木) 02:50:56.970548デフォルトの名無しさん
2011/11/10(木) 02:55:41.28言葉尻とらえるみたいだけど、
実装方法がダメなんじゃない。設計がなってないんだ。
もっというと、要件>>533の整理の仕方がなってない。必然的に伝え方もなってない。
> 決められた時間何に終わらせる
ってなーに?決められた時間が来たらどうすりゃいいのさ?これで伝わると思う方がどうかしてる。
0549デフォルトの名無しさん
2011/11/10(木) 03:09:22.30こんなのが理由なわきゃねえ、そりゃ手段だよ。あってるかどうかも怪しい浅知恵かもしれん。
とりあえず>>532に答えて、今のクラス構成の必然性を説明できるようにしないとね。
で、おそらくそれを試みると今の設計の贅肉が見えてくる。
0550デフォルトの名無しさん
2011/11/10(木) 03:29:52.08要件についてはまず申し訳ありませんでした
具体的に書くとまずい部分もあったので大分濁したの結果、分かり辛くなってしまいました
ちなみに大量というのは後に数千単位のオーダーを数分おきに実行する事が予想されるので
あらかじめそれを考慮した設計をしておきたかった為です
(数秒から数十分ってのは過去の実装時で、今回は1秒未満から長くとも10秒の予定)
決められた時間内に終わらせる
→短時間で繰り返し行わせる予定となっているからです
規定値を超えた場合は失敗したものとして終了報告させる予定です
このコード自体は昔のも趣味で作ったものなのですので、この方法を採用するかも未定なので
実装方法については再度検討します
また行き詰った際には質問をさせて頂くかもしれませんが、その時はよろしくお願いします
遅くまで質問に答えていただき、ありがとうございました
0551デフォルトの名無しさん
2011/11/10(木) 08:19:29.11windows-31jとかms932使えって話でなくて?
0552デフォルトの名無しさん
2011/11/10(木) 08:58:56.140553デフォルトの名無しさん
2011/11/10(木) 09:30:18.92いずれにしても並行処理させなきゃいけない理由がわからない。
その要件を見る限り、どうしても並行処理させる必要があるのは、
要求を受け付ける処理だけのはず(取りこぼしを防ぐため)。
一旦要求をDBに入れた後は、逐次取り出して処理し、
所定時間を経過した要求はエラーにする、という処理の仕方をしても、
複数のスレッドに処理を分配しても、1つのCPUで処理する限り、
単位時間内に処理できる要求の数はさして変わらないはず。
(マルチスレッドにした分、処理効率が少し下がる可能性も大きい)
もちろん、マルチコアや分散処理で処理効率を上げようとしているなら
話は別だけど、その場合は、構成の是非の判断材料は、
その処理効率を上げるための戦略やシステム構成であって、
それが示されてないとアドバイスのしようがない。
0554デフォルトの名無しさん
2011/11/10(木) 13:52:02.17一年間継承禁止、インターフェースだけ使う
0555デフォルトの名無しさん
2011/11/10(木) 16:04:20.54SJISではなくWindows-31Jにしたら文字化けがなくなりました。
次の課題としては、JavaMailに機種依存文字を使うのがあります。
UTF-8にすれば一発ですが、どうにかしてISO-2022にしたいです。
どうやればおkですか?
0556デフォルトの名無しさん
2011/11/10(木) 16:12:26.09ついつい戻り値があるのにvoidと勘違いして変数に代入するのを忘れてしまいます。
アノテーションの@Overrideを付けるとオーバーライドしなかったら警告を出してくれるみたいに、
変数に代入しなかったら警告を出すようにすることはできないでしょうか?
0557デフォルトの名無しさん
2011/11/10(木) 18:08:38.92戻り値を使わないこともある
0558デフォルトの名無しさん
2011/11/10(木) 18:17:36.75メソッド呼ぶんだろ?
その上で戻り値忘れてたってことは戻り値はその目的上要らなかったってことだろ?
じゃあ戻り値無視しても問題ないじゃないか
C言語のエラーコードじゃあるまいし
0559デフォルトの名無しさん
2011/11/10(木) 18:22:11.73補完候補出すタイミングでビジーになってそのままプロセス殺す
しかなくなるから保存してない変更はパーになる。
hotspotバグの影響があると顕著に出るな。
0560デフォルトの名無しさん
2011/11/10(木) 18:48:17.090561デフォルトの名無しさん
2011/11/10(木) 20:08:42.84逆引き悪魔合体表を作ろうかと思うんですが、
どのくらいの修練積めば、プログラミングできるようになりますか?
javaはまだ始めて5日です。
0562デフォルトの名無しさん
2011/11/10(木) 20:10:05.220563デフォルトの名無しさん
2011/11/10(木) 20:15:24.76値を計算するスタティックメソッドを作ってるだけであって、メソッドの本質なんて聞いてません。
無いならないでいいです。
0564デフォルトの名無しさん
2011/11/10(木) 21:21:12.63自前のアノテーション定義して、
Compiler Tree API使って
そのアノテーションがついたメソッドが
代入式の右側以外で使われてたら警告出すようにする、とか?
0565デフォルトの名無しさん
2011/11/10(木) 21:30:34.290566デフォルトの名無しさん
2011/11/10(木) 21:39:02.940567デフォルトの名無しさん
2011/11/10(木) 21:41:27.36・・・
int value;
・・・
calcValue();
・・・
print value;
あれ?value の値がおかしいぞ?
・・よく見たら、「value = calcValue();」とするはずが「calcValue();」って書いちゃってた、
「value = 」を忘れないためにはどうしたらいいんだろう?
みたいなことが言いたいのかな?
でもワーニングチェックすれば事足りるよな・・・。
0568デフォルトの名無しさん
2011/11/10(木) 22:10:00.28Math.cos(value);
System.out.println(value);
これで角度が求めれるはず…。
>3.14
あれ?みたいな?
0569デフォルトの名無しさん
2011/11/10(木) 22:18:21.520570デフォルトの名無しさん
2011/11/10(木) 22:36:29.040571デフォルトの名無しさん
2011/11/10(木) 22:44:19.360572デフォルトの名無しさん
2011/11/10(木) 22:49:54.970573デフォルトの名無しさん
2011/11/10(木) 23:13:57.68void keisan(int x) throws ReturnValue<Integer>
みたいな
0574デフォルトの名無しさん
2011/11/10(木) 23:38:18.26ついつい戻り値があるのに戻り値を代入した変数を使うのを忘れてしまいます。
アノテーションの@Overrideを付けるとオーバーライドしなかったら警告を出してくれるみたいに、
戻り値を代入した変数を使うのを忘れたら警告を出すようにすることはできないでしょうか?
0575デフォルトの名無しさん
2011/11/11(金) 00:44:28.22教えていただいたアノテーションで検出出来るようになりました。
そのアノテーションをつけ忘れてしまうことに気づきました。
「戻り値を代入した変数を使い忘れた場合に警告を出すアノテーション」をつけ忘れた時に警告を出すようにすることは出来ないでしょうか?
さらにその後のその後。。。
プログラムを書くのを忘れてしまうことに気づきました。
プログラムを書き忘れた時に警告を出すようにすることは出来ないでしょうか?
0576デフォルトの名無しさん
2011/11/11(金) 00:52:38.870577デフォルトの名無しさん
2011/11/11(金) 01:11:13.650578デフォルトの名無しさん
2011/11/11(金) 01:51:55.23自作のコーディングルールを追加することもできるので、
「戻り型が非voidなメソッドの戻り値は評価されなければならない」
ぐらいは自動検出できるはず。
0579デフォルトの名無しさん
2011/11/11(金) 02:37:25.94すごいことになりそうだね
0580デフォルトの名無しさん
2011/11/11(金) 05:37:12.730581デフォルトの名無しさん
2011/11/11(金) 08:18:12.310582デフォルトの名無しさん
2011/11/11(金) 08:50:24.575分で試せるようなことは、人に聞くよりやったほうが早いぞ。
0583デフォルトの名無しさん
2011/11/11(金) 09:00:53.39一度書いて試してからものを言え。
0584デフォルトの名無しさん
2011/11/11(金) 10:40:35.46どうも
0585デフォルトの名無しさん
2011/11/11(金) 11:01:18.37僕はゆとりで、Javaは覚えましたがC言語は覚えてません。
課題のプログラムのソースをC言語で出せとゆとりの僕に不可能な無茶ぶりをされました。
色々試しましたが折角、英語を訳したり、意味不明なソフトをたくさんインストールしたのに
拡張forをバンバンに使ってるのに古すぎて拡張forに対応していなかったりとか
マイナーなUnixオンリーでCygwinもMingwも使えなかったりとか
説明書通りにやっても全くファイルが出力されないとか誰得なソフトばかりです。
C言語と文法が似てて15年も歴史があるJavaですし、
まさかCへ翻訳という至極簡単な処理をするソフトが無いわけ無いですよね。
崇高寛大な知識人たる団塊の世代の皆々様のお力添えを承りたく存じます。(^_^)v
0586デフォルトの名無しさん
2011/11/11(金) 11:15:16.51手で書き換えたほうが早いよ。
無茶ぶりっていうけど、
>拡張forをバンバンに使ってるのに古すぎて拡張forに対応していなかったりとか
>マイナーなUnixオンリーでCygwinもMingwも使えなかったりとか
>C言語と文法が似てて15年も歴史があるJavaですし、
この程度の知識があれば、C知ってる人間に聞きながらやればなんとかなるはず。
0587デフォルトの名無しさん
2011/11/11(金) 12:05:36.550588デフォルトの名無しさん
2011/11/11(金) 16:31:58.961. Javaからphpを呼び出す
2. phpで出力した値をJavaが受け取る
今こんな感じです。必要な部分のみの抜粋です。GET_INFO_URLというのはphpのURLのことです。
Java :
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(GET_INFO_URL);
List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(1);
nameValuePair.add(new BasicNameValuePair("order", null));
try {
___httppost.setEntity(new UrlEncodedFormEntity(nameValuePair,HTTP.UTF_8));
___HttpResponse response = httpclient.execute(httppost);
___ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
___response.getEntity().writeTo(byteArrayOutputStream);
___if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
______// (A)ここで値を受け取る予定
___}
} catch (Exception e) {
___System.err.println(tag, e.toString());
}
php:
<?php
___$order = $_REQUEST["order"];
___// (B)ここで値を送る予定
?>
(B)でデータを送信、(A)で受け取る、という構造です。
phpを呼び出すところまではうまくいっているようです。
Javaのクラスをphpから呼び出すのはぐぐったらいっぱい出てくるのですが、逆は少なくて…よろしくお願いします。
0589デフォルトの名無しさん
2011/11/11(金) 16:50:55.41なにをよろしくお願いされてるのか知れない
0590デフォルトの名無しさん
2011/11/11(金) 16:52:48.200591デフォルトの名無しさん
2011/11/11(金) 16:53:15.79確かにそうですね(´・ω・`)すみません
0592デフォルトの名無しさん
2011/11/11(金) 17:05:21.160593デフォルトの名無しさん
2011/11/11(金) 17:09:04.790594デフォルトの名無しさん
2011/11/11(金) 17:13:41.20やっぱりそうなりますよね…。
C言語はだいたいはわかってますが課題のプログラムって言っても数千行くらいあるので
ポチっと一発でCに翻訳されないかなと思ったんですが…。
Janusは拡張for以外はほぼ翻訳できてそうだから
そういうプログラムあっても良いのにって思うんですが。
うーん、とりあえず拡張forを外してJanus使ってから考えてみます。
>>587
こういう流れかなと思いまして。
0595デフォルトの名無しさん
2011/11/11(金) 17:37:05.57phpのheader関数でヘッダーを作り、javaのgetHeaderでそれをgetするということですよね?
なるほどそれならできそうです。
>>593
確かにxmlとjavaの連携の方が簡単そうですね。その発想はありませんでした。
実装できそうな気がしてきました。ありがとうございました!
0596デフォルトの名無しさん
2011/11/12(土) 12:26:41.51なにかいいライブラリとかありますか?
0597デフォルトの名無しさん
2011/11/12(土) 13:30:11.290598デフォルトの名無しさん
2011/11/12(土) 20:40:18.88CookieHandler.setDefault(this.cookieManager);
でCookieの処理をCookieHandlerに任せてるんだけど
HttpURLConnectionが実際にサーバに送ってるクッキーを
Javaプログラムの中で確認するにはどーしたらいい?
0599デフォルトの名無しさん
2011/11/12(土) 21:45:04.95いやCookieStoreのラッパの方がいいか
0600デフォルトの名無しさん
2011/11/12(土) 21:56:06.89例外は継承できると思うのですが、継承クラスを作る理由は何ですか?
0601デフォルトの名無しさん
2011/11/12(土) 21:57:17.88リンク踏むのめんどいから引用して要約しろ
0602デフォルトの名無しさん
2011/11/12(土) 22:07:18.97要約しろって
0603デフォルトの名無しさん
2011/11/12(土) 22:09:36.19すいません・・・
class ExceptionClass extends RuntimeException {
public ExceptionClass(String message) {
super(message);
}
}
この部分ですかね・・
0604デフォルトの名無しさん
2011/11/12(土) 22:12:38.85継承した例外クラスで付け加えるメソッドって例えばどんなものがあります?
基本的にエラーメッセージを表示させるくらいしか思いつかないのですが。
0605デフォルトの名無しさん
2011/11/12(土) 22:28:58.360606デフォルトの名無しさん
2011/11/12(土) 22:30:00.34String str1 = "x x1 x2 x3 x4"
System.out.println(str1.replaceAll("\\?x[^.]", "Y"));
str1があったときに、xの文字だけを置換して
"Y x1 x2 x3 x4"
としたいのですが(x1などは置換しないようにしたい)、
該当する箇所を正規表現で指定できますか?
0607デフォルトの名無しさん
2011/11/12(土) 22:32:38.200608デフォルトの名無しさん
2011/11/12(土) 22:39:02.00public class ウンコ漏らしたException extends Exception {}
public void 排便() {
if(紙がない) {
throws new 紙がないException()
}
if(ウンコ漏らした) {
throws new ウンコ漏らしたException()
}
・・・・
}
public static void main(String[] args) {
try {
排便()
} catch (紙がないException()) {
手で拭く
}
}
0609606
2011/11/12(土) 22:46:45.00回答ありがとうございます。上記例は達成することができました。
str1 = "!x !x2 !x3 !x";
System.out.println(str1.replaceAll("\\b\\!x\\b", "Y"));
!xを置換して"Y !x2 !x3 Y"としたいのですが、これは可能ですか?
0610デフォルトの名無しさん
2011/11/12(土) 22:49:00.88自己解決しました
replaceAll("\\!\\bx\\b", "Y"));
としてできました。
0611デフォルトの名無しさん
2011/11/12(土) 22:53:55.78public class 紙がないException extends Exception {} ←{}内は何もないのは
何故ですか?
0612デフォルトの名無しさん
2011/11/12(土) 22:54:43.23引用にやる気がなさすぎて、回答者がやる気なくしたぞ
どうしてくれるんだ。
>>608なんかもコンパイルエラー出る位やる気なくなってるぞ
0613デフォルトの名無しさん
2011/11/12(土) 22:56:10.62必要ないからだろ。
あと少なくともこの辺は熟読してこい。
java.sun.com/javase/ja/6/docs/ja/api/java/lang/Throwable.html
0614デフォルトの名無しさん
2011/11/12(土) 23:01:32.14チェック例外だけキャッチしたいときはどうしたいいの
0615デフォルトの名無しさん
2011/11/12(土) 23:06:23.64//処理
}catch(Exception e) {
if(e instanceof RuntimeException) throw (RuntimeException)e;
//例外処理
}
0616デフォルトの名無しさん
2011/11/12(土) 23:17:00.13その必要が出るのは、おかしなコード書いてるんだと思った方がいい。
0617デフォルトの名無しさん
2011/11/12(土) 23:22:16.63replaceAll("x(?![0-9])", "Y")
ってのもいいかもね。
0618デフォルトの名無しさん
2011/11/12(土) 23:50:38.33チェック例外をまとめてキャッチしたいけど
非チェック例外はキャッチしたらまずいとかない?
0619デフォルトの名無しさん
2011/11/12(土) 23:53:38.550620デフォルトの名無しさん
2011/11/13(日) 00:01:08.52それをキャッチして何事もなかったかのように処理続けたらまずいだろう
0621デフォルトの名無しさん
2011/11/13(日) 00:03:56.590622デフォルトの名無しさん
2011/11/13(日) 00:06:25.65想定内の例外とやらを専用の例外クラス(またはそのサブクラス)にするんでねーの?
0623デフォルトの名無しさん
2011/11/13(日) 00:07:34.18これはアホっぽい意見だな。自分の無知さを呪った方がいい
0624デフォルトの名無しさん
2011/11/13(日) 00:16:46.630625デフォルトの名無しさん
2011/11/13(日) 00:19:52.99やっぱり「い」がないだけでも落ち着かないですよねw
0626デフォルトの名無しさん
2011/11/13(日) 00:20:52.350627デフォルトの名無しさん
2011/11/13(日) 00:30:37.35想定外のぬるぽが起きたときはキャッチして握りつぶすべきでないといってるんだけどね
で、↓みたいに何個も同じ例外処理を書きたくないから
Exceptionで一括キャッチしたいけど、それだとぬるぽもキャッチしちゃうのが嫌ってこと。
public void run() {
try {
//処理
} catch(チェック例外1) {
//例外処理
} catch((チェック例外2) {
//例外処理
}
・・・・
catch(チェック例外N) {
//例外処理
}
}
0628デフォルトの名無しさん
2011/11/13(日) 00:34:24.34そんな時こそJava7のMulti-catchですよ!奥さん!
ってかドルフィンより前でも>>622で充分っしょ?
0629デフォルトの名無しさん
2011/11/13(日) 00:50:01.980630デフォルトの名無しさん
2011/11/13(日) 00:51:51.470631デフォルトの名無しさん
2011/11/13(日) 00:54:10.57どう言う意味ですか?
0632デフォルトの名無しさん
2011/11/13(日) 00:54:25.152chよみ();
} catch (疲れた例外 | 眠い例外 | … | 秋田例外 e) {
2ch荒らし();
}
0633デフォルトの名無しさん
2011/11/13(日) 00:59:24.13ArrayListのgetとかもnull返すよね
0634デフォルトの名無しさん
2011/11/13(日) 01:01:15.840635デフォルトの名無しさん
2011/11/13(日) 02:07:05.570636デフォルトの名無しさん
2011/11/13(日) 02:09:57.55>>624
0637デフォルトの名無しさん
2011/11/13(日) 02:19:03.980638デフォルトの名無しさん
2011/11/13(日) 02:20:10.41そもそも参照型の初期値nullだし
0639デフォルトの名無しさん
2011/11/13(日) 03:03:39.340640デフォルトの名無しさん
2011/11/13(日) 03:26:29.630641デフォルトの名無しさん
2011/11/13(日) 03:27:44.13import java.io.IOException;
import java.io.InputStream; import java.io.OutputStream;
import java.net.ServerSocket; import java.net.Socket; import java.net.SocketAddress;
public class tcpechoserver {
private static final int BUFSIZE = 32; // 受信バッファサイズ
public static void main(String[] args) throws IOException {
int servPort = 5000;
// サーバソケットの作成
ServerSocket servSock = new ServerSocket(servPort);
int recvMsgSize; // 受信メッセージサイズ
byte[] receiveBuf = new byte[BUFSIZE]; // 受信バッファ
// クライアントからの接続を待ち受けるループ
while (true) {
Socket clntSock = servSock.accept(); // クライアントの接続を取得
SocketAddress clientAddress = clntSock.getRemoteSocketAddress();
System.out.println("接続中:" + clientAddress);
InputStream in = clntSock.getInputStream();
OutputStream out = clntSock.getOutputStream();
while ((recvMsgSize = in.read(receiveBuf)) != -1) {
out.write(receiveBuf, 0, recvMsgSize);
}
clntSock.close();
}
}
}
0642デフォルトの名無しさん
2011/11/13(日) 03:30:29.27はピントずれてる
0643デフォルトの名無しさん
2011/11/13(日) 07:08:02.970644デフォルトの名無しさん
2011/11/13(日) 08:59:39.670645デフォルトの名無しさん
2011/11/13(日) 09:01:18.24たぶんアッというまに直されるから
0646デフォルトの名無しさん
2011/11/13(日) 09:09:37.240647デフォルトの名無しさん
2011/11/13(日) 09:11:35.24だからListのgetだろ?
0648デフォルトの名無しさん
2011/11/13(日) 09:17:44.86物が無いことも必要
0649デフォルトの名無しさん
2011/11/13(日) 09:44:25.770650デフォルトの名無しさん
2011/11/13(日) 09:54:11.610651デフォルトの名無しさん
2011/11/13(日) 10:04:35.100652デフォルトの名無しさん
2011/11/13(日) 10:13:45.21無いを表現するためにListにnullいれるとか斜めすぎる
仮にそれを使うなら小汚いコードになるのが必至。
そんなことしない。
0653デフォルトの名無しさん
2011/11/13(日) 10:14:22.070654デフォルトの名無しさん
2011/11/13(日) 10:21:29.98代替案を示さない反対はただの愚痴。
0655デフォルトの名無しさん
2011/11/13(日) 10:29:54.560656デフォルトの名無しさん
2011/11/13(日) 10:30:56.69がっだ。
0657デフォルトの名無しさん
2011/11/13(日) 10:46:38.45おまえのレベルがわかったからもういいや
0658デフォルトの名無しさん
2011/11/13(日) 12:04:22.07Map#containsKey
>>654と>>657は本気でわかってないっぽい。
釣れるからもう少し様子見してみるか
0659デフォルトの名無しさん
2011/11/13(日) 12:07:35.63null撤廃を一度くらい試みる価値はあると思う、自分の技術力を試す意味でね。
少なくとも、何もわかってない奴がnull判定の汚いコードをまきちらすような
そんな醜態を晒すことがない
0660デフォルトの名無しさん
2011/11/13(日) 12:32:34.050661デフォルトの名無しさん
2011/11/13(日) 12:37:03.83つまりぬるぽだな。
0662デフォルトの名無しさん
2011/11/13(日) 12:58:55.880663デフォルトの名無しさん
2011/11/13(日) 13:11:40.75と、釣ってみる
0664デフォルトの名無しさん
2011/11/13(日) 14:12:28.300665デフォルトの名無しさん
2011/11/13(日) 14:14:49.260666デフォルトの名無しさん
2011/11/13(日) 14:15:37.790667デフォルトの名無しさん
2011/11/13(日) 14:16:15.04>>624
0668デフォルトの名無しさん
2011/11/13(日) 18:39:15.43どのように勉強すればいいでしょうか?
また、オススメの参考書等を教えていただければ嬉しいです。
0669デフォルトの名無しさん
2011/11/13(日) 18:44:08.91100回位繰り返し読んで理解できないところは調べる
それが出来るころには君は立派になってる
0670デフォルトの名無しさん
2011/11/13(日) 18:44:39.09ぬるぽ。
0671デフォルトの名無しさん
2011/11/13(日) 18:48:34.180672デフォルトの名無しさん
2011/11/13(日) 18:50:25.050673デフォルトの名無しさん
2011/11/13(日) 18:50:45.94ひとつの言語しかできない奴はいない。つまりそういうことだ
どっちからでも好きな方選べばいいよ
0674デフォルトの名無しさん
2011/11/13(日) 18:53:52.18> 「基本情報技術者」に受かるために、今からjava言語を
というような
一見近道目指してるつもりの遠回りはやめた方がいいかもね。
試験に受かるために特化すればするほど、現実では使いものにならない方向に偏ることになるから。
普通にJavaを習熟すればあの試験落ちようがないし。
まっとうに使えるようになりなさいな。
0675デフォルトの名無しさん
2011/11/13(日) 19:01:14.63練習でサンプルを打ち込んだんですが、サンプルにはそれを指定する記述がないようです。
import java.awt.*;
import java.awt.event.*;
class BkWin extends Frame implements ActionListener {
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// TEXT Area
setLayout(new FlowLayout());
TextArea b1 = new TextArea("Hello World!!", 30, 60);
add(b1);
show();
(以下省略)
0676デフォルトの名無しさん
2011/11/13(日) 19:05:45.28丁寧な返レスありがとうございます!
java言語を頑張りたいと思います。
0677675
2011/11/13(日) 19:13:05.670678デフォルトの名無しさん
2011/11/14(月) 07:06:01.340679デフォルトの名無しさん
2011/11/14(月) 11:30:29.30List型のオブジェクトを取得するメソッドなんですけど、
public List<TGoods> getGoodsAll() {
List<TGoods> goods = (List<TGoods>)getHibernateTemplate().find("from TGoods");
return goods;
}
eclipse ver3.6.2で、「Type safety: Unchecked cast from List to List<TGoods>」
というwarningが出てしまいます。
@SuppressWarnings("unchecked")を記述すれば、warningを消せるのですが、メソッドすべてのwarningに影響が及ぶので
使いたくありません。
プログラミングで解決できる方法ありますか?
0680デフォルトの名無しさん
2011/11/14(月) 11:45:31.730681デフォルトの名無しさん
2011/11/14(月) 11:51:51.93ジェネリックを外すと、今度は「List is a raw type. References to generic type List<E> should be parameterized」
のwarningが出るので外せんのです。
0682デフォルトの名無しさん
2011/11/14(月) 12:58:53.610683デフォルトの名無しさん
2011/11/14(月) 15:13:06.41List<TGoods> です。
"TGoods"は普通のbeanでフィールドとアクセッサメソッドだけなんだけど、"String"型にしたとしても同じようにwarningが出るはず。
Spring frameworkを使った例なので分かりづらかったけど、JSPやサーブレットでsessionを使うと同様のwarningが出ます。
例えば、
Set<String> hoge = (Set<String>)session.getAttribute("hoge");
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ここで「Type safety: Unchecked cast from List to Set<String>」のwarning
0684デフォルトの名無しさん
2011/11/14(月) 15:24:42.73getHibernateTemplate().find("from TGoods")もObject型を返します。
0685679
2011/11/14(月) 15:38:01.66getHibernateTemplate().find("from TGoods")はObject型じゃなくて、List<TGoods>型を返します。
なので、キャスト不要だと思うのだけど、キャストしないと
「Type safety: The expression of type List needs unchecked conversion to conform to List<TGoods>」のwarning
が出て、(List<TGoods>)でキャストしろと怒られます。
で、キャストすると>>679のwarning。
やっぱりジェネリックスは鬼門だ。
0686デフォルトの名無しさん
2011/11/14(月) 15:56:23.43↑ジャネリクスってこっちも書かないとだめなん?
0687デフォルトの名無しさん
2011/11/14(月) 16:01:35.45「ArrayList is a raw type. References to generic type ArrayList<E> should be parameterized」
0688デフォルトの名無しさん
2011/11/14(月) 16:12:08.940689デフォルトの名無しさん
2011/11/14(月) 16:14:00.82import java.util.*;
class MyClass {
public static void main(String[] args) {
List<String> bar = (List<String>)Foo.getStr();
^^^^^^^^^^^^^^^^^^^^^^^^^^
for (String str : bar) {
System.out.print(str);
}
}
}
class Foo {
static Object getStr() {
List<String> list = new ArrayList<String>();
list.add("This ");
list.add("is ");
list.add("a ");
list.add("pen.");
return (Object)list;
}
}
^^^^部でワーニングが出ます。
Objectをキャストするとワーニングになるようです。
0690デフォルトの名無しさん
2011/11/14(月) 16:14:22.45<>も省略しても警告でないかは知らなんだけど
0691デフォルトの名無しさん
2011/11/14(月) 16:24:33.45このPCはJDK6だからかな?
7だと確かにその記述でいけるっぽい。
0692片山博文MZ
2011/11/14(月) 16:27:44.550693デフォルトの名無しさん
2011/11/14(月) 16:34:17.11楽勝。
0694デフォルトの名無しさん
2011/11/14(月) 16:42:21.570695679
2011/11/14(月) 17:23:03.21そこだけ。
JRE7をインストールして>>690みたいに、FooクラスのgetStr()メソッドを
List<String> list = new ArrayList<>();
書いたけどやっぱり
(List<String>)Foo.getStr();
の部分ワーニングが出ました。
0696679
2011/11/14(月) 17:24:23.25訂正
×JRE7をインストール
○JDK7をインストール
0697デフォルトの名無しさん
2011/11/14(月) 17:34:40.13引数を変えることで呼び出す処理を変えるには
(1)のようにswitch文で分岐する、(2)のように処理を実装したクラスを渡す
以外にどのような方法が考えられますか?
(1)
public void method(int arg, Object obj)
switch(arg){
case A:
//処理A
case B:
//処理B
・・・・
}
}
(2)
public void method(Proc proc, Object obj) {
proc.execute(obj)
・・・・
}
class ProcA implements Proc { ・・・・ }
class ProcB implements Proc { ・・・・ }
0698デフォルトの名無しさん
2011/11/14(月) 18:02:45.62返り値が単純なListであって、元からジェネリクス使われてないんじゃない?
List<?> goods = getHibernateTemplate().find("from TGoods");
とするととりあえずは警告防げるんじゃね
結局TGoodsのListでreturnするならキャストは必須だし
Unchecked castのwarningは必ず出る
キャストして警告が嫌ならeclipseの設定で
Java→コンパイラー→エラー/警告→総称型→未検査の総称型操作で
警告をするかしないか設定すればいい
それから>>689は単にFooクラスで返り値にジェネリクス使わずにObjectにしてるからでしょ
ちゃんと記述すれば警告出さずに済む
0699デフォルトの名無しさん
2011/11/14(月) 18:29:41.07それHibernateTemplate#find(String)じゃないの?
戻り値はListなんだけど
0700679
2011/11/14(月) 19:14:56.59確かにキャストは不要だと思うんだけど、キャストしないと>>685のように
「Type safety: The expression of type List needs unchecked conversion to conform to List<TGoods>」
のワーニングが出るんで仕方なく(List<TGoods>)でキャストしてる。
あと、>>689の
return (Object)list;
でオブジェクトでキャストしてるのは、サーブレットのsession.getAttribute()のようにObject型を返すメソッド
を作るためにわざとObjectでキャストしてます。(>>683参照)
感じとしては、コレクション+ジェネリックスでキャストをするとType safetyワーニングが出る。
0701デフォルトの名無しさん
2011/11/14(月) 19:43:03.35戻り値がListなのに自分が受け取る方List<TGoods> goodsで宣言してreturn (List<TGoods>)hogeしてるからだろ。
0702デフォルトの名無しさん
2011/11/14(月) 20:57:08.13{
super();
}
このsmallcerclassの存在価値ってなんですか?
良く分かりません・・
super();は何の役割を表しているのでしょうか?
0703デフォルトの名無しさん
2011/11/14(月) 21:21:17.12class A{
public static void main(String[]a)throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw=new PrintWriter(new BufferedWriter(new FileWriter("pom.txt")));
String str;
while((str=pw.readLine(br.readLine()))!=null){
if(str=="0")
System.exit(0);
pw.close();
}
}
}
コンパイルエラーになるのですが何故なんだぜですか?
ちなみにbr.readLine()は消して文字列にしても同じエラー(シンボルがみつからませんです!)
0704デフォルトの名無しさん
2011/11/14(月) 21:28:03.240705675
2011/11/14(月) 21:52:45.53−−−−−−−
| |
| |
| |
| |
| |
| |
| TextArea | [ボタン]
| | [ボタン]
| | [ボタン]
| |
−−−−−−−
ウィンドウ上にこんな感じで配置するにはどうしたらよいですか?
0706デフォルトの名無しさん
2011/11/14(月) 21:54:12.840707デフォルトの名無しさん
2011/11/14(月) 21:58:34.45コンパイルくらい通せクズが。質問する資格ねえわ
0708デフォルトの名無しさん
2011/11/14(月) 21:59:53.05あとWriter系のコンストラクタの連ね方がおかしすぎ。
そもそもいらねえクラスあるだろ。
0709デフォルトの名無しさん
2011/11/14(月) 22:00:19.850710デフォルトの名無しさん
2011/11/14(月) 22:03:15.31あきらめろ。
AWT使ってる奴なんか既に絶滅したから情報あつまらんよ。
0711デフォルトの名無しさん
2011/11/14(月) 22:08:48.45普通は
List<String> list = new ArrayList();
で済むのに、このケースのwarning出さないためだけに
コンストラクタ呼び出し時に書き方を↓に揃えるって
Bad Practiceじゃね?
List<String> list = new ArrayList<String>();
0712デフォルトの名無しさん
2011/11/14(月) 22:19:00.94AWTやSWINGって実務で使うのかな?
趣味の範疇かと思うんだけど。
>>705
のようなレイアウトはPanelを使えばできないこともない。
0713デフォルトの名無しさん
2011/11/14(月) 22:40:33.64おかしなこと言うな。
0714デフォルトの名無しさん
2011/11/14(月) 22:43:17.940715679
2011/11/14(月) 23:00:26.35仕方ないから、キャストするだけのメソッドを作成して、そこで@SuppressWarningsをつかってワーニングを抑制するようにしました。
みなさん、いろいろとありがとうございました。
0716デフォルトの名無しさん
2011/11/14(月) 23:03:18.390717デフォルトの名無しさん
2011/11/15(火) 00:58:46.14「解きながら学ぶJava入門編」の3章の錬成問題で
int a=1,b=3,c=5;
System.out.println("a=b=c:"+(a=b=c));
System.out.println("c=b=a:"+(c=b=a));
の実行結果がそれぞれ「5」となるとありました。
参考:
ttp://www.bohyoh.com/Books/TokinagaraJavaA/TKMJA03.pdf
実際に以下のように書いて実行すると、出力はどちらも「5」に
なりました。代入演算子=は右結合となるので、1つ目は「5」ですが
2つ目は「1」になりそうですが、実際は結果が違いました。
なぜこのような結果になるのか教えて頂けないでしょうか。
よろしくお願いします。
public class Test {
public static void main(String[] args) {
int a=1,b=3,c=5;
System.out.println("a=b=c:"+(a=b=c));
System.out.println("c=b=a:"+(c=b=a));
}
}
0718デフォルトの名無しさん
2011/11/15(火) 01:09:33.30List<T> checkedList = new ArrayList<T>(list.size());
for(Object o : list) { checkedList.add(clazz.cast(o)); }
return checkedList;
}
とか、どこかにありそうで見つからない。うんkでいいなら
@SuppressWarnings("unchecked")
List<TGoods> goods = getHibernateTemplate().find("from TGoods");
>>717
public static void main(String[] args) {
int a=1,b=3,c=5;
System.out.println("a=b=c:"+(a=b=c));
System.out.println(a);
System.out.println("c=b=a:"+(c=b=a));
}
0719デフォルトの名無しさん
2011/11/15(火) 02:14:16.74> それぞれ「5」となる
がミスリード。それぞれじゃないのにそれぞれと書くから混乱する。
本当にその言葉のまま書かれてるなら、その本はやめとけ。
0722デフォルトの名無しさん
2011/11/15(火) 02:56:32.66そのキャスト意味ないからList<?> goods = getHibernateTemplate().find("from TGoods");の方がましだと思うんだが。
0723デフォルトの名無しさん
2011/11/15(火) 03:02:25.31意味がないことにはならない
コード書けば意味がわかるぞ
0724デフォルトの名無しさん
2011/11/15(火) 03:40:06.660725デフォルトの名無しさん
2011/11/15(火) 10:27:00.940726デフォルトの名無しさん
2011/11/15(火) 11:02:31.64import java.awt.BorderLayout;
import javax.swing.*;
public class Sample {
public static void main(String[] args){
new Sample().go();
}
public void go(){
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 500);
Box buttonBox = new Box(BoxLayout.Y_AXIS);
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JTextArea textArea = new JTextArea(20,50);
JScrollPane scroller = new JScrollPane(textArea);
JButton btn1 = new JButton("button1");
JButton btn2 = new JButton("button2");
JButton btn3 = new JButton("button3");
buttonBox.add(btn1);
buttonBox.add(btn2);
buttonBox.add(btn3);
panel2.add(buttonBox);
panel1.add(scroller);
frame.add(panel2,BorderLayout.EAST);
frame.add(panel1,BorderLayout.CENTER);
frame.setVisible(true);
}
}
0727デフォルトの名無しさん
2011/11/15(火) 11:41:21.550728デフォルトの名無しさん
2011/11/16(水) 00:38:38.02/:::::::::::::::::::::::/:::::::;:::::::::::::::::::::::::::;---- 、 _::::::::::ヽ / / / おにいちゃーーん アルカを保守してーー
::::::/:::::::::::::::::::::≠、::/:/::::::::::::::::/⌒V⌒ヽ>ミュ:::::i .// / / ̄ ̄`\
::::'::::::::/::::::;;;::::(^_^)::'::::::::::::::::::∠ゝ¥人,-、ィ '' iY'}:::::i l// / ,.:::::、 _ ヽ
::::::::::/:::::/,-、ヽ::T:::::::::::::::::/:::::::::フ::::7::ーテ-ミメV|゙::::ll/ / i:::::::::'´::`i l
::::::::/::::::| ! ノ )|::::|\::::::/::::::::::/:::::/::::::/::::::/::Y:::::::/ l !:::::::::::::ノ l
::::::/:::::::::! i,{ヘ |::::| `'´_,`ー∠:::::/:::::;:イ::::::/ハ:/::::/ __,ム └''''゙゙´ 丿
::::/:::::::/:::ゝニ゙.|::::| ゙ヾミミ、、`゙ー-'∠;;;;/:/:ノ::::/ ヽ、____,/
::/::::::/:::::::::{|| >く = `` ==≡/!'゙゙フ'-ニー―‐--- ......,,,_
/::::::/:::::::::::|`~ー=ミL__  ̄ i> = !:ノ 'ー,-、  ̄ ̄`゙'ー--、
:::::::/:::::::::::::| `゙ー-、.丶 __,´ __ム'-‐ァ:::::::::`ヽ、 /
::::/i:::::::::::::::| `ー<^< ̄ /::::::::::::::::::::::::`ヽ、_ i
:/.i::::::::::::::::| \\ヽ /::::::::::::::::::::::::::::::::::::::/`゙TTー+┘
i:::::::::::::::::| ヽ`゙メ:::::::::::::::::::::::::::::::::::::::/ /::! ノ
0729デフォルトの名無しさん
2011/11/16(水) 00:47:26.160730デフォルトの名無しさん
2011/11/16(水) 14:04:01.640731デフォルトの名無しさん
2011/11/16(水) 17:56:17.180732デフォルトの名無しさん
2011/11/16(水) 19:11:19.03ファイルを取得するにはどうしたらよいでしょうか?
0733デフォルトの名無しさん
2011/11/16(水) 22:01:43.14java7入れたら抱き合わせで付いてきたけどAPIが微妙に変わってよくわからんかった。
0734デフォルトの名無しさん
2011/11/16(水) 22:37:30.23ですが、バッファへの描画が間に合っていないようで、画像の一部が欠けてしまいます。
ちなみに、以下のような雰囲気のコードを実行しています。
(実物をお見せできなくてすみません…)
Graphics2D gBuf; Image imgBuf;
private void Init(){imgBuf = createImage(400, 300); gBuf = (Graphics2D)imgBuf.getGraphics();}
private void outImage(int step){
try{ImageIO.write((BufferedImage)imgBuf, "PNG", new File("hoge_" + fileNum.format(step) + ".png"));
}catch(Exception e){System.exit(1);}
}
public void paint(Graphics g){
(gBufへの描画コマンド); g.drawImage(imgBuf, 0, 0, this);
}
public static void main(String[] args){
myClass w = new myClass();
w.Init(); w.repaint(); w.outImage(0);
for(int i = 1; i <= 100; i++){(アニメーション処理); w.repaint(); w.outImage(i);}
}
repaintとoutImageの間に適当な時間のSleepをかませるとPNG画像の欠けはなくなります。
imgBufの更新を待ってからPNG出力したい場合、どうするのが適切でしょうか?
0735デフォルトの名無しさん
2011/11/16(水) 23:09:40.210736デフォルトの名無しさん
2011/11/16(水) 23:16:41.05java使ってるのにswingも使わないんですか?
0737デフォルトの名無しさん
2011/11/17(木) 00:41:48.310738デフォルトの名無しさん
2011/11/17(木) 02:09:55.33正確にはJavaではないけど
0739デフォルトの名無しさん
2011/11/17(木) 02:38:56.300740734
2011/11/17(木) 08:00:19.47どの親クラスをextendsしているのかという
意味でしたら、親はFrameクラスです。
規模の小さいプログラムなので、Frameの
サブクラスをひとつ定義して、その中で
全ての計算、描画処理を行っています。
複数のスレッドを生成するような処理も
実装していません。
0741デフォルトの名無しさん
2011/11/17(木) 11:22:10.94じゃあ画像に書き込む処理が完了する前にpaintが呼ばれてるだけだと思う。
ゲーム画面のスナップショットじゃないからコンポーネントのpaintが呼ばれるたび画像の書き出しは
間違ってるような気がするのでスナップショットと書き出し要求をキューに突っ込んであとで暇な時
に別スレッドにでもやらせればいいと思う。
0742デフォルトの名無しさん
2011/11/17(木) 19:01:48.010743デフォルトの名無しさん
2011/11/17(木) 19:57:38.320744デフォルトの名無しさん
2011/11/17(木) 21:55:41.83ーーーーーーーーーーーーーーーーーーーーーーー
Calendar c1;
Calendar c3;
c1=Calendar.getInstance();
c1.set(2000,1,1);
c3=(Calendar)c1.clone();
c1.add(Calendar.YEAR,10);
PrintCalendar(c1);PrintCalendar(c3);
ーーーーーーーーーーーーーーーーーーーーーーー
上記のような実験したところc3はc1のインスタンスをディープコピー出来ていました。
が、http://www.syboos.jp/java/doc/object-clone-deep-copy.html など見ると
Java Object#clone()は単なるシャローコピー とあります。
でも試してみたらclone()を使ってもディープコピー出来ました。
これはどういうことなんですか?
0745デフォルトの名無しさん
2011/11/17(木) 21:58:34.85ディープコピーと同じ
0746デフォルトの名無しさん
2011/11/17(木) 22:04:07.22シャローコピーもディープコピーもそのインスタンス自身は複製されるよ
違うのはそれが参照してる他のオブジェクトも複製されるかどうか
0747デフォルトの名無しさん
2011/11/17(木) 22:06:40.10Calendarクラスでcloneをオーバーライドして
中で使ってるプリミティブの配列とかもnewして
forで回してディープコピーしてるから
0748デフォルトの名無しさん
2011/11/18(金) 00:22:48.00(しかもデスマの真っ最中に)色々ハマったのは
いまではいい思い出。
0749デフォルトの名無しさん
2011/11/18(金) 00:39:37.55仕様上シャローコピーだけどクラスによってコピーの意味が異なるから実装次第ってjavadocに書いてある。
その前にコピーの定義が書いてあるからそれ満たしとけばいい。
0750デフォルトの名無しさん
2011/11/18(金) 00:44:23.10ビューでCtrl+Space(Eclipse)きかないと思うけど
ものすごく不便じゃない?
スクリプト言語みたいに型を明示しないのってなんかメリットあるの?
0751デフォルトの名無しさん
2011/11/18(金) 01:07:16.24いかにJavaが冗長かわかるよ
0752デフォルトの名無しさん
2011/11/18(金) 01:18:07.260753750
2011/11/18(金) 01:27:45.38Groovyでテンプレート書こうと思ったらどうしたらいいかわからなかった。
いちいちクラス開いてメソッドシグネチャを確認しながら書くの?っていう
それとも何か良い方法があるの?
0754デフォルトの名無しさん
2011/11/18(金) 01:38:16.600755デフォルトの名無しさん
2011/11/18(金) 10:29:45.63Scalaなんかも思いっきりJavaのライブラリが足引っ張ってるし
0756デフォルトの名無しさん
2011/11/18(金) 10:33:26.29日本人ならjruby一択でしょ
0757デフォルトの名無しさん
2011/11/18(金) 13:04:19.30JavaのテンプレートエンジンはScalaになっていきそう
0758デフォルトの名無しさん
2011/11/18(金) 13:06:04.53ただの流行なだけでしょ
0759デフォルトの名無しさん
2011/11/18(金) 15:12:32.910760デフォルトの名無しさん
2011/11/18(金) 21:23:41.371回しか呼び出されません。
ScheduledExecutorService service = Executors.newScheduledThreadPool(1);
service.scheduleAtFixedRate(new Run(), 0, 500, TimeUnit.MILLISECONDS);
peliodの値をもっと小さくするとrunメソッドは何度も実行されます。
scheduleAtFixedRateメソッドでは、実際には指定した周期で実行されないのでしょうか?
0761デフォルトの名無しさん
2011/11/18(金) 23:35:16.270762デフォルトの名無しさん
2011/11/19(土) 16:16:47.51ByteBuffer buf;
bufに"unko"を格納
Letter.add(buf);
bufに"manko"を付け足し
System.out.println(Letter.get(0)デコード);
これでunkomankoが出力されるのだがおかしくね??
0763デフォルトの名無しさん
2011/11/19(土) 16:23:22.75HashMap<String, Integer> count;
を定義して
Integer old = count.get(str);
count.put(str, old == null ? 1 : old + 1);
こんな感じに書いてみたけど結構遅い。
他に良い方法ありますか?
0764デフォルトの名無しさん
2011/11/19(土) 16:37:12.01おかしくない。
0765デフォルトの名無しさん
2011/11/19(土) 16:39:49.59てめー、ウンコとマンコを一緒にすんじゃねーよ
0766デフォルトの名無しさん
2011/11/19(土) 16:43:26.44HashMapで遅いと感じるなら、ハッシュ化を自分でやるしか無い。
0767デフォルトの名無しさん
2011/11/19(土) 16:45:23.55Auto Boxingがいちいち動くのが気になる
0768デフォルトの名無しさん
2011/11/19(土) 16:46:46.00Letter.get()は元データ先を参照してるってこと?
0769デフォルトの名無しさん
2011/11/19(土) 16:51:55.92ArrayListがどうよりも、ByteBufferが変更可能オブジェクトかどうかの方が問題。
0770デフォルトの名無しさん
2011/11/19(土) 16:53:12.52プリミティブはコピー。その他は参照。
Javaの基本だよ。
0771デフォルトの名無しさん
2011/11/19(土) 17:00:18.13鋭いですね。
0772763
2011/11/19(土) 17:22:19.611 1 1
になりますが、Integerがオブジェクト型であるなら1 2 3になりそうですがなぜこうなるんでしょうか?
public class TestMap {
private static final HashMap<String, Integer> t = new HashMap<String, Integer>();
private static final String a = "a";
public static void main(String[] args) {
increment();
System.out.println(t.get(a));
increment();
System.out.println(t.get(a));
increment();
System.out.println(t.get(a));
increment();
}
private static final void increment() {
Integer r = t.get(a);
if (r == null) {
t.put(a, 1);
} else {
r++;
}
}
}
0773デフォルトの名無しさん
2011/11/19(土) 17:24:55.011以降のところでputしてないじゃん
0774デフォルトの名無しさん
2011/11/19(土) 17:26:50.830775デフォルトの名無しさん
2011/11/19(土) 17:45:05.94return new Integer(i+1);
}
Integerに対する++演算はこうなってると思えばいい。
0776デフォルトの名無しさん
2011/11/19(土) 17:45:29.01return new Integer(old+1);
0777デフォルトの名無しさん
2011/11/19(土) 17:49:28.22HashMapに入れてないってだけじゃないの?
0778デフォルトの名無しさん
2011/11/19(土) 17:51:56.99書き換えたつもりになってると思われる
0779デフォルトの名無しさん
2011/11/19(土) 18:15:48.33clone使えばimmutableと同じだし。
0780デフォルトの名無しさん
2011/11/19(土) 18:53:04.910781デフォルトの名無しさん
2011/11/19(土) 21:37:41.74こうなるよ。
> Integer.valueOf( i.intValue() + 1 );
0782デフォルトの名無しさん
2011/11/19(土) 23:50:24.780783デフォルトの名無しさん
2011/11/20(日) 01:47:17.65知り合いにjavaでゲーム作る本をもらって、それのガイドの通りに「JBuilder8personal」ってやつをインストールした
その後それを使うためのライセンスってやつを取らなきゃいけないみたいなんだけどそのページに繋がらない
どうすればいいんだろか、自分はプログラムとか全くの初心者なのでよくわからん
要点をまとめると
そもそもJBuilder8personalってのはまだ使えますか?
javaについて学べるわかりやすい参考書があれば教えてください
なんか意味わからん文章になっててすいません
0784デフォルトの名無しさん
2011/11/20(日) 02:18:36.8410年前のチラシみてパソコンを買う人でなければ、考え直した方がいい
0785デフォルトの名無しさん
2011/11/20(日) 02:22:53.31今は普通なのかね?
ちょっと信じられないんだな
0786デフォルトの名無しさん
2011/11/20(日) 02:35:12.55今さっきjavaをパソコンに入れたばかりの本当に右も左もわからん状態なんだ
amazonとかで調べてみたけどどれがいいかわからなかった
有名そうだしとりあえず独習って参考書の内容を一通り理解すればいいかな?
0787デフォルトの名無しさん
2011/11/20(日) 03:01:41.67とりあえず、そこら辺に落ちてるWebページを見ればいいんじゃまいか
0788デフォルトの名無しさん
2011/11/20(日) 04:24:37.66打ち込んでみました。ボタンを表示するサンプルにはJFrameを使用せずにgetContensPaneを使用していました。
getContentPaneはJFrameのメソッドらしいのですが、こいつを呼び出せばJFrameを呼び出したと等価なのでしょうか?
0789デフォルトの名無しさん
2011/11/20(日) 04:46:41.020790デフォルトの名無しさん
2011/11/20(日) 04:57:08.36このスレでも「Java EEやるんだけどどの本がいいですか?」などといった質問はよくあるでしょ
0791デフォルトの名無しさん
2011/11/20(日) 05:09:36.900792デフォルトの名無しさん
2011/11/20(日) 05:15:13.29良くあるんだとしたら
教育失敗した世代だな
0793デフォルトの名無しさん
2011/11/20(日) 07:20:21.610794デフォルトの名無しさん
2011/11/20(日) 08:16:35.310795デフォルトの名無しさん
2011/11/20(日) 08:18:51.81立ち読みしろってか?
0796デフォルトの名無しさん
2011/11/20(日) 08:24:13.57どうしても向き不向きがあるから自分にあったものを選ばないと投げ出す可能性があるよ。
0797デフォルトの名無しさん
2011/11/20(日) 08:27:47.970798デフォルトの名無しさん
2011/11/20(日) 08:30:38.65public void print() throws IOException;
}
class A implements I{
public void print() throws NullPointerException{
System.out.println("A");
}
IOExceptionとNullPointerExceptionに継承関係がないのにエラーが起きないのはなぜ?
0799デフォルトの名無しさん
2011/11/20(日) 09:37:08.86インスタンス作るまでもないクラスに、あるメソッドが定義されてることを保証したいんだけど。
0800デフォルトの名無しさん
2011/11/20(日) 10:09:22.770801デフォルトの名無しさん
2011/11/20(日) 10:53:19.830802デフォルトの名無しさん
2011/11/20(日) 10:53:20.21直感的操作で簡単なゲームが作れます。 簡単に配布可能な状態に出力する
ことができます。(HSP製のソースコード付きで、スクリプトの知識があれば
自由度の非常に高いカスタマイズができます)
他にも仲間預かり機能(100人も)や、仲間の状態/状態異常を細かく設定
できたり、乗り物が作れたり、ゲーム中に画像を差し込んだり、回転や
フラッシュなどのエフェクトなんかも簡単に作れる様です。
移動は矢印キーの他に、キャラがマウスを追っかけたりするとのこと。
戦闘はデフォだとドラクエ系。
・次期バージョンのロープレジェネレーター2.00アルファ版2を公開しました。(2011/10/29)
0803デフォルトの名無しさん
2011/11/20(日) 10:53:58.09設計上大して恥ずかしい話とも思えないのだが。
MathやStrictMathも、継承とシングルトンで実現すべきだったかもしれない
0804デフォルトの名無しさん
2011/11/20(日) 11:18:14.260805デフォルトの名無しさん
2011/11/20(日) 11:19:06.16「このクラス、状態持ってるわけでもないしユーティリティっぽいし全部staticメソッドでいいんじゃね?」
「ここでこういう使い方をしたくてインタフェースが必要なんで仕方なく非staticにしてます」
みたいな。
0806デフォルトの名無しさん
2011/11/20(日) 11:20:32.04それだけ差し替えられてもあまり意味がない
0807デフォルトの名無しさん
2011/11/20(日) 11:21:51.350808デフォルトの名無しさん
2011/11/20(日) 12:58:37.93NullPointerExceptionは非チェック例外だから
0809デフォルトの名無しさん
2011/11/20(日) 14:39:12.20実装しなければならないけどIOExceptionの部分は継承関係になくてもよいって認識でおk?
0810デフォルトの名無しさん
2011/11/20(日) 14:44:25.62あなたは日本国政府からどういう教育を受けたんですか?
0811デフォルトの名無しさん
2011/11/20(日) 14:49:21.61検査例外が緩くなるの(IOExceptionの子クラスか、例外なし)は問題ない。
親が定義してない検査例外を子クラスのthrows節につけるのはダメ。
NullPointerExceptionは検査例外じゃないから好きなだけthrows節につけられる。
けどコーディングスタイル的にthrows節には検査例外しかおかないって人も多い。
0812デフォルトの名無しさん
2011/11/20(日) 14:59:01.020813デフォルトの名無しさん
2011/11/20(日) 15:57:26.59なるほど。なんとなくわかったよありがとう。
0814デフォルトの名無しさん
2011/11/20(日) 16:10:03.450815デフォルトの名無しさん
2011/11/20(日) 16:14:51.260816デフォルトの名無しさん
2011/11/20(日) 16:55:50.32ふつーは、いつ呼び出されるかわからんfinalizeに後始末を任そうとするな、じゃないの?
悩むことある?
0817デフォルトの名無しさん
2011/11/20(日) 17:00:13.35public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
無名内部クラスがWindowAdapterのメソッドwindowClosingをオーバーライドしてSystem.exit(0)を実行している。
というとこまで分かるのですが、WindowEvent eってなんですか?
仮にWindowEvent型のeを受け渡してるってことでしても、eって値を持っていないですよね?
0818デフォルトの名無しさん
2011/11/20(日) 17:17:03.430820デフォルトの名無しさん
2011/11/20(日) 18:39:12.87なぜT型のインスタンスが作成できないのでしょうか?
ご存知の方いらっしゃいましたら、教えてください。
お願い致します。
class Test {}
class Data<T extends Test> {
public void func() {
T t = new T(); //※ここでエラーが出ます
}
}
0821デフォルトの名無しさん
2011/11/20(日) 18:47:04.840822デフォルトの名無しさん
2011/11/20(日) 18:53:50.82newInstanceを使う。
0823820
2011/11/20(日) 19:47:30.75>>822
newInstanceとは、ClassクラスのnewInstanceでしょうか?使い方、調べてみます。
どうしてこのような仕様になってるのでしょうか?凄く不便な気がするのですが。。。
0824デフォルトの名無しさん
2011/11/20(日) 20:11:12.97VMを弄るのが嫌だからそうなった
実際にはTのところがすべてObjectになるだけと覚えておけば理不尽に見える制限も理解できる
0825デフォルトの名無しさん
2011/11/20(日) 21:05:55.60hoge.jarの中にpiyo.classとfuga.jarが入っているとして、
fuga.jarにクラスパスを通してpiyoを実行することは可能でしょうか?
その場合、hoge.jarのMANIFESTにはどう書けばよいのでしょうか?
よろしくお願いします。
0826デフォルトの名無しさん
2011/11/20(日) 22:47:15.74short方の四桁の数字 time = 2245 を 22:45 のようにSystem.out.println();で表示するのにはどのようにすればいいですか?
0827デフォルトの名無しさん
2011/11/20(日) 22:51:09.630828デフォルトの名無しさん
2011/11/21(月) 00:05:13.37javaで生成遅延を実装したいです。
目標は組み合わせを一つずつ生成するというものです。
0829デフォルトの名無しさん
2011/11/21(月) 00:21:56.74質問は?
0830デフォルトの名無しさん
2011/11/21(月) 00:42:34.09toString -> slice -> print
0831デフォルトの名無しさん
2011/11/21(月) 00:48:06.10MANIFESTの記述でなく、目的だけでよければ。
http://fjep.sourceforge.net/
0832デフォルトの名無しさん
2011/11/21(月) 02:02:43.11不便も糞も、
どんなクラスが不明なのに引数なしのコンストラクタがあるとは限らんだろ
どんだけJavaにエスパー求めてるんだ
0833デフォルトの名無しさん
2011/11/21(月) 02:08:26.380834デフォルトの名無しさん
2011/11/21(月) 10:58:02.440835820
2011/11/21(月) 11:01:46.58public void func() {
Object t = new Object(); //※ここでエラーが出ます
}
私は、ジェネリクスを基礎から勉強しないと駄目かもしれないです。
全く解らないです。
C++のテンプレートとは、やはり、かなり違うのですね。
まだ、ジェネリクスは、実行時に形が作られることくらいしか、知らないです。
0836デフォルトの名無しさん
2011/11/21(月) 11:07:17.180837デフォルトの名無しさん
2011/11/21(月) 11:08:28.95制約を指定することでnew T()ができる
Javaでそれができないのは実装の都合
実行時に型が作られるんじゃなくて、実際はObjectで利用側のコードでダウンキャストを省略してるだけ
0838デフォルトの名無しさん
2011/11/21(月) 11:08:39.380839デフォルトの名無しさん
2011/11/21(月) 11:27:56.090840デフォルトの名無しさん
2011/11/21(月) 11:37:49.65これは、コンパイルされて
ArrayList<Object> list = new ArrayList<Object>(); list.add("a"); String s = (String)list.get(0);
こうなる。ただこれだけの仕組み。Tに何が指定されてたかの情報は失われる。
だから new T() はTが何かに関わらず「常に」new Object() と同じなので意味がない。
T[] なんかも同様に Object[] になってしまう。
クソだろう? 互換性の都合。
0841デフォルトの名無しさん
2011/11/21(月) 11:41:15.770842デフォルトの名無しさん
2011/11/21(月) 16:02:01.70勉強し直したいんだけど最近のものでお勧めな本ってある?
0843デフォルトの名無しさん
2011/11/21(月) 16:33:28.650844デフォルトの名無しさん
2011/11/21(月) 18:16:41.730845デフォルトの名無しさん
2011/11/21(月) 18:23:05.36それよりツールのトレンドに付いていけるかじゃね?
0846デフォルトの名無しさん
2011/11/21(月) 20:06:30.49> .NETはTが引数なしのコンストラクタを持たなければならないという
> 制約を指定することでnew T()ができる
ワイルドカードと組み合わせたら鼻血が出そうだな
0847820
2011/11/21(月) 21:20:02.59解ってきました。丁寧に書いていただいて、ありがとうございます!
0848デフォルトの名無しさん
2011/11/21(月) 23:54:05.53?
0849デフォルトの名無しさん
2011/11/22(火) 00:00:47.46よく考えてみれば、実行時に型を取得可能ってことは、
コンパイル時に型変数を必ず何らかの型へ解決することが必要なんだよな。
new T() をやりたいがためにワイルドカードを捨てるってどうなのよ?
0850デフォルトの名無しさん
2011/11/22(火) 00:01:48.360851デフォルトの名無しさん
2011/11/22(火) 00:02:11.99で、ワイルドカードの有無と new T() の関係は?
0852デフォルトの名無しさん
2011/11/22(火) 00:44:08.43型が割り当てられなかったら、そこからどうやってインスタンスを生成する?
0853デフォルトの名無しさん
2011/11/22(火) 01:02:16.700854デフォルトの名無しさん
2011/11/22(火) 01:14:37.27そもそもJavaの話じゃないしスレちだが
0855デフォルトの名無しさん
2011/11/22(火) 01:16:40.19他言語のメタプログラミング知らなくてjavaが普通だと思ってたんだろ。許してやれよw
0856デフォルトの名無しさん
2011/11/22(火) 01:25:46.980857デフォルトの名無しさん
2011/11/22(火) 01:29:00.15書き込み専用のインターフェースで共変と反変が使える
柔軟性は劣るけどワイルドカードよりはずっと分かりやすい
0858デフォルトの名無しさん
2011/11/22(火) 01:46:30.98Javaでnew T() が出来ないのは、
単に実装上の都合や互換性の都合(クソ?)のためだけではなく
ワイルドカード等を持つJavaの仕様から来ているのでは?
と言いたかったので、Javaの話
>>855
メタプログラミング?w
0859デフォルトの名無しさん
2011/11/22(火) 01:49:03.62つかワイルドカードならnew T()じゃなくてnew ?()になるんじゃないの
ワイルドカードじゃない方の制約と混同してるんだな
0860デフォルトの名無しさん
2011/11/22(火) 02:03:00.340861デフォルトの名無しさん
2011/11/22(火) 02:10:24.44動的に型を取ってきても意味がない。
つか、ワイルドカードは使う側の話で、new T() は呼び出される側の話だろ。例えばこう↓
class Data<T extends Test> {
public void func() {
T t = new T(); //※ここでエラーが出ます
}
}
class Invoker {
...
void invoke() {
for(Data<? extends Test> data : dataList) {
data.func();
}
}
0862デフォルトの名無しさん
2011/11/22(火) 02:15:29.08だからそれはJavaの実装に起因する問題。ワイルドカードは全く関係ない。
テンプレートや実行時展開方式なら実行時には必ずTに具体的な型が入ってるんだよ
0863デフォルトの名無しさん
2011/11/22(火) 02:18:59.13実行してみて、new制約に違反していたら例外でも投げるの?
それじゃ、new制約があってもなくても変わらん
0864デフォルトの名無しさん
2011/11/22(火) 02:25:45.73思い込みで騒ぐ前にちょっとは視野を広げてみたら?
0865デフォルトの名無しさん
2011/11/22(火) 02:33:58.59少なくともどっかでnew Data<HogeTest>()と型を具体的に指定してインスタンス作ってるはずで
そこでコンパイル時にチェックすればいいだけの話
それくらい知らなくてもちょっと考えたらわかりそうなもんだけど
0866デフォルトの名無しさん
2011/11/22(火) 02:59:48.430867デフォルトの名無しさん
2011/11/22(火) 03:01:55.35せやな
0868デフォルトの名無しさん
2011/11/22(火) 03:22:10.70Robotでおk
0869デフォルトの名無しさん
2011/11/22(火) 06:20:07.28「他言語のメタプログラミング」をいくつか具体的に挙げてもらえませんか?
0870デフォルトの名無しさん
2011/11/22(火) 09:20:31.720871デフォルトの名無しさん
2011/11/22(火) 19:21:42.72e??
0872デフォルトの名無しさん
2011/11/22(火) 20:23:25.20具体的な型が当てはまらないようなものができそうだな
0873デフォルトの名無しさん
2011/11/22(火) 20:38:11.830874デフォルトの名無しさん
2011/11/22(火) 21:07:22.25class A {}
interface I {}
public class P<T> {
static <T extends A & I> P<T> get() { return new P<T>(); }
public static void main(String[] args) { P <?> p = get(); }
}
0875デフォルトの名無しさん
2011/11/22(火) 21:18:45.69それが許されないなら推論不可
0876デフォルトの名無しさん
2011/11/22(火) 21:46:02.78型引数が完全には指定されてない状態ではインスタンス化も静的メンバへのアクセスも一切できない。
Javaは実装上そのへんがどうしても中途半端になってるから混乱しやすいんだが、本来は
「P<X> と書いた時点で PのTがXに置き換わった新しい型ができる」というだけの簡単な話なんだよ。
0877デフォルトの名無しさん
2011/11/22(火) 22:04:32.740878デフォルトの名無しさん
2011/11/22(火) 22:12:12.37必ずaddした順番に出てきますか?
0879デフォルトの名無しさん
2011/11/22(火) 22:12:42.25class B extends A implements I{}で
P.<B>get()に変えればそりゃ通るけどもw
0880デフォルトの名無しさん
2011/11/22(火) 22:23:10.38はい
Iが無ければ >>874 は P<? extends A> p = get(); で一見型引数が不定なインスタンスが作れてるように見えるが
これは単に P<A> だね。P<? extends A & I> p = get(); だとコンパイルエラー。
意図的に型引数が不定なインスタンスを作れなくしてるっぽい。
0881デフォルトの名無しさん
2011/11/22(火) 23:23:21.26古いEclipseだと何故かコンパイルが通らないことはあった。
0882デフォルトの名無しさん
2011/11/22(火) 23:24:36.29A は I を実装してないので、少なくともP<A>ではない。
0883デフォルトの名無しさん
2011/11/22(火) 23:26:58.93static <T extends A> P<T> get() に変えたら P<? extends A> p = get(); でコンパイル通るってこと
T extends A & Iのままだと? extends Aでは当然制約を満たさないのでコンパイルエラー
0884デフォルトの名無しさん
2011/11/22(火) 23:29:53.10言語仕様が変わったのか?何この糞言語
0885デフォルトの名無しさん
2011/11/23(水) 00:26:48.44そりゃ俺なんかより遥かに頭いい人たちが設計して実装してるんだろうけど
こんなもん実装どころか言語仕様にバグあっても全然不思議じゃないな
0886デフォルトの名無しさん
2011/11/23(水) 01:30:23.820887デフォルトの名無しさん
2011/11/23(水) 01:41:19.990888デフォルトの名無しさん
2011/11/23(水) 02:05:31.17また、身近な物でJavaScriptを使っているのがあったら教えて頂きたい
0889デフォルトの名無しさん
2011/11/23(水) 02:07:52.71http://www.smokymonkeys.com/triglav/
ちなみにここはJAVAスレだけど勘違いとかしてない?
0890デフォルトの名無しさん
2011/11/23(水) 02:12:13.83?
0891デフォルトの名無しさん
2011/11/23(水) 02:17:12.61ああっ!!!失礼しました
JavaとJavaScriptを間違えてました、すみません…
イタチスレチですみません、ではでは
0892デフォルトの名無しさん
2011/11/23(水) 04:23:15.40本格的にブラウザだけインストールしたらなんでもできる時代が来るかも試練ね!
0893デフォルトの名無しさん
2011/11/23(水) 04:54:16.71http://bellard.org/jslinux/
0894デフォルトの名無しさん
2011/11/23(水) 07:51:49.470895デフォルトの名無しさん
2011/11/23(水) 10:44:04.44}
これでobjをロックできますが
他の部分でobjにsynchronizedを使わずにアクセスしていたら
完全なロックは出来ないという理解で合っていますか?
つまりobjに対するアクセスで常にsynchronizedを使わなければ完全なロックはできない
0896デフォルトの名無しさん
2011/11/23(水) 10:47:33.85objをロックしているというより、objをロックに使っている
同じオブジェクトをロックに使うsynchronizedブロックは同時に一つしか実行できないってこと
0897デフォルトの名無しさん
2011/11/23(水) 10:53:43.080898896
2011/11/23(水) 11:31:33.05同期化に使うに訂正
オブジェクトをロックするっていうのは特にそのオブジェクトの性質に影響を与えるわけじゃなくて
単純にsynchronized(obj) のところでobjがロックされていたらロックが解放されるまで待機し、
ロックが解放されて順番が回ってきたらロックしてブロックに入る仕組み
そのフラグみたいなのを便宜上ロックと呼んでるだけで、あんまりロックという言葉は気にしないほうがいいよ
0899デフォルトの名無しさん
2011/11/23(水) 11:35:15.58javaで生成遅延?
素直にpythonとか使っとけ。
というか、わからん。俺も知りたい
0900デフォルトの名無しさん
2011/11/23(水) 11:39:46.410901デフォルトの名無しさん
2011/11/23(水) 11:43:14.380902デフォルトの名無しさん
2011/11/23(水) 11:43:41.31めんどくさいけどIterator<E>を実装すればできる
0903デフォルトの名無しさん
2011/11/23(水) 11:45:58.23こんなの?
ジェネレータのことか?
LasyList使えばいいのか?
0904デフォルトの名無しさん
2011/11/23(水) 11:52:39.15ちと読んでみるか
0905デフォルトの名無しさん
2011/11/23(水) 11:56:26.610906デフォルトの名無しさん
2011/11/23(水) 12:23:26.490907デフォルトの名無しさん
2011/11/23(水) 12:23:35.30漢なら普通にjrubyでしょ。
0908デフォルトの名無しさん
2011/11/23(水) 13:02:02.69そうなん?
0909デフォルトの名無しさん
2011/11/23(水) 13:27:32.130910デフォルトの名無しさん
2011/11/23(水) 13:35:58.46これなんかはどう?
いまexampleをみてるけど
0911デフォルトの名無しさん
2011/11/23(水) 13:37:20.31ジャバの単調なコーディング作業ばかりでそれを使うような場面に出逢ったことがないんでしょ
0912デフォルトの名無しさん
2011/11/23(水) 13:44:09.00�d。俺も見てみる
>>911
Generatorの良さが出ないって意味だよ
0913デフォルトの名無しさん
2011/11/23(水) 13:48:07.32言語でサポートしてくれないと厳しいよな。わかってはいたが。
0914デフォルトの名無しさん
2011/11/23(水) 13:48:17.04いちいちスレッド切り替えてるとクソ遅くなるから、
C#や910のようにコンパイラが頑張って同期的なコードをステートマシンに変換してしまうのが望ましい
0915デフォルトの名無しさん
2011/11/23(水) 13:51:51.17ほんとそう思う。ごった煮で良くも悪くも汚れたC#だから出来ることだな。
設計思想とかは好きだが、手を入れたくなると限界がくるよなJavaって。
0916デフォルトの名無しさん
2011/11/23(水) 13:52:20.92ジャバはそもそも糞だし切替えると遅くなるからか
それなら一理あるね
0917デフォルトの名無しさん
2011/11/23(水) 13:57:27.050918デフォルトの名無しさん
2011/11/23(水) 14:00:35.44あそびが少ないってだけ。
0919デフォルトの名無しさん
2011/11/23(水) 14:07:31.93無理にコンパイラで完結させようとすると失敗するのはジェネリクスが証明している
0920デフォルトの名無しさん
2011/11/23(水) 17:35:52.93Transport.send(message)のところで、
com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'mail' or call 'Send()' was not found.
となってしまいます。
mail.jarとactivation.jarは/WEB-INF/libに配置してあり、パスは通っています。
0921デフォルトの名無しさん
2011/11/23(水) 18:37:20.940922デフォルトの名無しさん
2011/11/23(水) 18:41:16.110923デフォルトの名無しさん
2011/11/23(水) 19:33:09.110924デフォルトの名無しさん
2011/11/23(水) 19:33:29.680925デフォルトの名無しさん
2011/11/23(水) 20:32:34.02自分は GAE は知らないけど、
普通に Tomcat 上で動かすアプリで JavaMail 使ってたよ。
例外見る限り、その GAE 用に JavaMail になんか小細工してるコードを、
そのまま「一般的なTomcat6サーバ」で動かそうとしてるのが問題なんじゃないの?
0926デフォルトの名無しさん
2011/11/23(水) 21:26:41.74こういうマップを使いたいんですが
普通にHashMapとかで作ってもキーが同一性比較になるので
byte[] k1 = new byte[] { 0 };
byte[] k2 = new byte[] { 0 };
map.put(k1, 1);
Integer r = map.get(k2);
このコードでrはnullになりますよね。
byte[]の同値性比較のマップが欲しいんですがどんな方法がありますか?
0927デフォルトの名無しさん
2011/11/23(水) 21:31:54.120928デフォルトの名無しさん
2011/11/23(水) 21:34:27.320929デフォルトの名無しさん
2011/11/23(水) 21:35:59.360930デフォルトの名無しさん
2011/11/23(水) 21:42:25.750931デフォルトの名無しさん
2011/11/23(水) 22:24:19.680932デフォルトの名無しさん
2011/11/23(水) 23:37:31.110933ケンシロウ ◆Or5xFGjg0.
2011/11/24(木) 11:43:56.000934デフォルトの名無しさん
2011/11/24(木) 12:11:03.91例)
a.jsp内にA,B,Cへの3つのリンクがある。
この3つのページを3つのJSPではなく1つのJSPで表現したい。
0935デフォルトの名無しさん
2011/11/24(木) 20:02:44.88str.replace("\t", "\\t");としても駄目っぽいです。
どうしたらいいですか?
0936935
2011/11/24(木) 20:05:15.25strがそのまま変換されるとおもっていました・・
すみませんでした。
0937デフォルトの名無しさん
2011/11/24(木) 20:34:45.61if(tinpo.equals(penis)){
}
をelseを使わないでノットイコールにするのにはどうしたらいいんでしょうか?
あとsqlの話で申し訳ないのですが
where句のなかで
table.id >= ?
というものを見かけたのですが?って何なんでしょう
0938デフォルトの名無しさん
2011/11/24(木) 21:25:53.59boolean is = tinpo.equals(penis);
if( !is ){}
if( is == false ){}
どちらか。
>?って何なんでしょう
「わかんなーい」という意味です。
バインド変数、もしくはPreparedStatementで調べてください。
0939デフォルトの名無しさん
2011/11/25(金) 00:35:34.78mank...
0940デフォルトの名無しさん
2011/11/25(金) 07:39:23.18ありがとうございます
0941デフォルトの名無しさん
2011/11/25(金) 15:05:51.530942デフォルトの名無しさん
2011/11/25(金) 15:26:01.77普通に if(!tinpo.equals(penis)){} じゃ駄目なの?
0943デフォルトの名無しさん
2011/11/25(金) 17:09:48.53死ぬ
0944デフォルトの名無しさん
2011/11/25(金) 17:12:17.51>?って何なんでしょう
インテロゲーション・ポイント
0945デフォルトの名無しさん
2011/11/25(金) 19:39:39.140946デフォルトの名無しさん
2011/11/25(金) 20:27:58.46どちらも同じ繰り返し文なんで、ふと疑問に思いました。
0947デフォルトの名無しさん
2011/11/25(金) 20:33:58.860948デフォルトの名無しさん
2011/11/25(金) 21:00:06.11List<Foo> fooList = new ArrayList<Foo>();
for( Foo foo : fooList ) { }
古い書き方だと
for ( Iterator<Foo> f = fooList.iterator(); f.hasNext(); ) {
Foo foo = f.next();
}
0949デフォルトの名無しさん
2011/11/25(金) 23:56:32.550950デフォルトの名無しさん
2011/11/26(土) 02:49:56.84...
for(String e : list){
//proc
}
こういうコードで、なぜか1つしか入っていない要素が2回procに来る。
forに入る前、1回目のproc時どちらでブレークしてlistの中身をチェックしてみても
listに1個しか入っていない要素なのに、なぜか2回procに来る。
2回来る要素はオブジェクトIDが同じで、当然、値も同じ。
1つしか入ってないオブジェクトなのに2回出てきてるとしか思えない。
そしてDrop To Frameした後に再実行すると、今度は1回しか出てこない。
アプリケーション起動後の初回実行時のみ2回出てくるという怪現象。
エスパー様はおりませんか?
0951デフォルトの名無しさん
2011/11/26(土) 02:59:16.36別途カウンタ変数を用意する以外で何か方法はありませんか
0952デフォルトの名無しさん
2011/11/26(土) 03:35:51.260953デフォルトの名無しさん
2011/11/26(土) 08:38:27.73ヘキサダンプの文字列をnew String(hex)してハッシュコード返す
0955デフォルトの名無しさん
2011/11/26(土) 22:11:34.83次のような場合、アノテーションが適用されるのは変数[a]だけでしょうか?
class Hoge{
@Inject
Integer a, b, c;
}
0956デフォルトの名無しさん
2011/11/26(土) 22:46:02.380957デフォルトの名無しさん
2011/11/27(日) 02:19:19.800958デフォルトの名無しさん
2011/11/27(日) 08:08:19.65そんなこと気にするくらいならまずシングルトンを使わないことを考えるべき
0959デフォルトの名無しさん
2011/11/27(日) 09:42:47.370960デフォルトの名無しさん
2011/11/27(日) 10:02:05.59staticなメンバはふつークラスの頭に持ってくるよな。
コンストラクタの前か後かで流儀は割れると思うが
0961デフォルトの名無しさん
2011/11/27(日) 10:09:29.720962デフォルトの名無しさん
2011/11/27(日) 11:45:37.91aaaa1.txt と aaaa2_2.txtというファイル名が有ったとして、
それぞれaaaa1をファイル名、1を連番数字
aaaa2_をファイル名、2を連番数字として抽出したいのです。
どう表現したらよいでしょうか?
0963デフォルトの名無しさん
2011/11/27(日) 13:23:07.32http://hibari.2ch.net/test/read.cgi/tech/1301067486/
0964デフォルトの名無しさん
2011/11/27(日) 14:18:00.91String[] HogeName = new String [number]
for ( int i = 0 ; i < number ; i++ ) { HogeName[i] = str(i+1)+"番目の変数" }
でHogeName[]の中に名前を作ってみたんですが、型宣言にどうやって使うかわからず・・・お願いします。
0965デフォルトの名無しさん
2011/11/27(日) 14:22:47.610966デフォルトの名無しさん
2011/11/27(日) 14:24:48.27エスパーするに、Map はあなたの問題の解決にならんの?
0967デフォルトの名無しさん
2011/11/27(日) 16:19:40.190968962
2011/11/27(日) 18:12:28.78Javaの実装なのでお願いします。
final String regex = "^(([a-zA-Z_-]+)|^([a-zA-Z_-]+\\d+[_\\-]))(\\d+)\\.txt$";
0969デフォルトの名無しさん
2011/11/27(日) 18:31:51.70>>963のスレはJavaもOK
0970964
2011/11/27(日) 19:21:22.31任意の数の変数にそれぞれ順番をつけて用意したいのです。
たとえば、int型で三個用意したいならint Hoge1,Hoge2,Hoge3;とすればいいのですが、
入力に応じて数を増やしたいので、k個ならint Hoge1, ... ,Hogek;と宣言したいと考えています。
0971デフォルトの名無しさん
2011/11/27(日) 19:27:46.37なぜそんなことをしたいのか、を君が説明できれば
みんなが別のいい方法を教えてくれると思うよ。
0972353
2011/11/27(日) 19:27:47.59普通にやるなら、
int[] hoge = new int[入力に応じた数];
だけど、それじゃダメなの?
どうしてもhoge1とかhoge2とかでやりたいなら >>966 の言うとおりMapあたり使うのがいいんじゃない?
0973デフォルトの名無しさん
2011/11/27(日) 19:59:13.35どうやってそれを使うんだ
0974デフォルトの名無しさん
2011/11/27(日) 20:01:48.21Javaの練習で簡単なSkypeみたいなチャットアプリを作りたいのですが、会話履歴を表示する部分のレイアウトをどうやったらいいのかが分からず悩んでいます。
Swingライブラリを使って、左に発言者の画像を表示してその右に発言メッセージ内容を表示。
この2つのセットを発言があったら下から上に流れていくようにしたいのですが、どのパーツを使えばいいのでしょうか・・・?
(現在JTextAreaを使っているのですが、画像が表示でき無いので。。。)
0975デフォルトの名無しさん
2011/11/27(日) 20:29:13.240976デフォルトの名無しさん
2011/11/27(日) 21:51:09.97r ‐、
| ○ | r‐‐、
_,;ト - イ、 ∧l☆│∧ 良い子の諸君!
(⌒` ⌒ヽ /,、,,ト.-イ/,、 l
|ヽ ~~⌒γ ⌒ ) r'⌒ `!´ `⌒) よく頭のおかしい技術者やデザイナー気取りのバカが
│ ヽー ―'^ー-' ( ⌒γ ⌒~~ / 「誰もやらなかった事に挑戦する」とほざくが
│ 〉 |│ |`ー^ー― r' | 大抵それは「先人が思いついたけどあえてやらなかった」ことだ。
│ /───| | |/ | l ト、 | 基礎が何故大切か理解できない人間にまともな商品は開発できないぞ!
| irー-、 ー ,} | / i
| / `X´ ヽ / 入 |
0977デフォルトの名無しさん
2011/11/27(日) 23:28:53.280978デフォルトの名無しさん
2011/11/27(日) 23:35:26.960979デフォルトの名無しさん
2011/11/28(月) 00:25:42.85★★ Java の宿題ここで答えます Part 71 ★★
http://hibari.2ch.net/test/read.cgi/tech/1309076891/
0980デフォルトの名無しさん
2011/11/28(月) 01:41:31.770981デフォルトの名無しさん
2011/11/28(月) 01:56:48.85ProcessingのControlP5というライブラリを用いて、n個の図形を好きな場所に配置するような事をしようとしています。
「n個」を入力すると図形の位置を決める二次元スライダー(この名前がHoge1からHogen)がn個出てくるようにしたい。
二次元スライダーが持ってる値はHoge1.arrayValue()[0]のようなカタチでしか受け取れない(?)ようなので、
Hoge1からHogenまで、逐一名前をつけなければいけないようです。
n個の変数名に拘っているのはこれが理由です。そこで、
Slider2D Hoge1 , Hoge2 , ... , Hogen ;
for ( int i = 1 ; i <= n ; i++ ) {
rect( よこ , たて , Hoge i .arrayValue()[0] , Hoge i .arrayValue()[1] );
}
とすればよいと考え、
String[] HogeName[] = { Hoge1, Hoge2, ... ,Hogen} を作って、その要素を変数名に使えたらと質問しました。
情報の小出しやそもそも必要な情報がわからないのは典型的なアホですね・・・。精進します。
とりあえず提案頂いたMapというのを見てみようと思います。
0982デフォルトの名無しさん
2011/11/28(月) 02:16:43.620983デフォルトの名無しさん
2011/11/28(月) 02:16:53.01専用スレがあるから検索しろ
0984デフォルトの名無しさん
2011/11/28(月) 02:21:57.84でがまんしとけ
0985964, 970, 981
2011/11/28(月) 03:37:59.68解読しようとしてくださった方々、ありがとうございました。。。
>>984 一瞬でできました。ありがとうございます
0986デフォルトの名無しさん
2011/11/28(月) 04:40:31.860987デフォルトの名無しさん
2011/11/28(月) 10:13:24.19ワロタw
0988デフォルトの名無しさん
2011/11/28(月) 20:14:29.100989デフォルトの名無しさん
2011/11/28(月) 21:03:51.86http://hibari.2ch.net/test/read.cgi/tech/1318935200/
ここかな
0990デフォルトの名無しさん
2011/11/28(月) 22:11:07.64hairetuは引数の配列を使って新しい配列を返すメソッドでkeisanは引数の配列を使ってdouble値を返すメソッド,hyouziは引数の配列を表示するメソッドです。
public static void main(String[] args) {
double [][]a = ・・・・;
double [][]b = ・・・・;
int n = a.length;
double [][]A = hairetu(a,b,n);
System.out.println(keisan(A,n));
}
public static double keisan(double [][]A,int n){
・・・・
return x;
}
public static double[][] hairetu(double[][]a,double[][]b,int n){
double [][]y = new double[n][n];
・・・・
y = ・・・・;
hyouzi(y,n);
return y;
}
public static void hyouzi(double[][]a,int n){
・・・・・
}
hyouziメソッドでは配列は正しく表示されるのですがSystem.outのところがすべての要素がNaNの配列が表示されてしまいます。
keisanメソッドは値を返すようにしたのですがなぜでしょうか?
0991デフォルトの名無しさん
2011/11/28(月) 22:27:14.790992デフォルトの名無しさん
2011/11/28(月) 22:28:48.92関係ないけど配列のスペースの入れ方キモイ
普通 double[][] y だろ
0993デフォルトの名無しさん
2011/11/28(月) 22:39:43.92C出身者なら double **y のつもりでそう書くんじゃないか?
>>990
System.outって(少なくとも>>990には)1個しかないじゃないか。
「配列が表示されてしまいます」って何だ?
「NaNが表示されてしまいます」ならまだ意味はわかるけど。
0994デフォルトの名無しさん
2011/11/29(火) 02:50:34.05本見たらdoule[][] yと書いてありました。記憶違いしてたみたいです・・・
エラー出来ないので気づきませんでした。ありがとうございます。
keisanは以下の通りです。配列の列の和が最大になる列の和を返すメソッドです(∞ノルム)
public static double keisan(double [][]A,int n){
double a=0.0;
double x=0.0;
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
a=a+Math.abs(A[i][j]);
}
if(a>=x){
x=a;
}else if(a<x){
break;
}
a=0.0;
}
return x;
}
>>993
配列を返すメソッドについてネットを見ながら書いてみたんですがうまくいきませんでした。
System.outでkeisanで返された値が表示されると思ったんですがNaNばかりの配列が表示されてしまいます
0995993
2011/11/29(火) 03:53:22.45別に間違ってないように思える。
強いて言えば、x は 0.0 ではなくて -∞ で初期化すべきということか。
(∞ノルムが負になる場合を考慮)
正しいAが与えられているのなら、正しい結果が表示される筈。
しかしやっぱり「NaNばかりの配列が表示されてしまいます」の意味がわからない。
System.out.println が吐いた文字列をそのまま書きこんでくれ。
それと、Java の場合 n は外から与えるより A.length を見た方がスマートだと思うぞ。
0996993
2011/11/29(火) 03:54:19.47初期化の件は無視して欲しい。
0997デフォルトの名無しさん
2011/11/29(火) 14:12:04.55メッセージは通常とエラーの2種類あると思うのですが、「警告」という3種類目を増やしたい場合はどうすれば良いのでしょうか。
何となくでは
1. Globals.WARNS みたいな定数を定義
2. Action#saveWarns() みたいなメソッドの追加
3. taglibにhtml:warn みたいなカスタムタグの追加
が必要なのかなと思っています。
これが足りない、みたいなのがあれば教えてください。
0998デフォルトの名無しさん
2011/11/29(火) 18:00:59.480999デフォルトの名無しさん
2011/11/29(火) 18:36:57.61外人も使うチャットで文字セットは何を使うべきかね?
1000デフォルトの名無しさん
2011/11/29(火) 18:55:16.4010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。