Visual Studio Code - Java - Lombok - 该方法未针对该类型定义

Posted

技术标签:

【中文标题】Visual Studio Code - Java - Lombok - 该方法未针对该类型定义【英文标题】:Visual Studio Code - Java - Lombok - The method is undefined for the type 【发布时间】:2018-12-22 08:45:33 【问题描述】:

我下载了以下项目并导入到Visual Studio Code

https://github.com/oktadeveloper/okta-spring-boot-2-angular-5-example

我在调用以下类时遇到问题:car.getName()

https://github.com/oktadeveloper/okta-spring-boot-2-angular-5-example/blob/d5c959162ed0f862a5dceb93f5957f92e052e062/server/src/main/java/com/okta/developer/demo/CoolCarController.java

内容是:

CoolCarController.java

package com.okta.developer.demo;

import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Collection;
import java.util.stream.Collectors;

@RestController
class CoolCarController 
    private CarRepository repository;

    public CoolCarController(CarRepository repository) 
        this.repository = repository;
    

    @GetMapping("/cool-cars")
    @CrossOrigin(origins = "http://localhost:4200")
    public Collection<Car> coolCars() 
        return repository.findAll().stream()
                .filter(this::isCool)
                .collect(Collectors.toList());
    

    private boolean isCool(Car car) 
        return !car.getName().equals("AMC Gremlin") &&
                !car.getName().equals("Triumph Stag") &&
                !car.getName().equals("Ford Pinto") &&
                !car.getName().equals("Yugo GV");
    

这里也是内容:

Car.java

package com.okta.developer.demo;

import lombok.*;

import javax.persistence.Id;
import javax.persistence.GeneratedValue;
import javax.persistence.Entity;

@Entity
@Getter @Setter
@NoArgsConstructor
@ToString @EqualsAndHashCode
public class Car 
    @Id @GeneratedValue
    private Long id;
    private @NonNull String name;

如下图所示,我收到了错误:

[Java] The method getName() is undefined for the type Car

我认为Visual Studio Code 看不懂包:lombok

知道如何让Visual Studio Code 理解该软件包吗?

谢谢!

【问题讨论】:

【参考方案1】:

好的,安装扩展程序:Lombok Annotations Support for VS Code (gabrielbb.vscode-lombok) 成功了。

【讨论】:

它对我不起作用。我安装了扩展,它整理了编辑器的 Intellisense,但没有整理出编译本身。我在尝试从 VSCode 中运行代码时收到 “构建失败,您要继续吗?” 错误消息。如果我选择“Proceed”,最终会出现错误未解决的编译问题。多个构造函数和方法未定义。 我遇到了与@dbaltor 相同的问题。我将 VS Code 更新到最新版本,并且 lombok 问题消失了。编译正常,没有任何问题。 正如@Suresh 所说,我更新到VS Code 的最新版本,然后清除工作区缓存(通过在尝试运行应用程序时单击修复按钮)就成功了。我还安装了扩展 Lombok Annotations Support for VS Code。【参考方案2】:

如果你的项目在安装这个插件Lombok Annotations Support for VS Code之前就已经加载好了,你可以在vscode中运行这个命令来重新加载项目。

Command + shift + P并执行:

Java: Clean Java language server workspace

【讨论】:

这应该在 VSCode 扩展的安装说明中说明。

以上是关于Visual Studio Code - Java - Lombok - 该方法未针对该类型定义的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio Code - Java - 导入错误等

Java on Visual Studio Code的更新 – 2021年4月

在 Visual Studio Code 中美化/格式化 Java 代码

使用Visual Studio Code开发和调试Java Burp扩展

Visual Studio Code - Java - Lombok - 该方法未针对该类型定义

8月更新| Java on Visual Studio Code