【问题标题】:Can't add objects to List in for loop?无法在 for 循环中将对象添加到 List 中?
【发布时间】:2014-01-06 11:51:03
【问题描述】:

如何在 for 循环中将对象添加到此列表中?

Transaction tx = currentSession.beginTransaction();
Criteria criteria = currentSession.createCriteria(User.class);

List<User> list = criteria.list();
List<User> userList;

for(User user : list) {
    if(user.getAccountActivated() == 1) {
        userList.add(user);
    }
}

上面的方法我试过了,还是不行。

有人知道这里有什么问题吗?

【问题讨论】:

  • A) “它不起作用”不是一个有用的问题描述。 B) 如果您尝试编译该代码,它会告诉您确切出了什么问题:“变量 userList 可能尚未初始化”

标签: java arrays list for-loop foreach


【解决方案1】:

你必须初始化userListlike

List<User> userList = new ArrayList<User>();

或者,如果您使用 Java SE 7,new ArrayList&lt;&gt;();

【讨论】:

  • 没关系,每个人都会犯错,你应该仔细阅读编译器的错误输出:)
【解决方案2】:

您忘记初始化您的userList

List<User> userList = new ArrayList<User>();

如果您使用的是 Java 7,you can replace the type arguments required to invoke the constructor of a generic class with an empty set of type parameters (<>)

List<User> userList = new ArrayList<>();

如果您使用的是 Java 8,则可以使用 stream 并过滤原始列表:

List<User> userList = list.stream()
                          .filter(u -> u.getAccountActivated() == 1)
                          .collect(Collectors.toList());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多