【问题标题】:Send object to method将对象发送到方法
【发布时间】:2015-10-19 13:10:13
【问题描述】:

我写了以下 sn-p 但由于某种原因它不起作用:

主要:

    TestClasss testClass = new TestClass;

    ArrayList<TestObject> listObj = new ArrayList<>();
    TestObject tb = new TestObject();
    tb.setName("asd");
    tb.setId("13");
    listObj.add(tb);

    testClass.addValue(listObj );

测试类

 public void addValalue(ArrayList<Object> list) {
        Log.e("list size is", String.valueOf(list.size()));
    }

我在以下行有错误testClass.addValue(listObj )

Error:(47, 11) error: method addValalue in class TestClasss cannot be applied to given types;
required: ArrayList<Object>
found: ArrayList<TestObject>
reason: actual argument ArrayList<TestObject> cannot be converted to ArrayList<Object> by method invocation conversion

我尝试创建一个类DataObject

public class DataObject {
}

并扩展这个类TestObject:

public class TestObject extends DataObject

并像这样更改方法addValue

public void addValalue(ArrayList<DataObject> list) {
     Log.e("list size is", String.valueOf(list.size()));
}

但还是有同样的错误

【问题讨论】:

  • public void addValalue(ArrayList&lt;Object&gt; list)更改为public void addValalue(ArrayList&lt;TestObject&gt; list)
  • @AhmedAbidi 感谢您的回答。但是如果我想发送这个方法不仅TestObject

标签: java android object arraylist


【解决方案1】:

任一变化:

public void addValalue(ArrayList<Object> list)

到:

public void addValalue(ArrayList<? extends Object> list)

顺便说一句,“价值”不是字典中的一个词(只是确保您没有将它与“价值”混淆)

【讨论】:

  • 哇!!这条线public void addValalue(ArrayList&lt;? extends Object&gt; list) 我需要什么。非常感谢
猜你喜欢
  • 1970-01-01
  • 2020-09-13
  • 2011-05-29
  • 2015-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多