从C语言学习后,我正在学习如何用Java编写代码。在C语言中,我总是将所有内容分成单独的函数,以使代码更易于阅读和编辑。我试图在Java中执行此操作,但是由于我意识到您无法使用指针,因此我对执行此操作的最佳方法有些困惑。

因此,例如,我想要一个为我创建四个警报的方法。因此,我将其传递给警报生成器,该生成器随后可以创建警报。我可以将它们返回到数组中,但是在我的代码中,我已经分别指定了警报,并且我希望保持这种方式,这样就无需将它们称为alert [1],alert [2]。 .. 等等。

因此,这意味着我将不得不重命名它们,这将添加其他代码,这些代码可能比实际方法中的代码更长!

我在想这是正确的方法吗?有什么我可以做的吗?

-编辑-

        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        builder.setMessage(this.getString(R.string.ache_Q_text))
               .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {dialog.cancel();}
               });

        final AlertDialog ache_Q_alert = builder.create();

        builder.setMessage(this.getString(R.string.food_Q_text));
        final AlertDialog food_Q_alert = builder.create();

        builder.setMessage(this.getString(R.string.event_Q_text));
        final AlertDialog event_Q_alert = builder.create();

        builder.setMessage(this.getString(R.string.ache_Q_text));
        final AlertDialog ache_type_Q_alert = builder.create();

取而代之的是
createAlerts();

并将该代码放在旁边的某个地方。

最佳答案

听起来您想让一个方法为您创建四个对象并返回它们。您有几种选择:

1.修改您的方法以仅创建一个对象,然后调用它四次,例如

Alert foo = createOneAlert(x,y,z);
Alert bar = createOneAlert(a,b,c);
// etc.

2.创建一个数据结构来保存您的警报:
public class Alerts {
  private final Alert foo;
  private final Alert bar;
  private final Alert baz;
  private final Alert quux;

  public Alerts(Alert foo, Alert bar, Alert baz, Alert quux) {
    this.foo = foo;
    this.bar = bar;
    this.baz = baz;
    this.quux = quux;
  }

  public Alert getFoo() { return foo; }
  // etc.

}

public Alerts makeAlerts(AlertBuilder builder) {
  return new Alerts(
    builder.buildAlert(a,b,c),
    builder.buildAlert(d,e,f),
    builder.buildAlert(g,h,i),
    builder.buildAlert(x,y,z));
}

可能更冗长,但a)是Java,b)详细程度可能是一件好事

09-10 15:50
查看更多