我有一个实现两个接口的bean。准骨骼代码如下:
interface InterfaceA {
...
}
interface InterfaceB {
...
}
public class ClassC implements InterfaceA, InterfaceB {
...
}
在AppConfig中,我指定了以下内容:
@Bean(name = "InterfaceA")
public InterfaceA interfaceA() {
return new ClassC();
}
@Bean(name = "InterfaceB")
public InterfaceB interfaceB() {
return new ClassC();
}
public class MyClass {
@Inject
private final InterfaceA a;
public MyClass(@Named("InterfaceA") InterfaceA a) {
this.a = a;
}
...
}
解决办法是引入一个扩展interfacea
和interfaceb
的新接口,然后让classc
实现它。但是,我不愿意因为框架的限制而改变我的设计。
Spring是正确的…当你写的时候
@Bean(name = "InterfaceA")
public InterfaceA interfaceA() {
return new ClassC();
}
@Bean(name = "InterfaceB")
public InterfaceB interfaceB() {
return new ClassC();
}
Spring创建toClassC
对象,一个名为InterfaceA
,另一个名为InterfaceB
,它们都实现InterfaceA和InterfaceB。
然后当你写:
@Inject
private final InterfaceA a;
@Inject
@Named("InterfaceA")
private final InterfaceA a;
这样,您就可以明确地要求Spring找到名为interfacea
的bean,希望它现在是唯一的。
问题内容: 在JDBC中,要连接和执行DB中的语句,我们主要使用Connection,Statement和ResultSet这两个接口。但是它们对应的对象后来用于运行诸如createStatement(),executeQuery(),next()等的方法。哪个类实现了这些方法?为什么将其称为连接对象而不是已实现的类对象? 问题答案: 在JDBC中,您首先需要通过调用来注册驱动程序 加载数据库类并
本文向大家介绍Java多线程之Callable接口的实现,包括了Java多线程之Callable接口的实现的使用技巧和注意事项,需要的朋友参考一下 1.接口的定义: 2.Callable和Runnable的异同 先看下Runnable接口的定义 Callable的call()方法类似于Runnable接口中run()方法,都定义任务要完成的工作,实现这两个接口时要分别重写这两个方法,主要的不同之处
问题内容: 我有一个定义方法的接口。我有一个 实现 此接口的结构。在其中,我已经从该接口实现了方法,并且还定义了其他方法。 例如: 在操场上:https : //play.golang.org/p/B1GgoNToNl_l 在此,WagTail()不是Animal接口的一部分,但属于Dog结构。运行此代码会出现错误 dog.WagTail未定义(动物类型没有字段或方法WagTail)。 有没有一种
我试图重写ResponseErrorHandler接口,以便能够在2xx以外的任何响应情况下返回整个请求(状态代码、正文等)。 我注意到Spring(RestTemplate)默认情况下,如果响应不是2xx会返回异常。我不想返回异常,我只想能够返回: 但是我不明白如何在不更改方法返回的情况下返回ResponseEntity(我无法通过实现方法来实现)。 执行:
问题内容: 此代码完美地工作。方法test()适用于两个接口。幕后到底发生了什么?在实际情况下,此功能有何用处? 问题答案: 因为它是一个接口,所以不会造成任何危害。通过实现和,您基本上是在为您的课程使用蓝图。双方并说,应实施一个名为方法 您的类实现了该方法,因此接口已完成其工作。 基本上,您的班级在说:“哦,我需要因为接口而实现”,然后您就实现了。然后您的班级说:“哦,嘿,由于接口我需要再次实现
7.3. 实现接口的条件 一个类型如果拥有一个接口需要的所有方法,那么这个类型就实现了这个接口。例如,*os.File类型实现了io.Reader,Writer,Closer,和ReadWriter接口。*bytes.Buffer实现了Reader,Writer,和ReadWriter这些接口,但是它没有实现Closer接口因为它不具有Close方法。Go的程序员经常会简要的把一个具体的类型描述成