Java 为什么代码在'if(savedData!=null)`下执行,而不管'savedData'是否设置为任何值或null

Java 为什么代码在'if(savedData!=null)`下执行,而不管'savedData'是否设置为任何值或null,java,android,Java,Android,我正在学习Android,但我对java没有太多经验。 我编写这些代码是为了检查sharedPreferences(在使用sharedPreferences.Editor之前保存的)中是否有任何数据,如果有任何保存的数据,则执行某些操作。但是,if(savedData!=null)语句下的代码总是在执行,不管savedData中是否有任何值 但是当我使用if(!savedData.isEmpty()时,它正在做我想做的事情 但我在StackOverflow上发现,我们不应该对String使用is

我正在学习Android,但我对java没有太多经验。 我编写这些代码是为了检查
sharedPreferences
(在使用
sharedPreferences.Editor
之前保存的)中是否有任何数据,如果有任何保存的数据,则执行某些操作。但是,
if(savedData!=null)
语句下的代码总是在执行,不管
savedData
中是否有任何值

但是当我使用
if(!savedData.isEmpty()
时,它正在做我想做的事情

但我在StackOverflow上发现,我们不应该对String使用
isEmpty()
,因为如果String为
null
,那么
isEmpty()
将不会执行

我只是想知道为什么
如果(savedData!=null)
不起作用,但是
如果(!savedData.isEmpty())

我的代码:这里是
Log.d(“isRunning:,“True”)
下的
如果
语句总是在执行

private String saveString = null;
    private ListView listView;
    private static List<String> listArray = new ArrayList<String>();
    private SaveListInSharedPreferences saveListInSharedPreferences = new SaveListInSharedPreferences();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    SharedPreferences settings = getPreferences(MODE_PRIVATE);
    String savedData = settings.getString(saveString, null);
    if (savedData != null){
        listArray = saveListInSharedPreferences.getList(savedData);
        Log.d("isRunning : ", "True" );
    }
私有字符串saveString=null;
私有列表视图列表视图;
私有静态列表listArray=new ArrayList();
private SaveListInSharedPreferences SaveListInSharedPreferences=new SaveListInSharedPreferences();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SharedReferences设置=getPreferences(模式\私人);
String savedData=settings.getString(saveString,null);
如果(savedData!=null){
listArray=saveListInSharedPreferences.getList(savedData);
Log.d(“isRunning:,“True”);
}
如果这不起作用,那么它就不是null。如果它不起作用,那么请尝试事先将其直接设置为null,然后找出该函数不返回null的原因 . 至于为什么myString!=null本身不起作用,这里有一篇文章可以比我更好地解释它。

很明显,首选项中没有空值,否则它就不会出现。为什么你认为会出现空值?我认为你应该先从Java基础知识开始,然后再面对许多这样的问题。无论如何,使用上述两个条件的方法是使用一个&&(将空值检查放在左边)
if(savedData!=null&!savedData.isEmpty())
我正在将
null
分配给
savedData
。在第一行中有
saveString
分配给
null
然后我正在使用
String savedData=settings.getString(saveString,null);
将这个
saveString
分配给第12行中的
savedData
我做错了什么?
if (myString != null && !myString.isEmpty()) {
    //
}