我试图创建一个每个项目有2个值的数组,比如带有自定义标题的值,并且来自Ruby,无法在Java中找到正确的方法。
这是一个需要自动化的REST保证测试。
这是我需要做的方法,我将obj的声明与某种ruby方式混合起来,所以它的必要性更加明确:
private String[] getHeaders() {
String[] obj = [
'Signature' => this.getSignature(),
'Timestamp' => this.getTimestamp(),
];
if(getSessionToken() != null) {
obj.sessionToken = this.getSessionToken();
}
}
}
答案 0 :(得分:3)
您可以通过创建模型来实现这一目标。例如:
public class MyModel {
private String signature;
private String timestamp;
public MyModel() {
// constructor
}
public MyModel(String signature, String timestamp){
this.signature = signature;
this.timestamp = timestamp;
}
public String getSignature() {
return signature;
}
public void setSignature(String signature) {
this.signature = signature;
}
public String getTimestamp() {
return timestamp;
}
public void setTimestamp(String timestamp) {
this.timestamp = timestamp;
}
}
然后创建模型的数组。您可以使用:
private static final int MODEL_SIZE = 5;
private MyModel[] models = new MyModel[MODEL_SIZE];
如果您已经知道阵列的大小。或者,如果你还不知道数组的大小,你可以使用下面的方法:
private ArrayList<MyModel> models = new ArrayList<>;
private MyModel model;
// Then fill your models
// by using this way
model = new MyModel("My Signature", "My Timestamp");
models.add(model);
// or this way
model = new MyModel();
model.setSignature("My Signature");
model.setTimestamp("My Timestamp");
models.add(model);
在不创建模型的情况下实现这一目标的另一种方法是使用HashMap。这是一个例子:
List<HashMap<String, String>> objects = new ArrayList<>();
HashMap<String, String> object = new HashMap<>();
object.put("signature", "My Signature");
object.put("timestamp", "My Timestamp");
objects.add(object);
答案 1 :(得分:1)
我怀疑这是你想要的东西。
class Headers{
public String signature;
public String timeStamp;
}
Headers[] header = new Headers[10];
你可能不需要吸气剂和制定者,但你也可以扔掉它们。