用在资源开发,进行资源的自动关闭,以防止浪费。
手动模拟消息的连接、发送、关闭:
public interface IMessage { public void send(); // 消息发送 }
public class Message implements IMessage { // 消息类,实现消息的处理 private String msg; public Message(String msg) { this.msg = msg; } public boolean open() { // 获取资源连接 System.out.println("【OPEN】获取消息发送连接资源"); return true; } public void close() { System.out.println("【CLOSE】关闭消息发送通道"); } @Override public void send() { if (this.open()) { System.out.println("【*** 发送消息 ***】 \n" + this.msg + "\n【*** 成功发送 ***】"); } } }
public class Main { public static void main(String[] args) { Message msg = new Message("www.baidu.com"); // 定义发送的消息 msg.send(); // 消息发送 msg.close(); //关闭连接 } }
public interface IMessage extends AutoCloseable{ public void send(); // 消息发送 }
public class Message implements IMessage { // 消息类,实现消息的处理 private String msg; public Message(String msg) { this.msg = msg; } public boolean open() { // 获取资源连接 System.out.println("【OPEN】获取消息发送连接资源"); return true; } public void close() { System.out.println("【CLOSE】关闭消息发送通道"); } @Override public void send() { if (this.open()) { System.out.println("【*** 发送消息 ***】 \n" + this.msg + "\n【*** 成功发送 ***】"); } } }
以下代码可以发现 AutoCloseable 必须和异常一起使用才行。
public class Main { public static void main(String[] args) { try(Message msg = new Message("www.baidu.com")) { // 定义发送的消息 msg.send(); }catch (Exception e){ } } }