Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 传递包含两个整数的对象还是不同的方法?_Java_Android_Cocos2d Iphone - Fatal编程技术网

Java 传递包含两个整数的对象还是不同的方法?

Java 传递包含两个整数的对象还是不同的方法?,java,android,cocos2d-iphone,Java,Android,Cocos2d Iphone,我有这个方法。它需要一个节点,我需要它需要两个整数 public void resetAnchorpoints(Object sender, Object passed){ Log.v("TAG", "CALLED FUNCTION 1!" + sender.toString()); Log.v("TAG", "The center tile was " + (int[]) passed[1] + "," + (int[]) passed[2]);

我有这个方法。它需要一个节点,我需要它需要两个整数

   public void resetAnchorpoints(Object sender, Object passed){
        Log.v("TAG", "CALLED FUNCTION 1!" + sender.toString());
        Log.v("TAG", "The center tile was " + (int[]) passed[1] + "," + (int[]) passed[2]);
    }
要调用它,我使用
CCCallFuncND mresetAnchorpoint=CCCallFuncND.action(这个“resetAnchorpoints”,pass)

在我收集时,CCCallFuncND传递一个节点(N)和一个数据对象(D)。但是,如果我像这样组合数据对象:

int[]pass=newint[3];
通过[0]=cC;
通过[1]=cR

它不工作(因为它需要是一个对象?)。所以我的问题是:如何在一个对象中“打包”两个int-s,并在resetAnchorpoints方法中使用它们

//编辑;忘了提到错误。错误是:“02-27 18:54:22.898 4925-4961/nl.happyworx.squareone W/System.err﹕ java.lang.NoSuchMethodException:resetAnchorpoints[类java.lang.Object,类java.lang.Object]“


谢谢。

使用
ArrayList

List<Integer> list = new ArrayList<Integer>();
list.add(cc);
list.add(cR);
List List=new ArrayList();
列表。添加(cc);
列表。添加(cR);

问题在于演员阵容,请参见以下示例:

Object intArray = new int[] { 1 };
System.out.println((int[])intArray[0]); //fails
System.out.println(((int[])intArray)[0]); //works
因此,请将代码更改为:

Log.v("TAG", "The center tile was " + ((int[]) passed)[0] + "," + ((int[]) passed)[1]);
正如评论中所指出的,您也可以在一开始就投下它:

passed = (int[])passed;
Log.v("TAG", "The center tile was " + passed[0] + "," + passed[1]);

错误是什么?您应该能够将
int[]
数组作为
对象传递。可能尝试在方法顶部声明一个新变量,如下所示:
int[]params=(int[])passed
然后通过
params[0]
params[1]
@dubstyle访问整数是的,你是对的,我重新测试了我的测试结果,int[]实际起了作用。可能调用了错误的操作()不确定签名,但有一点是肯定的,正如@dub stylee所提到的,如果参数类型是Object,那么当然可以传递int-array,因为数组是Object-type。另外,请确保访问正确的索引。在大多数语言中,索引都是基于0的,因此第一项应该是
params[0]
。看起来您正确分配了它们,但随后使用方法中的
1
2
访问它们。很抱歉,忘记提及错误:02-27 18:54:22.898 4925-4961/nl.happyworx.squareone W/System.err﹕ java.lang.NoSuchMethodException:resetAnchorpoints[类java.lang.Object,类java.lang.Object]下面建议的解决方案不能解决问题:(