Dynamischer Methodenaufruf

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo erstmal,

so und nun zu meiner Frage, vielleicht sind ja auch schon andere auf dieses Problem gestoßen.
Jedenfalls finde ich es extrem interessant soetwas zu machen:
Aber nun zum Thema:

Ich Programmiere unter Eclipse, und nun ist es Mein interesse "Dynamisch Methoden zu laden"

Dafür habe ich eine Klasse Vorbereitet:

package com.tutego.insel.lang;

class ClassToLoadMultipleTimes
{


public int getEins(String zahlstr){
int zahl = Integer.parseInt(zahlstr);
return zahl*zahl;
}


public void getZwei(){
String zwe_i = "Zwei";
}

public void getDrei(){
String dre_i = "Drei";
}

}


Diese Klasse liegt als .class datei im verzeichnis C:/com/tutego/insel/lang


Dann kommt mein eigentliches Hauptprogramm unter Eclipse:
(Der Methodenaufruf erfolgt entweder durch die main methode oder durch einen Action event is ja egal wie die aufgerufen wird)


public void calltest(){

try{
String nargs[] = new String[] { "-option", "Parameter" };
//-----
Class<?> c = newInstance( "/", "com.tutego.insel.lang.ClassToLoadMultipleTimes" ).getClass();

System.out.println( c.getModifiers());
//-------
Method methode = c.getMethod( "getEins" ,
new Class[] {nargs.getClass()}) ;

methode.invoke( null, new Object[]{nargs} );



}catch(Exception e){
e.printStackTrace();
}
}


Nun hab ich mal einige Tutorials durchegearbeitet komme aber immer zu dem selben Ergebnis.
Entweder es funktioniert gar ncihts, oder es scheitert an einer java.lang.IllegalAccessException.

Vielleicht kann mir mal jemand das ganze Zeug erklären bzw. mir einen Link geben bzw. mir Lösungen geben.

Letztendlich solld as Programm einen bestimmten Javacode in eine .java datei packen, das ganze wird via automatischen konsolenaufruf kompiliert, und dann soll das Programm die "selbst" geschriebene Klasse laden und deren Methoden verwenden.

Danke Schon mal im Vorraus Sheepy
 

HoaX

Top Contributor
a) verwende bitte die code-tags im forum
b) du rufst da getEins auf einem null-objekt, also statisch, auf. du brauchst ein objekt von ClassToLoadMultipleTimes.
c) nargs.getClass() liefert die klasse des arrays, nicht ein array mit den klassen der enthaltenen elemente
d) da du die methoden kennen musst die es außerhalb gibt solltest du lieber ein interface erstellen dass die externe klasse implementiern muss. dann kannst du dein neues objekt darauf casten und die methoden wie gewöhnlich aufrufen, ohne unleserliche reflektion.
Beispiel:
Code:
public interface IMyInterface {
    String getEins(String eingabe);
    String getZwei();
    String getDrei();
}



Class myClass = ..... ; /* neue externe klasse laden */

Object o = myClass.newInstance();

IMyInterface extern = (IMyInterface) o;

System.out.println(extern.getEins("3"));

so ganz grob
 

ProggerSchaf

Mitglied
Ok Sry wegen den Code tags aber dein Vorschlag mit den Interfaces find ich recht nutzlos, zwar nicht im allgemeinen, aber im SPeziellen, da Der Code ja letztlich anch einem bestimmten schema vom Programm selbst geschrieben werden soll. Referenzen dazu dannn via datenbanken oder ähnlichem. es soll sich sozusagen selbst neuen code beibringen.

Ich habe bisher Rausgefunden, das es irgendwie mit Reflectoring oder so gehn soll, bloß davon hab ich wie gesagt kein Plan. Vielleicht habt ihr ja noch vorschläge wie man das oben erwähnte umsetzten kann. danke im Vorraus
Sheepy

Oder kann ich ein Interface dynamisch anpassen und laden?
 

foobar

Top Contributor
Ich habe bisher Rausgefunden, das es irgendwie mit Reflectoring oder so gehn soll, bloß davon hab ich wie gesagt kein Plan. Vielleicht habt ihr ja noch vorschläge wie man das oben erwähnte umsetzten kann. danke im Vorraus
Sheepy
Du benutzt bereits Reflection in deinem Beispiel. Wirf mal einen Blick in die Apidocs.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Dynamischer Klassen bzw. Methodenaufruf Java Basics - Anfänger-Themen 6
G Bei dynamischer Arrayliste nach jeder Auswahl Zahl entfernen Java Basics - Anfänger-Themen 3
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
S Ein Bild mit dynamischer Quelle neuzeichnen Java Basics - Anfänger-Themen 12
O Statischer und Dynamischer Typ Java Basics - Anfänger-Themen 6
L Polymorphie Dynamischer oder Statischer Typ für Methodenparameter Java Basics - Anfänger-Themen 8
T Unterschied dynamischer und statischer Laufzeittyp Java Basics - Anfänger-Themen 1
W Dynamischer und statischer Typ von Referenzvariablen Java Basics - Anfänger-Themen 13
C Input/Output Dynamischer Output von Arrays Java Basics - Anfänger-Themen 3
D dynamischer Aufruf Java Basics - Anfänger-Themen 2
C Datentypen Array mit dynamischer Länge? Java Basics - Anfänger-Themen 14
J Verschachtelte for schleife mit dynamischer Anzahl an Schleifen Java Basics - Anfänger-Themen 10
N "Dynamischer" Iterator Java Basics - Anfänger-Themen 21
T Dynamischer JTabbedPane Probleme mit JTextArea Java Basics - Anfänger-Themen 2
G [Hibernate] Dynamischer Datenbankpfad Java Basics - Anfänger-Themen 4
S Fehler nach dynamischer Anpassung - Minesweeper Java Basics - Anfänger-Themen 6
H statische, dynamischer Typ von Variablen Java Basics - Anfänger-Themen 1
B Dynamischer Filename Java Basics - Anfänger-Themen 3
M Variabler/dynamischer Objektname? Java Basics - Anfänger-Themen 12
C Methodenaufruf mit geänderten Argumenten Java Basics - Anfänger-Themen 10
S Methoden Methodenaufruf rekursiv zählen Java Basics - Anfänger-Themen 4
N methodenaufruf for each geht nicht Java Basics - Anfänger-Themen 2
K Methodenaufruf /-ausgabe Java Basics - Anfänger-Themen 5
O Methodenaufruf Java Basics - Anfänger-Themen 5
V Neue Ausgabe von toString nach Methodenaufruf Java Basics - Anfänger-Themen 9
Queiser Methodenaufruf Java Basics - Anfänger-Themen 2
J Vererbung und Methodenaufruf Java Basics - Anfänger-Themen 11
I Java Methodenaufruf Java Basics - Anfänger-Themen 9
A OOP Methodenaufruf in einer anderen Klasse Java Basics - Anfänger-Themen 2
G Methoden Probleme beim Methodenaufruf Java Basics - Anfänger-Themen 2
M Methodenaufruf über SQL UPDATE Java Basics - Anfänger-Themen 8
M Methodenaufruf in der Main Datei funzt nicht Java Basics - Anfänger-Themen 13
BadBat Klassen instanz als variable + methodenaufruf Java Basics - Anfänger-Themen 4
M Methodenaufruf in Methode Java Basics - Anfänger-Themen 6
M Objekt Name für MethodenAufruf nachträglich zuweisen? Java Basics - Anfänger-Themen 2
J if() mit Methodenaufruf kombiniert (Pixelerkennung) Java Basics - Anfänger-Themen 3
A Probleme beim Methodenaufruf von Object[] ! Java Basics - Anfänger-Themen 12
A Probleme beim Methodenaufruf von char[] ! Java Basics - Anfänger-Themen 10
T Rekursiver Methodenaufruf funktioniert nicht Java Basics - Anfänger-Themen 7
D Methoden g.setColor funktioniert nicht bei Methodenaufruf in anderer Klasse Java Basics - Anfänger-Themen 1
M Methoden Methodenaufruf allgemein Java Basics - Anfänger-Themen 3
H Ist Math.Random() eine Methode oder ein Methodenaufruf (Klausurfrage) Java Basics - Anfänger-Themen 4
O Methodenaufruf Java Basics - Anfänger-Themen 6
F Methodenaufruf Java Basics - Anfänger-Themen 1
F Erste Schritte Label Text vor Methodenaufruf setzen Java Basics - Anfänger-Themen 17
J Array mit Methodenaufruf Java Basics - Anfänger-Themen 2
S Problem bei Vererbung und Methodenaufruf Java Basics - Anfänger-Themen 3
OnDemand Methodenaufruf Java Basics - Anfänger-Themen 3
A Methoden Benutzerdefinierter Methodenaufruf Java Basics - Anfänger-Themen 4
O Methodenaufruf - Inhaltsveränderung Java Basics - Anfänger-Themen 23
G Methodenaufruf anderer Klasse Java Basics - Anfänger-Themen 18
L Einfacher Methodenaufruf vs. Objekt Java Basics - Anfänger-Themen 4
O Methodenaufruf im Konstruktor Java Basics - Anfänger-Themen 6
G was ist ein Methodenaufruf mit (){}? Java Basics - Anfänger-Themen 6
S Methoden Klassen Definition - Methodenaufruf Java Basics - Anfänger-Themen 7
K Methoden Methodenaufruf für BufferedWriter .. Java Basics - Anfänger-Themen 5
feardorcha Methodenaufruf Übergabe- und Rückgabewert Java Basics - Anfänger-Themen 5
W Methodenaufruf innerhalb einer Klasse - static vs. this Java Basics - Anfänger-Themen 3
A Problem bei Methodenaufruf Java Basics - Anfänger-Themen 6
B Parameterausführung bei Methodenaufruf Java Basics - Anfänger-Themen 8
A Methodenaufruf Java Basics - Anfänger-Themen 4
P Vererbung Methodenaufruf funktioniert aber Wertzuweisung von Variablen nicht Java Basics - Anfänger-Themen 9
S methodenaufruf Java Basics - Anfänger-Themen 8
G Erste Schritte Methodenaufruf, Variablen-Deklaration Java Basics - Anfänger-Themen 6
L Methodenaufruf in main() Java Basics - Anfänger-Themen 3
M Methodenaufruf in for-Schleife - nur 1 mal ausgegeben Java Basics - Anfänger-Themen 3
I Externer Methodenaufruf, Punkt-Notation Java Basics - Anfänger-Themen 11
I Methoden Rückverfolgung Methodenaufruf Java Basics - Anfänger-Themen 15
E Methoden Wie kann ich eine Methode so schreiben, dass Methodenaufruf polymorph erfolgen kann? Java Basics - Anfänger-Themen 8
M Methoden Methodenaufruf mit .class. Java Basics - Anfänger-Themen 2
J rekursiver Methodenaufruf Java Basics - Anfänger-Themen 12
K Klassen this-Referenz und Klassen/Methodenaufruf Syntax Java Basics - Anfänger-Themen 3
T Java mehrfacher Methodenaufruf Java Basics - Anfänger-Themen 15
L Methodenaufruf aus anderer Klasse Java Basics - Anfänger-Themen 5
B Quicksort --> Methodenaufruf Java Basics - Anfänger-Themen 10
O Methodenaufruf Java Basics - Anfänger-Themen 4
A nullPointerException bei Methodenaufruf Java Basics - Anfänger-Themen 16
J Vererbung, Methodenaufruf Java Basics - Anfänger-Themen 4
M Problem bei Methodenaufruf aus ActionListener Java Basics - Anfänger-Themen 5
G Methodenaufruf aus der Kommandozeile Java Basics - Anfänger-Themen 28
N Methodenaufruf funtioniert nicht Java Basics - Anfänger-Themen 3
C Methodenaufruf mit Variablen die gesetzt werden Java Basics - Anfänger-Themen 10
Antoras mit ActionListener/Methodenaufruf Textfelder zeichnen Java Basics - Anfänger-Themen 4
G Methodenaufruf über ein Objekt einer anderen Klasse Java Basics - Anfänger-Themen 7
H ungültige methodenaufruf Java Basics - Anfänger-Themen 16
G Methodenaufruf Java Basics - Anfänger-Themen 3
G Frage zu Oberklasse bei Methodenaufruf Java Basics - Anfänger-Themen 2
V Wie und wieso geht dieser Methodenaufruf? Java Basics - Anfänger-Themen 2
S Methodenaufruf Java Basics - Anfänger-Themen 6
G Methodenaufruf in der for-Schleife mit Array Java Basics - Anfänger-Themen 7
L hsqldb Methodenaufruf Java Basics - Anfänger-Themen 10
K synchron und asynchroner Methodenaufruf Java Basics - Anfänger-Themen 17
R Fehler bei Methodenaufruf Java Basics - Anfänger-Themen 2
G Methodenaufruf Java Basics - Anfänger-Themen 3
T NullPointerException bei Methodenaufruf Java Basics - Anfänger-Themen 2
G Methodenaufruf Java Basics - Anfänger-Themen 10
K Klassenübergriefendes Methodenaufruf Problem Java Basics - Anfänger-Themen 6
S methodenaufruf. Java Basics - Anfänger-Themen 16
G methodenaufruf Java Basics - Anfänger-Themen 4
E Methodenaufruf mittels variable? kA Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben