2014-09-03 38 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);