İçindekiler:
- Büyük harfleri ait oldukları yere koyun
- Bir switch deyiminden kurtulun
- Değerleri çift eşitlik işaretiyle
- Etkinlikleri işlemek için dinleyiciler ekleyin
- Gerekli yapıcıları tanımlayın
- Nonstatic referansları düzeltme
- Bir dizide sınırlar içinde kalma
- null işaretçilerini öngörün
- Kullanım izinleri
- Etkinlik bulunamadı
Video: Functional Programming & Haskell - Computerphile 2024
Java uygulamaları Android ile programlarken kolay hataları önlemek için 10 hızlı hatırlatıcı vardır kodu. Bu kontrol listesini inceleyince kendi Java programlarınızı yazmanız çok daha kolay ve pürüzsüz olacaktır.
Büyük harfleri ait oldukları yere koyun
Java, büyük / küçük harfe duyarlı bir dildir; bu nedenle, P ve Q larını aklınızda tutun - diğer her harfle birlikte alfabenin. Java programları oluştururken aklınızda bulundurmanız gereken bazı kavramlar şunlardır:
-
Java'nın anahtar kelimeleri tamamen küçüktür. Örneğin, Java if deyiminde, ise veya IF ise olamaz.
-
Java Uygulama Programlama Arayüzü'ndeki (API) adları kullandığınızda, adların durumu API'da görünenle eşleşmelidir.
-
Ayrıca kendiniz oluşturduğunuz adların tüm program boyunca aynı şekilde büyük harf kullanımına tabi tutulduğundan emin olmanız gerekir. Bir myAccount değişkenini bildirirseniz, hesabınıza MyAccount, myaccount veya Myaccount olarak başvuramazsınız. Değişken adını iki farklı şekilde saklarsan, Java tamamen farklı iki değişkene atıfta olduğunu düşünür.
Bir switch deyiminden kurtulun
Bir switch deyiminden kurtulmazsanız, devrilmeye başlarsınız. Örneğin, rulo değeri 7 ise, aşağıdaki kod üç kelimeyi yazdırır: kazan, devam et ve kaybet:
anahtar (roll) {case 7: Sistem. dışarı. println ("kazan"); Durum 10: Sistem. dışarı. println ("Devam"); vaka 12: Sistem. dışarı. println ("lost");}
Değerleri çift eşitlik işaretiyle
İki değeri birbirleriyle karşılaştırdığınızda çift eşitlik işareti kullanırsınız.
if (inputNumber == randomNumber)
doğru, ancak
if (inputNumber = randomNumber)
satırı doğru değil.
Etkinlikleri işlemek için dinleyiciler ekleyin
Kullanıcı bir widget'ı ne zaman tıkladığını, bir animasyon sona erdiğinde veya başka bir şey olduğunda ne yaptığını bilmek istersiniz; böylece dinleyiciler yaratırsınız:
public class MainActivity, Activity uygulamalarını genişletir OnClickListener, AnimationListener {… public void onClick (Görünüm görünümü) {…} public void onAnimationEnd (Animasyon animasyonu) {…}
Dinleyiciler oluşturduğunuzda, dinleyicileri ayarlamayı unutmayın:
ImageView widget = yeni ImageView (bu); widget. setOnClickListener (bu); … AlfaAnimasyon animasyonu = yeni AlfaAnimasyonu (0,0F, 1,0F); animasyon. setAnimationListener (bu); …
setOnClickListener çağrısını unutursanız, widget'ı tıklattığınızda hiçbir şey olmaz. Widget'i ikinci kez zorlamak yardımcı olmaz.
Gerekli yapıcıları tanımlayın
public Temperature (double number)
gibi parametrelerle bir yapıcı tanımladığınızda Java artık sizin için varsayılan bir parametreden bağımsız yapıcı oluşturmaz. Başka bir deyişle artık
Sıcaklık odasıTemp = yeni Sıcaklık ();
parametrelerini kullanmazsanız, açıkça kendi parametresiz Sıcaklık oluşturucunuzu tanımlamazsanız.
Nonstatic referansları düzeltme
Aşağıdaki kodu derlemeye çalışırsanız, bir hata mesajı alırsınız:
class WillNotWork {String greeting = "Merhaba"; public static void main (Dizge args []) {Sistem. dışarı. println (selamlama);}}
Ana mesaj statik olduğu için tebrik statik değil çünkü bir hata mesajı alırsınız.
Bir dizide sınırlar içinde kalma
On bileşenden oluşan bir dizi bildirirken, bileşenlerin 0'dan 9'a kadar dizini bulunur. Diğer bir deyişle,
int misafirler [] = yeni int [10];
Misafirler dizisine ait bileşenleri konuklar [0], misafirler [1] vb. Konuklara kadar [9] yazarak görebilirsiniz. Misafir dizisinin dizin 10 ile hiçbir bileşeni olmadığı için konukları yazamazsınız [9].
null işaretçilerini öngörün
Bu örnekler NullPointerException atmaya eğilimli değil, ancak gerçek hayatta Java programlamasında İstisna her zaman gör. NullPointerException, "meşru" bir değere sahip olmayan bir deyimle bir yöntem çağırdığınızda ortaya çıkar. Ucuz bir örnek:
public class ThrowNullPointerException {public static void main (String [] Bağımsız değişkenler) {String myString = null; } görüntü {} () {System}}}}}}}}} dışarı. println (aString);}}}
Görüntüleme yöntemi, yalnızca bir dizge gizli sözcüğü içermiyorsa, bir karakter dizesi yazdırır. Sorun, myString değişkeni (ve böylece aString parametresi), boş dizgeye (") bile değil, herhangi bir dizgeye işaret etmemesi.
Bilgisayar aString çağrısına geldiğinde. içerir, bilgisayar boşa ait contains bir yöntem arar. Fakat null hiçbir şey değildir. Boş değerin hiçbir yöntemi yoktur. Böylece büyük bir NullPointerException alırsınız ve program çevrenizde çökmeye başlar.
Bu tür felaketlerden kaçınmak için, kodunuzdaki herhangi bir yöntem çağrısı hakkında iki kez düşünün. Nokta öncesi ifade boşa çıkabilirse, programınıza istisna işleme kodu ekleyin:
try {if (! AString. Contains ("confidential")) {System. dışarı. println (aString);}} catch (NullPointerException e) {Sistem. dışarı. println ("Dizge boştur.");}
Kullanım izinleri
Bazı uygulamalar açık izinlere ihtiyaç duyar. Örneğin, bir uygulama İnternet üzerinden Twitter sunucuları ile konuşabilir. Uygulamanın AndroidManifest öğesine eklemediğiniz sürece bu geçerli değildir. xml dosyası:
Eğer elemanı AndroidManifest'e eklemeyi unutursanız. xml dosyası içeriyorsa, uygulama Twitter sunucuları ile iletişim kuramaz. Uygulama, yararlı bir hata mesajı görüntülemeden başarısız oluyor. Çok kötü!
Etkinlik bulunamadı
Uygulamanız için ikinci bir etkinlik oluşturduysanız, uygulamanın AndroidManifest'inde yeni bir öğe eklemelisiniz.xml dosyası. Örneğin, bir Android uygulaması iki etkinliğe sahip olabilir: MainActivity ve MyListActivity.
Eclipse otomatik olarak bir oluşturur. Bu öğeyi eklemezseniz Android, MyListAcitivity olmasına rağmen MyListActivity sınıfını bulamaz. java dosyası, uygulamanın Eclipse proje dizininde bulunuyor. Uygulamanız ActivityNotFoundException ile çöker. Ve bu da fark yaratıyor.