2016-12-30 43 views
-3

我編碼一個Android應用程序與Firebase,並希望寫一個對象到數據庫:如何使用列表<String>作爲參數

public class newEvent { 

public String whoEv; 
public String whereEv; 
public String whenEv; 
public String whatEv; 

public newEvent() {} 

public newEvent(String whoEv, String whereEv, String whenEv, String whatEv) { 
    this.whoEv = whoEv; 
    this.whereEv = whereEv; 
    this.whenEv = whenEv; 
    this.whatEv = whatEv; 
} 
} 

這工作,但你可以看到他們都是「只是」字符串。我想要的第一個參數是List,Firebase不允許String []上傳/寫入。 原因是能夠將更多名稱傳入whoEv作爲分隔Strings/Objects。 (如果他們來了,給每個名字boolean)。 我們確切的問題:

public newEvent(List<String> whoEv, String whereEv, String whenEv, String whatEv) { 
    this.whoEv = whoEv; 
    this.whereEv = whereEv; 
    this.whenEv = whenEv; 
    this.whatEv = whatEv; 
} 

當我用這個,我不知道如何編寫正確的代碼:

newEvent test = new newEvent(List<String>("derp","max"), "Amsterdam", "31/12/2016", "NewYears Eve"); 

以上顯然行不通。 Expression expectedunexpected token。我錯過了什麼或做錯了什麼?感謝您閱讀本文!

編輯:總白癡想法使用List<String>如果我想傳遞布爾值與字符串...不知道什麼使用,而不是。

+0

你可以嘗試* java.util.Arrays.asList(.. )* https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html –

+0

嘗試使用此構造函數 - 1)public newEvent(ArrayList whoEv,String whereEv,String whenEv,String whatEv ){} 2)newEvent test = new newEvent(new ArrayList (「derp」,「max」),「Amsterdam」, – Arjit

+0

@Arjit它看起來就是這樣的解決方案,即使我得到一個錯誤:'無法解析構造函數'ArrayList(java.lang.String,java .lang.String)' –

回答

1

固定它: newEvent test = new newEvent("Meppel", "31/12/2016", "Oudjaarsdag", new String[]{"derp", "Sir", "max"});

而在類如: `公共類newEvent {

public ArrayList<String> wie; 
public String waar; 
public String wanneer; 
public String wat; 

public newEvent() {} 

public newEvent(String waar, String wanneer, String wat, String... wie) { 
    this.wie = new ArrayList<>(Arrays.asList(wie)); 
    this.waar = waar; 
    this.wanneer = wanneer; 
    this.wat = wat; 
} 
+0

這是純粹的調試和測試,這就是爲什麼它如此硬編碼。 –

0

列表是一個接口,你不能直接使用它與一個實現類。你可以使用實現List接口的默認jdk提供的類之一。例如ArrayList,LinkedList。

通過這個鏈接List Implementations,你會明白你如何傳遞一個字符串列表作爲參數。

+0

您能解釋一下嗎?我不知道如何編寫參數:'new newEvent([「derp」,「max」],...' –

0

它是Java嗎?可能是你需要在列表 ... 之前加上「新」字並且別忘了列表是一個接口類型,所以這裏需要使用一些繼承類。 ArrayList的例如

+0

不幸的是,使用新的關鍵字會帶來更多的錯誤 –