由于您无法通过引用传递,因此组织Java代码的最佳方法是什么?

Ada*_*dam 5 c java pass-by-reference

我从C学习后学习如何使用Java进行编码.在CI中,总是将所有内容分成单独的函数,以使代码更易于遵循和编辑.我试图在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();
Run Code Online (Sandbox Code Playgroud)

而是用它替换它

createAlerts();
Run Code Online (Sandbox Code Playgroud)

并将该代码放在某处.

dav*_*000 6

听起来你想要一个方法为你创建四个对象并返回它们.你有几个选择:

1.修改你的方法只创建一个对象,并调用它四次,例如

Alert foo = createOneAlert(x,y,z);
Alert bar = createOneAlert(a,b,c);
// etc.
Run Code Online (Sandbox Code Playgroud)

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));  
}
Run Code Online (Sandbox Code Playgroud)

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