【问题标题】:How to declare global variables which doesn't change the value如何声明不改变值的全局变量
【发布时间】:2018-12-29 12:10:41
【问题描述】:

我有一个函数,我使用了一个全局变量,在这个函数中我更新了这个变量。我不想在这个函数之外更新这个变量的值。

public static int a = 0; //is global 
public static int b = 0;

 public void func(){
  if(a>c){
    a=a+b;
     }
 }

这个函数在 100ms 时被调用

         final Handler handler = new Handler();
          Runnable runnable = new Runnable() {
            @Override
            public void run() {
            func();
               handler.postDelayed(this, 100);
           }
            };
            handler.postDelayed(runnable, 100);

为什么“a”每次都以零开头?

我想做这样的事情:

 public void func(){
  int a=0;
  int b=0;
  while(a>c){
    a=a+b;
     }
 }

但我不能使用while,因为“c”是在另一个函数中计算的,如果我使用while,“c”的值不会改变......

我该如何解决这个问题?

【问题讨论】:

    标签: android function initialization global-variables


    【解决方案1】:

    使函数静态化。静态变量由静态函数改变。

    【讨论】:

    • 这是不可能的,因为在这个函数中我调用了 sent() 函数,通过蓝牙传输消息。如果我将“func()”设为静态,则需要将 send() 设为静态,这是不可能的
    • 我的 send() 函数与 func() 属于同一类。我将创建一个当前类的实例?
    • 我认为您必须以某种方式将它们分开。否则,我认为 a 将始终以 0 开头。
    猜你喜欢
    • 2014-10-30
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    相关资源
    最近更新 更多