Methodenparameter zur Compile-Zeit überprüfen

Thalles

Mitglied
Hallo an alle,

gibt es eigentlich in Java eine Möglichkeit einen einfachen Methodenparameter wie einen Integer auf seinen Wert zu überprüfen und dann zur Compile-Zeit einen Fehler zu anzuzeigen? Z. B. mit Annotations?

Wie man es zur Laufzeit macht ist mir klar, aber ich schreibe gerade eine API und ich will, dass der Programmierer der meinen Code benutzt schon beim schreiben des Programmes einen Fehler angezeigt bekommt.

Also z.B in folgender Methode sollte überprüft werden, dass der Wert von divisions über 0 ist.
Java:
public void setDivisions(int divisions) {
		...
}

Vielen Dank schon mal im voraus!

Tschüß Thalles
 
Was Maki meint: Geht nicht, wie du dir das vorstellst. Wo her soll ein Compiler wissen, was z.B. ein Benutzer eingibt oder aus einer Datei gelesen wird?
 
Was Maki meint: Geht nicht, wie du dir das vorstellst. Wo her soll ein Compiler wissen, was z.B. ein Benutzer eingibt oder aus einer Datei gelesen wird?

Könnte der Java-Compiler nicht mittels einer Annotation, die sich auf dem übergebenen Parameter bezieht, checken ob der übergebene Parameter eine bestimmte Größe hat (im Fall von einem Integer)?

Ich weiß, dass zum z. B. bei Google GUICE folgendes möglich ist:
Java:
public class PayPalCreditCardProcessor implements CreditCardProcessor {
  private final String apiKey;

  @Inject
  public PayPalCreditCardProcessor(@Named("PayPal API key") String apiKey) {
    this.apiKey = apiKey;
  }
Quelle: JustInTimeBindings - google-guice - Bindings that are created automatically by Guice - Project Hosting on Google Code

Wobei zur Compile-Zeit der Wert von "apiKey" mit einem in einer Konfigurationsklasse definierten Wert ersetzt wird.

Thalles
 
Denk doch mal drüber nach 😉

Wenn der Wert nur dynamisch gesetzt wird(Zählvariable in einer Schleife, DB Daten, Benutzereingaben, etc. pp.), existiert er zur Compilezeit nicht, da kann nix geprüft werden.

Da was du willst geht nur in sehr kleinem Rahmen, nämlich da, wo die Werte schon zur Compilezeit bekannt sind, und das ist eher die Ausnahme.
 

Neue Themen


Zurück
Oben