Java 找到属性uid的两个区分大小写冲突的getter或字段

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

我试图通过用户名搜索用户,我添加了搜索栏、列表视图、适配器等等,但我遇到的问题是,当我在搜索字段“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 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;
    }
}