Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

2 grundlegende Java-Fragen

Das Thema "2 grundlegende Java-Fragen" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 25.09.2009, 00:59   #1 (permalink)
Fortgeschrittenes Mitglied

Modell: HTC Evo 3D

Registriert seit: 20.06.2009
Beiträge: 312
Abgegebene Danke: 1
Erhielt 2 Danke für 2 Beiträge
Standard 2 grundlegende Java-Fragen

Moinsen!

Habe mal 2 Fragen zu Java.

1) In PHP gibt es funktionen wie z.B. call_user_method. Man übergibt dieser Funktion den namen einer Klasse und einer Methode, und dann ruft die Funktion die Methode innerhalb dieser Klasse auf. Gibts sowas auch in Java? Bzw. lässt es sich realisieren?

2) Mittels Intent kann man ja ne neue Activity starten. Dazu muss man der Funktion ne Klasse übergeben:

Intent(this,main.class);

Nun würde ich Klasse gerne dynamisch geladen ala:

String name = "main.class";
Intent(this,name);

(Wie) lässt sich das realisieren?

Danke schonmal
Samsung I7500 ist offline   Mit Zitat antworten
Alt 25.09.2009, 02:31   #2 (permalink)
Ehren-Mitglied
 
Benutzerbild von Kranki

Modell: Nexus One

Registriert seit: 19.07.2009
Beiträge: 4.329
Abgegebene Danke: 127
Erhielt 1.372 Danke für 871 Beiträge
Kranki eine Nachricht über ICQ schicken
Standard AW: 2 grundlegende Java-Fragen

Zitat:
Zitat von Samsung I7500 Beitrag anzeigen
Moinsen!

Habe mal 2 Fragen zu Java.

1) In PHP gibt es funktionen wie z.B. call_user_method. Man übergibt dieser Funktion den namen einer Klasse und einer Methode, und dann ruft die Funktion die Methode innerhalb dieser Klasse auf. Gibts sowas auch in Java? Bzw. lässt es sich realisieren?
Ich bin nicht sicher, ob ich verstehe, was du meinst. Soll es da einen Unterschied geben, zu dem, was der banale Punkt-Operator macht?

Zitat:
2) Mittels Intent kann man ja ne neue Activity starten. Dazu muss man der Funktion ne Klasse übergeben:

Intent(this,main.class);

Nun würde ich Klasse gerne dynamisch geladen ala:

String name = "main.class";
Intent(this,name);

(Wie) lässt sich das realisieren?

Danke schonmal
Informier dich mal über die Reflection API.
__________________
CyanogenMod 7 Nightly - AmonRa Recovery 2.0 - Nexus One
Kein Support via PN und E-Mail. Bitte das Forum nutzen.
"Es ist Mode geworden, die Freiheitsrechte des Bürgers in den Mittelpunkt zu stellen." - Siegfried Kauder
Kranki ist gerade online   Mit Zitat antworten
Alt 25.09.2009, 05:19   #3 (permalink)
Fortgeschrittenes Mitglied

Modell: HTC Evo 3D

Registriert seit: 20.06.2009
Beiträge: 312
Abgegebene Danke: 1
Erhielt 2 Danke für 2 Beiträge
Standard AW: 2 grundlegende Java-Fragen

Zu 2: Werd ich mir mal anschauen.

Zu 1:

PHP-Code:
class foo {
    function 
bar() {

    }

In PHP hast Du 2 Möglichkeiten die Methode bar aufzurufen, entweder über den Scope Resolution Operator:

PHP-Code:
foo::bar(); 
Oder aber über die call_user_method funktion:

PHP-Code:
$class "foo";
$method "bar";
call_user_method($class,$method); 
Nur dass beim Letzteren die Namen der Klasse/Methode aus einer Variable (in meinem Fall wiedermal ein String) kommen. So lassen sich Methoden halt dynamisch aufrufen, und mit method_exists() kann man zudem noch überprüfen, ob eine Methode innerhalb einer Klasse existiert, bevor man halt call_user_method() aufruft.

Läuft prinzipiell auf das selbe wie zu 2 hinaus, funzt mit der Reflection API wunderbar.

Danke!
Samsung I7500 ist offline   Mit Zitat antworten
Alt 25.09.2009, 08:23   #4 (permalink)
freier Samsungsupporter
 
Benutzerbild von SirMArtin

Registriert seit: 05.08.2009
Beiträge: 119
Abgegebene Danke: 18
Erhielt 9 Danke für 7 Beiträge
Standard AW: 2 grundlegende Java-Fragen

Das ist beides Reflection. Allerdings ist das ziemlich teuer (==inperformant). Außerdem werden bspw. Refactorings nicht automatisch von Eclipse durchgeführt. Fehler fallen grundsätzlich erst zur Laufzeit auf. Wenn es möglich ist sollte man das vermeiden...

Was genau willst Du denn machen? ggf. fallen uns ja noch andere Lösungswege als Reflection ein, wenn wir die genaueren Anforderungen kennen.

SirMArtin
__________________
follow me || Mod im SAMSUNG mob!le Forum
Apps: Ist mein Zug pünktlich? | Fläschchenmixer
Geräte: Galaxy S & Galaxy & Spica
SirMArtin ist offline   Mit Zitat antworten
Alt 25.09.2009, 15:48   #5 (permalink)
Fortgeschrittenes Mitglied

Modell: HTC Evo 3D

Registriert seit: 20.06.2009
Beiträge: 312
Abgegebene Danke: 1
Erhielt 2 Danke für 2 Beiträge
Standard AW: 2 grundlegende Java-Fragen

Naja was hab ich wohl vor? Genau das, was Reflection da halt macht...

Ich bastel mir grad ne App, die mit nem Server kommuniziert, und von diesem halt ne Ansage bekommt, welche Funktion sie bei bestimmten Aktionen aufrufen soll. Da sich das unter Umständen jedoch ändern kann, wollt ich das ganze halt dynamisch haben, ohne dass ich dafür extra die App updaten muss...
Samsung I7500 ist offline   Mit Zitat antworten
Alt 25.09.2009, 17:45   #6 (permalink)
freier Samsungsupporter
 
Benutzerbild von SirMArtin

Registriert seit: 05.08.2009
Beiträge: 119
Abgegebene Danke: 18
Erhielt 9 Danke für 7 Beiträge
Standard AW: 2 grundlegende Java-Fragen

Naja. Die App muss ja die Funktion unterstützen. Sonst kann der Server ihr ja nicht mitteilen, dass sie diese Funktion auszuführen hat. Somit musst Du die App schon updaten, wenn ne neue Funktion hinzukommt.

Die Schnittstelle zum Server ist halt fix. Wenn Du die Aufrufe nur per String übergibst, brauchst Du zwar den Teil, der den String parst nicht anpassen. Die App an sich muss aber entsprechend reagieren. Somit hast Du die eigentliche Schnittstelle nur versteckt und tiefer in die Applikation verlagert, anstatt sie direkt in der Schnittstellenklasse umzusetzen. Seperation of Concerns ist hier das Stichwort. Jeder Klasse seine Zuständigkeit. Ein Mechanismus wie REST, SOAP oder XMLRPC sollte Dich hier interessieren.
Aus Entwicklersicht ist es komplexer, wenn Du Reflection nutzt anstatt einem typisierten Selektionsmechanismus.
Vielleicht sind ja auch entsprechende Frameworks für Dich interessant (Guice von Google bspw.).

Just my 2 cents.

SirMArtin
__________________
follow me || Mod im SAMSUNG mob!le Forum
Apps: Ist mein Zug pünktlich? | Fläschchenmixer
Geräte: Galaxy S & Galaxy & Spica
SirMArtin ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
Java aktivieren nochpalmuser HTC Hero / T-Mobile G2 Touch Forum 4 24.09.2009 18:15
2 grundlegende Fragen cbw Android Allgemein 3 07.09.2009 12:01
Java auf Galaxy? redlabour Samsung Galaxy (I7500) Forum 5 27.07.2009 22:23
Java Problem GMoN Android App Entwicklung 2 17.04.2009 20:16
Fragen über Fragen :) Root, Market, App to SD, Firmware A-Gee Root / Hacking / Modding für T-Mobile G1 16 06.04.2009 09:16




Du liest gerade: "2 grundlegende Java-Fragen" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.