我用getter和setter方法创建了一个类,并且在不调用setter方法的情况下将值传递给该类的对象。
但是没有构造函数,我无法传递任何参数。
使用构造函数时,它可以正常工作。
//
@Entity
public class player {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "Player_Id")
private String id;
@Column(name = "PlayerName")
private String PlayerName;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPlayerName() {
return PlayerName;
}
public void setPlayerName(String PlayerName) {
this.PlayerName = PlayerName;
}
}
@Service
public class playerservice {
@Autowired
List<player> list ;
public playerservice(){
list.add(new player("1","vijay"));//not able to pass parameters
}
}
我无法通过传递值来创建对象
答案 0 :(得分:1)
为什么对这个构造函数不满意?
public player(String player_id, String player_name){
this.player_id = player_id;
this.name = player_name
}
构造是通知类如何实例化对象的方法。该类需要明确地知道使用这些构造函数传递的数据类型。您可以方便地创建多个构造函数。但是,如果您没有编写任何构造函数,则每个类都有一个默认的构造函数,但是没有为您传递任何值。
答案 1 :(得分:0)
您似乎正在尝试以某种方式使用Spring Dependency Injection(即接线)。 Spring不会也不会使用new
将参数注入代码中构造的对象中。
如果要动态使用Spring接线,则需要遵循此博客的内容进行操作:
如您所见,有几行代码设置了所有内容。设置完上下文后,您对Spring说“让我成为一个bean”,它将完成一堆反射性的魔术来构造bean,并将传递给它的参数传递给它。与使用new
和传递参数的简单Java解决方案相比,它可能会慢2到3个数量级。