Java'nın varsayılan paketinin kullanımı kötü bir uygulamadır mı?Java'nın varsayılan paketinin kullanımı kötü bir uygulamadır mı?
cevap
Evet, öyle. İdeal olarak, paket isimlerinin çarpışmaları önlemek için paket isimleri global olarak benzersiz olmalıdır. Varsayılan paketi kullanmak bu sözleşmeyi bozar. Bir sınıfı varsayılan paketten almak da imkansızdır.
Adsız paketler neden bu kadar kötü bir fikirse, neden var? the JLS §7.4.2 Gönderen:
Unnamed packages are provided by the Java platform principally for convenience when developing small or temporary applications or when just beginning development.
) ... Bir başkasının seninle aynı düşünce çizgisine sahip olmasına gerek yok. Sadece adlandırılmış bir paket kullanmakla ilgili sorun nedir? –
@irreputable Mantığınızı beğeniyorum. – Michael
... evet, ama sonra benim gibi insanlar için endişeleniyorlar, böylece hepsi kullanmamaya karar verdiler. – irreputable
Evet, öyle. Sorun, sınıfları varsayılan paketten almak mümkün olmamasıdır.
birçok farklı düzeylerde sorunlar vardır:
- Eğer sınıf yükleme sorunlarını eğer alacak
- olmayan sınıflardan varsayılan paketindeki sınıfları alamıyor Birden çok eserler
- içinde varsayılan paketi çözümlemeye çalışın, normalde
- gibi varsayılan ve korumalı kapsamı kullanamazsınız. kodunuz ile diğer kodunuz arasındaki ayrım
Evet öyle. Diğer cevaplar belirttiği gibi, sınıfları varsayılan paketten yükleyemezsiniz.
SO cevapları bakınız:
How to import a class from default package
How to access java-classes in the default-package?
Ancak log4j yapılandırma varsayılan paketinde yer olmasını gerektirir. Orada tutulması makul olan tek şey bu.
Düzeltme: Açıklama Sean Patrick Floyd ve Michael'ın yorumlarda belirttiği gibi, herhangi bir yapılandırma dosyasını varsayılan pakete koyabilirsiniz. Her ikinize de bunu bana gösterdiğin için teşekkürler.
Sadece log4j config değil, birçok yapılandırma verisi türü. Ancak, Java sınıfları –
Spring konfigürasyon dosyaları (applicationContext.xml) genellikle buraya da gider. – Michael
@SeanPatrickFloyd bu benim becerilerimi geliştirmeme yardımcı olan yorumlar! Teşekkür ederim. –
- 1. requireJS modülünü tekil olarak kullanmak kötü bir uygulamadır mı?
- 2. Firebase'deki statik veriler kötü bir uygulamadır?
- 3. UnsafeHeaderParsing öğesini varsayılan olarak etkinleştirmek kabul edilebilir bir uygulamadır mı?
- 4. Standart olmayan İngilizce karakterleri C# adında kullanmak kötü bir uygulamadır?
- 5. Bir projeye gömülü bir kaynak olarak çok sayıda komut dosyasını eklemek kötü bir uygulamadır mı?
- 6. Android uygulamanızda parçaları kullanan tek bir etkinliğe sahip olmak kötü bir uygulamadır mı?
- 7. Tek bir android uygulamasında çoklu arkaplan hizmetleri kullanmak kötü bir uygulamadır mı?
- 8. Transport güvenliği Internet üzerinden WCF servisi için kötü bir uygulamadır mı?
- 9. bu dinamik kullanımının kötü bir uygulaması mı?
- 10. Kullanırken kötü karakter kullanımı - [NSString drawInRect: withAttributes:]
- 11. Ana dosyalar yerine main.cpp işlevlerini tanımlamak kötü bir uygulama mı?
- 12. Sadece veri seçmek yerine LINQ kullanmak ve eylem yapmak LINQ kullanmak kötü bir uygulamadır?
- 13. STI'da type alanı için Enum kullanmak iyi bir uygulamadır mı?
- 14. ThreadPoolExecutor içinde allowCoreThreadTimeOut() ayarlamak iyi bir uygulamadır mı?
- 15. CancellationToken ayarlandığında keyfi bir istisna atmak kötü bir uygulama mı?
- 16. "İstisnai Atıyor" kötü uygulama mı?
- 17. R plyr paketinin varsayılan olarak paralel çalışmasını söyleyebilir miyim?
- 18. Vim'in kullanımı kalıcı mı?
- 19. Bir MSI paketinin sessiz kurulumu
- 20. Bir NuGet paketinin test edilmesi
- 21. RuntimeException'ın uygun kullanımı?
- 22. boş bir statik görevi TPL'de kötü bir uygulamada mı döndürüyor?
- 23. Kötü niyetli bir android uygulaması nasıl belirlenir
- 24. Swing paketinin JavaFX eşdeğeri()
- 25. Uyarı: Tanımsız sabitin kullanımı ENT_HTML5 - varsayılan 'ENT_HTML5'
- 26. Uyarı: Tanımlanmamış sabit STDOUT kullanımı - varsayılan 'STDOUT'
- 27. laravel/Besteci paketinin
- 28. .irbrc'nin Scala sürümü veya REPL kullanımı için bazı varsayılan kitaplıkları tanımlamanın başka bir yolu var mı?
- 29. Python paketinin çalıştırılması
- 30. Href'de bir POST isteği için veri saklama - kötü uygulama?
Bu paketteki sınıflara başka, 'gerçek' paketlerden başvurmaya çalışırken varsayılan paketi kullanmada ortaya çıkan sorunların belirsiz anılarına sahibim. – Oliver
Evet, atma kodu yazmıyorsanız. – aroth
Yaptığınız şeye bağlı. Bir sınıf Java ödevi için iyi. Başka bir şey - sadece adlandırılmış bir pakete koyun ve güvende olursun. –