如何在bean中使用@Post构造列表的两个数组

How to have two Array with @Post Construct List in a bean

我需要你的帮助来使用 @Post 构造在 bean 中定义两个数组列表。我需要从数组列表中检索值并将它们显示在 2 个 selectmanycheckbox 组件中。

密码是:

private String[] selectedA;
private List<String> A;

@PostConstruct
public void init() {
    A = new ArrayList<String>();
    A.add("A");
    A.add("B");
}

private String[] selectedB;
private List<String> B;

@PostConstruct
public void initBB() {
    B = new ArrayList<String>();
    B.add("C");
    B.add("D");
}

但是如果我用上面的方法会报错,请你帮忙

I need your help in defining two array lists in a bean with @Post Construct.

如果我理解正确(class 不完整),你有两个方法注释 @PostConstruct。只允许一个,超过一个会导致某种错误。

所以,只使用一个@PostConstruct方法,并在其中初始化两个数组:

private List<String> a;
private List<String> b;

@PostConstruct
public void init() {
    a = new ArrayList<String>();
    a.add("A");
    a.add("B");

    b = new ArrayList<String>();
    b.add("C");
    b.add("D");
}

可以找到 @PostConstruct 的 JavaDoc here,它说:

Only one method can be annotated with this annotation.

如果您使用两个@PostConstruct 方法,行为将不可预测。

参考:http://www.coderanch.com/t/428906/java-EJB-SCBCD/certification/PostConstruct-methods

试试这个:

private String[] selectedA;
private List<String> A;
private String[] selectedB;
private List<String> B;

@PostConstruct
public void init() {
    A = new ArrayList<String>();
    A.add("A");
    A.add("B");

    B = new ArrayList<String>();
    B.add("C");
    B.add("D");
}

或者如果您需要两种初始化数组的方法:

private String[] selectedA;
private List<String> A;
private String[] selectedB;
private List<String> B;

@PostConstruct
public void init() {
    A = new ArrayList<String>();
    A.add("A");
    A.add("B");

    initBB();
}

public void initBB() {
    B = new ArrayList<String>();
    B.add("C");
    B.add("D");
}