2015-04-23 74 views
4

我想知道是否可以調用外部類的方法而不必實際聲明該類的對象。它們的設置方式使得每次調用對象的方法都會清空對象中的ArrayList。調用外部方法而不實例化對象

如果我可以調用沒有對象的方法,那麼我可以解決我的問題。

在此先感謝。

調用類:

public class BookingScreen extends Activity { 

    GAClass sendApplication = new GAClass(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_booking_screen); 
    } 

    public void saveBookingInfo(View view) { 

     EditText applicantNameText = (EditText) findViewById(R.id.applicantNameTextField); 
     EditText itemToBurnText = (EditText) findViewById(R.id.itemToBurnTextField); 

     String appName = applicantNameText.getText().toString(); 
     String appItemToBurn = itemToBurnText.getText().toString(); 

     if (appItemToBurn.isEmpty() || appName.isEmpty()) { 
      Toast.makeText(BookingScreen.this, "Please fill in all fields.", Toast.LENGTH_SHORT).show(); 
     } 
     else { 
      sendApplication.storeApplication(appName, appItemToBurn); 
      this.finish(); 
     } 
    } 

外部方法類:

 public class GAClass { 

    ArrayList<Application> peopleAttending; 


    public void storeApplication(String name, String item){ 
     peopleAttending = new ArrayList<>(10); 
     peopleAttending.add(new Application(name, item)); 

    } 
    } 
+1

申報方法是靜態的。靜態方法可以在沒有對象實例化的情況下使用 – Nimesh

+0

想要看看你試過了什麼 –

+0

調用方法還是外部方法? –

回答

0

究竟是什麼你想實現什麼? 類中的static方法不需要該類的實例,因此您可以創建所需的方法(不需要該對象的狀態 - 即不需要特定對象)static並調用它們這樣的:

ClassWithStaticMethods.staticMethod() ;

4

你可以做類似下面

public class GAClass { 

    public static ArrayList<Application> peopleAttending=null; 


    public static void storeApplication(String name, String item){ 
     if(null==peopleAttending){ 
      peopleAttending = new ArrayList(); 
     } 
     peopleAttending.add(new Application(name, item)); 

    } 
    } 

您可以調用上述方法如下面

GAClass.storeApplication(str_name,str_item); 

當你peopleAttending ArrayList的靜態它可以在靜態方法訪問和

if(null==peopleAttending){ 
       peopleAttending = new ArrayList(); 
      } 

上面的代碼保證第一次初始化如果peopleAttending 787-9空