java: 找不到符号 符号: 方法 setAge(int)
·
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() 进行测试。
总结
- 如果
User里应该有age,但没有,就添加private Integer age;。 - 如果
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 + "}";
}
}
更多推荐
所有评论(0)