java - Java中接口(interface)和类的区别

标签 java

根据 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/

相关文章:

java - 从 Java 执行 Hive 查询

java - android语音api

java - 如何从 HTML 中删除除 java 中特殊标记之外的所有内容?

java - Jasper 报告 PDF 不带汉字

java - 如何将csv文件映射到java中的pojo类

java - 从单独的 Java 主类打印 ArrayList

java - 将命令对象从 SimpleFormController 传递到 Controller

java - 为什么方法的返回类型不包含在方法签名中?

java - 太阳.security.validator.ValidatorException : SunCertPathBuilderException -while importing certificate

java - Spring JUnit 测试