1. Gewinne jetzt ein UMiDIGI C Note - alle Informationen findest du hier!!
  1. Samsung I7500, 25.09.2009 #1
    Samsung I7500

    Samsung I7500 Threadstarter Fortgeschrittenes Mitglied

    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 ;)
     
  2. Kranki, 25.09.2009 #2
    Kranki

    Kranki Ehrenmitglied

    Ich bin nicht sicher, ob ich verstehe, was du meinst. Soll es da einen Unterschied geben, zu dem, was der banale Punkt-Operator macht?

    Informier dich mal über die Reflection API.
     
  3. Samsung I7500, 25.09.2009 #3
    Samsung I7500

    Samsung I7500 Threadstarter Fortgeschrittenes Mitglied

    Zu 2: Werd ich mir mal anschauen.

    Zu 1:

    PHP:
    class foo {
        function 
    bar() {

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

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

    PHP:
    $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! :)
     
  4. SirMArtin, 25.09.2009 #4
    SirMArtin

    SirMArtin freier Samsungsupporter

    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
     
  5. Samsung I7500, 25.09.2009 #5
    Samsung I7500

    Samsung I7500 Threadstarter Fortgeschrittenes Mitglied

    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...
     
  6. SirMArtin, 25.09.2009 #6
    SirMArtin

    SirMArtin freier Samsungsupporter

    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
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Hilfe bei Fehler in Quellcode benötigt Android App Entwicklung Freitag um 23:01 Uhr
[DISKUSSION] Reichen meine Java-Kenntnisse aus? Android App Entwicklung 03.06.2017
[ERLEDIGT] Eine Klasse um das aufrufen anderer Intents zu regeln Android App Entwicklung 24.05.2017
[ERLEDIGT] Frage zu den drawable-Ordnern Android App Entwicklung 20.05.2017
[OFFEN] Unions wie in C, C++? Android App Entwicklung 08.05.2017
[ERLEDIGT] Unable to locate tools.jar obwohl vorhanden Android App Entwicklung 23.03.2017
Und täglich grüßt die Quiz-App Frage (Vorgehensweise zur AppEntwicklung) Android App Entwicklung 15.02.2017
Frage zu Rekursives Ordner kopieren Android App Entwicklung 07.02.2017
Ein paar Fragen zu Permissions... Android App Entwicklung 18.01.2017
Kommunikation zwischen 2 Smartphones herstellen Android App Entwicklung 07.01.2017
Du betrachtest das Thema "2 grundlegende Java-Fragen" im Forum "Android App Entwicklung",