privatestaticclass C implements Appendable, Closeable { public Appendable append(CharSequence csq) { returnnull; } public Appendable append(char c) { returnnull; } public Appendable append(CharSequence csq, int s, int e) { returnnull;
}
privatestaticclass NC implements Appendable { public Appendable append(CharSequence csq) { returnnull; } public Appendable append(char c) { returnnull; } public Appendable append(CharSequence csq, int s, int e) { returnnull;
}
// method coincidentally called close() publicvoid close() { thrownew RuntimeException("NC.close should not be called");
}
}
privatestaticvoid test(Formatter f) { if (f.out() instanceof C) { // C.close() called since C implements Closeable try {
f.close(); thrownew RuntimeException("C.close not called");
} catch (ExpectedException x) {
System.out.println(" C.close called");
}
} else { // NC.close() not called since NC does not implement Closeable
f.close();
}
// Formatter is a Closeable if (!(f instanceof Closeable)) thrownew RuntimeException("Formatter is not a Closeable");
// multiple close() does not throw a FormatterClosedException
f.close(); try {
f.close();
System.out.println(" FormatterClosedException not thrown");
} catch (FormatterClosedException x) { thrownew RuntimeException("FormatterClosedException thrown");
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.