Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. static interface Dao<I extends ResourceId<?>, R extends Resource<I>> {
  2. R findById(I id);
  3.  
  4. void save(R u);
  5. }
  6.  
  7. static class UserDao implements Dao<UserId, User> {
  8. public User findById(UserId id) { return null; }
  9.  
  10. public void save(User u) {}
  11. }
  12.  
  13. static interface Resource<I extends ResourceId<?>> {
  14. I id();
  15. }
  16.  
  17. public class NestedGenerics {
  18.  
  19. static interface ResourceId<T> {
  20. T get();
  21. }
  22.  
  23. static class UserId implements ResourceId<String> {
  24. public String get() { return null; }
  25. }
  26.  
  27. static interface Resource<I extends ResourceId<?>> {
  28. I id();
  29. }
  30.  
  31. static class User implements Resource<UserId> {
  32. public UserId id() { return null; }
  33. }
  34.  
  35. static interface Dao<I extends ResourceId<?>, R extends Resource<I>> {
  36. R findById(I id);
  37.  
  38. void save(R u);
  39. }
  40.  
  41. static class UserDao implements Dao<UserId, User> {
  42. public User findById(UserId id) { return null; }
  43.  
  44. public void save(User u) {}
  45. }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement