[英]how to use same string in two java files
对不起,我的英语不好,也许还有愚蠢的问题,但我是Java新手。
我需要在2个Java文件中使用相同的字符串,例如:
在第一个Java文件中,我有用于发送电子邮件的代码,我已将字符串设置为默认电子邮件:
public String mail = new String ("lala@gmail.com");
我在代码中使用此字符串发送电子邮件:
email.addTo(mail);
在第二个Java文件中,例如设置,用户可以在其中设置新的电子邮件地址,我想拥有相同的字符串,并与第一个Java文件中的字符串连接。 当用户输入新电子邮件时,字符串邮件将更改为新电子邮件地址,并在email.addTo(mail);中。 将使用这个新地址
我怎样才能做到这一点?
使用共享首选项,您可以将其存储为键值对。 值是您的电子邮件和密钥,可以是您要用来标识它的任何唯一字符串。
我对这个问题有些困惑,但是我会对此加以刺探。 基本上,您希望在给定文件中的一个字符串在多个位置使用。 使用类级变量并使它们可以公共访问很容易做到。
例如,在文件中:
EmailObject.java
public class EmailObject {
public static final String mail = "lala@gmail.com";
// The rest of your code
}
另一个文件可以这样访问:
OtherObject.java
public void sendEmail() {
EmailMessage email = new EmailMessage();
email.addTo(EmailObject.mail);
}
注意原始文件上的static
和final
修饰符。 这样可以确保您不需要实际的EmailObject实例即可访问该字符串,还可以确保该字符串永远不会被其他对象意外修改。
当然,还有其他方法可以执行此操作,但是这种方法与您的代码最匹配。 这也是一个非常“ Java”的解决方案。 Android还有其他共享数据的方式(如另一个答案所示)。
我不建议使用的最简单方法是拥有一个公共静态字段:
class A {
public static String commonString;
}
class B {
public void methodThatUsesString () {
// Do stuff with the string
Log.d("I have the string", A.commonString);
}
}
如果您有两个活动,一个活动又开始另一个活动,则可以通过Intent发送数据。
前面提到的SharedPreferences方式也是一个很好的解决方案,如果电子邮件地址是永久性的,则可以选择首选项,而不仅仅是操作所需的数据。
您可以在另一个类中保留对一个类的一个实例的引用,并通过它访问其字段:
class A {
public String commonString;
}
class B {
private final A instaceOfA;
public B (A instanceOfA) {
this.instanceOfA = instanceOfA;
}
public void methodThatUsesString () {
// Do stuff with the string
Log.d("I have the string", instanceOfA.commonString);
}
}
如果性能不成问题,甚至可以使用吸气剂或吸气剂。
许多答案取决于如何使用字符串。
如果它是一个常量字符串,则永远不变,永远不要使用最终的静态字符串
公共最终静态字符串AUTHOR_MAIL =“ lala@gmail.com”;
然后,您可以在任何地方以静态方式使用它。
email.addTo(MyClass.AUTHOR_MAIL);
如果此字符串将在其他活动中使用,则您将无法直接访问它(无法确定其他活动是否仍然存在)。 您必须使用诸如SharedPreferences
持久性机制,或者直接在Intent中发送所需的数据。
如果它在Activity的帮助器类中,则可以使用mObject.mail来获取它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.