gpt4 book ai didi

java - 为什么即使 "module"和 "sModule"相等,java 代码中的 if 语句也会被跳转

转载 作者:太空狗 更新时间:2023-10-29 16:05:48 26 4
gpt4 key购买 nike

我尝试只选择具有相同模块的文件显示在来自 sql 表的 ListView 。如果我使用 if (module == smodule) 应用程序没问题,但 if 语句被跳转,使用 if (module.equals(smodule)) 应用程序崩溃。

谢谢@Nambari 问题是我的数据库中模块的值为空。

感谢@Buhake Sindi 的建议“像 String module = ""一样实例化它

Java 代码......................:

private void getFiles() {                               //getting data from the SQL database
String[] columns = {"id", "file", "module", "date", "note"};
database = helper.getWritableDatabase();
Cursor cursor = database.query("files", columns, null, null, null, null, null);
cursor.moveToFirst();
files.clear();
while (!cursor.isAfterLast()) {
String module = cursor.getString(2);
String smodule = "Alllllll";
Log.v("test", smodule+" "+module+" <-if m=sm getting sql data /not if");
if (module.equals(smodule)){
String file = cursor.getString(1);
files.add(file);
Log.v("test", file+" "+files+" <-if m=sm getting sql data/if");
}
cursor.moveToNext();
}
cursor.close();
helper.close();

日志:

Alllllll null <-if m=sm getting sql data not/if
Alllllll null <-if m=sm getting sql data not/if
Alllllll null <-if m=sm getting sql data not/if
Alllllll null <-if m=sm getting sql data not/if
Alllllll Alllllll <-if m=sm getting sql data not/if
Alllllll Alllllll <-if m=sm getting sql data not/if
Alllllll Alllllll <-if m=sm getting sql data not/if

用 .equals() 替换 == 后的错误日志:

03-28 14:31:03.985: E/SpannableStringBuilder(25898): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
03-28 14:31:03.985: E/SpannableStringBuilder(25898): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
03-28 14:31:15.030: D/AbsListView(25898): Get MotionRecognitionManager
03-28 14:31:15.085: W/ResourceType(25898): Failure getting entry for 0x010802c1 (t=7 e=705) in package 0 (error -75)
03-28 14:31:15.090: W/ResourceType(25898): Failure getting entry for 0x010802c1 (t=7 e=705) in package 0 (error -75)
03-28 14:31:15.225: E/SpannableStringBuilder(25898): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
03-28 14:31:15.225: E/SpannableStringBuilder(25898): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
03-28 14:31:28.950: D/AbsListView(26523): Get MotionRecognitionManager
03-28 14:31:29.060: D/libEGL(26523): loaded /system/lib/egl/libEGL_mali.so
03-28 14:31:29.075: D/libEGL(26523): loaded /system/lib/egl/libGLESv1_CM_mali.so
03-28 14:31:29.080: D/libEGL(26523): loaded /system/lib/egl/libGLESv2_mali.so
03-28 14:31:29.090: D/(26523): Device driver API match
03-28 14:31:29.090: D/(26523): Device driver API version: 10
03-28 14:31:29.090: D/(26523): User space API version: 10
03-28 14:31:29.090: D/(26523): mali: REVISION=Linux-r2p4-02rel0 BUILD_DATE=Thu Oct 25 08:43:05 KST 2012
03-28 14:31:29.115: D/OpenGLRenderer(26523): Enabling debug mode 0
03-28 14:31:29.135: W/ResourceType(26523): Failure getting entry for 0x010802c1 (t=7 e=705) in package 0 (error -75)
03-28 14:31:29.145: W/ResourceType(26523): Failure getting entry for 0x010802c1 (t=7 e=705) in package 0 (error -75)
03-28 14:31:30.780: D/AbsListView(26523): Get MotionRecognitionManager
03-28 14:31:30.800: V/test(26523): Alllllll null <-if m=sm getting sql data /not if
03-28 14:31:30.805: D/AndroidRuntime(26523): Shutting down VM
03-28 14:31:30.805: W/dalvikvm(26523): threadid=1: thread exiting with uncaught exception (group=0x4189f2a0)
03-28 14:31:30.810: E/AndroidRuntime(26523): FATAL EXCEPTION: main
03-28 14:31:30.810: E/AndroidRuntime(26523): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.cn/com.example.cn.ListView2}: java.lang.NullPointerException
03-28 14:31:30.810: E/AndroidRuntime(26523): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
03-28 14:31:30.810: E/AndroidRuntime(26523): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
03-28 14:31:30.810: E/AndroidRuntime(26523): at android.app.ActivityThread.access$700(ActivityThread.java:140)

结束

最佳答案

if (module == smodule){

应该是

  if (module.equals(smodule)){

比较字符串/对象时。使用 equals() 比使用 ==

更好

== 检查引用是否相等。 equals() 检查对象是否相等。

关于java - 为什么即使 "module"和 "sModule"相等,java 代码中的 if 语句也会被跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15684032/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com