gpt4 book ai didi

java - HashMap 为空

转载 作者:行者123 更新时间:2023-12-02 02:57:10 25 4
gpt4 key购买 nike

当我运行这部分代码时,我收到 IndexOutOfBoundException,因为 Lessons hashmap 是空的。我在调试器中检查了它。你能解释一下为什么它是空的吗?我正在用数据填充它,但它无法正常工作。

public class ScheduleActivity extends AppCompatActivity {

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

ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
viewPager.setAdapter(new SchedulePagerAdapter(getFragmentManager()));

}

}


class SchedulePagerAdapter extends FragmentPagerAdapter {

public SchedulePagerAdapter(FragmentManager fm) {
super(fm);
}

@Override
public Fragment getItem(int position) {
return DayFragment.newInstance();
}

@Override
public CharSequence getPageTitle(int position) {

ArrayList<String> arrayList = new ArrayList<>();
for (String key : LessonsMap.lessons.keySet()) {
arrayList.add(key);
}
return arrayList.get(position);

}

@Override
public int getCount() {
return 6;
}

}


class LessonsMap {

public static Map<String, String> lessons = new HashMap<String, String>();

public LessonsMap() {

lessons.put("Monday", "Test_Data");
lessons.put("Tuesday", "Test_Data");
lessons.put("Wednesday", "Test_Data");
lessons.put("Thursday", "Test_Data");
lessons.put("Friday", "Test_Data");
lessons.put("Saturday", "Test_Data");


}

}

谢谢!

最佳答案

正如您所看到的异常, HashMap 是空的而不是空!

因为在你的代码中public static Map<String, String> lessons = new HashMap<String, String>();

由于您从类LessonMap中以静态方式调用类(class),因此类(class)将始终为空,因为您的类的构造函数永远不会被调用!您可以像这样创建 LessonMap 的实例:LessonMap lessonMap = new LessonMap()

new将创建该类的对象并调用构造函数。

你不能在java中创建静态构造函数

关于java - HashMap 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42889785/

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