为什么ServerSocket.setSocketFactory是静态的?
我正在尝试在Java中使用带有SSL的自定义SocketImpl。因此,我需要设置ServerSocket的套接字工厂。我现在注意到它是静态的,这给我带来了一些麻烦,因为我想为每个ServerSocket实例中的一些不同的参数提供一些参数。有谁知道让它保持静态背后的原因吗?对我来说,这感觉就像是一个不必要的约束,只会在你的应用中引入更多的全局状态。
更新对于为什么这是一个麻烦,似乎有些困惑。这会产生的问题是,它迫使我在整个应用程序中使用相同的工厂。如果我想在一个地方使用默认的SocketImpl,而在另一个地方使用自定义的SocketImpl,该怎么办?如果不诉诸一些丑陋的反射技巧,就无法做到这一点,因为工厂一旦设置好就无法更改。我也不能让我的工厂创建默认实现,因为SocksSocketImpl是包私有的。