2017-08-27 65 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 
} 
相关问题