简体   繁体   English

Java:Arraylist的Getter / setter <Object>

[英]Java : Getter /setter for Arraylist<Object>

so i have : 所以我有 :

    ArrayList<data> mi = new ArrayList<data>();

i have a Query which do following : 我有以下查询:

while (rs.next()) {

            mi.add(new users());
            mi.get(i).name= rs.getString("name");
            mi.get(i).pass= rs.getString("pass");
            }

It works but i want it with Getter/setters like : 它可以工作,但我希望它与Getter / setters类似:

mi.get(i).setname( rs.getString("name"));

Edit : Misspelling i had it so 编辑:拼写错误我有它

Why cant i call the methode? 我为什么不能叫方法?

采用

mi.get(i).setname(rs.getString("name"));

Your users class should have a public setname(String name) method, which sets the name field of user class 您的users类应该具有公共setname(String name)方法,该方法设置user类的name字段

then, mi.get(i).setname(rs.getString("name")); 然后, mi.get(i).setname(rs.getString("name")); will work 将工作

Because it is java. 因为它是java。 You cannot have such assignment 你不能有这样的任务

setname() = rs.getString("name")

It does not make sense. 它没有任何意义。 You shall set it as argument: 您应将其设置为参数:

object.setName(rs.getString("name"))

Also please respect java naming conventions: Class has CamelCase, methods start with lower first character and then continue with camel case as well: setUserName 还请遵守Java命名约定:类具有CamelCase,方法以低位第一个字符开头,然后以驼峰大小写继续: setUserName

with

mi.get(i).setname()

you call the method setname() . 您调用方法setname() The result (if any) is not a variable name and you cannot assign a value to it. 结果(如果有)不是变量名,您不能为其分配值。

If your class has a method setname(String s) then use it as usual in Java: 如果您的类具有方法setname(String s) ,请照常在Java中使用它:

mi.get(i).setname(rs.getString("name"))

I would recommend using the below approach 我建议使用以下方法

while (rs.next()) {
Users user = new Users();
user.setName(rs.getString("name"));
user.setPass(rs.getString("pass"));
mi.add(user);
}

Seems neater to set the values in your object and then adding them to the list. 似乎更整洁地在对象中设置值,然后将其添加到列表中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM