线程“main”java.lang.IndexOutOfBoundsException中的异常

时间:2011-02-27 10:25:25

标签: java arrays generics exception

我正在传递此类数组: -

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)

你们有任何想法我在哪里做错了吗?

1 个答案:

答案 0 :(得分:0)

据我所知,Varargs只能用于最后一个参数。正如该网站所述:

  

Varargs只能在决赛中使用   论证位置。

http://download.oracle.com/javase/1.5.0/docs/guide/language/varargs.html

可能产生你的例外吗?