generics - Java template function -


i have function has return date other times datetime (joda-time).

static public <t extends object> t converttimeforserver(datetime tosave) {         datetime temp = null;         try {             temp = tosave.withzone(datetimezone.forid(getservertimezone()));         } catch (exception e) {         }          t toreturn = null;         if (toreturn.getclass().equals(temp)) {             return (t) temp;//return datetime         } else {             return (t) temp.todate();//return date         } } 

is right approach?
how use it?

like (timerhelper name of class):

    datetime t = timerhelper.<datetime>converttimeforserver(new datetime());     date t2 = timerhelper.<date>converttimeforserver(new datetime());     or     datetime t = (datetime)timerhelper.converttimeforserver(new datetime());     date t2 = (date)timerhelper.converttimeforserver(new datetime()); 

and how use function instead?

static public <t extends object> t current_moment(){         return converttimeforserver(new datetime());     } 

this 1 of tricky areas of generics. way work take class argument, method knows type of object create. can't know @ moment, because of type erasure.

alternatively (much simpler) return datetime , away generics here.

the client know wants, , if client wants date, can create 1 datetime far more trying do.

example:

client 1 wants datetime:

datetime result = service.converttimeforserver(dt); 

client 2 wants date:

date result = service.converttimeforserver(dt).todate(); 

Comments

Popular posts from this blog

powershell Start-Process exit code -1073741502 when used with Credential from a windows service environment -

twig - Using Twigbridge in a Laravel 5.1 Package -

c# - LINQ join Entities from HashSet's, Join vs Dictionary vs HashSet performance -