2012-04-03 4 views
2

zugreifen habe ich diese Methode:GWT: Wie Java-Variable von JSNI

[email protected]::testJSNI2(Ljava/lang/String;) 

Aber wie kann ich x Zugriff auf die Schnur, die lautet:

public void testJSNI2(){ 
    String x = "test"; 
} 

ich diese Methode wie folgt zugreifen können in einer Methode definiert?

+1

Warum sollte jemand diese Frage überstimmen würde. Ist diese Seite nur für Leute mit Expertenwissen in dem von ihnen gewünschten Fach? Wenn sie ein Expertenwissen hätten, müssten sie überhaupt fragen? Hör auf glücklich zu sein. –

Antwort

4

Sie können nicht auf die Variable x zugreifen, da sie im Bereich der Methode liegt, genauso wie Sie nicht in Java-Code darauf zugreifen könnten.

2

Die Antwort ist nicht korrekt. JavaScript und Java verhalten sich nicht gleich. Person kann ein beliebiges Feld zugreifen js mit Hilfe von JSNI:

public class JSNIExample { 

    String myInstanceField; 
    static int myStaticField; 

    void instanceFoo(String s) { 
    // use s 
    } 

    static void staticFoo(String s) { 
    // use s 
    } 

    public native void bar(JSNIExample x, String s) /*-{ 
    // Call instance method instanceFoo() on this 
    [email protected]::instanceFoo(Ljava/lang/String;)(s); 

    // Call instance method instanceFoo() on x 
    [email protected]::instanceFoo(Ljava/lang/String;)(s); 

    // Call static method staticFoo() 
    @com.google.gwt.examples.JSNIExample::staticFoo(Ljava/lang/String;)(s); 

    // Read instance field on this 
    var val = [email protected]::myInstanceField; 

    // Write instance field on x 
    [email protected]::myInstanceField = val + " and stuff"; 

    // Read static field (no qualifier) 
    @com.google.gwt.examples.JSNIExample::myStaticField = val + " and stuff"; 
    }-*/; 

} 

du hier sehen können: http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJSNI.html