我有两个类,我想访问唯一变量的值。在第一堂课中,我想设置一个' isToogleflagon = true'的值。在第二节课中,我想获得' IsToogleflagon'的价值。 这是我设置和获取IsToogleFlagon'
的地方public class Toogleflag{
private String _isToogleflagon;
public Toogleflag(){}
public Toogleflag(String isToogleflagon) {
this._isToogleflagon=isToogleflagon;
}
public String get_isToogleflagon(){
return _isToogleflagon;
}
public void set_isToogleflagon(String isToogleflagon) {
this._isToogleflagon = isToogleflagon;
}
我想设置isToogleflagon =" true"的值在我的主要班级。以下是我主要课程的一部分。
public class MainActivity extends AppCompatActivity {
Toogleflag toogleflag1 = new Toogleflag();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
toogleflag1.set_isToogleflagon(GlobalVariables.TRUE);
...
Global.values(真)
public class GlobalVariables
{
public static String TRUE = "true";
public static String FALSE = "false";
}
这是我的第二堂课,我想获得isToogleflagon的价值,在这种情况下" true"
public class secondclass {
Toogleflag toogleflag2 = new Toogleflag();
public void test{
String test=toogleflag2.get_isToogleflagon();
}
当我运行Class Secondclass时,' string test'的值没有分配值。我希望它被赋予" true"的值。任何关于如何解决这个问题的建议都非常感谢。
感谢, 吉姆
答案 0 :(得分:0)
这种情况正在发生,因为您正在使用default / no参数构造函数创建一个新对象。使用默认构造函数创建对象时,所有实例变量都会使用其默认值进行初始化。例如,
1)int变量得 0 2)布尔变量得到 false 3)字符串变量获得 null
这种情况正在发生。正如你的代码中提到的那样,在main类中,当你使用String构造函数将值设置为名为 isToogleflagon 的变量时,它会被设置为构造函数传递的值,但是当你访问它的值时通过调用无参数构造函数再次变量,变量 isToogleflagon 也会使用defualt值进行初始化。要使所有应用程序的值保持一致,您需要将该类对象设置为Singleton。它将解决您的问题。希望你明白我的意思。以下是您制作单身人士的参考示例代码
public class Singleton {
private static Singleton singleton = new Singleton( );
/* A private Constructor prevents any other
* class from instantiating.
*/
private Singleton() { }
/* Static 'instance' method */
public static Singleton getInstance( ) {
return singleton;
}
/* Other methods protected by singleton-ness */
protected static void demoMethod( ) {
System.out.println("demoMethod for singleton");
}
}