来自虚拟的问题。...下面的代码的完整版本是什么? 如何用经典(长)版本的代码解释它?
FirebaseDatabase.getInstance()
.getReference()
.push()
.setValue(new ChatMessage(input.getText().toString(),
FirebaseAuth.getInstance()
.getCurrentUser()
.getDisplayName())
);
答案 0 :(得分:3)
被调用的方法都返回一个对象(最后一个对象除外),而不是void
。在某些其他语言中,您将它们称为功能,而不是过程。
由于该方法返回了一个对象,因此您可以依次在该返回的对象上调用一个方法,并像这样将调用链接起来。
等效于这样的事情,如果这使您更清楚:
<some class> var1 = FirebaseDatabase.getInstance();
<some class> var2 = var1.getReference();
<some class> var3 = var2.push();
var3.setValue(new ChatMessage(input.getText().toString(),
FirebaseAuth.getInstance()
.getCurrentUser()
.getDisplayName())
);
答案 1 :(得分:1)
那只是Java
SomeClass1 instance = FirebaseDatabase.getInstance();
SomeClass2 reference = instance.getReference();
SomeClass3 push = reference.push();
SomeClass4 authInstance = FirebaseAuth.getInstance();
SomeClass5 currentUser = authInstance.getCurrentUser();
SomeClass6 displayName = currentUser.getDisplayName();
SomeClass6 message = input.getText();
SomeClass7 messageAsString = message.toString();
SomeClass8 chatMessage = new ChatMessage(messageAsString, displayName);
push.setValue(chatMessage);
注:为清楚起见,代码采用了荒谬的格式。请不要在代码中使用类似此示例的格式。