package com.example.xkly;
import com.example.xkly.mapper.UserMapper;
import com.example.xkly.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
class XklyApplicationTests {
    @Autowired
    private UserMapper userMapper;

    @Test
    void contextLoads() {

        // 插入新用户
        /**
         * 插入操作前要定义set get方法
         */
        User newUser = new User();
        newUser.setAge(18);
        newUser.setEmail("zhangsan@example.com");
        newUser.setId(6);
        newUser.setName("张三");

        int result = userMapper.insert(newUser);
        System.out.println("插入结果:" + (result > 0 ? "成功" : "失败"));

        //List<User> users = userMapper.selectList(null);
        /**
         * 想取出值的话,需要重写tostring这个方法
         */
        List<User> users = userMapper.selectList(null);
        users.forEach(System.out::println);
    }

}

User里面写的内容,set,get方法都是这次补充的,不补充会报错

C:\Users\20120\Desktop\xkly\src\test\java\com\example\xkly\XklyApplicationTests.java:20:16
java: 找不到符号
  符号:   方法 setAge(int)
  位置: 类型为com.example.xkly.pojo.User的变量 newUser

加了之后错误就没有了

在这里插入代码片

错误原因

你的 User 类中 可能没有 setAge(int) 方法,但是你的测试代码里尝试调用了 newUser.setAge(18),所以编译器报错 “找不到符号: 方法 setAge(int)”


解决方案

有两种方式修复这个问题:

方法 1:检查 User 类是否有 age 字段

你可以打开 User.java(位于 com.example.xkly.pojo 目录),检查是否有 age 这个字段:

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName("users") // 对应数据库表名
public class User {
    @TableId
    private Long id;
    private String username;
    private String email;
    private String password;
    private Integer age; // 添加 age 字段
}

如果 User 类里没有 age,你可以添加 private Integer age;,然后运行 Lombok 插件(如果你用了 @Data,Lombok 会自动生成 setAge(int))。


方法 2:如果 User 真的不需要 age

如果 User 这个类本来就没有 age 这个字段,那么你应该删除 setAge(18) 这行代码,改成:

User newUser = new User();
newUser.setUsername("张三");
newUser.setEmail("zhangsan@example.com");
newUser.setPassword("123456");

然后再运行 contextLoads() 进行测试。


总结

  1. 如果 User 里应该有 age,但没有,就添加 private Integer age;
  2. 如果 User 不需要 age,就删除 setAge(18) 这行代码。

这样就能解决 "找不到符号: 方法 setAge(int)" 这个错误了!🚀

package com.example.xkly.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Integer id;
    private String name;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    private int age ;
    private String email;
    public String toString() {
        return "User{id=" + id + ", name='" + name + "', age=" + age + ", email=" + email + "}";
    }
}

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐