Kod oluşturma aracı: IDEA'nın güçlü Canlı Şablonları

Önsöz

Java geliştirme süreci genellikle özel bir değişken, günlükçü veya çekirdek belirtme gibi sabit bir formatta kod yazmalıdır. Bu tür küçük ölçekli kod üretimi için, IDEA tarafından sağlanan Canlı Şablonlar işlevini kullanabiliriz. İlk başta bunun basit bir Kod Parçacığı olduğunu düşündüm, ancak daha sonra değişken işlev yapılandırmasını desteklediğini ve çok karmaşık kod üretimini destekleyebileceğini keşfettim.

Canlı Şablonların kullanımını tanıtmama izin verin.

Temel kullanım

IDEA, yaygın olarak kullanılan birçok dinamik şablonla birlikte gelir, Java koduna fori girin ve satır başı görünecektir.

için (inti = 0; i < ; i ++) { }

Her bir boşluğa atlamak ve değeri manuel olarak doldurmak için Sekme tuşuna basın.

Özel Şablon

Sonuçta, resmi yerleşik şablonlar kişisel kodlama stilimizin ihtiyaçlarını karşılayamaz.Canlı Şablonlar, özelleştirmemiz için değişken işlevler sağlar.

Basit kullanım

Özel bir şablon eklemek için, önce tetikleyici kelimeyi (yani Kısaltma) doldurmanız gerekir, açıklama isteğe bağlıdır ve ardından şablonun bağlamını tanımlayın, Java'yı seçmek için tanımla'yı tıklayın, böylece Java düzenlenirken geçerli şablon tetiklenir. Bağlamı tanımladıktan sonra, Şablonu doldurabilirsiniz.

İşte sık kullandığım birkaç basit şablon

========== < dışarı > ---------- System.out.println ($ END $) ========== < pfs > ---------- privatefinalstaticString $ varName $ = "$ var $"; ` ========== < privateField > ---------- / ** * YORUM $ * / @Getter @ Ayarlayıcı özel $ TYPE $$ NAME $; ========== < ana > ---------- publicstaticvoidmain (Stringargs) { $ END $ } ==========

Şablon, bir değişkeni temsil etmek için $$ ile çevrili karakterleri kullanarak değişkenlerin tanımını destekler. $ END $, imlecin son atlama konumunu temsil eden önceden tanımlanmış özel bir değişkendir. Her değişkenin konumu üzerinden atlanabilir.

Gelişmiş kullanım

Vim'in Code Sinppet eklentisini kullandıysanız, şablonda işlevlerin çalıştırılabileceğini göreceksiniz.Elbette, güçlü Canlı Şablonlar da bunu destekliyor ve IDEA, şu anda düzenlenen işlevin parametreleri gibi kodun anlamını algılayabilir. Ama bu oyun oynamamıza izin verecek. Şablon işlevlerinin işlevini kolaydan zora inceleyelim.

Daha önce bahsettiğimiz değişkenler işlevlere bağlanabilir ve yapılandırma yöntemi yukarıdaki şekilde gösterilmiştir.

Değişkenleri hızlıca bildirin

Değişkenleri bildirmek, özellikle açıklama eklenmesi gereken değişkenleri bildirmeniz gerektiğinde yaygın bir işlemdir.Yorum yaptığınızda, bu kodları yazmak çok sıkıcıdır. İşte tanımladığım şablon:

< osgiRef > ---------- / ** * END $ * / @OsgiReference @ Ayarlayıcı özel $ TYPE $$ NAME $;

İlk bakışta, bu şablon yukarıda tanımladığım privateField'a benziyor.Tek fark, fonksiyonları bu değişkenlere bağlamam.

  • clipboard (): Geçerli panonun dizesini döndürür
  • decapitalize (): Giriş dizesinin ilk harfini küçük harfe çevirin

Aşağıda gösterelim, önce mevcut sınıf adını kopyalayıp ardından osgiRef'e giriyoruz

Hızlı bir şekilde kaydediciyi bildirin

Günlükçü bildirmek de yaygın bir işlemdir.Yukarıda, değişkenleri hızlı bir şekilde bildirmek için yapıştır işlevini kullandık. Şimdi başka bir sınıfAdı () işlevini kullanacağız.Adından da anlaşılacağı gibi, işlevi geçerli sınıf adını döndürmektir.

< ağaç kesicisi > ---------- /**ağaç kesicisi*/ privatestaticfinalLoggerLOGGER = LoggerFactory.getLogger ($ CLASS $ .class);

En güçlü groovyScript ()

Yukarıda kullanılan işlevler sınırlı yetenekler sağlıyorsa ve yeterince esnek değilse, groovyScript (), istediğiniz tüm yetenekleri sağlar.Girişi işlemek için Groovy komut dosyalarının çalıştırılmasını destekler ve ardından işlenen dizeyi çıkarır.

groovyScript ("kod"; ...) | kod | Bir Groovy kod parçası veya Groovy komut dosyası kodu mutlak yol | | ... | İsteğe bağlı parametreler, bu parametreler Groovy kodunda kullanılan "_1, _2, _3, ..._ n" 'ye bağlanacaktır. |

Pratik uygulamasına bir göz atalım.

Hızlı fasulye yapılandırması

Yeni bir hizmet eklemek için, Spring'e bir bean kaydetmelisiniz. Genel olarak, bu konfigürasyon, id ve sınıfı belirlemekten başka bir şey değildir. Xml'de konfigüre ettiğimiz için, className () fonksiyonunu kullanamayız, ancak onu elde etmek için clipboard () fonksiyonunu kullanabiliriz. Sınıfın tam referansı için, IDEA'da, sınıf adına doğrudan sağ tıklayıp Referansı Kopyala'ya tıklıyoruz. Ardından sınıf adını almak için harika betiği yürütün.

< fasulye > ---------- < beanid = "$ id $" class = "$ REF $" / >

id bind decapitalize (groovyScript ("_ 1.tokenize ('.')", clipboard ())), önce sınıfın tam referansını almak için clipboard () değerini alın ve ardından groovy code_1.tokenize ('.') (Tuşuna basın. Bir dize dizisine bölmek ve ardından sınıf adını almak için sonuncuyu almak ve ardından kimliği almak için ilk harfi küçük harfle yazmak için decapitalize () kullanın.

Mevcut bağlam bilgilerini hızlı bir şekilde yazdırın

Hata günlüğünü yazdırırken, giriş parametreleri gibi mevcut bağlam bilgilerini yazdırmanız gerekir.Bazen çok fazla parametre olduğunda yazmak zordur.Neyse ki, mevcut fonksiyon parametrelerinin bir listesini döndüren bir şablon function methodParameters () vardır. Tabii ki, bu liste biziz Doğrudan kullanılamaz, groovyScript ile dönüştürülmesi gerekir.

< printContext > --------------- LogUtil. $ TYPE $ (LOGGER, "$ MSG $" + $ parametreler $);

Parametreleri groovyScript'e ("'\"' + _1.collect {it + '='}. Join (',') + '\ "'", methodParameters ()) bağlayın, ardından mevcut fonksiyonun parametreleri otomatik olarak yapılabilir Biçimlendirmeden sonra çıktı.

sonuç olarak

Yukarıda yaygın olarak kullanılan şablon işlevlerini kısaca tanıttık. Aslında, IDEA'da başka birçok şablon işlevi vardır. Bkz. Şablon Değişkenleri Oluşturma ve Düzenleme .

Mikro hizmetler için birleşik oturum açma kimlik doğrulaması nasıl yapılır? JWT?
önceki
4D zarif grafikler ve metin, sizi JVM bellek düzeninde ve ayrıntılı analizde ustalaşmaya götürür
Sonraki
En son ve en eksiksiz! İnternet şirketi işe yeniden başlamayı tekrar erteleyeceğini açıkladı Firmanız var mı?
Bu çöp koleksiyonunu okuduktan sonra, görüşmeci ile konuşmak sorun değil
Java'da eşzamanlı ve eşzamansız programlama, orijinal on arabirim artık yalnızca bir arabirime ihtiyaç duymaktadır
Bir dizi temel otomatik dağıtım ve inşa süreci
SpringBoot; filtreler, önleyiciler ve dilimler uygular
Zhou Yutong'un sık sık görünüşü yükseldi! Küçük yeşil bir takım elbise giymek bir erkek çocuktan daha yakışıklı, gerçekten kıyaslanamaz
Song Yanfei'nin tatil yeri tarzı giyinmesi nefreti çekiyor! Tropiklerde böyle giyiyoruz, üşüyoruz
En yeni Japon sanatçı Yuko Shinki'nin en son özel sunucusu, yumuşak ve sevimli tarzı çok hoş ve model popüler.
Şımarık ve sıcak katmanlı kıyafetler 2020 bahar sezonu için hazır, sadece gökyüzünün açılmasını bekleyin
Jin Zhini, aylık W2 dergisinin Kore versiyonunun kapağındaydı, ancak etli yüzünün bu kadar kız gibi olmasını beklemiyordu.
Park Caiying'in sarı saçları ana akım değil mi? Ne kadar saf bir Koreli kadın sanatçı, bu ana akım maç
Zhou Dongyu "kırmızı kumaştan" bir şerit sararak Bahar Şenliği Galasına gitti. Bu yaramaz küçük kırmızı ördeğin kırmızı kutsamaları var. Gerçekten şenlikli
To Top