首页 > 解决方案 > 鉴于 List 是 JRL 的一部分,为什么 javac 不能访问 List

问题描述

我正在尝试编译 Spring Boot 教程,但出现错误。

[ERROR] /Users/jimstockwell/Birds/application/src/main/java/com/okta/developer/BirdController.java:[23,35] cannot access List
  class file for List not found

我正在使用 Maven,以及一个非常稀疏的 pom 文件。(我也直接尝试过javac。)

随着问题的发展,我会在评论中发布更多信息,因为发布整个项目似乎太过分了。:)

显然有问题的代码是:

package com.okta.developer;

import com.okta.developer.animals.bird.Bird;
import com.okta.developer.animals.bird.BirdPersistence;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class BirdController {

    private BirdPersistence birdPersistence;

    public BirdController(BirdPersistence birdPersistence) {
        this.birdPersistence = birdPersistence;
    }

    @GetMapping("bird")
    public List<Bird> getBird() {
        return birdPersistence.get();
    }

    @PostMapping("bird")
    public void saveBird(@RequestBody Bird bird) {
        birdPersistence.save(bird);
    }
}

(第 23 行是这样的:return birdPersistence.get();)

我不明白发生了什么事。由于 List 是 lang.util 的一部分,编译器怎么能说“无法访问 List”?

任何人都可以提供一些见解吗?提前致谢。

编辑:如果我改变 getBird 如下(并将 ArrayList 添加到导入),它编译得很好:

    public List<Bird> getBird() {
        return new ArrayList<Bird>();
/*        return birdPersistence.get(); */
    }

标签: javaspringmaven

解决方案


推荐阅读