2017-01-11 31 views
0

我試圖使用每個項目的2個值來創建一個數組,如使用自定義標頭的值,並且來自Ruby的數據無法找到在Java中執行此操作的正確方法。每個項目有2個值的數組

這是一個REST保證測試,我需要自動化。

這是我需要做的方法,我用某種紅寶石的方式去做混合obj的聲明,所以需要它更清楚:

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

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

使用您關心的兩個值創建自定義類型。製作一個這種類型的數組。 – azurefrog

+2

您可以創建一個單獨的模型類,它代表您需要的東西,並且裏面有2個字段,簽名和時間戳。然後聲明該類的數組,例如'MyClass [] objects = new MyClass [10];'。 – Vucko

+0

@azurefrog在我之前說的是什麼:D – Vucko

回答

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

我喜歡HashMap的方式做到這一點,但是我在這行 \t收到錯誤,多個標記 - 語法錯誤,插入「VariableDeclarators」完成 \t LocalVariableDeclaration \t - 語法錯誤,插入「;」完成BlockStatements \t - 無法推斷HashMap的類型參數<> –

+0

我解決了它們,這是我的一個定義錯誤,謝謝! –

1

事情是這樣的,我懷疑是你想要什麼。

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

你可能不需要getter和setter,但你也可以拋出它們。

相關問題