interface - Java Co-Variance -


for project want provide generic interface resemble workflow, like

public interface iworkflow {     public void start();     public void dowork();     public void end(); } 

for that, have lots of implementation, like

public class coffeeworkflow implements iworkflow   {     public void start()      {         // setup coffee         // prepare dishes         // ...     }      public void dowork()     {          // drink coffee     }      public void end()     {           // wash dishes     } } 

now want provide more information functions, like

public interface iworkflowstartargs {} 

and especially:

public class coffeeworkflowstartargs implements iworkflowargs 

to give method

public interface iworkflow {     public void start(iworkflowstartargs args);     public void dowork();     public void end(); } 

respectivly:

public class coffeeworkflow implements iworkflow   {     public void start(coffeeworkflowstartargs args)      {     } } 

but not work, not recognized implementation of interface.

should pass in iworkflowstartargs , cast inside?

is there better solution that?

you can define interface like

interface iworkflow<t extends iworkflowstartargs> {     public void start(t args);     public void dowork();     public void end(); } 

and when create coffeeworkflow can create like

class coffeeworkflow implements iworkflow<coffeeworkflowstartargs> {      @override     public void start(coffeeworkflowstartargs args) {         // todo auto-generated method stub      }      @override     public void dowork() {         // todo auto-generated method stub      }      @override     public void end() {         // todo auto-generated method stub      } } 

Comments

Popular posts from this blog

ios - UICollectionView Self Sizing Cells with Auto Layout -

node.js - ldapjs - write after end error -

DOM Manipulation in Wordpress (and elsewhere) using php -