2012-05-02 38 views
5

Verilen aşağıdaki programı:Java genel ad erişim

class A { 
    static int java = 42; 
    static int System = -1; 

    public static void main(String[] args) { 
     java.lang.System.out.println("Foo"); 
    } 
} 

bu Derleme bana "int indirgenmedikleri edilemez" diyerek bir hata verir. Sebebi belli, ama böyle durumlar nasıl ele alınmalı. Kod oluşturma senaryolarında özellikle, kullanıcı kodunun üretilen kodla ne iç içe geçtiğini bilemez.

C# içinde "java.lang" önce "global ::" ad alanı belirtecini kullanırdım, ancak Java'da ne yaparsınız?

+0

Bu, hiç düşünmediğim bir şeydi! – adarshr

cevap

3

Java'da genel bir çözüm yoktur. Bu yaşamak yolu

  1. saygı adlandırma paket/alan adlarından sınıf isimleri ayırt sözleşmeler, ve kod oluşturulurken
  2. sınıfsal adıyla Statik VAR hak etmektir.
+0

Bunun nasıl yardımcı olması gerekiyor? Eyvind örneğinde normal adlandırma kurallarını izler ve alanın statik olup olmadığını fark etmez, hala java paketine erişim önceliğine sahiptir. – jarnbjo

+0

Dediğim gibi, "Java'da genel bir çözüm yok" :) –

+0

Doğru, korktuğum buydu. Pragmatizm, ben geliyorum! – Eyvind

İlgili konular