2015-04-23 77 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空