fork download
  1. public class BrokenEncapsulationTest {
  2.  
  3. @Test
  4. public void testAddCount() {
  5. InstrumentedHashSet<String> set = new InstrumentedHashSet<String>();
  6.  
  7. set.addAll(Arrays.asList("Snap", "Crackle", "Pop"));
  8.  
  9. assertEquals(3, set.addCount);
  10. }
  11.  
  12. public static class InstrumentedHashSet<E> extends HashSet<E> {
  13.  
  14. public int addCount = 0;
  15.  
  16. @Override
  17. public boolean add(E a) {
  18. addCount += 1;
  19. return super.add(a);
  20. };
  21.  
  22. @Override
  23. public boolean addAll(Collection<? extends E> c) {
  24. addCount += c.size();
  25. return super.addAll(c);
  26. }
  27. }
  28. }
  29.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:1: error: class BrokenEncapsulationTest is public, should be declared in a file named BrokenEncapsulationTest.java
public class BrokenEncapsulationTest {
       ^
Main.java:12: error: cannot find symbol
  public static class InstrumentedHashSet<E> extends HashSet<E> {
                                                     ^
  symbol:   class HashSet
  location: class BrokenEncapsulationTest
Main.java:23: error: cannot find symbol
    public boolean addAll(Collection<? extends E> c) {
                          ^
  symbol:   class Collection
  location: class InstrumentedHashSet<E>
  where E is a type-variable:
    E extends Object declared in class InstrumentedHashSet
Main.java:3: error: cannot find symbol
  @Test
   ^
  symbol:   class Test
  location: class BrokenEncapsulationTest
Main.java:7: error: cannot find symbol
    set.addAll(Arrays.asList("Snap", "Crackle", "Pop"));
               ^
  symbol:   variable Arrays
  location: class BrokenEncapsulationTest
Main.java:9: error: cannot find symbol
    assertEquals(3, set.addCount);
    ^
  symbol:   method assertEquals(int,int)
  location: class BrokenEncapsulationTest
Main.java:19: error: non-static variable super cannot be referenced from a static context
      return super.add(a);
             ^
Main.java:19: error: cannot find symbol
      return super.add(a);
                  ^
  symbol: method add(E)
  where E is a type-variable:
    E extends Object declared in class InstrumentedHashSet
Main.java:16: error: method does not override or implement a method from a supertype
    @Override
    ^
Main.java:25: error: non-static variable super cannot be referenced from a static context
      return super.addAll(c);
             ^
Main.java:22: error: method does not override or implement a method from a supertype
    @Override
    ^
11 errors
stdout
Standard output is empty