Java: Passing generic type to an another generic type class -


main.java : main class creating object of test of generic type test.java: generic class creating object of wrapper class of generic type wrapper.java: generic class of type passing string,long type creating test.java object . , passing long type creating object of wrapper class. main.java:

    public class mainclass {    test<string,long> test;     mainclass()    {        test = new test<string,long>(){};       }    public static void main(string[] arr)    {        mainclass m = new mainclass();    }   } 

test.java

     public class test<t,u>      {      wrapper<u> mywrapper;     test()     {       type type = this.getclass().getgenericsuperclass();       system.out.println("type: " + type.tostring());        type type1 = ((parameterizedtype)this.getclass().getgenericsuperclass()).getactualtypearguments()[0];       system.out.println("type1: " + type1.getclass().getname());         type[] types = ((parameterizedtype)type).getactualtypearguments();        (int = 0; < types.length; i++) {       system.out.println("types[" + + "]: " + types[i].tostring());       }       mywrapper = new wrapper<u>(){};   } } 

wrapper.java

 public class wrapper<u> {   wrapper()   {       type type = this.getclass().getgenericsuperclass();       system.out.println("type: " + type.tostring());        type type1 = ((parameterizedtype)this.getclass().getgenericsuperclass()).getactualtypearguments()[0];       system.out.println("type1: " + type1.getclass().getname());         type[] types = ((parameterizedtype)type).getactualtypearguments();        (int = 0; < types.length; i++) {       system.out.println("types[" + + "]: " + types[i].tostring());       }   } } 

and after executing program getting output as
type: test type1: java.lang.class types[0]: class java.lang.string types[1]: class java.lang.long type: wrapper *type1: sun.reflect.generics.reflectiveobjects.typevariableimpl types[0]: u*

so output can see wrapper class getting type u instead of long can see in test.java.

hope following program clarify doubt.

public class vmgeneric<a> {     private objvariable;      public vmgeneric(a localvariable)     {         objvariable = localvariable;     }      public string getnameofgenerictype()     {         return objvariable.getclass().getcanonicalname();     }      public static void main(string[] args)     {         vmgeneric<string> o1 = new vmgeneric<>("");         vmgeneric<object> o2 = new vmgeneric<>(new object());          system.out.println(o1.getnameofgenerictype());         system.out.println(o2.getnameofgenerictype());     } } 

Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -