根据 Java 中的多篇文章,接口(interface)和类是完全不同的。让我写一个接口(interface)。
package com.main.service;
public interface SomeService{
public void someMethod();
}
但为什么下面的代码在 Java 中是允许的?
com.main.service.SomeService.class;
我正在使用这段代码从 Spring 应用程序上下文中获取 bean,如下所示:-
SomeService someservice = applicationContext
.getBean(com.main.service.SomeService.class);
最佳答案
类型末尾的 .class
语法(在本例中为 com.main.service.SomeService.class;
)引用类文字,即 an object of type Class
.您可以在任何 Java 类型上使用它,无论是具体类、抽象类还是接口(interface)。
根据上面链接中的 Javadoc:
Instances of the class Class represent classes and interfaces in a running Java application
如果你是新手,这可能会让你感到困惑,并且习惯于将类和接口(interface)之间的区别灌输给你,但简单地说这是底层系统的工作方式(所有类和接口(interface)都被编译为字节码 class
文件。)
您通常会看到依赖注入(inject)中使用的语法(或其他需要传递某物“类型”的用途),因为这是最简单的方法。
关于java - Java中接口(interface)和类的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47346059/