gpt4 book ai didi

Java Android 开发 : Is it bad practice to reference other classes static Strings get Intent parameters?

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

假设我想传递一个带有 Intent 的字符串。这是不好的 OOP 实践吗:

public class MessageSender extends Activity
{
public static final THE_STRING = "my message";
...
String value = "This is what I need to send";
Intent displayResultsIntent = new Intent(this, MessageReceiver.class);
displayResultsIntent.putExtra(MessageSender.THE_STRING, value);
...
}

public class MessageReceiver extends Activity
{
...
Intent intent = getIntent();
String yourMessage = intent.getStringExtra(MessageSender.THE_STRING);
...
}

我的直觉告诉我应该有更好的方法。看来如果我在 MessageReciever 中使用另一个类的静态变量,我也可以这样做

"This is what I want to send"

静态并直接在 MessageReceiver 中引用。

我可以在创建 Intent 的方法的注释中指定字符串参数将是“我的消息”。但如果您更新参数名称而不更新注释,这似乎更容易出错。

我读到您应该尝试避免通过使用彼此的变量将类绑定(bind)在一起。使用 Intent 时我们是否需要做一些作弊?

最佳答案

只需在应用程序的任何类中直接使用 MessageSender.THE_STRING(因为静态),因为在构建 APK 后,它会直接分配给该方法或变量。

您的代码示例

public static final THE_STRING = "my message";
Intent displayResultsIntent = new Intent(this, MessageReceiver.class);
displayResultsIntent.putExtra(MessageSender.THE_STRING, value);

构建APK后,上面的代码转换为

Intent displayResultsIntent = new Intent(this, MessageReceiver.class);
displayResultsIntent.putExtra("my message", value);

String yourMessage = intent.getStringExtra("my message");

关于Java Android 开发 : Is it bad practice to reference other classes static Strings get Intent parameters?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31760596/

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