fork download
  1. class GenericClass<T> {
  2.  
  3. public T method1(T obj, Class<T> clazz) {
  4. System.out.println(obj);
  5. return obj;
  6. }
  7.  
  8. public <U extends T> U method2(U obj, Class<U> clazz) {
  9. System.out.println(obj);
  10. return obj;
  11. }
  12. }
  13.  
  14. class Test extends GenericClass<SuperClass> {
  15.  
  16. public SuperClass printMethod1() {
  17. SuperClass sClass = new SuperClass();
  18. sClass.setName("name");
  19. sClass.setEmail("email");
  20. sClass.setAddress("Address");
  21. return this.method1(sClass, SuperClass.class);
  22. }
  23.  
  24. public SubClass printMethod2() {
  25. SubClass subClass = new SubClass();
  26. subClass.setName("testName");
  27. subClass.setEmail("testEmail");
  28. subClass.setAddress("testAddress");
  29. subClass.setName2("name2");
  30. return this.method2(subClass, SubClass.class);
  31. }
  32. }
  33.  
  34. class SuperClass {
  35.  
  36. private String name;
  37. private String email;
  38. private String address;
  39.  
  40. public String getName() {
  41. return this.name;
  42. }
  43. public void setName(String name_p) {
  44. this.name = name_p;
  45. }
  46. public String getEmail() {
  47. return this.email;
  48. }
  49. public void setEmail(String email_p) {
  50. this.email = email_p;
  51. }
  52. public String getAddress() {
  53. return this.address;
  54. }
  55. public void setAddress(String address_p) {
  56. this.address = address_p;
  57. }
  58. }
  59.  
  60. class SubClass extends SuperClass {
  61.  
  62. private String name2;
  63.  
  64. public String getName2() {
  65. return this.name2;
  66. }
  67.  
  68. public void setName2(String name2_p) {
  69. this.name2 = name2_p;
  70. }
  71.  
  72. }
  73.  
  74. class Main { public static void main(String[] args) {} }
Success #stdin #stdout 0.1s 320512KB
stdin
Standard input is empty
stdout
Standard output is empty