Yes your code:
class ValueWrapper<T>{
      private T value;
      public void setValue(T value){
              this.value = value;
      }
      public T getValue() {
              return this.value;
      }
}

Actually looks like this to the JRE (I'm pretty sure):
class ValueWrapper{
      private Object value;
      public void setValue(Object value){
              this.value = value;
      }
      public Object getValue() {
              return this.value;
      }
}

Only the compiler knows what type of object your code wants.


On 12/8/06, Jeff Bischoff <[EMAIL PROTECTED]> wrote:
Pesia,

Last month Daniel had a problem using generic type also. Andrew had some
thoughts on why this occurs, which you can read here [1] in the message
thread. Or use TinyURL[2] if [1] doesn't work.

[1]
http://www.nabble.com/Generics-in-%3Cfunction-signature%3E-for-custom-EL-function-tf2605810.html#a7279158
[2] http://tinyurl.com/ycf9or

Regards,

Jeff Bischoff
Kenneth L Kurz & Associates, Inc.

Pesia wrote:
> Hi!
> Have anyone tried to use JSF with generic type?
> Here is the example:
>
> class SessionBean{
>        private ValueWrapper<Integer> testIntegerWrapper = new
> DBValueWrapper<Integer>();
>        private Integer testInteger2 = new Integer(7);
>
>         public SessionBean(){
>           this.testInteger.setValue(newInteger(6));
>         }
>       public ValueWrapper<Integer> getVal(){
>               return testIntegerWrapper;
>       }
>       public Integer getVal2()
>       {
>               return this.testInteger2;
>       }
>       public void setVal2(Integer iii)
>       {
>               this.testInteger2 = iii;
>       }
> }
> class ValueWrapper<T>{
>       private T value;
>       public void setValue(T value){
>               this.value = value;
>       }
>       public T getValue() {
>               return this.value;
>       }
> }
> in the jsp file (form):
>       <h:inputText value="#{sb.val.value}"/>
>       <h:inputText value="#{sb.val2}"/>
>
> After submiting the form testInteger2 is converted correctly to Integer
> but Integer inside value wrapper is set as String (no convertion done)
> There is also no any error/exception, it looks like
> ValueWrapper<Integer> has been replaced by ValueWrapper<String> !!!
>
> I set a breakpoint in ValueWrapper.setValue on the line this.value = value;
> and before execution of this line I have value type of Integer but after
> value is type of String (I got "6" instead of 6)!
>
> (actually I have array of ValueWrappers
> created with different T types - but all of them are replaced with String
> values
> in Update Model phase).
>
> Can anybody tell me what am I doing wrong here? Do ou have any ideas?
> Or mayby my conception is totally wrong?
>
>
>
>
>
>
>
>



Reply via email to