2012-01-27 21 views
37

Yaklaşık 30 yöntemle bir arabirim oluşturdum ve 30 sınıfta uygulandım.IntelliJ, belirli bir arayüzün tüm yöntemlerine @Overrrides eklemek mümkün mü?

Uygulamaların her birine @Override eklemek istiyorum, ancak el ile yapmak istemiyorum.

IntelliJ bana nasıl yardımcı olabilir?

arayüzü şuna benzer:

public interface PreviewObjectTests { 
    void testGetName(); 
    void testGetType(); 
    //... 30 similar methods 
} 

uygulama kodu: Kolayca + sonra, niyeti girin Sağ alt menü için ok tuşuna Alt ile yapılan

public class PreviewObjectAccountTest implements PreviewObjectTests { 

    //I want to add @Override here! 
    @Test public void testGetName() { 
     assertThat(...); 
    } 

    //I want to add @Override here! 
    @Test public void testGetType() { 
     assertThat(...); 
    } 

    //...30 similar methods 

} 
+2

kolay sınıfların birkaç yüz ... açıklama için

Bu

intellij bilemem, çalıştı. – Scorpion

+2

Eclipse'de nasıl yaparsın peki? Bu soruyu okuyucuları için yararlı olabilir :) –

cevap

44

:

Fix all

+0

Aslında dosyada bu niyet önerisi alıyorum değil. Listemdeki tek niyetim, '@ test()' 'seçeneğine genişletmektir. Başvurduğunuz amaç, yalnızca üretim sınıfı dosyalarında çalışır ve testlerde çalışmaz mı? –

+0

Proje dil seviyesinin 1.6 veya daha yüksek bir değere ayarlandığından emin olun. – CrazyCoder

+0

Dil seviyesi *, "seviye 6.0 - @ arabirimlerinde @Override" olarak ayarlanır. (IntelliJ 11.01 java 1.6.0_27 ile kullanıyorum). –

-1

Basit bulma/değiştirme aracıyla bunu yapmanın bir yolunu buldum.

  1. İlk i arayüzü uygulayan tüm dosyaları/
  2. Sonra ben basit find oluşturulan değiştirmek yalnızca değiştirilen dosyaları bakmak yerine kışkırtmak için bir yöntem adını değiştirdi. sınıf dosyalarında gerçekten başka yöntemler yoktu çünkü

Intellij Add @override for tests in changed files only

Bu benim özel durumda çalışır. Diğer arabirimlere ait dosyalarda çok fazla yöntem olsaydı, bu biraz daha çılgın olacağını düşünürdüm

+1

-1 (bunu yapamayacağım :)) Bunun için arama yapmak/değiştirmek yanlış bir fikirdir. –

+0

Bunun kötü bir fikir olduğunu kabul ediyorum, ancak daha iyi bir fikir ortaya çıkmadı. Neyse ki, bu benim ünite test dosyalarını düzenlediğim için benim için çalıştı. –

+0

Metin değiştirme iyi değildir, çünkü hangi yöntemlerin gerçekten geçersiz olduğunu ve hangilerinin geçersiz olduğunu kontrol etmeniz gerekir. Bu özellik Java IDE'lerinde yerleşik olduğundan, oylama yapmaktan başka seçeneğim yok: '( –

-1

Onun tutulması veya fikri özel değil. Onun derleyici özel ve hangi uyumu bağlı. Tutulmasında 1.6 veya daha yüksek. Ve inanıyorum ki onun 1.5 veya daha yüksek bir boyuta inanıyorum. Yukarıdaki durumlarda ilgili IDE'ler tarafından otomatik olarak kontrol edilecektir. IntelliJ için

+0

Negatif için üzgünüz. Sorun otomatik düzeltmeyle ilgili: "Her bir uygulama için @Override eklemek istiyorum ama el ile bunu yapmak istemiyorum. " –

36

:

  1. Kontrol varsa Tercihler içine işaretli "@Override ek açıklaması eksik" -> Proje Ayarları -> Denetimler -> Kalıtım sorunları.
  2. Analiz Yap -> İnceleme Kodu
  3. Kalıtım sorunlarını giderme -> "Muayene Profili Sonuçları" penceresinin içinde Eksik @Override notu bulun.
  4. Eclipse için Apply fix "Add @Override annotation"
+1

Onun" Miras sorunları "yerine Intellij sürümümde" Sınıf Yapısı "içinde ama" geçersiz kılmalar "için bu" denetimler "ekranında arama yapabilir ve" Eksik "yi bulabilirsiniz. @Overrid ek açıklamaları "kolayca. –

0

(Mars üzerinde test "@Override Ek açıklama ekle" düzeltmeyi uygulayın.2):

Pencere/Tercihler (veya Proje Özellikleri) Java/Derleyici Hata @Override ek açıklama Eksik/Uyarılar Açıklamalar - Markerlerinin içinde yeniden çalışma sonrasında Hata Set (veya Uyarı)

, görünüm, hatalardan birine sağ tıklayın, Hızlı Düzeltme (Ctrl + 1) ve tüm hatalar görünmelidir. Tümünü seç ve düzeltmeyi uygula. Beni düzgün tutulması yapmak

İlgili konular