2016-01-12 27 views
6

Bir java projesi kodda tam nitelikli adlar kullanıyorsa, checkstyle ile kontrol etmek mümkün mü? KodunJava kodunda tam nitelikli adlar nasıl önlenir

if (org.apache.commons.lang3.StringUtils.isBlank(name)) { 
.... 
.... 
} 

kodlarını engellemek ve bunun yerine bunun yerine paketleri içe aktarılmasını sağlamak istiyoruz.

bize bunu başarmak yardımcı olabilecek diğer araçlar vardır musunuz?

+4

Sınıf adı çakışmaları varsa, araçtan ne beklersiniz? – varevarao

+0

Ithalat kontrol kuralı ile kontrol edebilirsiniz. Daha sonra Maven Checkstyle eklentisini yapılandırın, herhangi bir ihlal oluşmaya izin vermeyecek ...? – Codexer

+1

İlginç bir soru. Fakat bunu etkinleştirmek istediğinden emin misin? Ben eski kod uğraşıyorum zaman zaman tam adlarını kullanmak için gerekli ettik ve birileri * özel * 'StringUtils' sınıf kullanımını yaptı. Sınıfın yetersizliği göz önüne alındığında, bu sınıftaki Apache Commons 'StringUtils' kullanılarak sonuçlanırken, içe aktarma özel' StringUtils' üzerinde zaten kullanılıyor ve dolayısıyla buna ihtiyacım var. – entpnerd

cevap

2

olarak bildiğim kadarıyla, Checkstyle bunu yapamaz. Ancak, bir göz atmaya değer olabilir UnnecessaryFullyQualifiedName adlı PMD kuralı vardır. PMD IntelliJ eklentileri ücretsiz indirebilir, örneğin QAPlug PMD için, mevcuttur.

olsa yanlış pozitif bir sürü görmek için hazırlıklı olun. Örneğin, aynı basit adı paylaşan iki sınıf, tam olarak nitelenmiş bir sınıf adı olmadan başvuruda bulunamaz (ör. foo.A ve bar.A). Belki de PMD'nin bu davayı kontrol ettiğini, denemeye değer olabileceğini söyleyebiliriz.

+0

PMD onay sadece uyarır, ancak uyarmak etmezse tam nitelikli sınıf değil mi Henüz ithalatta listelenmedi. [Az] + [.] [Az] + [.] [AZ] gibi bir duruma duyarlı normal ifade, içe aktarılmayanların bazılarını yakalamaya yardımcı olabilir, ancak bu kesinlikle yanlış pozitiflere sahip olacaktır :) – HairyFotr