【问题标题】:Set and Get static variables values through static method in different classes in java通过java中不同类中的静态方法设置和获取静态变量值
【发布时间】:2013-11-30 03:49:20
【问题描述】:

假设我有 3 个类:ADataB

我从 A 类传递了一个变量,该变量将传递的变量设置为 Data 类中的 public static 变量,Data 的类为 methodsetData(),并试图获得相同的值(我在 class A 中分配了这个值)在班上 B 使用 Data 的类 method getData()

Data类中的方法是publicand 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获取值也是微不足道的,你的问题在于我们还看不到的代码......

标签: java android class static


【解决方案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()之前),它仍然会是非常混乱的代码,但你应该得到你想要的结果.

    【讨论】:

      猜你喜欢
      • 2012-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-24
      • 1970-01-01
      • 2013-06-04
      • 1970-01-01
      相关资源
      最近更新 更多