[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 08/21 19:06 / Filesize : 235 KB / Number-of Response : 960
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

★★Java質問・相談スレッド133★★



1 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 01:02:31 ]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    ttp://pc11.2ch.net/hp/
Webプログラミング ttp://pc11.2ch.net/php/
をご利用下さい。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 ttp://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
★★Java質問・相談スレッド133★★
ttp://pc12.2ch.net/test/read.cgi/tech/1251630161/
次スレは>>950あたりで。

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
ttp://www.wikiroom.com/java/

755 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 00:51:34 ]
>>754
combo.setRenderer(new JLabel());
になってないか?

756 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 00:54:35 ]
>>754 JavaDocではこうなっている。
void setRenderer(ListCellRenderer aRenderer)

757 名前:755-756 mailto:sage [2009/11/14(土) 01:08:46 ]
間違えた。すまん

758 名前:754 mailto:sage [2009/11/14(土) 01:16:20 ]
>>755-756
いえ、非常にありがたいです。
他にも何かお気づきの点があれば、よろしくお願いします。

759 名前:755-756 mailto:sage [2009/11/14(土) 01:31:36 ]
class ComboLabelにtextとicon保存
public Component getListCellRendererComponent内で上で保存したtextとiconをJLabelにセットしなければならないから、

class ComboLabel{
にtext追加。
public Component getListCellRendererComponent(
にsetText追加。

すればいいんじゃないかと……

760 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 02:04:27 ]
>>754
これで普通に画像の切り替えできてるよ。
変数が見えてなかったりLabelが表示されてなかったりしたのも直したけど。

MyCellRenderer renderer = new MyCellRenderer();
combo.setRenderer(renderer);
combo.addItemListener(renderer);//追加


class MyCellRenderer extends JLabel implements ItemListener, /*追加*/ ListCellRenderer {
..... //省略
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED){
lb.setIcon(((ComboLabel)model.getSelectedItem()).getIcon());
}
}

761 名前:754 mailto:sage [2009/11/14(土) 02:39:10 ]
皆さんどうもありがとうございます。
早速教えていただいたように直してみました。

ところが、
lb.setIcon(((ComboLabel)model.getSelectedItem()).getIcon());
の箇所で、lb、modelを解決できませんというエラーが表示されてしまいます。

どこが間違っているのか、自分ではどうしても解決できませんでした。
もう一度教えていただいてもよろしいでしょうか。
お願いします。

ちなみに現在のソースです。
rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/831.java

762 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 02:46:43 ]
>>761
こっちに変えてみな。

public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED){
ComboLabel lbl = (ComboLabel)((JComboBox)e.getSource()).getSelectedItem();
lb.setIcon(lbl.getIcon());
//lb.setText(lbl.getText()); Textが必要ならComboLabelにgetText()を追加する
}
}

763 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 02:49:14 ]
あと以下の2行を修正

public class Combobox extends JFrame{
private JLabel lb; //追加


//JLabel lb = new JLabel(("ここに画像が表示されます")); この行コメントアウトして下のように変更
lb = new JLabel(("ここに画像が表示されます"));;




764 名前:754 mailto:sage [2009/11/14(土) 03:01:24 ]
迅速なお返事をどうもありがとうございます。
教えていただいたことを元に、もう少し自分で考えてみようと思います。

こんなに遅い時間まで、本当にどうもありがとうございました。

765 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 03:05:30 ]
>>764
適当に動くようにしたソースはっとくよ。

rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/832.java

766 名前:754 mailto:sage [2009/11/14(土) 03:12:17 ]
わざわざソースまで!
自分の求めていたとおりに動かすことができました。
本当にありがとうございます。
自分ももっと勉強します。

767 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 03:35:46 ]
MyCellRenderer extends JLabel implements ListCellRenderer
よりも
MyCellRenderer extends DefaultListCellRenderer
にするといいよ。
getListCellRendererComponent() の最初で
super.getListCellRendererComponent(); を呼んで、
アイコンをセットして、
最後に return this; とすればいい。

768 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 07:53:25 ]
java でC/C++ でいうところの、関数ポインタのような振る舞いをさせるには
どのようなデザインパターンを用いればいいでしょうか?
2つのboolean 値があって、その値の内容の組み合わせパターン(2^2)によって、呼び出すメソッドを変えたいのですが
if 〜else if 構文や、switch 文はかっこ悪いので使いたくありません、よろしくお願いします。

769 名前:732 mailto:sage [2009/11/14(土) 08:59:26 ]
>>768
Java では関数ボインタを変数に持ったり、関数ポインタを使って多相化することはない。
そういうことをしたい時は、オブジェクトを変数に持って、パターンによって、
共通のインタフェースを実装した異なるオブジェクトを呼ぶことになる。
関数テーブルの代わりにはオブジェクトテーブルということになるが、
オブジェクトテーブル以外にも、4つのパターンを表現した enum クラスを作って、
各 enum 定数の中に実装を書くなどの作戦もある。

770 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 09:17:34 ]
>>769
Thx

771 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 09:28:13 ]
>>769
それ、なんてStrategyパターン?

772 名前:768 mailto:sage [2009/11/14(土) 09:41:43 ]
>>771
外していたらごめんなさい、多分State パターンではないでしょうか?

773 名前:デフォルトの名無しさん [2009/11/14(土) 14:23:46 ]
総称型の配列が作れません。
以下のような場合どうすればいいのでしょうか?

public T[] getSpecifiedElements(T[] allElements) {
   //allElementの一部要素をT配列で返したい。
}

ArrayList<T> temp = new ArrayList<T>(); に必要な分をつめこんで、
temp.toArray(new T[temp.size()]); ってしたいのですが無理なようです。
(T) temp.toArray(); もクラスキャストエクセプションになってしまいした。。。



774 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:38:55 ]
>>772
お前がやりたいのは、ちょっとした計算ロジックを切りかえたい
ということに見えるが、それだとしたらStrategyパターンであってる


775 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:56:35 ]
>>773
無理。
代替案としては Class<T> を引数で指定してもらうか、
配列使わずList<T>で受け渡しするか。
<T> T[] getSpecifiedElements (T[] allElements, Class<T> clazz) {
 List<T> temp = new ArrayList<T>();
 //tempに必要な要素をつめる。
 return temp.toArray((T[])Array.newInstance(clazz, temp.size()));
}

List<T> getSpecifiedElements (List<T> allElements) {
 List<T> temp = new ArrayList<T>();
 //tempに必要な要素をつめる。
 return temp;
}

776 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 14:57:52 ]
>>773
総称型の配列をnewすることは、Javaの言語仕様上できない。
多少強引だがこれでOK。

@SuppressWarnings("unchecked")
T[] subElements = (T[]) java.lang.reflect.Array.newInstance(
allElements.getClass().getComponentType(), temp.size());

return temp.toArray(subElements);

つーか、そもそも配列使うのやめればいいだけなんだけどな。


777 名前:デフォルトの名無しさん [2009/11/14(土) 15:25:04 ]
>>775
>>776
引数でクラス指定すると総称型の意味がないし、
ワーニング潰すのも気持ち悪いので、
諦めてList<T>を返すことにしました。

しかし勉強になりました。ありがとうございます。

778 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 16:01:01 ]
ストラッツの質問はここでも大丈夫でしょうか?jsp にアクセス(リロード)した際、自動的にActionクラスを実行するプログラムを組みたいのですが、どうすれば良いでしょうか?



779 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 16:01:46 ]
>>776
jdk7だと[]とListの区別がなくなるのかも。

780 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 16:58:38 ]
www.tomicom.ac.jp/~koba/doja5/jguidefordoja5api/javadoc/com/nttdocomo/security/SymmetricCipher.html
ここを参考に,特定の文字列をAESで暗号化するiアプリを作成してみたのだけど,例外が出てしまう…
どなたか,原因が分かる方ご教授お願いします.

例外
Main :java.lang.IllegalArgumentException: Can't use the sessionkey or the iv with the algorithm keyTest
java.lang.IllegalArgumentException: Can't use the sessionkey or the iv with the algorithm
at com.nttdocomo.security.CipherSessionKey.createSymmetricCipher(+71)
at cryptionClass.encryption(+72)
at keyTest.start(+14)
com.nttdocomo.security.CipherSessionKey: Can't use the sessionkey or the iv with the algorithm

ソースコード
ttp://www.cms-e.net/java/src/

781 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 17:24:28 ]
"Can't use the sessionkey or the iv with the algorithm"
って書いてあるけど?


782 名前:780 mailto:sage [2009/11/14(土) 17:33:11 ]
>>781
まぁ,そのエラーメッセージの意味は分かるのだけど,解決策が分からない….
参考URLではプログラム解説のためにDESアルゴリズムを用いているけどできればAESを使いたいので.


783 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 17:36:00 ]
>>781
いや,ごめん.意味も分かってないかも.

アルゴリズムのあるセッション鍵かIVを使用できません.

という文章的な意味は分かるのだけど,そのトラブルシューティングが分からない



784 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 17:49:27 ]
>>778
jspがAction経由で表示されたなら、リロードしてもActionが再実行されると思うけど。

785 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 21:55:10 ]
>>783
その訳はたぶん
そのセッション鍵またはそのIVをそのアルゴリズムと共に使うことはできません
ではないか?
ちょっと調べたらAESはブロックサイズが128ビットらしいので、IVのサイズをそれに合わせて長くしてみるとか

786 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 22:56:31 ]
ジャバってランタイムがないと動かないの?
RPGツクールみたいなもん?
単体で動くexeとか作れないの?

787 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 22:57:45 ]
POJOって一体何なの?
どういう風に便利なのかとか、どうすれば使えるのかとかがよく分からない。

788 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 22:58:29 ]
そうです

強引な方法も無くはないが
素人には10年早い

789 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 23:08:27 ]
788さん、それボク786に対する答えですか。

790 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 23:43:23 ]
>>786
うん
でもC++とかでもランタイム必要なものもあるよ

791 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 23:56:51 ]
OS だってランタイムだ、という考え方をすれば、単に OS 標準でどこまで付いて来るかという問題でしか無いとも言えるな。

792 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 00:12:21 ]
790さんありがとうございます
とりあえずいろいろいれずにWindowsでexeをクリックするだけで起動する感じが理想なので
別の言語あたってみます

793 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 04:55:26 ]
アジャイル手法とかに詳しい人がいたら、ご意見をいただけないでしょうか。

最近、私が関わっているプロジェクトで、
「カバレッジ100%を達成するためにホワイトボックスな単体テストを書きまくった結果、
逆に、テストを書き直すコストが増大して大きなリファクタリングができなくなりつつある」
という本末転倒っぽい状態に陥りつつあるのですが、何か良い方法なり指針はないものでしょうか。



794 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 06:57:08 ]
端的に言えばカバレッジ最優先なポリシはバランスが悪い。

リファクタリング前と後で、極端なまでにテスト再利用性が存在しないのは、
そもそも変化が許容される内容(つまりはリファクタリングによって改善した内部構造そのもの)
に対して過剰なテストが行われていることを意味している。

極端に言ってしまえば、テストは所詮バグが存在しないことの証明にはならないのだから、
あまり内部詳細に踏み込みすぎず、外部インタフェース越しに一般的なシナリオをテストするに
留めておくぐらいがちょうど良いと個人的には思う。

795 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 07:30:53 ]
>>793
一律にテスト書かないで変更が多そうな部分と変更が少なそうな部分にわけて
変更が少なそうな部分を重点的にテストするとか

796 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 09:00:14 ]
javamail-1.4.2 を使い、メール送信機能を付与した、プログラムを作成しました
送信テストも終わり、このプログラムを他人に配布したいのですが
通常のjava のアプリケーションが動くJava(TM) SE Runtime Environment (build 1.6.0_17-b04)
の環境であれば、別途に必要なランタイムやライブラリィはありませんか?

797 名前:796 mailto:sage [2009/11/15(日) 09:52:09 ]
自己解決です
ttp://oshiete1.goo.ne.jp/qa1919395.html
同じ方がいました、他人に配布するのは、ライセンス的には問題なさそうですが、
バッチでmail.jar を入れるとか、面倒な感じですね、実行するにも長たらしいコマンドを入れなければならないし
C で書いたDLL があるので、こいつを使った方が解決が早そうです。
java のインストローラが作れればいいんだが・・・・

798 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 10:28:08 ]
izpackかは?
コマンドって、実行時のクラスパス指定のこと?
それならManifestに記述すればいいし最悪バッチファイルなりなんなり書けばいいし、他にもexeにラップしちゃうって手もあるし、あんまり問題にはならなくないかい?

799 名前:796 mailto:sage [2009/11/15(日) 10:45:00 ]
>>798
ありがとうございます、java は最近はじめたばっかりなので詳しくく質問させてもらいました
Manifest とか、exe にラップする方法があるのですね知りませんでした、調べてみます。

800 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 13:28:58 ]
>>785
ありがとうございました!
IVを128bitにしたら無事通りました!

801 名前:793 mailto:sage [2009/11/15(日) 13:50:12 ]
>>794
なるほど。。
インタフェースごしのブラックボックステストと、ホワイトボックステストを分けるのも手かもしれませんね。

802 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 15:00:16 ]
URLClassLoader#loadClass(null)で呼び出したクラスは、
このクラスローダがGCされると綺麗にメモリ上から消えますか?

public static void run(URL jarFile, String className) throws Exception {
    Class clazz = new URLClassLoader(new URL[]{jarFile}).loadClass(className);
    MyInterface obj = (MyInterface) clazz.newInstance();
    obj.run();
}

803 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 15:35:26 ]
>>802
一緒にGCされると思うけど、仕様によって保証はされない。

あと、java.lang.Class や java.lang.reflect.Method なんかの
リフレクション用のオブジェクト握りっぱなしにしてると、
そもそもクラスローダがGCされない



804 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 17:05:11 ]
JNIでCを呼び出すとき、System.loadLibraryでネイティブライブラリをロードしますが、
System.loadLibraryを書くのはコンストラクタがよいのか、staticイニシャライザが良いのかわかりません。
どちらの方がよいのでしょうか?

805 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 17:10:50 ]
インスタンスをnewするまでstaticなネイティブメソッドが呼べないよ

806 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 18:21:36 ]
携帯でMP3再生したい
オープンアプリでいっちょやってみるか
ハフマン符号????
File decode(File mp3File) {

// 誰かサンプル書いてみて
return decodeFile;
}

807 名前:806 mailto:sage [2009/11/15(日) 18:24:48 ]
だめだ
メモリ足りなくなりそうなので
いちいち展開なんてしてられん・・・
void playMp3(File mp3File) {
//一時停止機能とかいらないから誰かサンプル書いて
}

808 名前:デフォルトの名無しさん [2009/11/15(日) 19:28:40 ]
別スレッドがSystem.out.print..などで、標準出力にメッセージを出すようになっていて、
それをInputStreamなどで拾いたいのだけど、どうしたら良いですか?

809 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 19:54:06 ]
java mediaとかかな
特許がらみが多い分野だからほとんどの形式がクローズドだけど。

810 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 20:01:17 ]
>>808
System.setOutで出力先をPipedOutputStreamか何かに変え、PipedInputStreamか何かで読み出す

811 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 22:24:08 ]
>>810
ありがとう!解決した!

812 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 22:35:18 ]
どうしてクラスローダが1つのVMに複数あるのでしょうか?

813 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 22:49:06 ]
URLから取ってくるクラスローダとか色々あるから。で回答としてはいいのかな?



814 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 22:49:48 ]
たとえば同一の外部ライブラリで複数バージョンを使い分けたい場合などがあったとする。
唯一のクラスローダしか存在しない場合、FQNが同一のクラスは、一つしか存在することができない。

815 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 23:08:02 ]
まて、FQNが同一のクラスが同時に複数存在できたりするのか?
ウィザードじゃないから知らないだけかもしれないけど、static変数とか矛盾
してしまうと思うんだが。

816 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 23:28:29 ]
できる。そもそも同じFQNであれ、ロードされているクラスローダが違えば同じクラスと扱われない。

J2EEやっていれば同一のコンテナ(単一JavaVM)に複数のWebアプリケーションをデプロイして、
それぞれのWebアプリが独自のライブラリ(WEB-INF/lib)を利用する状況を考えて欲しい。
たとえばAアプリはlog4j1.2で、Bアプリはlog4j1.1というのは普通に可能。

それらはThreadに割りつくContextClassLoaderが入れ替わることで(実装者が意識しないかたちで)実現されている。

817 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 23:29:07 ]
>>815
できるよ
異なるクラスローダがロードしたクラスは、同じFQNであっても別々
static変数も別々
Classオブジェクトを比較しても一致しない

818 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 23:31:11 ]
あとたしかinstanceofもキャストも失敗するっけか
あらゆる意味で異なるクラス扱いだったはず

819 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 23:36:33 ]
Seasarという有名な国産DIコンテナがあって、
それはsmart deployという仕組みで、開発時にhot deployが可能なんだけど、
そのやり方は結構単純で、クラスローダをRequestを受け取るごとに生成・廃棄して、
新規にコンパイルされたClassを都度読み込みさせている。
そのようなやり方をすれば、一度読み込まれたClassでも即時反映が実現できる。

820 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 23:40:34 ]
なるほど。
d.hatena.ne.jp/masugata_k/20071203/1196684216
とそのリンク先を見てみた。
システムクラスローダは差し替え可能なわけか。知らなかった。

821 名前:デフォルトの名無しさん [2009/11/16(月) 00:06:47 ]
複雑な管理処理を行うベースウェアにはGUIや集中管理する画面って必須かな?
それとも管理するためのAPIだけを提供すれば皆安心?

822 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 00:20:52 ]
せめて参考GUI実装をソースつきで。凝る必要は一切無し。
あれば使ってもらえるし、出来が気に入らなかったら改造するだろうし。
ソース無くてもjadで見ちゃうけど。

823 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 00:58:42 ]
なるほどruby的なのか
そりゃそうか



824 名前:デフォルトの名無しさん [2009/11/16(月) 02:05:38 ]
初めましてm(_ _)m
JAVA初心者なのですが
JAVA2のSEとMEをインストールしようと思い一通りダウンロードしたんですが、
java_ee_sdk-5_08-jdk-6u17-windows-ml.exe
これ以外はインストール出来ませんでした。
EEに当たるようなんですが、サイトを見直すとSEに該当しているようにもみえます。
しかし次にMEをインストールしようとすると「SEがインストールされていない」とでてMEがインストールされません。

MEがSE1.4?のみに対応している可能性もあるのでダウンロードしようとしたんですが見当たりません。

ですがそれ以前から教則本の付録でついてたj2sdk1.4.1_01(ランタイム?)を使用してます。


パソコンは2000年発売VAIOのXPです。SPをインストールしていません。
(すでにSP1がダウンロード不可のため)

どなたかアドバイス下さい。よろしくお願いします。m(_ _)m

825 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 02:46:23 ]
こっから落とせば?
java.sun.com/javame/downloads/index.jsp

J2ME時代で環境作りたい場合はこっちから落とす
java.sun.com/javame/downloads/previous.jsp


826 名前:デフォルトの名無しさん [2009/11/16(月) 02:55:54 ]
>>825解答ありがとうございます。後日、ダウンロード試みてみます。


827 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 15:12:06 ]
SaxParser#parse(File, dh)は内部でファイルのロック取ってるんでしょうかね?
プロセス間のは(共有ロック)取ってくれてると思って使ってるけど。

スレッド間の排他はユーザがやる必要があるのでしょうか?

828 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 16:20:57 ]
基本的な質問ですいません。
C言語ソースの移植作業しているのですが・・・。
int a(short b)
{
return b+5;
}

a(50);のように定数を引数にしてコンパイルすると
「a(short) は (int) に適用できません」
とエラーが出てしまいます。
a(50);をa((short)50);のようにキャストすればエラーは無くなりますが、
定数をいちいちキャストするのが面倒です。
キャスト以外に良い方法は無いでしょうか?


829 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 17:38:52 ]
int型の引数を受け取れる同名のメソッドを作ればよい
int a(int b) { return a((short)b); }
みたいな

830 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 19:47:26 ]
EJBってどうなの?業務で使ってる?

831 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 01:06:24 ]
test

832 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 01:48:17 ]
業務意外じゃEJBを使っているのみたことないな

833 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 07:46:28 ]
なんか業務でもあえてEJB避けてきたんで...
メッセージングとか一部機能のつまみ食い程度しか使ったことないから、
3.0はいい感じなのか実際に採用してる人たちの実感を聞きたいなと。



834 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 10:18:39 ]
業務システムでも短納期・低コストが求められているのだから、わざわざEJBでコストをあげる必要はないだろ

835 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 10:25:03 ]
EJBなんて学者のオナニーだから使わないほうがいい

836 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 15:36:51 ]
はじめまして、こんにちは
現在塗りつぶしを行うアプレットをアプリに書き換えています
が、なかなか上手くいきません
アプレット/アプリケーション共通プログラムという
www.asahi-net.or.jp/~dp8t-asm/java/tips/AppletApp.html
このサイトの通りに行っているはずなのですが、、、

間違っているところがあれば、アドバイスをお願いします

以下が私のソースです
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10131.txt
サイトの通りに、ExitWhenWindowClosingクラスとAppletFrameクラスは別に作ってあります

837 名前:デフォルトの名無しさん [2009/11/17(火) 15:47:43 ]
単純なキーボード入力を出力するプログラムを作成したのですが、特定の文字列を入れると文字化けして出力されてしまいます。
この問題の原因、または解決方法をご存知の方みえましたら教えていただけないでしょうか。

実行環境:windows vista / Eclipse 3.5.1 Galileo Windows 32bit ベース / Pleiades All in One 3.5.1.20090930

コード:
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println(br.readLine());
} catch (IOException e1) {
// TODO 自動生成された catch ブロック
e1.printStackTrace();
}
}
入力:

出力:
�?

838 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 16:46:00 ]
>>837
キーボードが日本語106キーで認識されて無いのかな。
「む」「ろ」「BackSpace」キー等には気をつけて。

解決策は・・・ドライバがどうなっているかくらいか・・・わかんね。
見当違いかもしれんが参考に。

839 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 17:05:10 ]
>>838
おお!ありがとうございます。
ドライバ確認してみます。


840 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 21:53:16 ]
将来的にはEJBが(実質的な意味で)本命のような気がするんだよね。
現状はまだ様子見しつつって感じのようですね。

841 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 21:56:48 ]
現状で既に活用できるってばさ。
Apache+Tomcatの時代なんて今は昔。
まあ私の周りの話だから他は知らんけど。

842 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 22:09:55 ]
EJB なんて 10 年前の流行キーワード。今も今後も誰も注目しねぇって。
使えるところで淡々と使われるだけ。

843 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 22:14:40 ]
うちの周りはTomcat(というかサーブレットコンテナメイン)ばかり。
分散+フェイルオーバーで高可用構成とかでも
業務フレームワーク作りこみで対応してるケースが多い。

EJB3.0はコンフィグ地獄じゃなくてよさそうなんだよね。
軽量コンテナとの境界もあいまいになってるわけで、
そうなると標準化プロセスを経ているEJBのメリットが生きてくるような気がする。



844 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 22:19:52 ]
スタンダードに載っとかないと保守で首を絞める。
HibernateよりJPAやiBatisを選択するのがいい。

845 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 22:26:28 ]
だよね。保守はともかく、いまさら新規でHibernateはありえない。
JPAは意識してるけど、使いやすさとパフォーマンスの点でS2JDBCに浮気してたりして。

846 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 23:06:12 ]
質問させてください
配列名を引数で与えるにはどうしたらいいのでしょうか。

static int[] mkArr(String arrName, int itemNum){
int[] arrName = new int[itemNum];
//このあとはarrName[0]〜[itemNum-1]の値をキーボードから
//入力させます
}
この段階で
重複ローカル変数 arrName,
と警告がでます(Eclipse使用です)。

型が String だとまずいのかもしれないかとも思いますが、見当もつきません。

※このメソッドはメインクラスに書く予定です。

レベルが低すぎて申し訳ありませんがよろしくご教示ください。
お願いいたします。

847 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 23:17:10 ]
引数でString arrNameを宣言してるのに
最初のステートメントでint[] arrNameを宣言してるやん。
質問のわかりにくさからして始めたばかりなんだろうけど。

848 名前:846 mailto:sage [2009/11/17(火) 23:54:30 ]
>>847
お答えありがとうございます。
お察しのとおり始めたばかりです。

↓こんな感じで呼び出すと

mkArr("arr1",3)
int[] arr1 = new int[3];

となって配列arr1が生成されるのかと思っているのですが
違うんですよね。。
ずっと考えてるのですがわかりません。
ここ読んどけっていうところがあったら、教えていただければ助かります。
よろしくおねがいします。

849 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 00:03:09 ]
酷すぎる

850 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 00:03:38 ]
宿題スレをおすすめする。
まず何をするプログラムなのかが分からない。

851 名前:846 mailto:sage [2009/11/18(水) 00:06:42 ]
>>849-850
スレ汚しすみませんでした。
宿題ではないので、もう少し考えてみます。

申し訳ありませんでした。

852 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 00:08:32 ]
お前ら厳しいなw

853 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 00:09:49 ]
プログラムの素人であるのは構わない。そういうスレだ。
だが質問の素人であってはいけない。



854 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 00:13:18 ]
分かりやすく伝えるって結構高度だと思うが

855 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 00:17:34 ]
>>846
自分も初心者なんですが、
static int[] mkArr(int itemNum){
int[] arr = new int[itemNum];
//入力
return arr;
}
メソッドをこんな感じにして

int[] arrName = mkArr(itemNum);
呼び出し側で、受け取ればいいのでは?
arrNameは受け取りたい配列名で。

たとえば、
String str = "arr";
int[] str = new int[5];
とやっても、arrという名前のint型の配列は
出来ないかとw

856 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 00:19:25 ]
ああ、呼び出し方がおかしいですね。
すいません。

857 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 00:35:34 ]
>>846
なかなか独創的なコードだけど、以前はどの言語をやってたの?

858 名前:デフォルトの名無しさん [2009/11/18(水) 01:27:56 ]
識別子に表情以上の物を求めるのが素人
識別子に_だけでプログラムするのが変態
識別子にg,o,t,oしか使わないでコーディングするのも変態

859 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:58:04 ]
識別子に$とか付けるのは宗教

860 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 02:35:54 ]
>>845が「新規でHibernateはありえない」って言ってるけど、なんで?
JPAやiBatisと比べてどの辺がありえないの?

861 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 03:47:43 ]
標準技術じゃないわりに複雑だからだろ。
JPAとの対比で語ってるからNativeAPIやらHQLでの話なんだろうけど。

862 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 11:50:27 ]
>>848
Javaとか初心者とか言って質問する前に、変数と関数というプログラムの基礎概念を勉強してこい

863 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 22:25:58 ]
JWebPaneっていつから使えるようになるんだろう



864 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 22:50:16 ]
JPAは当然ながらORM標準であることが利点。
ORMの業務適用要件は2.0の悲観的ロックサポートで満たしたと言ってよい。

iBatisはSQLをガリガリかけて、かつマッピングも楽ちんだから、
Java屋ではない外様がORMのメリットをすぐに享受できるところが良い。

本格的なORMは真の習得に三ヶ月かかると言われてるから、
標準 or 即効性の保守要件にHibernateは引っかからない。

865 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 01:41:20 ]
JSFを勉強し始めて半年ぐらいの若造です。
■.jspの記述

<h:dataTable var="list" value="#{bean.dataModel}">
<h:column>
<h:inputText value="#{list.text}"/>
</h:column>
 ・・・
</h:dataTable>

みたいなテーブルを表示して入力部を設け、ボタンを押したら値をテーブルの型式で取得したいのです。
bean.dataModelはListDataModelを返します。

beanのスコープはrequestです。
どのように値を取得するのが賢いのか教えて下さい。



866 名前:デフォルトの名無しさん [2009/11/19(木) 09:59:11 ]
JAXBでのバインディングって、setとget以外のメソッドが混ざっている
JavaBeans形式以外のオブジェクトでは出来ないのでしょうか?


867 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 12:36:47 ]
getter と聞くと、手がドリルの青い合体ロボットを想像してしまう僕は異常でしょうか?

868 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 16:24:49 ]
配列([])の中身を調べる文字知りませんか?

例えばstring[1]だとしたら1と読み取ってくれるやつです

869 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 16:26:27 ]
ねぇよ

870 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 18:12:31 ]
文字ってなんだよ

>string[1]だとしたら1
も曖昧で分からん。

871 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 18:59:39 ]
>>866
@XmlTransientでOK

@XmlAccessorType(XmlAccessType.FIELD)なら
マーシャリングしたくないフィールド(メンバ変数)を
transientにしとけばOK

872 名前:デフォルトの名無しさん [2009/11/19(木) 19:08:06 ]
というか、JAVAで配列使うな

873 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 20:01:30 ]
>>872
なんで?



874 名前:デフォルトの名無しさん [2009/11/19(木) 20:11:04 ]
List使った方がいろいろ操作出来る

875 名前:806 mailto:sage [2009/11/19(木) 20:13:27 ]
806のことも思い出してあげてください

>>873
javaには優秀なコレクションフレームワークが標準で装備されているので、配列ではなくそっち使おうぜ。
>>872はそういいたいのだと思う。
配列で十分だと思ったら、何でもかんでもコレクション使うことは推奨しない。


876 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 20:14:14 ]
配列は使うな云々って本があったなぁ

877 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 20:15:11 ]
配列を使うメリットはあまりない

878 名前:806 mailto:sage [2009/11/19(木) 20:19:30 ]
配列を使うメリットは、高速かつメモリ消費が最小であること。

ローカルなメソッドの内部処理に用いる場合は、配列もありだと俺は思う。

おさらいだけど
配列:速度良 メモリ小 操作ミス多
コレクション:速度どうかな メモリ最小とはいかない 操作簡単安全

879 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 20:27:45 ]
速度とかメモリとかにこだわる層はわざわざそういうこと言われなくてもわかってるはずだから、
とりあえず「ArrayList使っとけ」でおk

880 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 20:32:08 ]
質問です。
HttpURLConnectionを使ってhttp通信を行います。
yahoo!などのサイトで接続した結果、問題なく接続し、情報を取得する事が出来ましたが、
問題のサイトに接続したところjava.io.FileNotFoundExceptionで弾かれてしまいました。
該当URLはブラウザでアクセスしたところ問題なく表示出来ます。
(パスワードやログインを要求するようなサイトではありません)
恐らくサーバー側で何かを見ているのではないかと思うのですが、
サーバーがチェックしてそうな項目を教えては頂けないでしょうか。

現在設定しているRequestPropertyは
Host、User-Agent、Accept、Accept-Language、
Accept-Encoding、Accept-Charset、Keep-Alive、Connection
で、値はブラウザで該当URLの確認ができた時と同じ値をセットしています。

881 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 20:33:56 ]
LinkedListのメリットがよく分からない。
リストの半ばの挿入削除が速いって理屈は分かるが、
その場所に辿り付くまでは結局イテレートしてるわけで。

882 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 20:36:40 ]
404 や 503 じゃないのならプログラム上のミスで、相手サーバーじゃないんだろうな。

883 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 20:42:19 ]
>>880
お前モペ吉か?



884 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 20:45:43 ]
>>881
メリットはあんたが言ってる通りじゃねーかw

885 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 20:46:44 ]
ポインタ辿るだけだしなぁ。System.arraycopyで後ろ詰めるよりは速い。
でもgetFirstなどからして、stackとかqueueに特化した使い道が一番。

886 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 20:58:49 ]
LinkedListは参照の数珠繋ぎだから、要素の最初から最後まで順番にアクセスするなら
ArrayListよりも速いはず。逆に、要素の〜番目みたいなアクセスは破滅的に遅いと思う。
ランダムアクセスしない&削除と挿入が頻繁、ならむしろLinkeListの方が良いと思います。

ところで質問なのですが、
Javaで参照カウンタみたいな仕組みを実現したいのですが、なにか良い方法はないでしょうか。

887 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 21:01:58 ]
さっきから「メモリ効率」「速いだろう」「思います」とかばっかりだけど、それじゃいつまでも上達しないだろうな。

888 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 21:03:54 ]
>>886
staticな変数を持って、
コンストラクタ内でインクリメント
ファイナライズ内でデクリメント

いい方法ではないが、これしか思いつかなかった。

889 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 21:04:08 ]
>>882
404や503にはならないのですが
そのサイトではRequestPropertyを全て外すと403になります
またyahoo!などのサイトで接続した結果、問題なく接続し、情報を取得する事が出来ました

890 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 21:04:17 ]
>>886
でも実際試してみると ArrayList は LinkedList より結構速い

891 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 21:08:10 ]
>>887
メモリ効率は上達にはかかせないだろ。

892 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 21:08:21 ]
ArrayDequeueやConcurrentLinkedQueueがあるから尚更使い道が少なくなってきた。

893 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 21:12:27 ]
うお。なんだ。
Java1.4時代に迷い込んじまったw



894 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 21:14:09 ]
メ…メモリ効率だってよっwww

895 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 21:14:38 ]
Dequeueは6から、Queueは5からなんだが。

896 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 21:23:08 ]
>>894
おかしいと思う理由を書けよw
荒らしか?

897 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 21:28:54 ]
メモリ効率とか無駄のないアルゴリズムを考えられない奴っているんだよ。
コーディングする楽しみなんてないんだろうな。

898 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 21:33:20 ]
てかオブジェクト指向ってそういうもんだから構わんよ。
パフォーマンスの80%はソースコードの20%に依存するって奴だ。
裏を返せばソースコードの80%は保守性のが大事ってこと。

899 名前:886 mailto:sage [2009/11/19(木) 21:43:11 ]
>>888
レスありがとうございます。
その方法だと、そのクラスのインスタンスがいくつ存在するか、
ということがわかりますね。参照カウンタと近い気がするので参考にさせていただきます。

900 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 21:50:44 ]
メモリ効率を考えてコード書いて
数ヵ月後に、俺なんでこんなややこしいコード書いてんだ?
もっとeasyでいいやんって書き直している途中で
そういうコード書いてた理由を思い出す

revert

901 名前:デフォルトの名無しさん [2009/11/19(木) 21:54:04 ]
>>896
荒らすな鼻糞

902 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 22:02:42 ]
複雑なモデルを複雑なコードで実装してるうちは素人

903 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 22:48:25 ]
早く仕上げてボトルネックをテストしようぜ



904 名前:806 mailto:sage [2009/11/19(木) 22:51:41 ]
>>886 何するのかわからないけど、ウィークリファレンス(弱参照)とかの機能もあるんだぜ。

俺の質問って場違いなの?()涙

905 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 22:55:29 ]
JLayerMEでも使ったら>MP3

906 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 22:56:02 ]
俺も興味あるな。Javaで参照カウンタが必要ってどんな処理?

907 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 23:30:01 ]
>>904
弱参照と参照カウンタは関係ないだろ。

908 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 23:31:52 ]
おまえらって普通のプログラミングはちょっとはわかってるっぽいけどdrawLineとかdrawOvalはわかるか?

909 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 23:34:23 ]
>>908
知らないなら知らないって言えよw

910 名前:886 mailto:sage [2009/11/20(金) 00:06:24 ]
>>906
長い上に上手く説明できませんが、
あるサイトを参考に、IDなどを通じてグローバルに参照できるオブジェクト群を管理するクラスを作ろうとしています。
このクラスは、外部からの要求に応じてオブジェクトを生成し譲渡するのですが、その生成したオブジェクトは自身のフィールドに保持します。
そして次に同じ要求があった場合は、新たに生成せずに保持していた同じオブジェクトを渡します。
一つのオブジェクトを不特定多数の外部で共有するためです。
問題は、保持しているオブジェクトが管理クラス以外のどこからも参照されなくなった時は、それを削除せねばなりません。
そのタイミングを知るために参照カウンタが必要なのです。

>>904
弱参照は使ったことないのですが、上記のような場合でもGCしてくれるものなのでしょうか。
Reference関連は勉強不足で何もわかりません。その辺も調べてみます。

911 名前:デフォルトの名無しさん [2009/11/20(金) 00:15:02 ]
ある書籍のwait/notifyのメカニズムの問題で
正解が下記のようになってるんですが、
consumerメソッドでwaitの下の
isFlag=falseがどうしても理解できません。
ここでfalseを代入してしまうと
上のproduceでisFlag=trueでnotifyを呼びだし
waitを呼び起こしてもすぐにまたfalseになり
いつまで経ってもwhileから抜け出せないと思うんですが・・・
私の見解が間違っているんでしょうか?

class MySync{
boolean isFlag = false;
public synchronized void produce(){
isFlag = true;
notify();
}
public synchronized void consumer(){
while(!isFlag){
try{
wait();
isFlag = false;
}catch(Exception e){}
}
}
}


912 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 00:19:13 ]
>>910
昔、そういうの使ったことあるよ。

FacesContext.getCurrentInstace().getExternalContext()

の下にあるメソッドだったと思う。任意のクラスに対する、別クラスからのバインディングを取り扱う道具があるはず。

913 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 00:20:05 ]
>>910
なるほど・・・
シングルトンを強制しつつも、参照されなくなったらGCに回収させるのですね。



914 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 00:22:24 ]
なるほど。要はキャッシュの仕組みが作りたいわけね。

その用途ならソフト参照がいいかもね。
実際のところ弱参照は相応のライフサイクルが期待される
オブジェクトのキャッシュ方法としては適していない場合が多い。

www.ibm.com/developerworks/jp/java/library/j-refs/index.html
あたりを読んでみるとわかりやすいよ。

915 名前:デフォルトの名無しさん [2009/11/20(金) 00:25:57 ]
ウィークもいいけど、参照カウンタなんかCOMっぽくていいかもw
ほっといた方がよさそうだww

916 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 02:35:06 ]
いちいちaddRefとかもういやだお

917 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 02:41:51 ]
>>916
もしc/c++でもjvmでも、gcとかautoリソース解法とかの概念を使えるならそれをデストラクタに入れとくといいよw

918 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 06:37:05 ]
項目と値があるTableをjavaで扱う時、
CollectionInterfaceか配列どのような方法を使うのがいいのでしょうか?

Tableからの情報を使って、別のTableの中から同じ文字列を持つものを検索したいと考えています。
ArrayListの二次元配列で作っていたのですが、
うまくピンポイントの情報が取得できません。
Array.get(int )はObjectのため、ArrayListのように指定しての取得ができないように思われます。

まだまだ勉強不足で見当違いの事を書いているのかもしれませんが、
それも含めてご指摘ご意見頂ければと思います。

よろしくお願いします。

919 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 08:37:57 ]
>>918
HashMap を使わない理由は?

920 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 08:45:52 ]
なにこのデジャブ

921 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 11:47:18 ]
>>911
お前が正しい
そんな本は窓から投げ捨てろ

922 名前:デフォルトの名無しさん [2009/11/20(金) 14:09:16 ]
なんか、Javaの技術で面白ものってないですか?

面白いサイトとか本とか教えてくれるとありがたいっす。
今、経理やってるんだけど、2年くらいJavaやってました。

久しぶりにJavaやりたくなったんです。

よろしく><;

923 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 14:10:24 ]
iTextとかおすすめ
PDF作れる
WebならApache



924 名前:922 mailto:sage [2009/11/20(金) 14:21:01 ]
>>923
ありがとう。もう両方やったんです><;

J2EEの青い分厚い本でも今からかってこよっと・・あれなら、新しいEJBとか載ってそうだ。

925 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 17:10:57 ]
Web系ならWicketとか

926 名前:886 mailto:sage [2009/11/20(金) 20:01:26 ]
>>914
リンク先参考になりました。
有難うございます。

>>922
JOGLかProcessingはいかがでしょうか。
ゲームやプログラミングアートに興味があれば是非。

927 名前:デフォルトの名無しさん [2009/11/20(金) 20:06:54 ]
Javaの長所と短所を教えてください。

928 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 20:20:50 ]
長所:Write Once, Run Anyware.
短所:リッチクライアント周りでは↑が嘘になる

929 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 20:21:37 ]
Anywhere.だた。恥ずかし−

930 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 20:33:18 ]
長所
 ともかく色々なプラットフォームで動く
 マニアックでない素直なOO言語
 強い型付け
短所
 玉虫色器用貧乏GUI、SWTなんてネイティブ移植しなけりゃ動かないし
 強い型付け


931 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 20:39:31 ]
Map<String, ? extends MyInterface> map = new HashMap<String, ? extends MyInterface>();
これには閉口する。

var map = new HashMap<String, ? extends MyInterface>();
ってならんかな。提案レベルならすでにJSRにあるんだとは思うが。

932 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 20:40:55 ]
そんなあなたに、はいScala

933 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 20:47:47 ]
>>931
逆はjdk7からできるようになる予定だよ。

Map<String, ? extends MyInterface> map = new HashMap<>();



934 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 20:51:21 ]
>>933
なるほど。IDEとの連携を考えてもそっちのが柔軟か。

935 名前:806 mailto:sage [2009/11/20(金) 22:06:28 ]
>>905
ソースさっくりみたけど DLLたたいてるね。
携帯でMP3って意外と敷居高いな・・・

936 名前:デフォルトの名無しさん [2009/11/20(金) 22:12:47 ]
最新のJAVA2EEをインストールして暫くしたらパソコン起動するたびにコマンドプロンプトが起動しSUNのフォルダのdomain01内にログを作り出します。
サーバー?なのか不明なんですが、これ止めるには何処をどうしたら良いでしょうか。
よろしくお願いします。

937 名前:806 mailto:sage [2009/11/20(金) 22:13:08 ]
>>886
RMIとか使ってプロセス間通信でもしてるわけじゃないのかな?
単独の仮想マシン上で動いてる場合、参照されなくなったらGC対象になるのはご承知だろうし。

弱参照しているばあい、他の参照がないとGC対象になるってだけなので、今回の件には使うところはないかも。
ちょっと違うことを想定してしまったので、わすれてOK(弱参照


938 名前:806 mailto:sage [2009/11/20(金) 22:26:26 ]
長所と短所の話は 俺の好きな話題だったので・・・

長所
メモリ開放処理が自動なので簡単である。
そのためソースコードはCなどと比べると、とてもシンプルになり可読性がよい。
java専用高性能エディタが存在するため、生産性は高い(キリ
標準のライブラリがこれでもかってくらいそろってる。

短所
メモリ開放処理は自動だが、オブジェクトの開放契機などに注意を払わなくなるため。
イージーミスでメモリリークが発生する。
javaSE javaEE と javaMEは別物過ぎる、携帯電話などの端末でもSEで書いたものが動くことを期待する。



939 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 22:52:32 ]
JLayerMEがDLL叩く?
そんなもん叩いてないがMMAPIのフルセットが実装されてないとJLayerMEは動かないからMIDPベースでは無理。


940 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 22:55:54 ]
>>938
>>短所
>>メモリ開放処理は自動だが、オブジェクトの開放契機などに注意を払わなくなるため。
>>イージーミスでメモリリークが発生する。
あんまり見たことないけどね・・・
どんなの?

941 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 23:04:30 ]
独自に配列スタックを作ろうとして、popされた時にnullで掃除しない場合とかか?
しかしArrayDequeueとか適切なクラスがあるしなぁ。

942 名前:918 mailto:sage [2009/11/20(金) 23:24:26 ]
>>919
ありがとうございます。
ArrayListにHashMapを格納することで、解決できました。

943 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 23:28:20 ]
>>941
うん。そういう教科書とかに載ってそうなのはわかるんだが、
実装レベルのイージーミスで起こるメモリリークってどんなの?




944 名前:デフォルトの名無しさん [2009/11/21(土) 01:17:22 ]
ライブラリにポインタ渡す時はライブラリを信頼しきってるから
あとでしっぺ返しされると超こまる

945 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 01:23:54 ]
>>943
staticな変数にデカいコレクション突っ込んだまま放置してメモリを馬鹿食いするとか?
メモリリークというのは正しくないけど、症状はメモリリークに近いな。

946 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 01:53:48 ]
Tomcatのコネクタか何かがログをそんな感じでほったらかしにしてたってのがあったな

947 名前:806 mailto:sage [2009/11/21(土) 14:30:28 ]
イージーミスの話だけど
コレクションにぶち込みっぱなしで放置とか、そんなレベルの実装ね。
現実あったはなしだから、ソースレビューとかちゃんとやろうね


948 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 16:49:58 ]
JTableがクリックされた時に、選択されている行の情報を取得するにはどうすればいいのでしょうか?

949 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 17:20:07 ]
すみません、コンパイルできるんですが何も表示されません、助けてください
見にくいかと思いますが、お願いします
//<applet code="SnakeProg2.class" width="300" height="300"></applet>
import javax.swing.*; import java.awt.*; import java.awt.event.*;
public class SnakeProg2 extends JApplet implements KeyListener { int actiontype = 0, count = 0; int x[] = new int[99]; int y[] = new int[99];
public void init()
this.addKeyListener(this); this.setFocusable(true);
}
public void paint(Graphics g) {
super.paint(g);
x[count] = 0; y[count] = 0;
for (count = 1; count <= x.length; count++) {
switch (actiontype) { case 0: count--; break; case 1: x[count] = x[count-1] + 10; g.drawPolyline(x, y, count); break;
case 2: y[count] = y[count-1] + 10; g.drawPolyline(x, y, count); break;
case 3: x[count] = x[count-1] - 10; g.drawPolyline(x, y, count); break;
case 4: y[count] = y[count-1] - 10; g.drawPolyline(x, y, count); break; } } }
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
if(keyCode == KeyEvent.VK_RIGHT) {
if(x[count] == 300 || count == 100) {
actiontype = 0; } else {actiontype = 1;}
} else if(keyCode == KeyEvent.VK_DOWN) { if(y[count] == 300 || count == 100) { actiontype = 0; } else { actiontype = 2; }
} else if(keyCode == KeyEvent.VK_LEFT) { if(x[count] == 0 || count == 100) { actiontype = 0; } else { actiontype = 3; }
else if(keyCode == KeyEvent.VK_UP) { if(y[count] == 0 || count == 100) { actiontype = 0; } else { actiontype = 4; } } repaint(); }
public void keyTyped(KeyEvent e) {
public void keyReleased(KeyEvent e) { }}

950 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 17:33:59 ]
>>948
public void mouseClicked(MouseEvent e) {
int idx = tbl.rowAtPoint(e.getPoint());
}
あとはお好きに。

951 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 17:49:53 ]
>>948
JTableで文字列をクリックした場合だけセルを選択状態にする
ttp://terai.xrea.jp/Swing/CellAtPoint.html

MouseInputAdapter ma = new MouseInputAdapter() {
public void mousePressed(MouseEvent e) {
Point pt = e.getPoint();
int row = table.rowAtPoint(pt);

952 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 17:53:13 ]
>>949
不味い点が多すぎて。
とりあえず初期状態でpaint()が動くと、countでのforループの中でcount--して無限ループ。

953 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 17:57:00 ]
ん、踏んだか。次立ててくるね。スレ立てるのひさびさだな。



954 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:00:17 ]
次は

★★Java質問・相談スレッド134★★
pc12.2ch.net/test/read.cgi/tech/1258793926/


955 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:01:20 ]


956 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:05:44 ]


957 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:18:26 ]
>>949
わからん

958 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:20:52 ]
>>950-951
とんくす

959 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:27:50 ]
誰か2chにソース貼るとき整形するツール作れよ






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<235KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef