【发布时间】:2023-03-10 22:30:02
【问题描述】:
在成为 Stackoverflow 多年的忠实用户之后,我终于决定自己写一个问题,如果我遗漏了什么,我深表歉意。
我尝试搜索此主题,但不完全确定如何措辞。
我正在使用 Java 编程,并且正在为 Minecraft 服务器编写插件。我想让这个插件响应用户输入,所以我向玩家发送各种各样的消息,包括成功消息、帮助消息、错误等。向玩家发送消息可以通过在玩家对象:player.sendMessage(String message);
但是,我不想简单地使用该方法在每个实例中直接发送消息,而是更愿意将所有消息存储在一个位置,以使代码更易于在发生拼写错误或决定更改文本。
我当前的实现是一个名为 Messenger 的类。对于可以发送给玩家的每条消息,它都包含一个公共 void 方法,该方法接受玩家作为参数,以及与消息相关的特定信息,以便突出显示并包含在消息中。
假设的示例如下所示:
public void playerPosition(Player player, int x, int y, int z) {
player.sendMessage("Your coordinates are: "+x+", "+y+", "+z+".");
}
但是,我还是 Java 新手,我正在尽我所能来实现最佳实践和高效设计。我知道有更好的方法来处理这种情况并保持高水平的可读性和可维护性。
这些方法将是静态的,因为我读到静态方法具有较小的内存占用,但其中一些引用 Messenger 类中的非静态变量,以便将一些来自其他来源的动态信息传达给玩家。
我将对其进行修改,以便将所需的所有信息直接传递给方法,因此它们可以是静态的。
但是,我想知道:每次调用该方法时生成消息的结果是否更有效,还是应该将消息的内容存储在字符串中并简单地返回该字符串?方法的编译代码是否比返回存储的字符串更快更高效?
如果返回存储的字符串更快,我可以简单地使用参数占位符存储字符串以供 String.format() 以后使用;
我希望这对于我的最终问题来说不会太长,但我希望我也可以在我的方法方面走上编程正义的道路。也就是说,如果您看到我应该做的不同的事情,或者我可能正在经历的根本误解的迹象,请告诉我!你们都很棒,谢谢!
【问题讨论】:
标签: java string performance minecraft