【问题标题】:How can I pass object as a parameter to a method expecting list?如何将对象作为参数传递给期望列表的方法?
【发布时间】:2018-02-12 11:58:57
【问题描述】:

我有一个

class response{
    private list<Tlist> tlist= new arrayist<Tlist>

    ...getters
    ...setters
}

我还有一个

class Tlist{
    private String name
    private String address
}

我有一个控制器类,我需要将 Tlist 的对象传递给

的 setter 方法

response.setTlist(tlist)

其实setTlist 不接受Tlist 类的对象。知道如何实现这一目标吗?

【问题讨论】:

  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建 minimal reproducible example。使用“编辑”链接改进您的问题 - 不要通过 cmets 添加更多信息。谢谢!
  • 不要解释你的代码在(不)做什么。而是发布代码。
  • 请不要写“伪”代码。如果是Java相关请写Java。您上面问题中的代码甚至无法编译!

标签: java generics collections


【解决方案1】:

也许你会改变

private list<Tlist> tlist= new arrayist<object>

private java.util.List<Tlist> tList= new java.util.Arrayist<>();

然后将您的自定义设置器用作:

public void setTlist(Tlist tList) {
    this.tList = tList
}

【讨论】:

    【解决方案2】:

    setTlist() 需要一个 List 对象,例如ArrayListTlist 对象。因此,您不能将单个 Tlist (tlist) 对象传递给它。试一试如何:

    List<Tlist> list = new ArrayList<>();
    list.add(tlist);
    response.setTlist(list);
    

    【讨论】:

    • 那么,我需要创建一个新列表,然后将 tlist 对象中的项目添加到新列表中,并将新列表传递给 setter 方法?
    • 是的,我想是的。请尝试使用更好的名称,例如你有一个名为Tlist 的类和一个对象引用tlist,但它们并不相同。 tlistArrayList 而不是 Tlist 引用。这可能会导致您犯错误,例如尝试使用需要 ArrayList 对象(或任何 List 实现)而不是 Tlist 对象的设置器 setTlist
    猜你喜欢
    • 1970-01-01
    • 2013-11-06
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 2023-03-04
    相关资源
    最近更新 更多