Variabler Identifier

Status
Nicht offen für weitere Antworten.
Hallo erstmal,

ich habe mal wieder ein Problem. Ich will versuchen in BeanShell erstellte Klassen in Java nutzen zu können. Dazu lasse ich BeanShell ein Class-Array mit allen Klassen zurückgeben, die benötigt werden. In Java kann ich die dann eigentlich auch wunderbar benutzen, aber leider nicht vollständig. Bsp.: Gegeben ist das Class Objekt 'bsclass'. Dann möchte ich etwas bauen, das etwa so aussieht:

Code:
class Test {
        
        public bsclass testClass;
        
        public Test(bsclass c) {
                this.testClass = c;
        }
        
}

Das klappt so natürlich nicht. Aber wie sonst kann ich den Identifier der Klasse anpassen? Ich möchte ungerne einfach den Typ 'Object' nehmen. Geht soetwas überhaupt? Evtl. mit dem ClassLoader? Wenn ja: Wie?

Danke im Voraus.
 

ich2

Mitglied
Vielleicht mit Generics?
Code:
class Test<bsclass> {

        public bsclass testClass; 
        
        public Test(bsclass c) { 
                this.testClass = c; 
        }     
}

Du müsstest dann bei der Erstellung des Test-Objekts die gewünschte bsclass als Parameter übergeben:

Code:
Test <mybsclass> myTest = new Test<mybsclass>();

Vorausgesetzt dass mybsclass eine sichtbare Java-Klasse ist.
 
Klappt leider nicht. Anscheinend darf man bei Generics keine Class Objekte angeben. Ich habs etwa so versucht:

Code:
public class Main {

        public static void main(String[] args]{
                
                Interpreter i = new Interpreter();
                Class c = (Class)i.eval(new InputStreamReader(new FileInputStream("test.bsh")));
                Test<c> test = new Test<c>(c);
                
        }

}


class Test<T> {
        public T testClass;
        
        public Test(T testClass) {
                this.testClass = testClass;
        }
}

Die test.bsh könnte dann etwa so aussehen:

Code:
class BShTest {
}

return BShTest.class;


Dabei erzeugt der Compiler leider den Fehler 'Cannot find symbol: c'.
 

ich2

Mitglied
Ich weiß jetzt nicht ob das ganze im Zusammenhang Sinn macht, zumindest um Generics mit der Klasse als Parameter zu starten brauchst du den Namen als String, den kannst du dir mit c.class.getCanonicalName() holen.

Edit--
Code:
c.getCanonicalName()
meinte ich.
 

HoaX

Top Contributor
ich nehme mal an was du machen willst geht nicht so.

wenn du klassen die in beanshell definiert sind in java verwenden willst, dann geht das entweder per reflection oder einfach per interface. einfach das interface in beanshell implementieren lassen, dann kannst du das objekt auf das interface casten und die methoden aufrufen.

eine klasse in bsh zu schreiben und dann einfach darauf methoden aufrufen geht sonst nur via reflection
 

ich2

Mitglied
Ich dachte du hättest die Klassen irgendwie auch in Java zur Verfügung, deswegen schrieb ich auch "...Vorausgesetzt dass mybsclass eine sichtbare Java-Klasse ist."
Na gut, trotzdem bitte :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Iteratorform und Methode mit variabler Parameterzahl Java Basics - Anfänger-Themen 31
IMain23 2d Array variabler Spaltenwert, Spaltenwert immer um eins erhöhen Java Basics - Anfänger-Themen 3
A Variabler Rekursionsaufruf, aber wie? Java Basics - Anfänger-Themen 6
T Methoden Auf Variabler aus anderer Methode zugreifen Java Basics - Anfänger-Themen 5
G Variabler String Java Basics - Anfänger-Themen 5
M Strings mit variabler Länge auffüllen Java Basics - Anfänger-Themen 6
F Variabler Aufruf einer Methode Java Basics - Anfänger-Themen 10
F Variabler - Robot - Tastatureingaben Java Basics - Anfänger-Themen 5
U Variabler Rückgabetyp und Klasse an Methode übergeben? Java Basics - Anfänger-Themen 5
J Quadrat mit variabler Kantenlänge Java Basics - Anfänger-Themen 3
R variabler cast Java Basics - Anfänger-Themen 5
C GridBagLayout BIld an variabler Stelle einfügen Java Basics - Anfänger-Themen 2
G problem mit variabler Java Basics - Anfänger-Themen 5
J Char-Array mit variabler Länge zurückliefern. Java Basics - Anfänger-Themen 11
G variabler variablenname Java Basics - Anfänger-Themen 18
R String[][] mit variabler länge Java Basics - Anfänger-Themen 4
S Variabler Name für ein Objekt einer Klasse? Java Basics - Anfänger-Themen 10
M Variabler/dynamischer Objektname? Java Basics - Anfänger-Themen 12
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
monsterherz error: <identifier> expected Java Basics - Anfänger-Themen 2
R Compiler-Fehler identifier error? Java Basics - Anfänger-Themen 3
C error: <identifier> expected Java Basics - Anfänger-Themen 13
P <identifier> expected Java Basics - Anfänger-Themen 3
L Methoden Zugriff <identifier> expected Java Basics - Anfänger-Themen 13
H unexpected identifier Java Basics - Anfänger-Themen 1
W Compiler-Fehler Fehler - <identifier> expected, wo liegt mein Fehler? Java Basics - Anfänger-Themen 4
P <identifier> expected Fehler bitte um Hilfe Java Basics - Anfänger-Themen 5
J identifier expected Java Basics - Anfänger-Themen 2
T Expression Tree.. identifier + Grundaufbau? Java Basics - Anfänger-Themen 2
K <identifier> expected Java Basics - Anfänger-Themen 18
L Polymorphie <identifier> expected trotz "Angabe" Java Basics - Anfänger-Themen 2
2 <identifier> expected - Problem Java Basics - Anfänger-Themen 2
danielita Identifier Expected Java Basics - Anfänger-Themen 8
I identifier und ) expected Java Basics - Anfänger-Themen 3
G <identifier> expected bei public void final Java Basics - Anfänger-Themen 3
D "identifier expected" und "cannot find symbol Java Basics - Anfänger-Themen 4
G Blue J - Fehlermeldung - identifier expected - illegal start Java Basics - Anfänger-Themen 6
zilti identifier expected bei Threads Java Basics - Anfänger-Themen 2
E <identifier> expected in List Java Basics - Anfänger-Themen 8
G "Identifier expected" Java Basics - Anfänger-Themen 9
H <identifier> expected Java Basics - Anfänger-Themen 19
G array list - identifier expected Java Basics - Anfänger-Themen 4
M Fehler Identifier Expected Java Basics - Anfänger-Themen 4
G Was ist ein Identifier? Java Basics - Anfänger-Themen 5
N Fehler <identifier> expected. Weiss nicht was falsch i Java Basics - Anfänger-Themen 2
K identifier expected | problem mit variable Java Basics - Anfänger-Themen 6
G identifier expected Java Basics - Anfänger-Themen 2
J Fehler identifier expected Java Basics - Anfänger-Themen 10
M Problem mit "<identifier> expected" in Actio Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben