2013-12-11 133 views
0

第一件事是第一件事;我明白,從靜態方法調用非靜態方法是不可能的,詳見此處。獲取/設置非靜態字符串爲靜態字符串以通過Java

問:我想知道如果我可以設置字符串(非靜態)使用構造方法爲靜態,這樣我可以staticly傳遞字符串跨Java類和到JNI:

Intent myIntent = new Intent(Intent.ACTION_VIEW); 
    String argument = "iqsrc://"+ arguments.getText().toString(); 
    Uri myUri = Uri.parse(argument); 
    myIntent.setData(myUri); 
    startActivity(myIntent); 

String arguments = new argument 
//Used to pass static string to /from java 

並且每當非靜態字符串發生變化時,新的靜態值也會發生變化?

回答

2

第一件事第一件事;我明白,這是不可能從一個非靜態方法首先

第一件事調用靜態方法,你可以調用從非靜態方法靜態方法。您不能從靜態方法調用非靜態方法。

您可以從一個非靜態方法設置一個靜態變量,如果這是你的意圖:

static String foo; 

void myNonStaticMethod() { 
    foo = "bar"; 
} 
+0

謝謝你......遺憾的閱讀障礙。 –

+0

Ähemm...對我來說,一個已經確定無法從靜態方法調用非靜態方法的消息對我來說是新聞?畢竟,main *是一個靜態方法,從這裏開始。如果正如你所說,沒有任何非靜態方法可以被調用。 – Ingo

+0

@Ingo我認爲我們在這裏談論語義。你不能調用一個非靜態方法*,而不調用一個實例*,例如'new MyClass()。myNonStaticMethod();',而不是'myNonStaticMethod();'。 – Bohemian

相關問題