Java 将数组从类A传递到类B

Java 将数组从类A传递到类B,java,android,Java,Android,我在A类中有一个名为Floors的数组,它包含如下值: List<Point> manualpoint = new ArrayList<Point>(); int[] manualpointx = {135,200,300,155,235,300}; 如何将值从类A传递到类B?您需要创建类A的实例,然后访问类B的值,例如: public class ClassA { private int someInt; public ClassA() {

我在A类中有一个名为Floors的数组,它包含如下值:

  List<Point> manualpoint = new ArrayList<Point>();
  int[] manualpointx = {135,200,300,155,235,300};

如何将值从类A传递到类B?

您需要创建类A的实例,然后访问类B的值,例如:

public class ClassA {
  private int someInt;

  public ClassA() {
    someInt = 5;
  }

  public int getSomeInt() {
    return someInt;
  }
}

public class ClassB {
  public void someMethod() {
    ClassA instanceOfClassA = new ClassA();

    int someIntFromClassA = instanceOfClassA.getSomeInt();  //This is now 5;

    // Rest of your code here
  }
}

或者,您可以在
ClassA
中创建一个静态方法,然后使用
ClassA.getSomeInt()在
ClassB
中调用它

您可以这样做

final class A
{
     private static int[] manualpointx = {135,200,300,155,235,300};
     private static List<Point> manualpoint = new ArrayList<Point>();

     public static int[] returnArray()
     {
          return(manualpointx);   
     }

     public static List<Point> returnList()         
     {
          return(manualpoint);
     }

}
public class DrawView extends View implements OnTouchListener
{ 
    @Override
    public void onDraw(Canvas canvas) 
    {
         //pass the values into this class
         int arr[]=A.returnArray();
         List<Point> list=A.returnList();
    }
}
最终A类
{
私有静态int[]manualpointx={135200300155235300};
私有静态列表manualpoint=newArrayList();
公共静态int[]returnArray()
{
返回(manualpointx);
}
公共静态列表returnList()
{
返回(手动点);
}
}
公共类DrawView扩展了视图实现OnTouchListener
{ 
@凌驾
公共空白onDraw(画布)
{
//将值传递到此类中
int arr[]=A.returnArray();
列表=A.returnList();
}
}

如果类
A
中只需要非静态字段,并且只想使用非静态方法,则必须通过类
A
的实例从类
DrawView

访问这些字段,以便在活动之间传递数据

//to pass array use
intent.putExtra("intarray", manualpointx);
// to pass list of point use
intent.putParcelableArrayListExtra("bundle", (ArrayList<? extends Parcelable>) manualpoint);
//传递数组使用
意图。额外(“intarray”,manualpointx);
//通过点使用列表

putParcelableArrayListExtra(“bundle”,(ArrayList另一个想法是,尝试在B中拥有一个公共类,如果可能的话,用a的数组值调用B的set数组方法。现在在set数组中,我们可以有一个类变量来保存数组值,然后调用draw

public class DrawView extends View implements OnTouchListener {
    int[] manualpointx;
    setArray(int[] manualpointx1){
        this.manualpointx = manualpointx1
    }
     public void onDraw(Canvas canvas) { 
        //pass the values into this class 
        we can use manualpointx 
    }
}

谢谢你,这个答案太完美了。你太棒了!干杯mate@RonTan:)在这种情况下,使用
静态
嵌套类更合适。
public class DrawView extends View implements OnTouchListener {
    int[] manualpointx;
    setArray(int[] manualpointx1){
        this.manualpointx = manualpointx1
    }
     public void onDraw(Canvas canvas) { 
        //pass the values into this class 
        we can use manualpointx 
    }
}