Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

Für Experten: java.lang.reflection Problem

Diskussion: Für Experten: java.lang.reflection Problem im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hi, ich bin mir nicht sicher, ob jemand hier die Erfahrung dafür hat, aber ich versuchs mal: Ich habe ...

Antwort
Alt 05.09.08, 01:00   #1 (permalink)
Member of Honour
 
Registriert seit: 03.10.01
blueflash Leistung: Facit NTK
Likes: 1
Standard Für Experten: java.lang.reflection Problem

Anzeige

Hi,

ich bin mir nicht sicher, ob jemand hier die Erfahrung dafür hat, aber ich versuchs mal:

Ich habe einen Parsergenerator in java, der u.A. einen Lexer erzeugt. Diesen Lexer möchte ich gern testen - dazu habe ich einen junit Test geschrieben, der die erzeugte (und compilierte) .class Datei einliest und eine statische Methode darauf ausführen soll.
Hier ist der Code:

Code:
		Class lexerDefs = Class.forName("parser.LexerDefs", true, loader);
		
		Method getLexerDefs = null;
		
		try {
			getLexerDefs = lexerDefs.getMethod("lexerDefs", new Class[] {});
		} catch (NoSuchMethodException e) {
			fail("Class " + lexerDefs.getName() + " has no method lexerDefs()\n" + e.getMessage());
		}
		
		parser.Options.inputFile = this.inputFile;

		System.err.println("invoking: " + getLexerDefs.toString());		

		Object retObject = getLexerDefs.invoke(null, new Object[0]);
Aber ich kriege nur:

Code:
    [junit] Class test.TestParserGenerator can not access a member of class parser.LexerDefs with modifiers "public static"
    [junit] java.lang.IllegalAccessException: Class test.TestParserGenerator can not access a member of class parser.LexerDefs with modifiers "public static"
Aber warum kann ich keine "public static" Methode aufrufen???
blueflash ist offline   Mit Zitat antworten
Alt 05.09.08, 10:28   #2 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

Was ist mit getDeclaredMethod?
http://java.sun.com/javase/6/docs/ap...lang.Class...)
wird zumindest im Java Reflection Tutorial verwendet, um nachher eine public void static Methode auszuführen:
http://java.sun.com/docs/books/tutor...nvocation.html
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 05.09.08, 13:03   #3 (permalink)
Member of Honour
Themenstarter
 
Registriert seit: 03.10.01
blueflash Leistung: Facit NTK
Likes: 1
Standard

AAARGGH, manchmal sind Fehlermeldungen aber auch wirklich zu blöde. Der Fehler lag nicht im Zugriff auf die Methode, die Klasse selbst hätte public sein müssen.
blueflash ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » Für Experten: java.lang.reflection Problem
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem bei JAVA ventris Code Kitchen 2 07.11.06 21:00
Experten warnen vor Wurmattacke in den nächsten Tagen Xalon (In)security allgemein 21 16.08.06 15:41
Taxifahrer = MP3-Experten webfreak Fun Section 11 17.05.06 20:02
Java Script problem Sefileya Code Kitchen 1 16.02.04 18:16
Experten diskutieren wegen der Spam-Flut bereits den Ersatz von SMTP Flou News & Ankündigungen 1 05.08.03 18:55


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61