从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)详细程度可能是一件好事