小编典典

将一个类变量传递给另一个类

java

我想将一个类变量传递给另一个类,并使其成为该类的类变量。在以下情况下我该怎么做?

        public class GLCamTest extends Activity {
public float array[] = something;
  }

  class GLLayer extends GLSurfaceView implements SurfaceHolder.Callback,
  Camera.PreviewCallback, Renderer {
  //Get class variable here
 }

阅读 179

收藏
2020-11-30

共1个答案

小编典典

很难理解您正在问的问题,但这是一个可能的答案:

使B类成为A的子类:

    public class A {
        // Declaration of the 'array' attribute
        public float[] array = new float[]{1.1f, 2.2f, 3.3f};

    }

    class B extends A {
        // Every instance of 'B' also has an 'array' attribute
    }

如果array重新声明为public static,则会出现一种情况,其中存在一个array可以称为A.array或的属性B.array。(或在任一AB刚刚array…甚至作为a.arrayb.array地方a,并b有类型AB分别。)

如果您无法在AB(或AB以及一些包含声明的第三类)之间创建直接或子类型关系,那么您很不走运。他们无法共享声明。

但是,您可以使用静态导入来使声明看起来像是共享的。例如:

    public class A {
        // Declaration of the 'array' attribute
        public float[] array = new float[]{1.1f, 2.2f, 3.3f};

    }


    import static A.array;
    class B {
        // now I can use 'array' without qualifying it with 'A'
    }

顺便说一句,使用static变量共享状态(尤其是表示为裸数组的状态)通常是一个坏主意。这显然是非面向对象的。

2020-11-30