- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我在这里尝试了这个关于编写可扩展枚举的“Effective Java 2nd edition”练习。
不过,我遇到了一个非常奇怪的问题——我让每个枚举实例都实现了接口(interface)方法,并且在 Eclipse 中看起来都不错。但是当我尝试通过 maven 编译它时,它失败了,尽管 eclipse 之前根本没有抛出任何编译错误(我的 eclipse 和 maven 使用相同的 JDK:1.6.0_33-b05
)。事实证明,我也必须在枚举内部(在所有枚举实例之外)重写接口(interface)方法[我将从现在开始将其称为方法 X] 以解决此问题!
这里有一个解释这个的示例:
接口(interface):
public interface IDay
{
public boolean isHoliday();
}
枚举:
public enum Day implements IDay
{
SATURDAY
{
@Override
public boolean isHoliday()
{
return true;
}
},
SUNDAY
{
@Override
public boolean isHoliday()
{
return true;
}
},
MONDAY
{
@Override
public boolean isHoliday()
{
return false;
}
};
// Method X: the project won't compile for me without this method!
public boolean isHoliday()
{
return false;
}
}
调用:
public class DayTester
{
public static void main(final String[] args)
{
// line Y: this line won't maven compile if I got rid of the method X
System.out.println("Sunday: " + Day.SUNDAY.isHoliday());
}
}
很奇怪,如果没有 'X' 方法,eclipse 是完全可以的,但是 Maven 编译会在 Y 行失败,说
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project X: Compilation failure [ERROR] DayTester.java:[7,46] cannot find symbol [ERROR] symbol : method isHoliday() [ERROR] location: class Day
如果我有方法 X,我的 eclipse 保存操作会自动插入 @Override。删除方法 X 会在我的 eclipse 中抛出编译错误,这些错误会出现在我之前拥有的那些 Override 注释上。
这是我的问题:1. 为什么在这种情况下 maven 不编译,而 eclipse 编译?2.这里的Override annotation errors是什么意思?3. 方法 X 是否可以通过某种方式访问?我想了解什么?
最佳答案
@Override
注解
@Override
- Checks that the method is an override. Causes a compile error if the method is not found in one of the parent classes or implemented interface
Properties > Java Compiler > Compiler compliance level = 1.6
也在项目级别检查编译器合规性级别
。
Properties > Java Compiler > Errors/Warnings
@Override
注解在 Annotations 下,默认被忽略。
将此属性添加到 pom.xml
<properties>
<maven.compiler.source>1.6</maven.compiler.source>
<maven.compiler.target>1.6</maven.compiler.target>
</properties>
这是由 maven-compile-plugin 发布的
note that at present the default source setting is 1.5 and the default target setting is 1.5, independently of the JDK you run Maven with. If you want to change these defaults, you should set source and target as described in Setting the -source and -target of the Java Compiler.
关于java - 使用接口(interface)模拟可扩展枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20151294/
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 4 个月前关闭。 Improve
我已经为这个概念苦苦挣扎了一段时间。我正在尝试提出一种松散耦合的 Azure 组件设计,该设计可以使用队列和辅助角色完全可扩展,从而使项目出列并处理。我可以随意扩展工作角色,并且发布到队列从来都不是问
尝试在 android 中创建可扩展 ListView 。我希望每个组都扩展到一个预设的 XML 布局文件。例如。 A组{ 展开时显示 XML 文件 A:按钮、搜索栏、微调器等 } 乙组{ 展开时显示
在 android 可扩展 ListView 中,我需要显示子项,仅在按下展开折叠节点时..即;我不想让 children 按下可扩展 ListView 的行。我该如何完成? 问候,罗尼 最佳答案 我
我正在开发一个Android代码编辑器,但是当我对它应用语法突出显示时,它会变得很滞后,是否有任何方法可以对其进行优化? 这是我的代码: protected void onCreate(Bundle
我正在开发安卓应用程序。我发现下面的输出图像显示了以下问题。请帮我解决我的问题。 Xml file 输出截图- 最佳答案 使用 setIndicatorBounds。 开发链接:http://deve
最近我在尝试使用 android 的可扩展 ListView ,所以我四处搜索并偶然发现了这个 http://about-android.blogspot.com/2010/04/steps-to-i
在 Control.Exception 的文档中在 base 4.4.0.0 中有一个如何创建异常层次结构的示例。该示例展示了如何通过根据父异常声明 Exception 类的实例来捕获特定异常的概括。
我正在开发一个将显示一些可扩展列表的应用程序。事实上,有时该对象不会有任何子对象。所以我想在我的可扩展列表中仅显示具有子元素的元素。我尝试在 getGroupView 函数中放入 if ,如果该对象没
这是一个有点开放式的问题,但是,制作良好的可扩展 Electron 应用程序的好方法是什么? VSCode、Atom 和许多其他工具都支持扩展,但它们的代码库太大,我无法理解发生了什么。我对 Jupy
我和一些 friend 为 Facebook 编写了一款游戏,但没有过多考虑游戏的实际架构 - 想象一下当我们每月吸引超过 300,000 名独立玩家并且我们的服务器崩溃时我们的惊喜。 现在我们正在努
您好,我正在使用 Android Expandable listview 并在其中用不同的 View 膨胀 child 。我遇到的问题是,当我展开一个 View 然后打开另一个父 View 时,布局中
我的场景是,我有一个可扩展 ListView ,在列表中动态添加我和 child 。我的子布局就是这样。 当我点击相应项目的编辑按钮时,我打开对话框从用户那里获取输入,然后点击更新相应的详细信息更新到
我想使用 RecyclerView 创建项目列表,并希望在单击时展开特定项目(如电话列表)。我想在不使用任何库的情况下实现这一目标。谁能帮忙? 最佳答案 获取子数据列表作为数据集中父数据的成员。并且,
我使用 ExpandableListview ... 我能够将从 Web 服务检索到的值设置为子布局的单个 Textview。现在需要在 Web 服务的子布局中设置两个不同的 Textviews 值我
我的可扩展 ListView 的顺序似乎不正确。 这是我的数据提供者: public class DataProvider { public static HashMap> getInfo() {
所以我试图在我的可扩展列表的子项列表中创建一行,但它不起作用,这是我的布局:
我有一个需要自定义箭头的可扩展 ListView 。我尝试将 groupIndicator 设置为这样的选择器: 但是,出于某种原因,这会扭曲箭头的尺寸,请参见下文: 知道它们为
我正在尝试实现具有 2 种不同布局的 ExpandableListView,到目前为止,我花了一段时间才真正让 1 个 View 组使用一个布局,而其他 2 个 View 组使用另一个。到目前为止,外
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我是一名优秀的程序员,十分优秀!