为什么我不能这样做?我得到编译错误。
public interface A {
void update(Object a);
}
public class B implements A{
void update(Long a) {
}
}
那是Java8
我不认为这里违反了任何OO原则。
这真的让我很难实现通用 API......
(我试图将泛型从游戏中剔除,因为泛型API变得反直觉了)
实现接口的类必须实现接口中声明的所有方法。这些方法必须具有与接口中声明的完全相同的签名(名称参数)。该类不需要实现(声明)接口的变量。只有方法。
http://tutorials.jenkov.com/java/interfaces.html#:~:text=A 实现的类,只有方法。
您得到一个编译错误,因为void update(Long a)
没有实现void upload(Object a)
。
您可以按如下方式实现它:
public class B implements A {
void update(Object o) {
if (!(o instanceof Long)) {
// possibly throw an exception
}
Long a = (Long) o;
...
}
}
我正在开发一个基于JAX-RS的Java应用程序,使用Google Guice进行依赖注入。我的代码中有以下接口: 在上面的接口中,Lock是一个定义如下的接口: 锁接口由以下类实现: LockProvider接口由以下类实现: 除了LockProvider之外,我不希望应用程序中的类知道底层锁项,这就是为什么我没有在lock接口中包含getUnderlyingLockItem。 现在,当我尝试将
问题内容: 我花了一些时间想知道是否有可能编写一个guice模块,该模块本身使用类型T进行参数化,并使用其type参数指定绑定。 像在此示例(不起作用)中那样: 我尝试了不同的方法,试图将T作为类/ TypeLiteral的实例传递给MyModule,但没有一个起作用。帮助表示赞赏。 问候,zukasz Osipiuk 问题答案: 为此,您将必须使用从头开始构建每个TypeLiteral 。您可以
问题是: 创建一个名为Duo的泛型类,它有两个参数a和B。声明一个名为a类型的第一个变量,以及一个名为B类型的第二个变量。创建一个接受这两个参数的构造函数。在构造函数中,将这些参数分别分配给声明的变量。 这是我能想到的解决方案: 然后,当我继续问下一个问题时,我被绊住了。问题是: 使用问题4中的Duo类声明并创建两个对象,如下所示: a) 第一个名为sideShape的对象分别由字符串类型和整数类
导入java.util.ArrayList;导入java.util.List; 另外,artist.java配备了空构造函数 @IgnoreExtraProperties公共类Artist{private String ArtistId;private String ArtistName;private String ArtistAmount;private String ArtistAry; 这
我试图将MealsRepository接口实现到MealsRepositoryImpl中,但是我得到了以下错误: 无效的重写。'mealsrepositoryimpl.findallforcanteenbydate'('(int,DateTime)->Future Map int,dynamic')的类型不是'mealrepository.findallforcanteenbydate'('(in
问题内容: 我有这个界面: 并实现该类: 在此案例中,parameter是,这是的具体实现。如何使用反射获得此效果? 问题答案: 通过通用接口解析类型。例如 PS:请记住acutalTypeArguments是type 。他们一定不是一个。在您的情况下,它是一个Class,因为您的类型定义是。