- PR -

同形式クラスのキャスト

投稿者投稿内容
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-03-12 08:59
ちょっと、やりたいことを理解できているかわかりませんが、Map で保持しておくというのはどうでしょう?

public String getValue(key);
public void setValue(key,value);

みたいな感じで。
あとはアクセサメソッドはなんか適当にツールをこさえて生成させるか、IDEに手伝ってもらうとか。
これ↓なんかもしかしたら参考になるかもしれません。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=17812&forum=12

[ メッセージ編集済み 編集者: インギ 編集日時 2005-03-12 09:01 ]
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-03-12 12:16
引用:

金太郎さんの書き込み (2005-03-12 08:49) より:
takamaroさん>
解答ありがとうございます。

インスタンス変数が1個や2個だった場合アクセッサメソッドを使用してやればいいと思っていたのですが、LABELクラスには200個近くインスタンス変数を持たせたいと思っています。

そうするといちいちアクセッサメソッドを書くのは現実的ではないと思い、
このようなオーバーライドと同様の動きを期待するコードを書いてしまいました、、、。

もしよろしければなにかいい方法はないでしょうか。
アドバイスいただけないでしょうか。


まず、インスタンス変数を200個持つクラス、というのが尋常ではないです。
設計が間違っている可能性が高いので、LABELクラスに何をさせたいのか書いてみてはどうでしょうか。
シュン
ぬし
会議室デビュー日: 2004/01/06
投稿数: 328
お住まい・勤務地: 東京都
投稿日時: 2005-03-12 12:21
横から失礼します。

お話の流れを見ていると、
java.util.ResourceBundleの機能に類するものを自作されようとして
苦労している、というように見受けられるのですが、いかがでしょうか。

ロケールに応じてメッセージリソースを動的に変換したい場合には、
ResourceBundleを使用するのが一番簡単だとおもいますよ。
JRE自身もこれを使って国際化(同じランタイムなのに、日本語のOS上では
自動的に日本語のメッセージが出たりしますよね?あれのことです。)され
ています。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-03-12 13:20
クラスでResourceBundle見たいな事を行うのであれば、
java.util.ListResourceBundleがお勧めです。
Kira
ぬし
会議室デビュー日: 2004/10/30
投稿数: 252
投稿日時: 2005-03-12 21:54
みなさんご解答ありがとうございます。
ukさん、インギさん>
LABELクラスでやりたいことは
あるシステムのポータルサイトで日本語か英語を選んでもらい、
その言語に応じたJSPのHPを表示しようと思っています。

で、それぞれの言語ごとにJSPファイルを作成するのも手間だと思い、
言葉部分のみ、LABEL.LANG1,LABEL.LANG2,LABEL.LANG3....
のようにLABELクラスで宣言されたインスタンス変数を使用することで対応しようと考えたのです。

====================================================
日本語版

<table>
<tr>
<td>
名前
</td>
<td>
   住所
</td>
</tr>


英語版
<table>
<tr>
<td>
NAME
</td>
<td>
   ADDRESS
</td>
</tr>


上のようにそれぞれ作らずに基となるファイルを1つのみ作成して
文字を埋め込む。


<table>
<tr>
<td>
<%=LABEL.LANG1%>
</td>
<td>
<%=LABEL.LANG2%>
</td>
</tr>


====================================================

シュンさん、かつのりさん>
ResourceBundleやListResourceBundleのクラスは使用したことが
ないので、調べてみます。

スキルアップ/キャリアアップ(JOB@IT)