Java 将数组从类A传递到类B
我在A类中有一个名为Floors的数组,它包含如下值: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() {
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
}
}