通过java中不同类中的静态方法设置和获取静态变量值
Posted
技术标签:
【中文标题】通过java中不同类中的静态方法设置和获取静态变量值【英文标题】:Set and Get static variables values through static method in different classes in java 【发布时间】:2013-11-30 03:49:20 【问题描述】:假设我有 3 个类:A
、Data
和 B
我从 A 类传递了一个变量,该变量将传递的变量设置为 Data 类中的 public static
变量,Data 的类为 method
setData()
,并试图获得相同的值(我在 class A
中分配了这个值)在班上
B
使用 Data 的类 method
getData()
。
Data类中的方法是public
and static
公共类数据
公共静态字符串名称D;
public static void setData(String name) nameD = name;
public static String getData() return nameD;
公开课 A
字符串名称A="测试";
Data.setData(nameA);
公共B类
字符串名称B; nameB = Data.getData(); println(nameB);
但在class B
中给出空字符串。
我该怎么做?
【问题讨论】:
试着把 nameB = Data.getData(); println(nameB);在构造函数中。 这很奇怪,你想在这里做什么。它看起来很吓人的代码。你的构造函数在哪里? 此代码无法编译。你想做什么? @MartínMarconcini 我想在另一个类1
中设置一个类成员的值,并尝试在另一个类2
中获取相同的值。
但是您是否意识到代码是一团糟?如果没有看到更多代码,即使不是不可能,也很难说出你的问题是什么。谁在创建 A 和 B 的实例?这些类是在哪里创建的?按哪个顺序?等等。很明显,你认为你正在做的并不完全是你写的。显然设置类成员的值是微不足道的,通过getter获取值也是微不足道的,你的问题在于我们还看不到的代码......
【参考方案1】:
只需调用第一个类 A 来设置类 Data 的值,然后调用类 B 来获取数据中的值。
例如:
public class A
String nameA="Test";
public A()
Data.setData(nameA);
public class B
String nameB;
B()
nameB = Data.getData();
System.out.println(nameB);
public class Data
public static String nameD;
public static void setData(String name) nameD = name;
public static String getData() return nameD;
那么如果你做了以下,你会得到你的价值 新的 A(); 新 B();
【讨论】:
感谢您解决我的问题。【参考方案2】:您可以传递对象并在传递的对象中有一个静态字段。
【讨论】:
【参考方案3】:这不是有效的代码,因为您不能在任何方法之外执行像 Data.setData()
这样的语句。
如果你把这段代码放在A类中的一个方法中,然后在你的主程序中以正确的顺序调用这个方法(在调用getData()
之前),它仍然会是非常混乱的代码,但你应该得到你想要的结果.
【讨论】:
以上是关于通过java中不同类中的静态方法设置和获取静态变量值的主要内容,如果未能解决你的问题,请参考以下文章