privatestaticclass F implements Appendable, Closeable, Flushable { public Appendable append(CharSequence csq) { returnnull; } public Appendable append(char c) { returnnull; } public Appendable append(CharSequence csq, int s, int e) { returnnull;
} publicvoid close() {}
privatestaticclass NF 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;
} publicvoid close() {}
// method coincidentally called flush() publicvoid flush() { thrownew RuntimeException("NF.flush should not be called");
}
}
privatestaticvoid test(Formatter f) { if (f.out() instanceof F) { // F.flush() called since F implements Flushable try {
f.flush(); thrownew RuntimeException("F.flush not called");
} catch (ExpectedException x) {
System.out.println(" F.flush called");
}
} else { // NF.flush() not called since NF does not implement Flushable
f.flush();
}
// Formatter is a Flushable if (!(f instanceof Flushable)) thrownew RuntimeException("Formatter is not a Flushable");
// flush() after close() throws a FormatterClosedException
f.close(); try {
f.flush(); thrownew RuntimeException("FormatterClosedException not thrown");
} catch (FormatterClosedException x) {
System.out.println(" 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.