public String getMessage() { Writer data = new StringBuilderWriter(); PrintWriter writer = new PrintWriter(data); Janitor janitor = new Janitor(); writer.write(super.getMessage()); writer.println(":"); try { collector.write(writer, janitor); } finally { janitor.cleanup(); } return data.toString(); } }
return result; } else { janitor.register(this);
@Before public void setUp() throws Exception { readerSource = new AbstractReaderSourceSubclass(); janitor = new Janitor(); }
public void close() { janitor.cleanup(); } }
Manager[] managers = new Manager[20]; Employee[] employees = managers; // No error or warning employees[15] = new Janitor(); // gives ArrayStoreException
Collection<Manager> managers=new Collection<Manager>; Collection<Employee> employees=managers; employees.add(new Janitor()); // Writing it out with iterator instead of enhanced for-loop for(Iterator<Manager> it = managers.iterator(); it.hasNext() ; ) { Manager manager = it.next(); // ! Here we'll crash with ClassCastException ! System.out.println(manager.manages()); }
cleanup(); } else { janitor.register(this);
return result; } else { janitor.register(this);
cleanup(); } else { janitor.register(this);
return result; } else { janitor.register(this);
public String getMessage() { StringWriter data = new StringWriter(); PrintWriter writer = new PrintWriter(data); Janitor janitor = new Janitor(); writer.write(super.getMessage()); writer.println(":"); try { collector.write(writer, janitor); } finally { janitor.cleanup(); } return data.toString(); } }
@Override public void visitAssertStatement(final AssertStatement statement) { Janitor j = new Janitor(); final String text = new SourceText(statement, sourceUnit, j).getNormalizedText(); j.cleanup(); makeNode("assert_", new Runnable() { @Override public void run() { visit(statement.getBooleanExpression()); visit(statement.getMessageExpression()); literal(text); } }); }