передача параметров в класс с помощью метода get и set - PullRequest
0 голосов
/ 06 февраля 2019

Я создал класс с методами получения и установки и передаю значения объекту этого класса без вызова методов установки.

Но я не могу передать любые параметры без конструктора.

Это работает, когда я использую конструктор.

//
@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
    }
}

Я не могу создать объект путем передачи значений

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Вы, кажется, пытаетесь использовать Spring Dependency Injection (т.е. проводку) таким образом, чтобы оно не было предназначено для использования.Spring не может и не может вводить параметры в объект, созданный в вашем коде, используя new.

Если вы хотите использовать проводку Spring динамически, вам нужно сделать что-то вроде этого блога:

Как видите, в нескольких строках кода все настроено.И как только вы настроили контекст, вы говорите Spring «сделай мне боб», и он создает целую кучу отражающей магии, чтобы сконструировать боб и передать ему аргументы, которые будут переданы в него.Вероятно, он будет на 2-3 порядка медленнее, чем простое Java-решение с использованием new и передачей параметров.

0 голосов
/ 06 февраля 2019

Почему вас не устраивает этот конструктор?

public player(String player_id, String player_name){
    this.player_id = player_id;
    this.name = player_name
}

Конструкции - это способ информировать ваш класс о том, как создавать объекты.Класс должен явно знать типы данных, которые вы передаете, используя эти конструкторы.Вы можете создать более одного конструктора для вашего удобства.Однако, если вы не написали ни одного конструктора, есть конструктор по умолчанию, который поставляется с каждым классом, но не передал вам никаких значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...