Java 找到属性uid的两个区分大小写冲突的getter或字段
我试图通过用户名搜索用户,我添加了搜索栏、列表视图、适配器等等,但我遇到的问题是,当我在搜索字段“Find two Getter or fields with conflicting case sensitivity for property:uid”中输入用户名时,出现了这个错误,我不知道如何解决它。 这是我的日志Java 找到属性uid的两个区分大小写冲突的getter或字段,java,android,Java,Android,我试图通过用户名搜索用户,我添加了搜索栏、列表视图、适配器等等,但我遇到的问题是,当我在搜索字段“Find two Getter or fields with conflicting case sensitivity for property:uid”中输入用户名时,出现了这个错误,我不知道如何解决它。 这是我的日志 2020-03-22 08:55:55.414 23924-23924/com.example.logindesign E/AndroidRuntime: FATAL EXCEPT
2020-03-22 08:55:55.414 23924-23924/com.example.logindesign E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.logindesign, PID: 23924
com.google.firebase.database.DatabaseException: Found two getters or fields with conflicting case sensitivity for property: uid
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper$BeanMapper.addProperty(com.google.firebase:firebase-database@@19.2.1:557)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper$BeanMapper.<init>(com.google.firebase:firebase-database@@19.2.1:488)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.loadOrCreateBeanMapperForClass(com.google.firebase:firebase-database@@19.2.1:329)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertBean(com.google.firebase:firebase-database@@19.2.1:430)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.deserializeToClass(com.google.firebase:firebase-database@@19.2.1:231)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertToCustomClass(com.google.firebase:firebase-database@@19.2.1:79)
at com.google.firebase.database.DataSnapshot.getValue(com.google.firebase:firebase-database@@19.2.1:203)
at com.example.logindesign.SearchActivity$2.onDataChange(SearchActivity.java:85)
at com.google.firebase.database.Query$1.onDataChange(com.google.firebase:firebase-database@@19.2.1:179)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@19.2.1:75)
at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@19.2.1:63)
at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@19.2.1:55)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
这可能是由于
Users.java
中的字段和方法大写所致。尝试修复它。你能发布你的“Users.java”吗?似乎有两个getter或两个字段具有相同的名称,但大小写不同(正如@josepraveen所提到的)。还要记住,java类通常不是多重的。其罚款有一个集合用户;但是你不想有像Users=newusers()这样的东西;您的名字应该遵循Java代码标准(例如,您会注意到代码片段中的突出显示是不正确的,因为您没有遵循标准);特别是,类以大写开头,成员(字段/方法)以小写开头。Sun定义了基本标准,但现在几乎所有样式都是上的次要变体。我添加了Users.java。谢谢,我解决了这个问题@Josepraven:)这可能是由于Users.java
中的字段和方法的大小写造成的。尝试修复它。你能发布你的“Users.java”吗?似乎有两个getter或两个字段具有相同的名称,但大小写不同(正如@josepraveen所提到的)。还要记住,java类通常不是多重的。其罚款有一个集合用户;但是你不想有像Users=newusers()这样的东西;您的名字应该遵循Java代码标准(例如,您会注意到代码片段中的突出显示是不正确的,因为您没有遵循标准);特别是,类以大写开头,成员(字段/方法)以小写开头。Sun定义了基本标准,但现在几乎所有样式都是上的次要变体。我添加了Users.java。谢谢,我解决了这个问题@Josepraven:)
package com.example.logindesign;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ListView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Objects;
public class SearchActivity extends AppCompatActivity {
private static final String TAG = "SearchActivity";
List<Users> mUsers;
EditText search_users, mSearchParam;
UserListAdapter mAdapter;
ListView listView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search_view);
Log.d(TAG, "OnCreate: Started.");
mSearchParam = findViewById(R.id.editTextSearch);
listView = findViewById(R.id.listview);
search_users = findViewById(R.id.search_user);
initTextListener();
}
private void initTextListener(){
Log.d(TAG, "initTextListener: initalizing");
mUsers = new ArrayList<>();
mSearchParam.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
String text = mSearchParam.getText().toString().toLowerCase(Locale.getDefault());
SearchForMatch(text);
}
});
}
private void SearchForMatch (String Keyword){
Log.d(TAG, "search for match: " + Keyword);
mUsers.clear();
if (Keyword.length() == 0){
} else {
DatabaseReference reference = FirebaseDatabase.getInstance().getReference();
Query query = reference.child(getString(R.string.users)).orderByChild(getString(R.string.username)).equalTo(Keyword);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot singleSnapshot : dataSnapshot.getChildren()){
Log.d(TAG, "Ondatachange: found user:" + Objects.requireNonNull(singleSnapshot.getValue(Users.class)).toString());
mUsers.add(singleSnapshot.getValue(Users.class));
UpdateUsersList();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
private void UpdateUsersList(){
Log.d(TAG, "UpdateUsersList: updating users list");
mAdapter = new UserListAdapter(SearchActivity.this, R.layout.model, mUsers);
listView.setAdapter(mAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Log.d(TAG, "OnItemClick : selected user: " + mUsers.get(position).toString());
}
});
}
}
package com.example.logindesign;
import com.google.firebase.database.Exclude;
public class Users {
public String fullName;
public String mUserName;
public String email;
public String mobileNumber;
public String Uid;
public Users() {
}
public Users(String fullName, String mUserName, String email, String mobileNumber, String uid) {
this.fullName = fullName;
this.mUserName = mUserName;
this.email = email;
this.mobileNumber = mobileNumber;
Uid = uid;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
public String getmUserName() {
return mUserName;
}
public void setmUserName(String mUserName) {
this.mUserName = mUserName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getMobileNumber() {
return mobileNumber;
}
public void setMobileNumber(String mobileNumber) {
this.mobileNumber = mobileNumber;
}
public String getUid() {
return Uid;
}
public void setUid(String uid) {
Uid = uid;
}
}