我正在传递此类数组: -
Integer[] A={32,543,423};
Integer[] B={32,43};
方法:
public void method1(K[] Items1, N[] Items2, integerSerializerObject){
method2(Items1, Items2); // this method again passes on the parameters to method2 & method3
}
传递给: -
public void method2(K... things1){
}
public void method3(N... things2){
}
方法2& method3实际上属于一个名为Hector的库,用于访问Cassandra DB,因此错误不存在,而是在我自己的代码中,这只是在这个方法之上。我将这两个数组与IntegerSerializer对象一起传递,以将这些数组元素转换为字节。完整列表异常详细信息如下:(但我觉得错误在我的代码中而不是库函数中,因此可能在我的代码中可见)
我收到此消息的异常: -
Exception in thread "main" java.lang.IndexOutOfBoundsException
at java.nio.Buffer.checkIndex(Buffer.java:514)
at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:121)
at me.prettyprint.cassandra.serializers.IntegerSerializer.fromByteBuffer(IntegerSerializer.java:42)
at me.prettyprint.cassandra.serializers.IntegerSerializer.fromByteBuffer(IntegerSerializer. java:12)
at me.prettyprint.cassandra.serializers.AbstractSerializer.fromBytesMap(AbstractSerializer.java:115)
at me.prettyprint.cassandra.model.thrift.ThriftMultigetSliceQuery$1.doInKeyspace(ThriftMultigetSliceQuery.java:67)
at me.prettyprint.cassandra.model.thrift.ThriftMultigetSliceQuery$1.doInKeyspace(ThriftMultigetSliceQuery.java:59)
at me.prettyprint.cassandra.model.KeyspaceOperationCallback.doInKeyspaceAndMeasure(KeyspaceOperationCallback.java:20)
at me.prettyprint.cassandra.model.ExecutingKeyspace.doExecute(ExecutingKeyspace.java:65)
at me.prettyprint.cassandra.model.thrift.ThriftMultigetSliceQuery.execute(ThriftMultigetSliceQuery.java:58)
你们有任何想法我在哪里做错了吗?
答案 0 :(得分:0)
据我所知,Varargs只能用于最后一个参数。正如该网站所述:
Varargs只能在决赛中使用 论证位置。
(http://download.oracle.com/javase/1.5.0/docs/guide/language/varargs.html)
可能产生你的例外吗?