草庐IT

compiler-interface

全部标签

java - 标记接口(interface)

谁能解释一下java中标记接口(interface)的契约?例如:如果Clonable是一个没有字段/方法的标记接口(interface),那么clone()在哪里定义?为什么每当使用clone()时我们都应该实现Clonablei/f?我的问题是,如果clone()是java.lang.Object类的一个方法,为什么要实现Cloneablei/f覆盖clone()。有人可以详细说明这个java约定吗?提前致谢 最佳答案 clone()在java.lang.Object类中定义,所有类都从该类扩展,但它是protected。这实际

java - IntelliJ + 常规 DSL : How to exclude files from being compiled by groovy plugin?

我正在开发一个Java网络项目,该项目使用LiquibasegroovyDSL来管理数据库更改。就本主题而言,它可以是使用*.groovy文件作为源的任何其他第3方库。该项目是用gradle构建的。在src/main/resources文件夹下我的一个模块(dao-base)中我有groovy文件(changelog01.groovy,master_changelog.groovy等)。这些文件应该在运行时由liquibasejar加载。现在,当我尝试在IntelliJ中创建项目时,出现以下错误消息:Groovyc:CannotcompileGroovyfiles:noGroovyli

java - 实现接口(interface)的方法是否在java中被覆盖

我知道这可能很疯狂,但今天我的一位friend困惑地问,当我们在java中实现接口(interface)时,它是否被视为方法重写。我告诉他这不是覆盖,因为我们在实现任何接口(interface)时第一次提供方法的工作(定义)。java要支持多继承,提供接口(interface),他不服气,争论不休。请阐明这个话题。 最佳答案 术语“重写”适用于存在该方法的现有实现时。对于接口(interface)和其他抽象声明,正确的术语是“实现”。@Override标签用于这两种情况-它在以下情况下使用:Themethoddoesoverride

java - 无法配置 Spring Data JPA : Specified class is an interface

我已经开始使用SpringDataJPA。不幸的是我无法配置它。我有Entity类,Repository接口(interface),但是当我尝试测试它时,出现了问题。源代码(我有setter/getter方法,但为了更好的代码我跳过了它):@EntitypublicclassEmployee{@Id@GeneratedValueprivateLongid;privateStringfirstName;privateStringlastName;publicEmployee(){}}存储库类:publicinterfaceEmployeeRepositoryextendsJpaRepos

c# - C# 接口(interface)中不允许的字段

Java和C#语言存在很多偏差,我观察到的偏差之一是我们不能在接口(interface)中添加变量常量。作为Java背景,我在尝试此操作时看到编译错误时感到困惑。有没有人解释为什么会这样? 最佳答案 字段是类的实现细节,不应在其接口(interface)中公开。接口(interface)是一种抽象出类的实现细节的方法。这两个概念看起来很矛盾,实际上并不契合。您可以改为在接口(interface)中声明属性。更新(在意识到问题是关于常量,而不是变量字段之后):我认为(纯粹是我个人的猜测)Java决定允许这样的构造,因为它当时没有enu

java - 如何仅跳过针对 "compile"和 "install"目标而不是 "test"目标的测试?

我有这样一种情况,我们的单元测试需要很长时间才能为我们的业务域项目执行,因为它将数据库设置为已知状态,然后继续执行每个步骤。我知道这可以通过命令行上的“-Dmaven.test.skip=true”来完成,但希望仅在项目的NetBeans中配置它,如果有人可以阐明如何在IDE中进行配置,则全局是可以接受的。如何将maven2配置为仅在调用“测试”目标时执行测试?即使调用“测试”目标(fromthemavendocos),使用以下命令也会禁用测试。org.apache.maven.pluginsmaven-surefire-plugin2.6true 最佳答案

java - 应该放在哪里 maven-compiler-plugin 声明 : in <plugins> or <pluginManagement>?

我有一个多模块Maven项目,我想让我所有的子模块都使用maven-compiler-plugin在根中指定pom.xml.我应该放在哪里maven-compiler-plugin声明(在根pom.xml中):在中节或部分?问题还涉及maven-release-plugin也是。 最佳答案 这2个部分(plugins和pluginManagement)的用途略有不同。第一个(plugins)用于指定项目(以及从父项目继承的所有子项目)的构建过程。如果您在此部分中包含一些插件,它将在每个子项目中执行,无论其类型如何。第二个(plugi

java - 你能用Java实例化一个接口(interface)吗

这个问题在这里已经有了答案:CanwecreateaninstanceofaninterfaceinJava?[duplicate](7个答案)关闭9年前。你能在Java中实例化一个接口(interface)吗?我知道快速的回答是“不”。但是有些事情我不太了解。这里发生了什么?SharedPreferences是一个公共(public)接口(interface)。然而,我们并没有像我在书中读到的那样使用这个接口(interface),我们没有创建一个类并实现SharedPreferences。相反,我们像这样使用这个API:SharedPreferencespref=Context.g

java - 什么是Interface.super

我最近在java中使用了默认方法。在它的实现中我发现了publicinterfaceDefaultMethod{defaultStringshowMyName(Stringname){return"Hai"+name;}}publicclassDefaultMethodMainImplimplementsDefaultMethod{@OverridepublicStringshowMyName(Stringname){returnDefaultMethod.super.showMyName(name);}}我的问题是在DefaultMethod.super中,super将调用它除了Ob

java - 为什么可以在 Java 接口(interface)方法上调用方法? [可比]

今天在AP计算机科学课上,我有这段代码:Comparablex=45;Comparabley=56;System.out.println(x.compareTo(y));这是有效的。它打印1(或-1,我忘了是哪个),但可以比较它们。我知道接口(interface)变量是指实现该接口(interface)的类的对象,但对我来说没有意义的是如何为接口(interface)变量分配一个整数,然后在其上调用一个方法。在这种情况下调用compareTo()方法的对象是什么?什么都没有实例化! 最佳答案 这叫做autoboxing,您的原始in