2016-06-17 4 views
-4

Я хочу, чтобы достичь общего метода Java, что он должен быть класс передачи объектом в параметре методаЯ хочу реализовать универсальный метод Java, проходящий аргумент как объект класса и определяющий параметр метода как класс <T> или тип Т

Например:

Мой метод определения Здесь в другом классе проекта

public String getRtbAd(HttpServletRequest request, T userProfileClass, 
      List<String> systemControlDetails, T wurflDataGenericClass,String redisConnectionUrl, String dimension, Short rtbTimeOut) 
{ 

//My Bussiness logic 

} 

Здесь actully я вызываю метод из другого класса проекта

public String getRtbAd(request, userProfileObject, 
      systemControlDetails, wurflDataGenericObject,redisConnectionUrl, dimension, rtbTimeOut) 
+1

В чем проблема? Как выглядит определение вашего класса? – tak3shi

+0

, если только ваш метод использует общий тип, введите перед типом возврата в вашей сигнатуре метода. Можно ли указать, в чем проблема? –

+0

Проблема: я не получаю экземпляр userProfileObject и wurflDataGenericObject во время выполнения – Anand

ответ

0
  1. Прежде всего, если Т и Т userProfileClass wurflDataGenericClass различные типы, то они должны быть, имеющие различные литералов как их типа. Они должны упоминаться как T1 userProfileClass и T2 wurflDataGenericClass.

  2. Класс, в котором этот метод упоминается должен принять эти типы, как показано ниже: -

public class myClass {   
     public String getRtbAd(HttpServletRequest request, T1 userProfileClass, List systemControlDetails, T2 wurflDataGenericClass,String redisConnectionUrl, String dimension, Short rtbTimeOut){  
      }   
     }   
     myClass a = new myClass(); 
     String str = a.getRtbAd();

=========== Я действительно не знаю, почему это окно комментариев не отображает мой общий код правильно. Не отображаются.

  1. < MyCLASS Т1, Т2>

  2. < MyCLASS ProfileClassName, DataGenericClassName> а = новые MyCLASS < ProfileClassName, DataGenericClassName>();

+0

Да, точно я попытаюсь использовать этот подход. спасибо – Anand