2014-09-03 50 views
0

- 专家。“列表<Object>”和“字符串”强制声明问题

我正在实例化返回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); 

结果是语不能被解析为一个变量。但我的目标是获得字符串授权许可使用它作为一个实体属性的输入:

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

有谁知道我怎么能解决这个missmatch文件的问题?先谢谢你!

+0

你可以发布方法find(..)?您的问题不是很清楚 – Maas 2014-09-03 10:17:33

+0

您正在尝试将从方法返回的列表分配给字符串变量。你期望发生什么? BTW。你提到了一些关于'file'的地方,在代码示例中没有关于File的内容。 – topr 2014-09-03 10:21:02

+0

将'miDao.find(...)'改为'miDao。 find(...)。get(0)'? – immibis 2014-09-03 10:22:43

回答

2

find给你的string清单,让您有一个列表来上班output_

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) 
} 
+0

最后, a)我宣布了一个'List idiomas' b)调用find方法'idiomas = miDao.find(“SELECT c.idioma FROM Idioma c WHERE c.palabra =:param”,o1);' c)将idiomas值赋给字符串idioma变量'idioma =(String)idiomas.get(0);' 非常感谢您的出色答案! – 2014-09-03 11:14:02

-1

最后这工作:

  1. 我宣布一个List<Object> idiomas
  2. Invocated find方法:

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

  3. 的IDIOMAS值分配到字符串语的变量:

    语=(字符串)idiomas.get(0);