fork download
  1. import java.util.ArrayList;
  2.  
  3. class Rocket<T> {
  4. private T value;
  5.  
  6. public Rocket() {}
  7. public Rocket( T value ) { this.value = value; }
  8.  
  9. public void set(T value) { this.value = value; }
  10. public T get() { return value; }
  11.  
  12. @Override
  13. public String toString() {
  14. return getClass() + "[value=" + value.toString() + "]";
  15. }
  16. public boolean isEmpty() { return value == null; }
  17. public void empty() { value = null; }
  18. }
  19.  
  20.  
  21. class Player {
  22. public String name;
  23. public Rocket<?> rightRocket;
  24. public Rocket<?> leftRocket;
  25.  
  26. public Player(String name, Rocket<?> rightRocket, Rocket<?> leftRocket) {
  27. this.name = name;
  28. this.rightRocket = rightRocket;
  29. this.leftRocket = leftRocket;
  30. }
  31.  
  32. public String getName() {
  33. return name;
  34. }
  35. public void setName(String name) {
  36. this.name = name;
  37. }
  38. public Rocket<?> getRightRocket() {
  39. return rightRocket;
  40. }
  41. public void setRightRocket(Rocket<?> rightRocket) {
  42. this.rightRocket = rightRocket;
  43. }
  44. public Rocket<?> getLeftRocket() {
  45. return leftRocket;
  46. }
  47. public void setLeftRocket(Rocket<?> leftRocket) {
  48. this.leftRocket = leftRocket;
  49. }
  50.  
  51. @Override
  52. public String toString() {
  53. return getClass() + "[name=" + name + ", rightRocket=" + rightRocket.toString() + ", leftRocket=" + leftRocket.toString() + "]";
  54. }
  55. }
  56.  
  57. class Ideone
  58. {
  59. public static void main(String[] args) {
  60. Rocket<ArrayList<String>> rightRocket = new Rocket<>(
  61. new ArrayList<>() {{
  62. add("BU");
  63. add("BU");
  64. add("BU");
  65. }}
  66. );
  67. Player kleinerB = new Player(
  68. "kleinerK",
  69. rightRocket,
  70. new Rocket<>(42)
  71. );
  72. System.out.println(kleinerB.toString());
  73.  
  74. @SuppressWarnings("unchecked")
  75. ArrayList<String> arrayList = (ArrayList<String>)kleinerB.getRightRocket().get();
  76. for(String s : arrayList) {
  77. System.out.print(s);
  78. }
  79. rightRocket.set(new ArrayList<>());
  80. }
  81. }
Success #stdin #stdout 0.21s 49800KB
stdin
Standard input is empty
stdout
class Player[name=kleinerK, rightRocket=class Rocket[value=[BU, BU, BU]], leftRocket=class Rocket[value=42]]
BUBUBU