每个项目有 2 个值的数组

Array with 2 values per item

我正在尝试创建一个数组,每个项目有 2 个值,例如具有自定义 header 的值,并且来自 Ruby,找不到正确的方法这在 Java.

这是我需要自动化的 REST-assured 测试。

这是我需要做的方法,我将 obj 的声明与某种 ruby 方法混合在一起,所以它的必要性更加明确:

private String[] getHeaders() {
    String[] obj = [
           'Signature' => this.getSignature(),
           'Timestamp' => this.getTimestamp(),
            ];

        if(getSessionToken() != null) {
            obj.sessionToken = this.getSessionToken();
        }
    }
}

我怀疑这就是您想要的。

   class Headers{
         public String signature;
         public String timeStamp;
    }
    Headers[] header = new Headers[10];

您可能不需要 getter 和 setter,但您也可以将它们放入。

您可以通过创建模型来实现。例如:

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);