[表示 : 全て 最新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/

692 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 22:25:12 ]
その文は最初からありましたので

693 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 22:53:24 ]
ttp://www.open-tec.info/modules/download/index.php?cid=1
こちらのサイトのWindows版を入手したものの
使い方が分からずにいます。
java実行環境があれば実行できるようですが、
>>3のリンク先
ttp://www.java.com/ja
からjavaをインストールしましたが、どのように使うのか分かりません。
現在インストールしているのはJava Version6 Update 17です。

根本的なことが理解できていないような気がしますが
どなたかご教示下さい。

694 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 23:11:54 ]
ここはプログラミングの板であってソフト板じゃない

695 名前:687 mailto:sage [2009/11/09(月) 23:14:32 ]
括弧にtrueを入れてみたところ、白にはなりましたが黒にはなりませんでした。
ttp://www.dotup.org/uploda/www.dotup.org346945.jpg
どうか教えてくださいませんか。

696 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 23:22:59 ]
質問なのですが三つの座標が一直線に並んでいるか判定するにはどうすればよいでしょうか

697 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 23:26:57 ]
面倒なら目視すればいいんじゃないんでしょうか?

698 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 23:37:05 ]
>>696
点A,B,Cとして、二点間A-B,A-Cの傾斜を求めて一致するか判定。なお正負には注意。

699 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 23:39:27 ]
>>695
>>690に書いてある通り、クラスを2つ作ればいいだけの話だと思うんだけど
IDEを使わないで書いたコードなので、たぶんタイプミスがあると思う↓

rb1.addActionListener(new RB1ActionListener());
rb2.addActionListener(new RB2ActionListener());

private class RB1ActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
/* 白の時したい処理を書く */
}}

private class RB2ActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
/* 黒の時したい処理を書く */
}}

700 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 23:54:58 ]
教えていただいてて申し訳ないですが、さっぱり分からないのでtrueのまま提出することにします。



701 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 00:08:54 ]
>>700

trueのかわりに「rb1.isSelected()」って書いとけ!

702 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 00:15:08 ]
あきらめろ

703 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 01:16:14 ]
理屈が分からなくても動きさえすれば無問題


そんなふうに考えていた時期が俺にもありました

704 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 03:41:49 ]
>>701
激烈之謝謝!

705 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 10:16:20 ]
JEditorPaneにHTMLを読み込んだ後に、HTMLを追加できないですかね?
<html><body>
<!-- HogeHogeな内容 -->
<!-- ここに新しく追加 -->
</body></html>

706 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 16:39:23 ]
Faceltesのタグファイルについてです。

// タグファイル
<ui:composition><f:convertDateTime timeZone="JST"/></ui:composition>

// 使用側
...
<my:convertDateTime dateStyle="full" />
...

のように元のタグ(f:convertDateTime)を利用してカスタムタグ(my:convertDateTime)を作る場合、カスタムタグ
の属性値を委譲先のタグの属性に渡すにはどうやると良いでしょうか?


上の例ですと

<ui:composition><f:convertDateTime dateStyle=#{dateStyle} timeZone="JST"/></ui:composition>

とすれば可能ですが#{dateStyle}が空の場合に問題となります。

707 名前:705 mailto:sage [2009/11/10(火) 19:03:34 ]
自分で解決してしまいました
HTMLEditorKitの使い方を間違えていたようですorz

708 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 01:32:05 ]
コレクションワークフレームについて質問です。
現在「Javaの道」で勉強中なのですが、
ttp://www.javaroad.jp/java_collection2.htm
上記URLの例1の中で下記1.のような記述があります。
これは下記2.と同じ意味なのでしょうか。
2.でもエラーはでませんでした。
addメソッドの中に new ** というように記述するのを初めてみたもので。
メモリ確保やニュアンスがちがうのでしょうか。

1.(Javaの道 記載コード
void addhead(List exList) {
for (int i = 0; i < 10000; i++) {
exList.add(0, new Integer(i));
}
}

2.(自分で書き換えたコード
void addhead(List exList) {
for (int i = 0; i < 10000; i++) {
Integer it = new Integer(i);
exList.add(0, it);
}
}

709 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 10:44:54 ]
一緒です
System.out.println(123 + 456);

int x = 123 + 456;
System.out.println(x);
が一緒なのと同じ理屈

710 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 22:03:58 ]
>>708
こっちは同じコードだけど

>>709
こっちは最適化で変わるんじゃ・・



711 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 00:59:15 ]
>>708
一旦変数に参照させてから使わないといけない、という決まりは無い。
String s = new SimpleDateFormat("yyyy/MM/dd").format(new Date());
こういうのもあり。

712 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 07:08:19 ]
ダブルバッファリングのことについて質問です
「Swing ではJRootPaneとそのコンテンツペインそれからJPanelクラスがダブルバッファリングを有効にしています」
というような記述を見つけたのですが、JPanel上に描画を行うならダブルバッファリングを行う必要はないのでしょうか

一般公開されてるソースを参考にJAVAでゲーム作成の勉強をしているのですが、
JPanelを使っているのにダブルバッファリングを使っていてちょっと混乱しています。

713 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 10:14:57 ]
そのソースとやらがアクティブレンダリングやってるなら必要。やってないなら不要。

714 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 19:39:25 ]
自分で図形が動いていくプログラムを書いて、表示が乱れるかどうかやってみりゃいいんじゃね。

715 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 19:46:47 ]
C++ 使いです、C++ では、コンストラクタで例外を投げないというのがセオリーなのですが
java も同様に考えていいでしょうか?

716 名前:712 mailto:sage [2009/11/12(木) 20:04:39 ]
>>713
返答ありがとうございます。
アクティブレンダリング(自前の描画メソッド?)が必須なときがいまいち分かってないのですが、もう少し調べてみます。
>>714
返答ありがとうございます。
自分でも色々実験して検証してみます。

717 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 20:14:52 ]
>>715
Java では普通に例外を投げる。

718 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 20:47:27 ]
そもそもリークするからとか言い出すC++厨が頭沸いてる。
コンストラクタで引っかかるようなモン、処理継続させたって無駄じゃね?

719 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 21:12:54 ]
>>715 です
>>717
郷に入らずんば、郷に従え として、例外を投げても後始末してくれるという具合に考えます。
>>718
あまりにも思考が短絡的ですね。

720 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 22:03:04 ]
ふーん、
・コンストラクタに置くしかなくて、
・でもエラーが起きても処理を継続させないといけない
って状況って何?



721 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 22:51:00 ]
好きにしろよ
同意を求める為だけに質問するフリをするな

722 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 23:19:34 ]
質問じゃねーよ、当てこすってるんだよ。
C++のローカル神話持ち込んできた癖に、そっちこそ好きにしろやww

723 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 23:37:33 ]
分かると思って安価入れなかったんだけど、勘違い君に噛み付かれてるなあ
721は719向けね

724 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 23:39:59 ]
相手が何でも察すると思うな。
きちんとドキュメントにしたまえ。

725 名前:708 mailto:sage [2009/11/12(木) 23:55:00 ]
>>709, >>710, >>711
ご回答ありがとうございます。

>>711 これはすごいw。なんて複雑怪奇なんだ。
でも、行数減らしてかけるからスッキリしますね。


726 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 23:59:39 ]
どこかのコンストラクタでエラーが起きただけでプログラム停止できれば楽だろうねぇ。

727 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 00:03:10 ]
止めたくなければ上位のメソッドでキャッチすりゃいいだけだよ
どこまで頭悪いんだ

728 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 00:04:46 ]
むしろなんでC++はコンストラクタで例外投げないの?
コレクションからコレクション作るときnull許可しないなら普通に投げないか?

729 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 00:08:42 ]
C++ コンストラクタ 例外でググるとそんなのは迷信だってサイトが大量に出てきて笑えるよ
時代遅れの妄言だな

730 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 00:35:35 ]
>>727
>>720




731 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 00:41:16 ]
>>725
え゛? 複雑? あー、でもJavaじゃメソッドチェインはあんまやらないから、見慣れない人がいるのもしゃーないのか。
ライブラリが「void返すくらいならthis返せ」って思想だったらよかったのに。

732 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 02:07:25 ]
>>727
たぶん、new した所が普通に上位のメソッドだという考えになっていないんだろうね。
C++ だとローカル変数を置くだけでオブジェクトが生成されちゃうこともあって。


733 名前:質問者 [2009/11/13(金) 08:48:30 ]
1. Java1.6の、型を限定したListの作り方を教えてください。
2. inport java.util.List;として、他の場所ではList型が使えているのに、
 new List(); が、「型Listのインスタンスを生成できません。」とコンパイルエラーになります。
理由に心当たりがありましたらご教授ください。

734 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 09:17:02 ]
Listは実装じゃなくてインタフェースだから
List型の変数は宣言できても実体は作れない
実体はLinkedList<T>やArrayList<T>や自分で作った実装のあるクラスでないといけない
List<?> list = new ArrayList<?>();
とか

735 名前:733 [2009/11/13(金) 09:50:48 ]
>>734
ありがとうございました。

736 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 10:34:51 ]
エラーでてるのに処理続けてもなあ。
エラー出ない様に対処してから再試行するべき。

737 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 10:52:08 ]
勘違い君は、>>727だけでなく>>732もなのか。
>>726では「キャッチしなくていいなら楽だ」って意味なのに、>>727で「キャッチすりゃいい」なんてレス
入れるのは勘違いも甚だしい。

また、>>718>>720の脈絡からすれば「コンストラクタでエラーならプロセス停止するべき」って言ってる
に等しい。
リークが問題になるのはプロセスを継続する場合なんだからな。
「処理」って「エラーになったクラスの処理」だったなんて寝ぼけたこと言うのかもしれんが。


738 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 12:20:09 ]
578 名前: デフォルトの名無しさん [sage] 投稿日: 2009/11/13(金) 12:00:40
HTTPは無理しすぎだからな。
本来は閲覧専用のプロトコルだったはずだ。

いつの間にか書き込みができるようになったり、
個人識別ができるようになったり、
pushもできるようになったり。

739 名前:732 mailto:sage [2009/11/13(金) 12:22:46 ]
>>737
>>737 は、>>727 がどのレスに対するレスなのかを勘違いしていると思われる。

740 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 12:36:53 ]
アンカー付けようねってことだねwww



741 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 13:33:09 ]
Javaで正規表現を使うにはどうしたらいいでしょうか?
また、Javaの文字(char)のユニコード値を得る(int)コードはどうしたらいいでしょうか?

742 名前:デフォルトの名無しさん [2009/11/13(金) 13:33:50 ]
間違えてsageてしまったのでageます

743 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 13:37:26 ]
正規表現はPatternクラス
charはキャストすればintに入る

744 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 13:39:48 ]
間違えた
「キャストしなくても」

745 名前:デフォルトの名無しさん [2009/11/13(金) 13:44:32 ]
>>743(名無しさん)
ありがとう

746 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 19:49:29 ]
Hibernateについて質問させてください。

複数クラスとテーブルのマッピングSQLを作成するにあたり、
以下の方法では取得できています。

@itより抜粋
Query sqlQuery = session.createSQLQuery(
" select {mem.*},{wg.*} from member {mem} join workgroup {wg} “ +
“ on {mem}.groupno = {wg}.groupno", new String[] { "mem","wg"},
new Class[] {Member.class,WorkGroup.class});
List list =sqlQuery.list();
for (int i = 0; i < list.size(); i++) {
Object[] items = (Object[]) list.get(i);
Member member = (Member)items[0];
WorkGroup group = (WorkGroup)items[1];
System.out.println(
member.getNo() + ":"
+ member.getName() + ";group:"
+ group.getGroupname()
);
}
session.close();

質問に入りますが、全列を使用するわけではないので、取得列名を絞り込むこと
は可能でしょうか。絞込みによる性能向上を期待しています。

どなたかお分かりになる方の助言をお待ちしています。
よろしくお願いいたします。

747 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 20:01:07 ]
質問します。
java で、ファイルに書き込まれている内容の比較をしたいのですが、そのようなメッソッドは無いでしょうか?

748 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 20:11:55 ]
Javaでやる必要があんのけ?

749 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 20:14:29 ]
javaでやれといわれたので。

750 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 20:23:00 ]
そのようなメッソッドはありません
普通にファイルを読み込んでから普通に内容を比較してください



751 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 20:27:47 ]
黒魔法メッソッド!!!

752 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 20:38:16 ]
>>747
MappedByteBuffer#equals()でも使うのがお手軽じゃない?
使ったこと無いけど。

753 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 23:34:26 ]
pc12.2ch.net/test/read.cgi/tech/1248012902/
★★ Java の宿題ここで答えます Part 68 ★★

754 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 23:51:03 ]
質問させてください。

現在Swingで、コンボボックスを画像表示にし、
そこで選択された画像を、フレーム中央に表示させるプログラムを作っています。
ところが、getSelectedItemの設定で行き詰ってしまいました。
どなたかアイディアをお貸しいただければ幸いです。

ちなみに現在のソースは以下のようになっています。
色々いじくったので可笑しなことになっているかもしれません。
rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/830.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をクリックするだけで起動する感じが理想なので
別の言語あたってみます






[ 続きを読む ] / [ 携帯版 ]

前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