2017-08-27 61 views
-3
Error:(88, 79) error: no suitable constructor found for ChatMessage(String,String) 
    constructor ChatMessage.ChatMessage(String,String,long) is not applicable 
    (actual and formal argument lists differ in length) 
    constructor ChatMessage.ChatMessage() is not applicable 
    (actual and formal argument lists differ in length) 

這是我對相關錯誤代碼:發現ChatMessage沒有合適的構造函數(字符串,字符串)

public ChatMessage(String messageText, String messageUser, long messageTime) { 
     this.messageText = messageText; 
     this.messageUser = messageUser; 

     messageTime = new Date().getTime(); 
    } 

我:

FirebaseDatabase.getInstance().getReference().push().setValue(new ChatMessage(input.getText().toString(), FirebaseAuth.getInstance().getCurrentUser().getEmail())); 

而且該錯誤與ChatMessage構造隨後的YouTube教程https://www.youtube.com/watch?v=Xn0tQHpMDnM和一些評論提到了同樣的錯誤,但沒有人收到迴應。

+0

你忘了最後一個參數('長messageTime')補充說,呼叫將工作 – Lino

+1

如果你將自己閱讀的錯誤信息,你會看到有所有提供給您解決問題 – Lino

+0

刪除長messageTime來自構造函數參數。你沒有使用它。 – RamKumar

回答

0

您已經使用三個參數定義ChatMessage類的構造函數:

ChatMessage(String messageText, String messageUser, long messageTime) 

要創建ChatMessage類的新對象時,你需要通過不只有兩個參數,因爲我在你的代碼看,而是三個。因此,爲了解決您的問題,請使用下面的代碼行:

FirebaseDatabase.getInstance().getReference() 
    .push() 
    .setValue(new ChatMessage(
      input.getText().toString(), 
      FirebaseAuth.getInstance().getCurrentUser().getEmail(), 
      null)); 

正如你可能看到的,我已經添加作爲最後一個參數null因爲你創建你的ChatMessage類中日期的新實例。

+0

不需要。第三個參數應從構造函數中刪除。默認時間是'new Date()。getTime()' –

0

您沒有正確地關注視頻,或者您沒有打擾檢查描述到see the source code

刪除第三個參數。

public class ChatMessage { 
    private String messageText; 
    private String messageUser; 
    private long messageTime; 

    public ChatMessage(String messageText, String messageUser) { 
     this.messageText = messageText; 
     this.messageUser = messageUser; 


     messageTime = new Date().getTime(); 

默認消息時間是「現在」,紀元以來的秒數

number of comments have mentioned the same error

我看到提到不同的錯誤,涉及到使用getValue(ChatMessage.value)不正確,而不是錯誤你有

如果您想要3個參數,你想要除了以前的

public ChatMessage(String messageText, String messageUser, long messageTime) { 
    this.messageText = messageText; 
    this.messageUser = messageUser; 

    this.messageTime = messageTime 
} 
相關問題