バインドするコードの修正

View: New views
3 Messages — Rating Filter:   Alert me  

バインドするコードの修正

by ikari-ml :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

碇と申します

http://www.02.246.ne.jp/~torutk/swetools/netbeans/netbeans60_desktopapp.html
こちらを参考に
NetBeans6.1を使用してJTableに自作beanをバインドしているのですが
コンパイル時自動生成されたコードが無検査呼び出しと出てしまいます
これを訂正したいのですが、コード自体も変更できないためどうしたものかと
悩んでいます

どなたかよい方法がありましたら教えてください

以上よろしくお願いします

--
碇 永志
 <ikari-ml@...>


---------------------------------------------------------------------
To unsubscribe, e-mail: nbdiscuss_ja-unsubscribe@...
For additional commands, e-mail: nbdiscuss_ja-help@...


Re: バインドするコードの修正

by TAKAHASHI,Toru :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

こんにちは、碇さん。 高橋(徹)です。

> http://www.02.246.ne.jp/~torutk/swetools/netbeans/netbeans60_desktopapp.html
> こちらを参考に
> NetBeans6.1を使用してJTableに自作beanをバインドしているのですが
> コンパイル時自動生成されたコードが無検査呼び出しと出てしまいます
> これを訂正したいのですが、コード自体も変更できないためどうしたものかと
> 悩んでいます

ツールが生成するコードなので、コンパイル時のunchecked警告は気に留めて
いませんでした。コンパイル時にunchecked警告が出る仕組みを少し追って
みます。

beansbindingのELPropertyクラスはGenericsクラスとして定義されています。
  class ELProperty<S,V>
一方、NetBeansの生成するコードは、GenericsクラスであるELPropertyクラスの
型パラメータに型変数を指定せず、
  ELProperty ep = ELProperty.create("${mylist}");
のように(*1)raw typeとして記述しています。

*1) 実際に生成されるコードを省略して引用

このELPropertyインスタンスを使用している一例にJTableBindingクラスの
addColumnBindingメソッドがありますが、このメソッドは引数にProperty<E, ?>
型を取ると定義されています。
ELPropertyはPropertyのサブクラスですが、raw typeで使用しているため、
コンパイル時に警告(unchecked)「未チェックまたは安全ではありません」が
生じます。

コンパイルオプションに-Xlint:uncheckedを加えれば、「無検査メソッド
呼び出し」のような警告が生じます。

BeansbindingのAPIを詳しく調査していないため、上記をどう修正すれば
Generics的に正しいコードになるかは現時点では分かりません。
# Beansbindingは、かなりGenericsなAPIですね。一方SwingやJavaBeansは
# まったく非GenericsなAPIなので、両者がうまくすり合うか少々疑問に
# 感じます。

このunchecked警告を解消するには、
(1) NetBeansの生成するコードがGenerics対応となるようNetBeansを修正する
(2) NetBeansの生成したコードを修正してGenerics対応とする
(3) BeansbindingのAPIでGenericsでないものを提供する
(4) @SuppressWarnings("unchecked")を、NetBeansが生成するコード
 void initComponents() {...} の直前に記述する
といった対応が考えられます。
(1)は手に余る、(2)はGUIデザイナーが使えなくなる、(3)はJSRで仕様策定
されたものの変更なのでそれなりのプロセスが発生する、
といったところで現実的なのは(4)でしょうか。


---------------------------------------------------------------------
To unsubscribe, e-mail: nbdiscuss_ja-unsubscribe@...
For additional commands, e-mail: nbdiscuss_ja-help@...


Re: バインドするコードの修正

by ikari-ml :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

こんにちは

現状簡単に取れる対策として(4)の方法をとることにしました
無検査呼び出しでも特に問題とはならないのですが、コンパイル時に
鬱陶しいのを見なくて済むので助かりました

ありがとうございました

On Tue, 15 Apr 2008 10:16:58 +0900
"TAKAHASHI,Toru" <torutk@...> 様wrote:

>こんにちは、碇さん。 高橋(徹)です。
>

>このunchecked警告を解消するには、
>(1) NetBeansの生成するコードがGenerics対応となるようNetBeansを修正する
>(2) NetBeansの生成したコードを修正してGenerics対応とする
>(3) BeansbindingのAPIでGenericsでないものを提供する
>(4) @SuppressWarnings("unchecked")を、NetBeansが生成するコード
> void initComponents() {...} の直前に記述する
>といった対応が考えられます。
>(1)は手に余る、(2)はGUIデザイナーが使えなくなる、(3)はJSRで仕様策定
>されたものの変更なのでそれなりのプロセスが発生する、
>といったところで現実的なのは(4)でしょうか。
>

--
碇 永志
 <ikari-ml@...>


---------------------------------------------------------------------
To unsubscribe, e-mail: nbdiscuss_ja-unsubscribe@...
For additional commands, e-mail: nbdiscuss_ja-help@...