Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不是抽象的,并且不重写hbase中TableCallback中的抽象方法doInTable(HTableInterface)_Java_Eclipse_Spring Boot_Hbase - Fatal编程技术网

Java 不是抽象的,并且不重写hbase中TableCallback中的抽象方法doInTable(HTableInterface)

Java 不是抽象的,并且不重写hbase中TableCallback中的抽象方法doInTable(HTableInterface),java,eclipse,spring-boot,hbase,Java,Eclipse,Spring Boot,Hbase,我最近将hbase版本从1.2.2.5.3.0-37更改为2.2.3.7.1.4.0-203。有一个代码段是hbase 1.2版的旧代码 public List<UserRole> updateUserRoles(final List<UserRole> userRole){ return hbaseTemplate.execute(AUTH_TABLE_NAME, new TableCallback<List<UserRole>>

我最近将hbase版本从1.2.2.5.3.0-37更改为2.2.3.7.1.4.0-203。有一个代码段是hbase 1.2版的旧代码

public List<UserRole> updateUserRoles(final List<UserRole> userRole){
        return hbaseTemplate.execute(AUTH_TABLE_NAME, new TableCallback<List<UserRole>>() {
               public List<UserRole> doInTable(HTableInterface table) throws Throwable {
                      List<Put> inputBatch = createInputBatch(userRoles);
                      table.put(inputBatch);
                      return userRoles;
                    }
                   });
                   }
从现在起,HTableInterface已被弃用。所以我在新代码中使用了表,如下所示

public List<UserRole> updateUserRoles(final List<UserRole> userRole){
        return hbaseTemplate.execute(AUTH_TABLE_NAME, new TableCallback<List<UserRole>>() {
               public List<UserRole> doInTable(Table table) throws Throwable {
                      List<Put> inputBatch = createInputBatch(userRoles);
                      table.put(inputBatch);
                      return userRoles;
                    }
                   });
                   }
但现在我得到的错误是,它不是抽象的,并且不会覆盖hbase中TableCallback中的抽象方法doInTableHTableInterface,它属于以下两行:

hbaseTemplate.execute(AUTH_TABLE_NAME, new TableCallback<List<UserRole>>() {
               public List<UserRole> doInTable(Table table) throws Throwable".)

非常感谢您的帮助。请提前感谢您尝试重写/实现类TableCallback中的方法doInTable。但这在更新的API中不再存在。

看来您正在使用一些不应该再使用的东西

不是抽象的,并且不重写抽象方法 hbase中TableCallback中的DoIntableTableInterface

这意味着在您实现的接口中,有一个

public List<UserRole> doInTable(HTableInterface hTableInterface);
方法

您所做的是在实现中将该变量的类型从HTableInterface更改为Table,这不匹配,从而导致您的问题

您正在实现的接口仍然使用另一个类,这可能是因为您没有很好地更新所有库,或者无法使用该新版本


这样,检查是否有另一个更新版本的接口,并实现它,或者您可以考虑回滚到旧版本。

那么,我可以用什么来代替那个?实际上,新的方法似乎被添加到接口中,他没有实施。你能帮我知道我需要实施哪种方法吗。我对这一点不熟悉: