2015-09-16 10 views
5

Bir java programını Eclipse'de hata ayıklama yaparken rastgele bir dizinin içeriğini (örneğin, Değişkenler görünümünde) görebilirsiniz (bkz. ByteArrayInputStream.buf alanıyla).Eclipse debugger'da dizi uzunluğu nasıl görüntülenir?

Eclipse Variables view with an array

Ama hiçbir yere dizi uzunluk alan bulamıyor. Eclipse hata ayıklayıcısında bir dizinin uzunluğunu göstermenin bir yolu var mı? Nasıl yapabilirim?

+2

son dizi segmenti (örneğin [500..599]) uzunluğunu tutar. –

+0

aynı zamanda İfade Sekmesi'nin uzunluğunu kontrol edebilirsiniz, sadece 'array.length' veya 'array.size()' vb. Ekleyin – Rustam

cevap

3

Sen "İfadeler" görünümünü kullanın ve length üyesini değerlendirebilirsiniz:

Expression tab screenshot

son endeks bir eksiktir unutmayın uzunluktan daha!

Bu, genel üyeleri için dizi üyeleri için çalışırken, korunan üyeler için açık bir yayın gerekliliği gibi görünüyor. is.buf değerlendirirken söz konusu gösterilen, ancak is.buf.length değerlendiren <error(s)_during_the_evaluation> ile başarısız olarak şimdi, İfadeler görünüm dizinin bir dökümü gösterir

... 
ByteArrayInputStream is = new ByteArrayInputStream(new byte[1769]); 
... 

: Aşağıdaki kodu düşünün. Biz ByteArrayInputStream için açık döküm eklerseniz, değerlendirme çalışır:

enter image description here

+0

Ama benim durumumda olduğu gibi ** özel ** veya ** korumalı ** alanları için çalışmaz : 'is.buf.length'. Eclipse baskıları: ' buf çözülemez veya bir alan değil ' – dedek

+1

Aha problem aslında yanlış tiptedir (' InputStream'). Bu iyi görünüyor: '((ByteArrayInputStream)) .buf.length' – dedek

+0

İyi gözlem! İfade değerlendiricisinin neden burada açık bir döküm yapılmasını gerektirdiğinden emin değilsiniz (zaten bu dizinin bir dizi olduğunu bildiğinden), ama tam olarak ne dediğinizi yeniden üretebilirim. –

3

Cevabınız için teşekkür ederiz @ ThorbjørnRavnAndersen (yorum). Haklısınız, son dizi segmenti (benim durumumda: [1700..1768]) uzunluğu tutar.

bütün resmi:

the whole picture

İlgili konular