“List <object>”和“String”演员声明问题</object>

时间:2014-09-03 10:13:37

标签: java

-Experts。

我正在实例化一个返回List类型文件的通用方法(A)。在我的情况下,我肯定知道我要获取的文件是一个字符串,我想在方法调用中指定。但是,显然,程序显示类型失配错误。仅指定List<Object>不是解决方案,因为我需要将此文件作为另一个方法(B)的字符串参数输入。

方法(A)具有以下定义:

public <T> List<T> find(String queryString, Object param){}

我用这种方式实例化上述方法(A):

String idioma;
idioma = miDao.find("SELECT c.idioma FROM Idioma c WHERE c.palabra =:param",o1);

结果是无法将idioma解析为变量。但我的目标是让String idioma将它用作实体属性的输入:

public void setIdioma(String idioma) {
    this.idioma = idioma;
}

有谁知道如何解决这个错配文件问题?提前谢谢!

2 个答案:

答案 0 :(得分:2)

find为您提供了string的列表,因此您必须使用列表作为输出_

List<String> idiomas;
idiomas = (List<String>)miDao.find("SELECT c.idioma FROM Idioma c WHERE c.palabra =:param",o1);
if (idiomas.size()>0){
  idioama = idiomas.get(0)
}

答案 1 :(得分:-1)

最后这有效:

  1. 我宣布了List<Object> idiomas
  2. 调用find方法:

    idiomas = miDao.find(“SELECT c.idioma FROM Idioma c WHERE c.palabra =:param”,o1);

  3. 将idiomas值分配给String idioma变量:

    idioma =(String)idiomas.get(0);