Posted: Mart 24th, 2009 | Author: Hüseyin Berberoğlu | Filed under: İpuçları, Java | Tags: hata, Java, örnek kod | 3 Comments »
Bu hatayı aldığınızda öncelikle listelerde geçerli olan remove(int index) fonksiyonunun referans sayfasına bakalım;
- Throws:
UnsupportedOperationException – if the remove method is not supported by this list.
Aslında hata gayet açıklayıcıydı ama başka tür hatalar aldığınızda da referans sayfasına bakmanızda fayda olduğundan bu aşamayı da yazdım.
Ben bu hatayı Arrays.asList ile liste oluşturduğumda aldım;
List enumList = Arrays.asList(ApplicationStatus.values());
enumList.remove(3);
Bu kodun amacı ApplicationStatus sınıfındaki enum degerleri bir listeye atıp ardından bazı elemanları silme işlemi yapmaktı.
Bu şekilde asList ile oluşturulan listeler java.util.Arrays$ArrayList gibi bir liste döndürüyor ve bu tip listeler remove() add() gibi fonksiyonları desteklemiyor. Bu sebepten UnsupportedOperationException hatasını alıyoruz.
Bunun çözümü bir şekilde düzgün bir liste oluşturmak. Ben şöyle yaptım;
List enumList = Arrays.asList(ApplicationStatus.values());
List realList = new ArrayList();
for (int i = 0; i < enumList.size(); i++) {
realList.add(enumList.get(i));
}
realList.remove(3);
Artık realList ile istediğim gibi remove(), add() fonksiyonlarını kullanabiliyorum.
Posted: Aralık 22nd, 2008 | Author: Hüseyin Berberoğlu | Filed under: Java | Tags: BigDecimal, divide(), Java, java.math | 4 Comments »
Java’da iki BigDecimal değeri divide() fonksiyonu ile bölmek istediğimde şu hatayı aldım;
Non-terminating decimal expansion; no exact representable decimal result.
Hatayı almamın sebebi divide fonksiyonunu yanlış kullanmammış. Şöyle iki değişkenimiz olsun;
BigDecimal sayi1 = BigDecimal.valueOf(100);
BigDecimal sayi2 = BigDecimal.valueOf(50);
Bunları bölmeye çalışalım;
İlgili referans sayfasından da görebileceğiniz gibi bu şekilde bir kullanım yanlış. roundingMode parametresini kullanmamız zorunlu. Peki roundingMode kullanmadan bölmek mümkün mü ? Ben böyle yaptım (alttaki kod tek satır));
BigDecimal sonuc = new BigDecimal(sayi1.doubleValue() / sayi2.doubleValue());
Bu kod çalıştı. Bunun daha iyi bir yolu varsa yorum olarak yazarsanız sevinirim.
Posted: Ocak 20th, 2008 | Author: Hüseyin Berberoğlu | Filed under: Java | Tags: formatlama, Java, nesneye yönelik programlama, oop, printf, string | 1 Comment »
Bu ara java ile uğraşıyorum.. Gerçekten güzel bir dil. Eğer Eclipse gibi bir editör ile yazarsanız çok kolay bir dil haline geliyor. Henüz tam olarak OOP (Object Oriented Programming (Nesneye Yönelik Programlama)) mantığım çok iyi olmadan yazsam da bir şeyler yazabiliyorum : ) Konsolda çalışıyorum ve konsolda string formatlamayı internette çok aradım, sonunda buldum.. Şöyle oluyormuş… Read the rest of this entry »
Posted: Ocak 15th, 2008 | Author: Hüseyin Berberoğlu | Filed under: Java | Tags: cast, casting, double, integer, Java, parse, parsing, string | 3 Comments »
Bir değişkeni integer’dan double’a cast ederek çevirmek kolay çünkü ikisi de aynı sınıftan türemişler.. bknz.
int a = 50;
double b = (int) a;
gibi.. Fakat bir string, sayıya aynı sınıftan türemedikleri için cast ederek çevrilemiyor, parse etmek gerekiyor.. Şöyleki;
String numara = 60;
double no = Double.parseDouble(numara);
üstteki kod string’i double’a çeviriyor. Integer’a çevirmek için double gördüğünüz yere Integer yazın :)
Posted: Ocak 14th, 2008 | Author: Hüseyin Berberoğlu | Filed under: Java, Pardus | Tags: Eclipse, Java, Linux, MySQL, özgürlük için, Pardus, SQL Explorer | 3 Comments »
Pardus 2007.3′e kurduğum Eclipse yazılım geliştirme programında java dili kullanarak MySQL’e bağlanmaya çalışıyordum bir süredir (1-2 gündür). Ama bir türlü bağlanamadım. Bağlanmaya çalıştığımda şu hatayı alıyordum;
Cannot connect to db/user. Check your URL
Communications link failure
Last packet sent to the server 0 ms ago
Sonunda çözümü buldum… Problem mysql’in ilk kurulumuyla gelen ayarların dışarıdan erişime izin vermemesiymiş.. Düzeltmemiz gereken dosya /etc/mysql/my.ini dosyası.. Pardusta düzeltmeyi şu şekilde yapabiliyoruz; Read the rest of this entry »