错误:需要类、接口或枚举(实现java)
我一直在练习java中接口的使用,但是当我想启动我的一个类时,我遇到了一个小问题。这就是错误:错误:需要类、接口或枚举(实现java),java,sqlite,implements,Java,Sqlite,Implements,我一直在练习java中接口的使用,但是当我想启动我的一个类时,我遇到了一个小问题。这就是错误: ./Jbdc.java:18: error: introducir() in Jbdc cannot implement introducir() in InterfazBD public void introducir() throws Exception overridden method does not throw Exception 1 error 编译器显示给我的大多数错误都来自那
./Jbdc.java:18: error: introducir() in Jbdc cannot implement introducir() in InterfazBD
public void introducir() throws Exception
overridden method does not throw Exception
1 error
编译器显示给我的大多数错误都来自那里。我告诉你,我正在学习接口的使用,但我真的不知道如何正确使用它们。。因此,我不知道如何解决这类错误。。这是我的代码:
(Principal)
public class App{
public static void main(String arg[]){
JsonRead json = new JsonRead();
Jbdc sqlite = new Jbdc();
grabarJson(json);
introducirSQL(sqlite);
}
public static void grabarJson(InterfazGrabar fichero){
fichero.grabar();
}
public static void grabarTxt(InterfazGrabar fichero){
fichero.grabar();
}
public static void introducirSQL(InterfazBD fichero){
fichero.introducir();
}
}
和Jbdc文件
Jbdc (this file enter the data in a database)
public class Jbdc implements InterfazBD{
private static final String URL = "jdbc:sqlite:test.db";
public void introducir() throws Exception{
createDb();
createTable();
Aula a = null;
int contador = 0;
try {
FileInputStream inFile = new FileInputStream("aula.dat");
ObjectInputStream in = new ObjectInputStream(inFile);
while (inFile.available()>0) {
a = (Aula)in.readObject();
String materiaslista ="";
String nombre = a.getNombre();
String grupo = a.getGrupo();
int tutor= a.getTutor();
ArrayList<String> materias = a.getMaterias();
for (int counter = 0; counter < materias.size(); counter++) {
materiaslista = materiaslista + materias.get(counter) + ",";
}
insertDatos(nombre,grupo,tutor,materiaslista);
}
}
catch(IOException e)
{
System.err.println("ERROR");
}
System.out.println("¡Listo!");
}
private static void insertDatos(String nombre,String grupo, int tutor,String materiaslista) {
final String SQL = "INSERT INTO datos VALUES(?,?,?,?)";
try (Connection con = getConnection(); PreparedStatement ps = con.prepareStatement(SQL);) {
ps.setString(1, nombre);
ps.setString(2, grupo);
ps.setInt(3, tutor);
ps.setString(4, materiaslista);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
private static void createTable() {
final String SQL = "CREATE TABLE IF NOT EXISTS datos (nombre TEXT,grupo TEXT, tutor INTEGER, materiaslista TEXT);";
// This SQL Query is not "dynamic". Columns are static, so no need to use
// PreparedStatement.
try (Connection con = getConnection(); Statement statement = con.createStatement();) {
statement.executeUpdate(SQL);
} catch (SQLException e) {
e.printStackTrace();
}
}
private static void createDb() {
try (Connection conn = getConnection()) {
if (conn != null) {
conn.getMetaData();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL);
}
}
Jbdc(此文件在数据库中输入数据)
公共类Jbdc实现了InterfazBD{
私有静态最终字符串URL=“jdbc:sqlite:test.db”;
public void introductor()引发异常{
createDb();
createTable();
Aula a=null;
int contador=0;
试一试{
FileInputStream infle=新的FileInputStream(“aula.dat”);
ObjectInputStream in=新的ObjectInputStream(填充);
而(infle.available()>0){
.readObject()中的a=(Aula);
字符串materiallista=“”;
字符串nombre=a.getNombre();
字符串grupo=a.getGrupo();
int tutor=a.getTutor();
ArrayList Materials=a.GetMaterials();
对于(int counter=0;counter
此处:
public void introducir() throws Exception{
private static final String URL = "jdbc:sqlite:test.db";
不能在方法内部声明静态字段。要么将字段声明移到方法之外,要么将其作为局部变量,因此
private static final String URL = "jdbc:sqlite:test.db";
public void introducir() throws Exception{
或
第74行是什么?很好,你将错误粘贴到了问题中,但你还需要告诉我们第64行是什么——我们不一定能从你的源代码中分辨出来。请格式化你的代码(修复缩进)以便于人类阅读。我更新了错误guysThanks,但给我看另一个错误,这个错误就是:./Jbdc.java:18:error:introduction:introcir()在Jbdc中,无法在InterfazBD public void中实现IntroductCir(),IntroductCir()引发异常{^Overrided方法不引发异常1error@UsuarioConMiga抱歉,但它不是这样工作的。我们不玩“评论中的更多问题”这里是乒乓球。但好的,那一个:信息非常清楚:当你的接口方法的签名上没有异常时,你不能在实现它时只添加一个。它只会反过来工作:接口可以抛出,而实现可能会决定不这样做。一种方法是:不要使用检查过的异常您的实现会引发运行时异常。顺便说一句:Don go
会引发异常
。请更具体一些。
public void introducir() throws Exception{
String URL = "jdbc:sqlite:test.db";