2016-04-21 13 views
0

Ich habe vor einigen Wochen eine DAL erstellt, die eine Verbindung zur Mongo-Datenbank herstellt.So stellen Sie sicher, dass die als Parameter gesendete Klasse eine bestimmte Annotation hat

Wenn ich die Datenbank mit einer bestimmten Klasse abfragen möchte, muss ich wissen, Sammlung gehört es.

Ich dachte über das Erstellen einer Annotation, die ich über jeder Klasse setzen werde, die den Namen der verwandten Sammlung enthalten wird, und wenn ich die Datenbank abfragen muss, erhalte ich den Annotation-Wert durch Reflektion.

Meine Frage ist, wie kann ich erklären, dass die Klasse, die an mich gesendet wird, die Anmerkung hat.

Ziemlich viel wie:

public List<T> query(Class<T extends Interface>) 

nur:

public List<T> query(Class<T has Annotation>) 

Dank.

+0

Scheint wie die perfekte Zeit, um eine Schnittstelle zu verwenden, nicht eine Anmerkung. –

Antwort

0

Sie sollten entweder Schnittstelle oder Enumeration verwenden, um dies zu tun. Es ist viel einfacher und expliziter.

Aber wenn Sie experimentieren wollen, ist es in Ordnung. Folgendes sollte funktionieren

public List query(Class klass) { 
    for(Annotations a : klass.getAnnotations()) { 
     //Iterate and do stuff 
    } 
    //do other stuff 
} 
Verwandte Themen