Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //: initialization/TerminationCondition.java
- // Using finalize() to detect an object that
- // hasn’t been properly cleaned up.
- class Book {
- boolean checkedOut = false;
- Book(boolean checkOut) {
- checkedOut = checkOut;
- }
- void checkIn() {
- checkedOut = false;
- }
- protected void finalize() {
- if(checkedOut)
- System.out.println("Error: checked out");
- // Normally, you’ll also do this:
- // super.finalize(); // Call the base-class version
- }
- }
- public class TerminationCondition {
- public static void main(String[] args) {
- Book novel = new Book(true);
- // Proper cleanup:
- novel.checkIn();
- // Drop the reference, forget to clean up:
- new Book(true);
- // Force garbage collection & finalization:
- System.gc();
- }
- } /* Output:
- Error: checked out
- *///:~
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement