gpt4 book ai didi

java - 存储与。生成字符串

转载 作者:行者123 更新时间:2023-11-30 08:40:09 25 4
gpt4 key购买 nike

在成为 Stackoverflow 多年的忠实用户之后,我终于决定写下我自己的问题,所以如果我遗漏了什么,我深表歉意。

我尝试搜索这个主题,但不完全确定如何措辞。

我正在使用 Java 编程,并且正在为 Minecraft 服务器编写插件。我想让这个插件响应用户输入,所以我向玩家发送各种各样的消息,包括成功消息、帮助消息、错误消息等。可以通过一个简单的方法向玩家发送消息播放器对象:player.sendMessage(String message);

但是,我不想简单地使用那种方法在每个实例中直接发送消息,而是我更愿意将所有消息存储在一个位置,以使代码更易于管理打字错误或更改文本的决定。

我目前对此的实现是一个名为 Messenger 的类。对于可以发送给玩家的每条消息,它包含一个 public void 方法,该方法接受玩家作为参数,以及与消息相关的特定信息,以便突出显示并包含在消息中。

一个假设的例子是这样的:

public void playerPosition(Player player, int x, int y, int z) {
player.sendMessage("Your coordinates are: "+x+", "+y+", "+z+".");
}

但是,我对 Java 还是个新手,我正在尽最大努力实现最佳实践和高效设计。我知道有更好的方法来处理这种情况并保持高水平的可读性和可维护性。

这些方法将是静态的,因为我读到静态方法占用的内存较小,但其中一些方法引用 Messenger 类中的非静态变量,以便从其他来源向玩家传达一些动态信息。

我将对其进行修改,以便将所有需要的信息直接传递给方法,这样它们就可以是静态的。

但是,我想知道:是在每次调用方法时都生成消息的结果更有效,还是应该将消息的内容存储在一个字符串中并简单地返回该字符串?方法的编译代码是否比返回存储的字符串更快更高效?

如果返回存储的字符串更快,我可以简单地存储带有参数占位符的字符串以供 String.format() 稍后使用;

我希望这对于我的最终问题来说不会太冗长,但我希望我也可以在我的方法方面被引导走上正确编程的道路。也就是说,如果您看到我应该做的不同的事情,或者我可能遇到的根本误解的迹象,请告诉我!你们都很棒,谢谢!

最佳答案

我想你问的是每次调用 playerPosition 时构建字符串更快(如在你的示例中)还是每次存储字符串 x, y,或 z 被更新,并在每次调用 playerPosition 时返回。

这取决于哪个操作发生得更频繁。您希望字符串构建的发生频率最低。

如果更新坐标比获取位置更频繁,则在 playerPosition 中构建字符串。如果您查询玩家位置的频率高于更新它的频率,则在 updateCoordinates(或您拥有的任何等效方法)中构建字符串。

例如,如果这是一款带有图形的 2D 平台游戏,您将不断查询玩家位置,而位置只会在按键时更新;因此,您可能希望在 updateCoordinates 方法中构建 String。

关于java - 存储与。生成字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35785716/

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