gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 19:50:39 27 4
gpt4 key购买 nike

我从 C 语言转过来后正在学习如何用 Java 编写代码。在 C 语言中,我总是将所有内容分成单独的函数,以使代码更易于理解和编辑。我曾尝试在 Java 中执行此操作,但现在因为我意识到您不能使用指针,所以我对执行此操作的最佳方法有点困惑。

例如,我想要一个为我创建四个警报的方法。所以我将一个警报生成器传递给它,然后可以创建警报。我可以在一个数组中返回它们,但在我的代码中我已经单独命名了警报,我想保持这种方式,这样我就不需要将它们称为警报 [1]、警报 [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) 冗长可以是一件好事

关于java - 由于无法通过引用传递,组织 Java 代码的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3033174/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com