在不实例化对象的情况下调用外部方法

时间:2015-04-23 09:52:46

标签: java object instantiation

我想知道是否可以调用外部类的方法而不必实际声明该类的对象。他们设置它的方式导致每次调用对象使用的方法时存储在对象中的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));

   }
  }

3 个答案:

答案 0 :(得分: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 static时,可以用静态方法访问

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

如果peopleAttending 9s为空

,则上面的代码确保首次初始化

答案 1 :(得分:3)

使用静态方法。您可以在不创建封闭类的对象的情况下调用静态方法。

https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html

答案 2 :(得分:0)

你到底想要达到什么目的? 类中的static方法不需要类的实例,因此您可以创建所需的方法(不需要对象的状态 - 即不需要特定的对象来处理){{ 1}}并像这样称呼它们:

static