public class WorkTermDayUtils { static Map<Integer, Integer> map; public Map<Integer,Integer> getWorkTermDays() { map.put(1, 3); map.put(2, 13); map.put(3, 29); map.put(4, 59); map.put(5, 179); map.put(6, 364); map.put(7, 729); return map; } 这段代码工具类调用没数据
时间: 2024-02-24 10:55:09 浏览: 53
这段代码的作用是定义一个名为 `WorkTermDayUtils` 的工具类,其中包含一个静态的 `Map<Integer, Integer>` 类型的变量 `map`。在 `getWorkTermDays()` 方法中,将一些键值对添加到 `map` 中并返回 `map`。但是,由于 `map` 没有被初始化,所以在其他类中调用 `getWorkTermDays()` 方法时,将会得到一个空指针异常。因此,必须在该工具类中初始化 `map` 变量。可以在类的静态块中初始化它,如下所示:
```
public class WorkTermDayUtils {
static Map<Integer, Integer> map;
static {
map = new HashMap<>();
}
public Map<Integer, Integer> getWorkTermDays() {
map.put(1, 3);
map.put(2, 13);
map.put(3, 29);
map.put(4, 59);
map.put(5, 179);
map.put(6, 364);
map.put(7, 729);
return map;
}
}
```
这样,在其他类中调用 `getWorkTermDays()` 方法时,将不会得到空指针异常。
相关问题
class Pet {} class Dog extends Pet {} class Pug extends Dog {} class Cat extends Pet {} class Rodent extends Pet {} class Gerbil extends Rodent {} class Hamster extends Rodent {} class Main { static HashMap<Integer, Class<? extends Pet>> map = new HashMap<Integer, Class<? extends Pet>>(); static { map.put(Pet.class.getName().length(), Pet.class); map.put(Dog.class.getName().length(), Dog.class); map.put(Pug.class.getName().length(), Pug.class); map.put(Cat.class.getName().length(), Cat.class); map.put(Rodent.class.getName().length(), Rodent.class); map.put(Gerbil.class.getName().length(), Gerbil.class); map.put(Hamster.class.getName().length(), Hamster.class); } public static void main(String[] args) { for ( Integer i : map.keySet() ) System.out.println(map.get(i).getName()); }} The code below will print three lines.运行结果,为什么
运行结果会打印出以下三行:
```
Pet
Pug
Hamster
```
这是因为 `map` 是一个 `HashMap`,它按照键的顺序存储值。在这种情况下,键是类名的长度,值是对应的类。当遍历 `map` 并打印值时,它们按照键的升序进行打印。
首先,`Pet.class.getName().length()` 的值为3,所以打印出 `Pet`。
接下来,`Pug.class.getName().length()` 的值为3,所以打印出 `Pug`。
最后,`Hamster.class.getName().length()` 的值为7,所以打印出 `Hamster`。
其他类的长度不是3或7,所以它们不会被打印出来。
@Repository public class DepartmentDao { private static Map<Integer, Department>departments = null; static { departments = new HashMap<Integer,Department>(); departments.put(101,new Department(101,"教学部")); departments.put(102,new Department(102,"市场部")); departments.put(103,new Department(103,"教研部")); departments.put(104,new Department(104,"运营部")); departments.put(105,new Department(105,"后勤部")); }
你好!这是一个部门数据访问对象(DepartmentDao)的示例代码。在这个类中,我们创建了一个静态的部门映射(Map),用于存储各个部门的数据。在静态代码块中,我们将一些部门实例添加到这个映射中,每个部门都有一个唯一的编号和名称。例如,101号部门是教学部,102号部门是市场部,以此类推。这样,通过DepartmentDao类,我们可以方便地获取和操作部门数据。
阅读全文