gpt4 book ai didi

java - 在 java 主方法之外初始化一个对象

转载 作者:行者123 更新时间:2023-12-02 01:01:35 24 4
gpt4 key购买 nike

我正在尝试下面的代码,但它不允许我在主方法之外初始化套接字对象。有人可以向我解释一下这个问题吗?

import java.net.DatagramSocket;

public class Server
{
DatagramSocket socket = new DatagramSocket();
public static void main(String[] args) {
Server server = new Server();
//server.socket = new DatagramSocket(); this is the suggested and working way

}
}

/*The error is : error: unreported exception SocketException; must be caught or declared to be thrown
DatagramSocket socket = new DatagramSocket();*/

为什么在 main 方法之外初始化其他对象时没有收到错误消息?所有对象都应该在 main 方法中初始化吗?

更新:让我困惑的是this question的答案:“通常,您不会在 METHODS 之外创建对象 - main 或其他。因此,您可以在 main 之外但在其他方法内部创建对象。”

为什么这是一个问题?

最佳答案

问题是 DatagramSocket 构造函数抛出 SocketException,因此必须捕获 Throwable。您无法将 Throwable 作为类成员捕获。

关于java - 在 java 主方法之外初始化一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60570651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com