Wildcards - Methoden herausfinden.

Status
Nicht offen für weitere Antworten.

gr33b

Aktives Mitglied
Ich will mir eine Collection bauen, die die Methoden der Wildcard herausfindet. Jedoch funktioniert das nicht - sieht da jemand einen Denkfehler:

Code:
/**
 * Meine eigene Collection...
 * 
 * @author ICH
 * @param <Type>
 */
public class MyOwenCollection<Type> extends AbstractCollection
{	
	public void add(Type obj)
	{
		super.add(obj);
	}
	
	/**
	 * Gibt alle public Methoden aus, die dem Regex entsprechen...
	 * 
	 * @param p
	 * @return
	 */
	public Collection<Method> getMethods(String regex)
	{
		Pattern p = Pattern.compile(regex);
		
		Vector<Method> methods = new Vector<Method>();
		
		/**
		 *                  V- Fehler?!!?!
		 */
		for(Method method : Type.getDeclaredMethods())
		{
			Matcher m = p.matcher(method.getName());
			
			if(m.matches())
			{
				if(Modifier.isPublic(method.getModifiers()))
				{
					methods.add(method);
				}
			}
		}
		
		return methods;
	}
}

Danke für die Hilfe.
 

NTB

Bekanntes Mitglied
Ich sehe einen Denkfehler. Du denkst, Deine Leser hätten Kristallkugeln, mit denen sie sehen können, was da nicht funktioniert. Das ist aber falsch... zumindest funktioniert meine nicht mehr, seit dem Klimawandel.
 

Marco13

Top Contributor
Die Tatsache, dass z.B. die "toArray"-Methode von ArrayList zwingend einen Array des gewünschten Ziel-Typs übergeben bekommen muss, legt die Vermutung nahe, dass das nicht geht. Was daher funktionieren würde, wäre sowas
Code:
import java.util.*;
import java.util.regex.*;
import java.lang.reflect.*;

class Test
{
	public void foo() {}
	public void bar() {}
}

/**
* Meine eigene Collection...
*
* @author ICH
* @param <Type>
*/
public class MyOwenCollection<Type> //extends AbstractCollection
{
	public static void main(String args[])
	{
		MyOwenCollection<Test> c = new MyOwenCollection<Test>();
		System.out.println("Methods: "+c.getMethods(".*", new Test()));

	}

   public void add(Type obj)
   {
      //super.add(obj);
   }

   /**
    * Gibt alle public Methoden aus, die dem Regex entsprechen...
    *
    * @param p
    * @return
    */
   public Collection<Method> getMethods(String regex, Type type)
   {
      Pattern p = Pattern.compile(regex);

      Vector<Method> methods = new Vector<Method>();
	  /**
       *                  V- Fehler?!!?!
       */
      for(Method method : type.getClass().getDeclaredMethods())
      {
         Matcher m = p.matcher(method.getName());

         if(m.matches())
         {
            if(Modifier.isPublic(method.getModifiers()))
            {
               methods.add(method);
            }
         }
      }

      return methods;
   }
}
 

gr33b

Aktives Mitglied
@NTB: Soviel Hilfe, das provoziert zwangsläufig zum flamewar. Folgendes Zitat hilft weiter:
Wenn man keine Ahnung hat, einfach mal die Fresse halten.
Solltest du Fragen zu meiner Frage haben, zwing dich mich zu fragen...

@Marco13: Danke für die Hilfe. Und den Beweis, dass mein Hilferuf verständlich war ;-) Ich habe nun eine andere Methode gefunden das Problem zu lösen. Dazu muss ich jedoch im Konstruktor auch noch die Klasse übergeben. Das geht etwa so:

Code:
/**
* Meine eigene Collection...
*
* @author ICH
* @param <Type>
*/
public class MyOwenCollection<Type> extends AbstractCollection
{
   private Class<Type> aType;

   public MyOwenCollection(Class<Type> aType)
   {
      this.aType = aType;
   }

   public void add(Type obj)
   {
      super.add(obj);
   }
   
   /**
    * Gibt alle public Methoden aus, die dem Regex entsprechen...
    *
    * @param p
    * @return
    */
   public Collection<Method> getMethods(String regex)
   {
      Pattern p = Pattern.compile(regex);
      
      Vector<Method> methods = new Vector<Method>();
      
      /**
       *                  V- Fehler?!!?!
       */
      for(Method method : aType.getDeclaredMethods())
      {
         Matcher m = p.matcher(method.getName());
         
         if(m.matches())
         {
            if(Modifier.isPublic(method.getModifiers()))
            {
               methods.add(method);
            }
         }
      }
      
      return methods;
   }
}
 

NTB

Bekanntes Mitglied
gr33b hat gesagt.:
@NTB: Soviel Hilfe, das provoziert zwangsläufig zum flamewar. [...]
Solltest du Fragen zu meiner Frage haben, zwing dich mich zu fragen...

Natürlich proviziere ich damit. Meine Frage habe ich auch gestellt, verpackt in einem ironischen Kommentar. Sie lautete: "Was funktioniert nicht?". Soviel Mühe, wie Du Dir mit meinem Text gemacht hast, ihn zu verstehen, will ich mir mit Deinem Problem machen: So wenig wie möglich. Du klatscht hier Code hin und sagst dazu: "Funktioniert nicht", ohne genauer darauf einzugehen, was überhaupt nicht funktioniert. Fehler beim Kompilieren? Syntaktischer Fehler? Semantischer Fehler? Struktureller Fehler? Du willst doch die Hilfe haben und nicht die Helfer wollen mit möglichst viel Aufwand helfen.

Nunja, ich werde Deinen durch das Zitat ausgedrückten Wunsch erfüllen. Da ich keine Ahnung habe, was nicht funktioniert, werde ich meine "Fresse" halten. Das hilft Dir dann natürlich auch nicht weiter...
 

gr33b

Aktives Mitglied
NTB hat gesagt.:
Natürlich proviziere ich damit. Meine Frage habe ich auch gestellt, verpackt in einem ironischen Kommentar. Sie lautete: "Was funktioniert nicht?".
Nach einschlägiger Untersuchung deiner Kommentare im Forum, bin ich zum Schluss gekommen, dass du gerne so provozierst. Also nehme ich es nicht persönlich. Da ich aber gerne auf Provokationen sinnlos eingehe:

NTB hat gesagt.:
Soviel Mühe, wie Du Dir mit meinem Text gemacht hast, ihn zu verstehen, will ich mir mit Deinem Problem machen: So wenig wie möglich.
Für mich ist Deutsch eine Fremdsprache. Umgangssprachlich auf schweizerdeutsch hätte ich zwei Seiten zu meinem Problem verfasst.


NTB hat gesagt.:
Du klatscht hier Code hin und sagst dazu: "Funktioniert nicht", ohne genauer darauf einzugehen, was überhaupt nicht funktioniert.
Der Code wurde so kommentiert, dass das Problem ersichtlich ist. Stimmt aber, das "Funktioniert nicht" hätte ich mir sparen können. Sollte ja jedem Java-Programmierer klar sein, dass es nicht funktioniert.


NTB hat gesagt.:
Da ich keine Ahnung habe, was nicht funktioniert, werde ich meine "Fresse" halten. Das hilft Dir dann natürlich auch nicht weiter...

Dir ist klar, dass es sich um ein berühmtes Forumzitat handelt? Bist du dir Provokationen nicht gewohnt?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
bueseb84 Wget mit Wildcards - oder wie lädt man bei JFrog die letzte Version eines Artifacts herunter Allgemeine Java-Themen 3
D Datentyp von Unbounded Wildcards lesen Allgemeine Java-Themen 2
H Suche mit Wildcards und boolschen Operatoren Allgemeine Java-Themen 4
M Generics (bounded wildcards statt Interface Bezeichnern) -- Sinn oder Unsinn? Allgemeine Java-Themen 2
2 Generics: bounded wildcards Allgemeine Java-Themen 4
B Stringvergleich mit wildcards Allgemeine Java-Themen 2
D Interface, aber die Methoden bleiben teilweise gleich Allgemeine Java-Themen 35
B Leere vererbte Interface-Methoden Allgemeine Java-Themen 8
R Programm führt Methoden gleichzeitig aus Allgemeine Java-Themen 2
Encera Unterschied zweier "toString"-Methoden Allgemeine Java-Themen 1
torresbig Klasse mit extends Calendar über Methoden ändern (Hirnblockade) Allgemeine Java-Themen 7
Sachinbhatt Sind alle Methoden in Java implizit virtuell Allgemeine Java-Themen 2
B Arrays von Methoden möglich? Allgemeine Java-Themen 44
S Mit Methoden kann man definieren für was <T> steht. Geht das auch irgendwie für Variablen? Allgemeine Java-Themen 12
N abstracte klassen methoden Allgemeine Java-Themen 32
G Methoden für die Zukunft sinnvoll? Allgemeine Java-Themen 4
nonickatall Methoden Kann man Klassen/Methoden aus Variablen heraus aufrufen? Allgemeine Java-Themen 6
LimDul Hä? Lambda-Ausdruck geht, Methoden-Referenz nicht Allgemeine Java-Themen 8
B Methoden Java Getter und Setter Methoden Allgemeine Java-Themen 9
Y Java Methoden unterschiedliche Zahlenreihen Allgemeine Java-Themen 2
S Interface Design von HookUp oder Callback Methoden für eigenes Framework Allgemeine Java-Themen 9
F Sich automatisch aufrufende Java-Methoden Allgemeine Java-Themen 2
J Namen von Methoden über Reguläre Ausdrücke bearbeiten Allgemeine Java-Themen 6
D Methoden Methoden anpassen und fehlende Funktionen hinzufügen Allgemeine Java-Themen 475
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
R Statistische Methoden (Mathematik) Aufgabe Allgemeine Java-Themen 9
X Brüche kürzen mittels Methoden und ggT Allgemeine Java-Themen 15
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
L mehrere Methoden Allgemeine Java-Themen 19
KeexZDeveoper Zugriff auf Methoden vom Server Allgemeine Java-Themen 7
B StAX Parser - mehrere Methoden, ein XML Allgemeine Java-Themen 4
F Operationen/Methoden einen WebService im Browser mit Apache Axis aufrufen Allgemeine Java-Themen 4
A Automatisches Methoden Laufzeiten logging? Allgemeine Java-Themen 7
M Quellcode von Java-Methoden Allgemeine Java-Themen 9
rentasad Design-Frage - Interfaces, Klassen, statische Methoden Allgemeine Java-Themen 3
N HashMap und Methoden richtig einbinden Allgemeine Java-Themen 2
R Variable durch mehrere Methoden ändern und nutzen Allgemeine Java-Themen 17
Q-bert Methoden Methoden in Java Allgemeine Java-Themen 13
D Methoden Java-Aufgabe Allgemeine Java-Themen 2
M Compiler-Fehler Methoden-Referenz Allgemeine Java-Themen 5
X Threads Externe Variablen in Run Methoden verändern Allgemeine Java-Themen 4
S 2 methoden mit gleichen namen und ein Interface Allgemeine Java-Themen 9
F Enum-werte als Methoden-Parameter übergeben Allgemeine Java-Themen 6
N Vererbung Design-Problem mit vorhandenen, von der Klasse unabhängigen Methoden Allgemeine Java-Themen 12
E OOP Objekte und Methoden Allgemeine Java-Themen 1
K Java ruft Methoden nicht der Reihe nach auf Allgemeine Java-Themen 14
N Methoden Methoden einer Klasse auf Grundlage eines Strings aufrufen Allgemeine Java-Themen 6
T Java Array in Methoden Allgemeine Java-Themen 1
D Code für bereitgestellte Methoden Allgemeine Java-Themen 1
P Entity Objekt Methoden vs Service methoden Allgemeine Java-Themen 2
R Signatur von Methoden in eine Datei schreiben? Allgemeine Java-Themen 4
A Methoden verändern Allgemeine Java-Themen 12
F Methoden Arraylist weiterverwenden nach methoden Aufruf Allgemeine Java-Themen 2
J Best Practice Testen von protected Methoden Allgemeine Java-Themen 7
L Methoden "Schiffe versenken" Quellcode in Methoden umwandeln Allgemeine Java-Themen 6
G Matrix reduzieren zwei Methoden Allgemeine Java-Themen 2
Sogomn Best Practice "Doppelte" Methoden Allgemeine Java-Themen 3
Paul15 String Methoden Allgemeine Java-Themen 7
G Methoden BMI -Wert Aufgabe(Methoden) Allgemeine Java-Themen 4
F Testen von Methoden Allgemeine Java-Themen 3
S "Vererben" statischer Felder/Methoden Allgemeine Java-Themen 4
F Methoden in der Enumeration Klasse Allgemeine Java-Themen 1
S Methoden ohne Methodenkopf ?! Allgemeine Java-Themen 5
T Überschreiben von Methoden Allgemeine Java-Themen 6
M Methoden werden in falscher Reihenfolge bearbeitet Allgemeine Java-Themen 10
S Methoden Methoden überschreiben Allgemeine Java-Themen 3
N Threads statische Methoden in Threads Allgemeine Java-Themen 5
O Java-Obfuscator, welcher einzelne Methoden, Klassen und Ordnerstrukturen ausnehmen kann. Allgemeine Java-Themen 1
A also definition von klassen und string methoden und algorithmik Allgemeine Java-Themen 13
X Eigene Annotation - mit Bedingung für ganze Klassen oder Methoden Allgemeine Java-Themen 2
A Threads Lock über mehrere Abschnitte in verschiedenen Methoden Allgemeine Java-Themen 5
S Methoden Frage Allgemeine Java-Themen 2
R Wie kann man diese Methoden in arrays etablieren? Allgemeine Java-Themen 8
M Methoden in Rescources speichern Allgemeine Java-Themen 4
G Synchronisation nicht statischer Methoden Allgemeine Java-Themen 4
A Vererbung finale Methoden überschreiben Allgemeine Java-Themen 24
A Methoden parallelisieren? Allgemeine Java-Themen 2
L Methoden methoden an generischen klassentyp anpassen Allgemeine Java-Themen 5
C Methoden Übernahme von standart nativen Methoden? Allgemeine Java-Themen 9
B Zusammenfassen verschiedener ähnlicher Methoden Allgemeine Java-Themen 8
K JNI: Methoden aus unterschiedlichen Threads aufrufen Allgemeine Java-Themen 3
P Unterschiedliche Clone- Methoden Allgemeine Java-Themen 5
MQue Spezialfrage Überschreiben von Methoden Allgemeine Java-Themen 14
B Methoden Alle Methoden und Variablen aus Java-Dateien auslesen. Allgemeine Java-Themen 7
MiMa Rekursive Methoden Allgemeine Java-Themen 3
S Programm das alle aufgerufenen Methoden ausgibt..? Allgemeine Java-Themen 6
F ListIterator (next & previous methoden) Allgemeine Java-Themen 5
W Frage zu Refactoring statischer Methoden Allgemeine Java-Themen 4
M Methoden/Klassen für andere Projekte Allgemeine Java-Themen 4
T Methoden per String-Namen aufrufen Allgemeine Java-Themen 2
C Kapselung Warum graift man auf Variablen nur über Methoden und nich direkt zu? Allgemeine Java-Themen 10
M Methoden Static Methoden und Thread??? Allgemeine Java-Themen 4
A Methoden ohne Referenzen finden Allgemeine Java-Themen 9
turmaline OOP zwei gleiche Methoden mit kleinen Unterschieden Allgemeine Java-Themen 15
G JUnit Test Methoden in anderen Thread verlagern Allgemeine Java-Themen 4
K Auf Methoden der Runnable Klasse zugreifen Allgemeine Java-Themen 2
S Methoden Class.forName() >> Methoden - Reihenfolge Allgemeine Java-Themen 5
D Passende Name für Methoden finden Allgemeine Java-Themen 3
D Wann sollte ich statische Methoden und Variablen benutzen? Allgemeine Java-Themen 44
A Methoden laufen im Konstruktor, außerhalb allerdings nicht Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben