Java/Android:如何使用返回类型';列表<;MyType>';?

Java/Android:如何使用返回类型';列表<;MyType>';?,java,android,list,arraylist,return,Java,Android,List,Arraylist,Return,我的问题是关于Java/Android的: 我创建了一个类MyClass,它有一个方法getAllData(),返回一个List=newarraylist()。在另一个类MyOtherClass中,我调用此方法并希望将返回的列表写入另一个List 但是我得到了以下错误:未处理的异常类型异常 我能做些什么 代码如下: MyClass.java public List<MyType> datas = new ArrayList<MyType>(); public List

我的问题是关于Java/Android的:

我创建了一个类
MyClass
,它有一个方法
getAllData()
,返回一个
List=newarraylist()
。在另一个类
MyOtherClass
中,我调用此方法并希望将返回的列表写入另一个
List

但是我得到了以下错误:未处理的异常类型异常

我能做些什么

代码如下:

MyClass.java

 public List<MyType> datas = new ArrayList<MyType>();

public List<MyType> getAllData() throws Exception{

//add some things to datas... 

return datas;
}
 public void fetchData(){

    MyClass mydatas = new MyClass();
    List<MyType> thedatas = mydatas.getAllData();

 }
public List data=new ArrayList();
公共列表getAllData()引发异常{
//向数据中添加一些内容。。。
返回数据;
}
MyOtherClass.java

 public List<MyType> datas = new ArrayList<MyType>();

public List<MyType> getAllData() throws Exception{

//add some things to datas... 

return datas;
}
 public void fetchData(){

    MyClass mydatas = new MyClass();
    List<MyType> thedatas = mydatas.getAllData();

 }
public void fetchData(){
MyClass mydatas=新的MyClass();
列出数据=mydatas.getAllData();
}
我怎样才能解决这个问题? 语句周围有一个“try/catch(Exception e)”,它似乎无法从
getAllData()获取返回的列表


提前多谢

您可以声明
getAllData
方法来抛出
异常
。编译器现在询问您,如果抛出类型为exception的异常,该怎么办

您不应该将
异常作为方法签名的一部分抛出。太笼统了。相反,您应该尝试只抛出可能发生的特定异常


如果您不希望
fetchData
必须处理异常,则必须声明
fetchData
以引发相同的异常,或者使
getAllData
捕获异常,并在引发异常时返回适当的值

您可以声明
getAllData
方法来抛出
异常
。编译器现在询问您,如果抛出类型为exception的异常,该怎么办

您不应该将
异常作为方法签名的一部分抛出。太笼统了。相反,您应该尝试只抛出可能发生的特定异常

如果您不希望
fetchData
必须处理异常,则必须声明
fetchData
以引发相同的异常,或者使
getAllData
捕获异常,并在引发异常时返回适当的值

由于
getAllData()
可能会引发选中的异常(即,不是
RunTimeException
的异常),因此必须用
try-catch
包围语句

public void fetchData() {
    MyClass mydatas = new MyClass();
    try {
        List<MyType> thedatas = mydatas.getAllData();
    } catch (Exception ex) {
        // display or log exception name
    }
}
由于
getAllData()
可能会抛出一个选中的异常(即不是
RunTimeException
的异常),因此必须用
try-catch
包围语句

public void fetchData() {
    MyClass mydatas = new MyClass();
    try {
        List<MyType> thedatas = mydatas.getAllData();
    } catch (Exception ex) {
        // display or log exception name
    }
}

你有MyClass和MyOtherClass,但问题是,你有MyType类型吗当然,我已经定义了我的类型。无论如何,谢谢你@马克·拜尔斯:你到底是什么意思?我无法编译,因此我在设置“List thedatas=mydatas.getAllData();”行旁边的代码中直接从Eclipse获得此消息。它建议我用try/catch块来围绕它。所以‘try{List thedatas…}catch(Exception e){}没有帮助。您有MyClass和MyOtherClass,但问题是,您有MyType类型吗?:当然,我已经定义了我的类型。无论如何,谢谢你@马克·拜尔斯:你到底是什么意思?我无法编译,因此我在设置“List thedatas=mydatas.getAllData();”行旁边的代码中直接从Eclipse获得此消息。它建议我用try/catch块来围绕它。所以“试试{List thedata…}catch(Exception e){}”,但这没有帮助。非常感谢,没错。我这样做了,但没有起作用。它不起作用的原因是,方法
getAllData()引发了异常。。。但也许这对某人有帮助。非常感谢,没错。我这样做了,但没有起作用。它不起作用的原因是,方法
getAllData()引发了异常。。。但也许这对某人有帮助。