2010-02-14 4 views
22

Korzystam z IDE Eclipse dla mojego projektu Java.Jak mogę automatycznie aktualizować Javadoc podczas zmiany podpisu metody w Eclipse?

Mam jeden problem. Mam metody w moim projekcie, które mają uwag Javadoc jak w następujący sposób:

/** 
* Retruns the string representation of a input stream 
* @param in 
* @return 
* @throws IOException 
*/ 
public static String getStringFromInputStream (InputStream in) throws IOException { 
    StringBuffer out = new StringBuffer(); 
    byte[] b = new byte[4096]; 
    for (int n; (n = in.read(b)) != -1;) { 
     out.append(new String(b, 0, n)); 
    } 
    return out.toString(); 
} 

Teraz chcę wiedzieć, że jest jakiś sposób, przez który ilekroć jeśli wprowadzę zmiany w podpisie moja metoda na te zmiany odzwierciedlają w javadoc automatycznie.

+2

może być dobre do tego nadawać. Nie ma problemu z javadoc, jak twierdzi tytuł. Może coś w rodzaju "Refaktoryzacji ze zmian JavaDoc w Eclipse". Nie sądzę, że możesz to zrobić bez pisania wtyczki, btw. –

+0

** To wciąż jest otwarte na odpowiedź !!!! **. Wszystkie odpowiedzi odnoszą się do opcji refaktora. Ale co jeśli dodałem nowy parametr lub usunięto param z metrum podpisu. W takim przypadku jak zaktualizować javadoc? – mtk

+0

Faceci sprawdzają moją odpowiedź na obejście problemu! – mtk

Odpowiedz

1

Prasa Atl+Shift+R i zmienić

+1

Działa tylko z nazwami parametrów. Zmiany w podpisie obejmują także dodawanie/usuwanie parametrów, zmianę klauzuli throws itp. – whiskeysierra

+2

Technicznie, jest to po prostu polecenie [dla 'Refactor'>' Rename'] (http://www.n0sl33p.org/dev/eclipse_keys.html). – Pops

4

Nie wiem w żaden sposób, aby automatycznie zsynchronizować nagłówek Javadoc, ale jeśli zmienisz nazwę parametru przy użyciu Ctrl-1 + Rename in file, nazwa nagłówka Javadoc zostanie odpowiednio zmieniona.

10

Eclipse zapewnia odpowiednie opcje w celu zapewnienia poprawności javadoc oprócz Rename Refactor JesperE wymienić:

  • Zmień sposób podpis operacja Refactor modyfikuje również javadoc (dodaj/usuń niezbędne znaczniki). Powinieneś użyć tej lub Zmień nazwę, aby zmodyfikować kod, który jest już w użyciu.
  • Jeśli aktywujesz Dodaj tagi Javadoc na Preferences/Java/Edytor/Wpisanie stronę następnie Eclipse generuje prawidłowy javadoc niedopałek po wpisaniu /** + Wprowadź przed metody.

Można również ustawić opcje kompilatora, aby sprawdzić javadoc brakujące tagi na Preferencje/Java/Compiler/Javadoc. W takim przypadku otrzymasz ostrzeżenia od kompilatora dotyczące brakujących/dodatkowych znaczników i masz szybkie poprawki (Ctrl + 1) w celu ich poprawienia. Jest to dobra opcja, aby zapewnić poprawność istniejących javadocs w dłuższej perspektywie.

2

Refaktoryzacja z opcją „referencje update” nie jest wystarczające. Musisz upewnić się, że "Process Javadoc comments" jest zaznaczone w oknie-> Preferencje, Java-> Kompilator-> Javadoc. Dostosuj stronę preferencji tak, jak lubisz i wszystko będzie działać poprawnie.

1

Jak pisali scenariusz, w którym Refactor nie będzie działać

Wszystkie odpowiedzi odnoszą byłaby opcję. Ale co jeśli dodałem nowy parametr lub usunięto param z metrum podpisu. W takim przypadku jak zaktualizować javadoc?

Istnieje obejście znalazłem, ale tak nie jest jeszcze zautomatyzowany proces i nie jest dobre dla dużej liczby zmian.

Sposób obejścia tego problemu:
1. Usuń komentarz javadoc i upuść go jako komentarz, tj. Zaktualizuj /**' and change it to just/* '.
2. Teraz jeszcze raz nad podpisem metody/deklaracją wpisz /** i naciśnij enter. Ponownie zapełni zaktualizowane parametry i zwróci informacje.Teraz przenieś linie opisu ze starszego komentarza do nowego.
3. Można używać Alt + Up/dół strzałek do osiągnięcia tego celu.
4. Gotowe Usuń stary komentarz javadoc po jego skopiowaniu we właściwym miejscu.

+1

_ "A co jeśli dodałem nowy parametr lub usunięto parametr z podpisu metody. W takim przypadku jak zaktualizować javadoc?" - odpowiedź Csaba_H na to pytanie; użyjesz _Refactor_> _Change Method Signature ..._ i doda i/lub usunie parametr (y) na metodzie podpisu _ i_ javadoc. –

2

Wystarczy nacisnąć ALT + SHIFT + J o nazwie metody i usunąć dodatkowe linie:

PRZED:

/** 
* Copies all the details from the passed template into the passed new 
* header. 
* 
* @param pNewHeader 
*/ 
private void doCopy(int pNewHeader, int pTemplate) { 

PO:

/** 
* Copies all the details from the passed template into the passed new 
* header. 
* 
* @param pNewHeader << DELETE 
*/     << DELETE 
/**     << DELETE 
* @param pNewHeader 
* @param pTemplate 
*/ 
private void doCopy(int pNewHeader, int pTemplate) { 
Powiązane problemy