Onlar bir çıkış akışı oluşturarak edildi bir açık kaynak projesi geçiyor ve aşağıdaki yöntemle karşıdan karşıya geldi:Java dizi uzunluğu 0'dan az mı?
@Override public void write(byte[] buffer, int offset, int length) {
if (buffer == null) {
throw new NullPointerException("buffer is null");
}
if (buffer.length < 0) { // NOTE HERE
throw new IllegalArgumentException("buffer length < 0");
}
if (offset < 0) {
throw new IndexOutOfBoundsException(String.format("offset %d < 0", offset));
}
if (length < 0) {
throw new IndexOutOfBoundsException(String.format("length %d < 0", length));
}
if (offset > buffer.length || length > buffer.length - offset) {
throw new IndexOutOfBoundsException(String.format("offset %d + length %d > buffer" " length %d", offset, length, buffer.length));
}
}
Yani byte[] buffer
sadece normal eski byte[]
olduğunu. Bunun boş olmadığını biliyoruz. 0'dan küçük bir uzunluğa sahip olmak bile mümkün mü? Gibi, yansıma yansıması ile yapılabilir mi?
Ne demek "biz null değil" biliyoruz? –
@EdwardThomson: İlk ifadenin arabellek == null ' –
olduğunu düşünüyorum. Belki bu projede başka bir yer' -1 'bir dizinin geçersiz olduğunu veya böyle bir şey olduğunu söylemek için geçerli bir kuraldır. işte sonunda bir istisna haline geldi. – thalador