DonanımHaber Mini sürüm 2 Ocak 2026 tarihi itibariyle kullanımdan kalkacaktır. Bunun yerine daha hızlı bir deneyim için DH Android veya DH iOS uygulamalarını kullanabilirsiniz.
Diziyi kullanma şekliniz yanlış. Veriler bir dizi içerisinde saklandığı için direk adminPaneli yazarak getiremezsiniz. bunun için for döngüsünden yararlanmanız gerekiyor. Örnek bir kullanımı aşağıdaki gibidir:
buradan url oluşturmaya çalışırken adminPaneli isimli array objesini string concatenate yapıyorsunuz, doğal olarak String[] sınıfının to string metodunu çağırıyor o da String@sdasa39 gibi birşey geliyor ve istediğinizi elde edemiyorsunuz. Sizin yapmanız gereken yukarıda arkadaşın da belirttiği gibi dizinin kendisini değil, dizinin elemanlarını kullanmanız gerekiyor. Yine belirtildiği gibi bunu da bir döngü ile halledebilirsiniz.
Bir de eğer ilgilenirseniz code review yapıldığında hatalı kullanımlarınız var. İlk gözüme çarpanları yazıyorum.
- siteAdresi.getText().isEmpty() -> bu kullanım hataya açık, eğer siteAdresi.getText() değeri null ise nullpointerexception atar. Bu tarz validasyonlarda commons-lang kütüphanesini kullanabilirsiniz.Örneğin StringUtils.isEmpty(siteAdresi.getText()) metodu null safe olarak içerisindeki stringin boş olup olmadığını kontrol eder.
- String[] adminPaneli -> bu değişken bir kez tanımlanacak ve daha sonra modifiye edilmeyecekse eğer private static final olarak tanımlanmalı sınıfın başınd. Her seferinde tekrar tekrar init edilmemesi için
- siteAdresi.getText() + "/" + adminPaneli [index] -> for döngüsü içerisinde adminPaneli arrayine ait elemanları kullandığınızı farzederek bu şekilde değiştirdim satırı. Eğer string concatenate yapıyorsanız bunu + operatörü ile yaparsanız her operasyon için yeni bir string objesi yaratılır. Yüksek yoğunluklu sistemlerde performans için zararlıdır. İhtiyacınıza göre StringBuffer ya da StringBuilder kullanmanız daha faydalıdır bunun için. Benim tercihim ise commong-lang ile beraber Gelen StringUtils.join metodu. Çok daha pratik
- connection.setRequestMethod("GET"); -> "GET" yerine bunun tanımlı olduğu bir Enum vardır illaki bir yerlerde bunu kullanabilirsiniz.
- Genel olarak exception handling kullanımınız pratik değil. Bütün işlemi tek bir try catch bloğu içerisinde yapıp farklı exceptionları handle edebilirsiniz tek bir yerde. Bu hem kodun okunabilirliğini arttırır hem de bakımını.
- Logger kullanımınız hatalı. Sürekli olarak Logger init etmez yerine bu logger objesini sınıfın tepesinde private static final olarak tanımlayıp kullanmanız daha uygun. Kullandığınız log kütüphanesi nedir bilmiyorum ama log4j, slf4j gibi kütüphanelerde log metodunun içerisine seviye vermektense direk belirli seviye için log yazdırılabilir. LOGGER.debug, LOGGER.error vs. gibi. Tahminimce kullandığınız log(Level.SEVERE, null, ex); içerisinde null verdiğiniz alan exceptionMessage. Bu alanı boş bırakıp exception'ın kendisinin stackTrace'ini basmak log okunabilirliği açısından da kullanışlı değil. Exception message basmak daha mantıklı. Bir de Eğer exception handle edilmişse bunun log seviyesi SEVERE olmamalı. En kötü WARN olur. Genellikle ERROR seviyesinde yazdırılır.
- if (kod == 200) -> hatalı değil sizin durumunuzda, kod int tipinde bir değişken ama genel pratik olarak önce değer, sonra değişkeni yazdırmak çok daha faydalı bir pratik. Mesela
String a;
if(a.equals("HEDE"))
dersem eğer, nullpointerexception yerim. Ama
if("HEDE".equals(a))
dersem "HEDE" değeri ile null karşılaştırdığım için a değerini init etmeyi unutsam bile false değerle devam eder geçer. Bu yüzden bu pratiği alışkanlık haline getirmeniz çok daha faydalı.
Gözüme çarpanlar bunlar, biraz vaktim vardı yazabildim umarım faydalı olur.
< Bu mesaj bu kişi tarafından değiştirildi bestanealtcizgi -- 18 Temmuz 2013; 14:07:37 >
Elimde bi string dizi var
şeklinde
amacım şu
site.com/adminpaneli
yani admin paneli listeliyorum.
Yazdığım kodları da paylaşayım en altta bakarsınız ben derdimi açıklayayım
ilk try blogundaki
url = new URL(siteAdresi.getText() + "/" + adminPaneli);
kısmında adminPaneli dizisini benim sıra ile denetmem gerekiyor ancak başaramadım.
orayı
url = new URL(siteAdresi.getText() + "/" + "admin");
yaparsam eğer sitedeki admin paneli varsa buluyor
benim sadece o kısımı düzenlemem gerekiyor bunu nasıl yapabiliriz?
Karmaşık oldu ise diye ekran görüntüsü atıyorum daha rahat anlayacaksınız
Bu hata aldığım hali
< Resime gitmek için tıklayın >
Bu da çalışan hali
< Resime gitmek için tıklayın >
Ahan bu da kodlar