Java 为什么我';我在这里没有上锁或不安全的操作?
我有两节课。其中一个类(类_1)具有返回列表的方法:Java 为什么我';我在这里没有上锁或不安全的操作?,java,Java,我有两节课。其中一个类(类_1)具有返回列表的方法: class Class_1{ .... public List<String> method_1(){ Statement st = null; ResultSet res = null; List<String> tables = new ArrayList<String>(); try { st =
class Class_1{
....
public List<String> method_1(){
Statement st = null;
ResultSet res = null;
List<String> tables = new ArrayList<String>();
try {
st = this.cnx.createStatement();
res = st.executeQuery("SHOW TABLES");
while(res.next()){
tables.add(res.getString(1));
}
}
catch(Exception e){
e.printStackTrace();
}
return tables;
}
}
必需:列表[字符串]
找到:列表
为什么呢
编辑
我做了一些调查,发现整个问题是这样的:
tables.add(res.getString(1));
它似乎是一个字符串,但编译器不喜欢它。因此,如果我简单地切换到:
tables.add("Some real string");
然后我没有收到任何警告。真奇怪。请检查导入和数组
import java.util.Arrays;
import java.util.List;
public class c1 {
public List<String> method_1(){
List<String> my_list = Arrays.asList("a1", "b2"); //<- got a list by some procedure
return my_list;
}
}
导入java.util.array;
导入java.util.List;
公共类别c1{
公开列表方法_1(){
根据getString
方法的ResultSet
文档,列出my_List=Arrays.asList(“a1”、“b2”);/方法:
返回:
列值;如果该值为SQL NULL,则返回的值为NULL
在这种情况下,列表表中插入了一个null
。这似乎是编译器所抱怨的
在添加到列表表之前,您应该检查getString
是否返回null
,我想有些事情您没有告诉我们。您能提供更多详细信息吗?这看起来您可能对代码做了太多的删减。是否类_1实际上是一个带有泛型参数的类?如果您不提供您也会遇到这些错误请提供一个完整的可编译示例。无法复制此示例。我已将您的类导入到项目中,但没有收到任何警告。让我澄清一下:您是说您通过修改Class1中的方法体而不是其签名来消除Class2中的警告吗?
tables.add("Some real string");
import java.util.Arrays;
import java.util.List;
public class c1 {
public List<String> method_1(){
List<String> my_list = Arrays.asList("a1", "b2"); //<- got a list by some procedure
return my_list;
}
}
import java.util.List;
public class c2 {
public static void main(String[] args) {
c1 obj = new c1();
List<String> s1 = obj.method_1();
System.out.println(s1);
}
}