Java 返回数组列表时遇到问题

Java 返回数组列表时遇到问题,java,Java,我正在从事一个个人项目,我对java相当陌生(尝试创建一个web应用程序)。返回我在方法前面定义的arraylist时遇到一些问题。arraylist正常打印,但由于某种原因,我的IDE在尝试返回它时说它没有定义。这是我的代码,感谢您的帮助: import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import com.m

我正在从事一个个人项目,我对java相当陌生(尝试创建一个web应用程序)。返回我在方法前面定义的arraylist时遇到一些问题。arraylist正常打印,但由于某种原因,我的IDE在尝试返回它时说它没有定义。这是我的代码,感谢您的帮助:

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import com.mysql.jdbc.Statement;

public class Fire_Emblem {

public static ArrayList<String> GetCharacters() {

        try {
            Class.forName("com.mysql.jdbc.Driver"); 
            java.sql.Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/fire_emblem","root","[redacted]");
            java.sql.Statement st = con.createStatement();
            ResultSet rs = st.executeQuery("select name from characters");
            System.out.println ("Connection successful");
            ArrayList<String> list = new ArrayList<String>();
                while (rs.next()) { 
                    list.add(rs.getString("name"));
                }
                System.out.println(list);
            }
        catch (SQLException e) {
            System.out.println(e.getMessage());
            System.out.println("Connection failed");
        }
return list;
}
导入java.sql.DriverManager;
导入java.sql.ResultSet;
导入java.sql.SQLException;
导入java.util.ArrayList;
导入com.mysql.jdbc.Statement;
公共级防火标志{
公共静态ArrayList GetCharacters(){
试一试{
Class.forName(“com.mysql.jdbc.Driver”);
java.sql.Connection con=DriverManager.getConnection(“jdbc:mysql://localhost:3306/fire_emblem“,”根“,”[修订]”;
java.sql.Statement st=con.createStatement();
ResultSet rs=st.executeQuery(“从字符中选择名称”);
System.out.println(“连接成功”);
ArrayList=新建ArrayList();
while(rs.next()){
添加(rs.getString(“name”);
}
系统输出打印项次(列表);
}
捕获(SQLE异常){
System.out.println(e.getMessage());
System.out.println(“连接失败”);
}
退货清单;
}

}

您在
try
块的范围内创建了列表。在
尝试之前定义它

如果在程序离开创建它的范围后,没有任何内容引用
列表
,则该对象将被销毁。有关此主题的详细信息

ArrayList list=new ArrayList();
试一试{
...
} 
捕获(SQLE异常){
System.out.println(e.getMessage());
System.out.println(“连接失败”);
}
退货清单;

list
变量位于
try{}
范围内。您正在引用其范围之外的
列表
变量

IDE告诉您
无法解析符号“list”
,这意味着变量未在此范围内定义

ArrayList<String> list = new ArrayList<String>();
try {
    ...
} 
catch (SQLException e) {
    System.out.println(e.getMessage());
    System.out.println("Connection failed");
}
return list;