如何让Java中的所有类都可以访问对象列表?

如何让Java中的所有类都可以访问对象列表?,java,Java,我正在为这个服务器编写一个插件,我需要创建一个可以被几个类访问的玩家列表 例如,将有三个类: Events Commands Plugin “事件”类将有一个在线玩家列表以及他们的上下文(我无法将此上下文添加到玩家)。我需要从这三个类中访问此列表 我不知道该怎么办,因为我担心类加载器会弄乱我的东西 我曾想过为玩家及其上下文(线程安全)创建一个带有静态访问器方法的全局变量类,并将我需要的所有内容存储在这里,但人们说全局变量在Java中是邪恶的,不应该这样做 我该怎么解决这个问题 您可以创建一个包

我正在为这个服务器编写一个插件,我需要创建一个可以被几个类访问的玩家列表

例如,将有三个类:

Events
Commands
Plugin
“事件”类将有一个在线玩家列表以及他们的上下文(我无法将此上下文添加到玩家)。我需要从这三个类中访问此列表

我不知道该怎么办,因为我担心类加载器会弄乱我的东西

我曾想过为玩家及其上下文(线程安全)创建一个带有静态访问器方法的全局变量类,并将我需要的所有内容存储在这里,但人们说全局变量在Java中是邪恶的,不应该这样做

我该怎么解决这个问题

您可以创建一个包含所有类都需要访问的列表的单例类,然后将该单例添加为所有3个类的组合成员

singleton设计模式在某种意义上是一个全局变量,但它是一种面向对象友好的方式,应该可以正常工作,而不是有害的。

您可以创建一个singleton类,其中包含所有类都需要访问的列表,然后将该singleton添加为所有3个类的组合成员

singleton设计模式在某种意义上是一个全局变量,但它是一种面向对象友好的方式,应该可以正常工作,而不是有害的。

您可以创建一个singleton类,其中包含所有类都需要访问的列表,然后将该singleton添加为所有3个类的组合成员

singleton设计模式在某种意义上是一个全局变量,但它是一种面向对象友好的方式,应该可以正常工作,而不是有害的。

您可以创建一个singleton类,其中包含所有类都需要访问的列表,然后将该singleton添加为所有3个类的组合成员


从某种意义上说,单例设计模式是一个全局变量,但以一种面向对象友好的方式,应该可以很好地工作,而不是有害的。

您可以将播放器列表封装在任何数据结构中(比如类
Players
映射
列表
或任何需要的结构支持)并通过构造函数或setter将该结构的引用传递给需要它的类(
命令
插件
,等等)

您可以将玩家列表封装在任何数据结构中(比如类
Players
Map
list
或任何需要的结构支持),并通过构造函数或setter将该结构的引用传递给需要它的类(
命令
插件
等)

您可以将玩家列表封装在任何数据结构中(比如类
Players
Map
list
或任何需要的结构支持),并通过构造函数或setter将该结构的引用传递给需要它的类(
命令
插件
等)

您可以将玩家列表封装在任何数据结构中(比如类
Players
Map
list
或任何需要的结构支持),并通过构造函数或setter将该结构的引用传递给需要它的类(
命令
插件
等)

只需制作另一个
玩家列表
类或其他东西来保存玩家列表。它不是一个全局变量,因为它只是另一个服务于特定用途的类。好吧,你可以将它们存储在数据库中,让每个类与一个CRUD类交互,CRUD类在数据库中进行查找…这取决于你需要进行查找的频率,它必须有多快等等。我个人认为静态对象没有问题:永远不要说“从不”,永远不要说“总是”。只需制作另一个
玩家列表
类或其他东西来保存玩家列表。它不是一个全局变量,因为它只是另一个服务于特定用途的类。好吧,你可以将它们存储在数据库中,让每个类与一个CRUD类交互,CRUD类在数据库中进行查找…这取决于你需要进行查找的频率,它必须有多快等等。我个人认为静态对象没有问题:永远不要说“从不”,永远不要说“总是”。只需制作另一个
玩家列表
类或其他东西来保存玩家列表。它不是一个全局变量,因为它只是另一个服务于特定用途的类。好吧,你可以将它们存储在数据库中,让每个类与一个CRUD类交互,CRUD类在数据库中进行查找…这取决于你需要进行查找的频率,它必须有多快等等。我个人认为静态对象没有问题:永远不要说“从不”,永远不要说“总是”。只需制作另一个
玩家列表
类或其他东西来保存玩家列表。它不是一个全局变量,因为它只是另一个服务于特定用途的类。好吧,你可以将它们存储在数据库中,让每个类与一个CRUD类交互,CRUD类在数据库中进行查找…这取决于你需要进行查找的频率,它必须有多快等等。就我个人而言,我不认为静态对象有什么问题:永远不要说永远,永远不要说永远。