Java 为什么代码在'if(savedData!=null)`下执行,而不管'savedData'是否设置为任何值或null
我正在学习Android,但我对java没有太多经验。 我编写这些代码是为了检查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
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()) {
//
}