java - Call subclasses with static methods -


i need behavior of calling subclass methods statically. in example have group of messengers. need call once or twice in each implementation, not feel keeping variables of super interface since need have 1 method description all, or several obliged overwrite. , not static.

i want able messenger.messageerrormessage.send(param) or messenger.messagedefaultmessage, etc... need bind them superclass, still keep static behavior when calling subclass methods.

so i've done below: interface has public innerclasses call subclass static methods change in name being messageerrormessages (actual subclass) messageerrormessage (inner class) need change name plural name singular name.

  interface messenger{      public static final class messageerrormessage{         public static void send(message message){           messageerrormessages.send(message);         }      }      public static final class messagedefaultmessage{         public static void send(message message){            messagedefaultmessages.send(message);         }      }   } 

the actual implementation of interface messenger..

 messageerrorsmessages implements messenger {         public static void send(message message){         //..implementation of send         }     } 

the actual implementation of interface messenger..

   messagedefaultmessages  implements messenger{         public static void send(message message){         //..implementation of send         }     } 

this way don't have keep in mind 20 different types of messenger subclasses , needing keep variables. breaking design rules?

edit: want able write

messenger.messageexception.send(message, throwable); 

and @ same time

messenger.messagedefaultmessage.send(message); 

i want subclasses own unique behaviour , method decklarations still collected under messenger.

i'm not sure trying accomplish (i'm not sure understand question) seems want override static methods in subclasses can call method on instance , have delegate subclass method. not possible. static methods called on class call them on (note call static methods on class, not on instance. compilers/ides throw warning if try call static method on instance because can obscure class calling on).


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -