之前就知道@Override标记的功能,它的意思是类中的一个方法覆盖了父类的方法。当编译类的时候,如果标记为覆盖的方法在父类中没有,编译器就会报错,使用ide时在写代码的时候如果标记的方法父类中没有就会提示错误。所以这个标记的意义就在于把需要覆盖的方法标记出来,防止自己写错名字。
以前以为这个功能挺鸡肋的,没什么用处,没想到今天还真让我给遇到了。 今天下载了struts2.1.6,想体验一下新的零配置。首先建立一个web项目写了一个demo。下面就是我的action
- public class HelloAction extends ActionSupport{
-
-
private String msg;
-
-
public String execuete(){
-
msg="hello world";
-
return SUCCESS;
- }
-
-
public String getMsg() {
-
return msg;
- }
- }
public class HelloAction extends ActionSupport{
private String msg;
public String execuete(){
msg="hello world";
return SUCCESS;
}
public String getMsg() {
return msg;
}
}
然后在返回的页面里使用s:property输出msg的值。 ,结果就是显示不出来值。配置什么的哪里也没错啊,找啊找找了好久(,用了一个多小时)没有结果。
最后还是偶然发现问题了,方法名写错了execuete多写了一个e,导致struts2调用了ActionSupport类的execute空方法,所以一直在jsp页面里得不到值。
平时写action的时候写execute方法netbeans都会提示覆盖了父类方法需要添加这个标记,今天写完execuete netbeans居然没有提示,当时就很纳闷,但是只是纳闷了一下并没有在意,导致了之前的错误。今天终于让我记住了,以后覆盖父类方法一定写上@Override标记。
分享到:
相关推荐
@Override标签是一个非常重要的标签,但是一般情况下,我们只是知道它的基本用途,即用于标记方法的重写。但是,这个小小的标签蕴藏着很多有趣的秘密。今天,我们就来深入探讨一下这个标签的秘密。 首先,让我们来...
在这种情况下,你需要检查`@Override`注解的使用是否正确,确保它标记的方法确实存在于父类或接口中。 总之,`@Override`报错通常是由于编译器版本过低或者代码中的方法没有正确覆盖父类或接口方法。通过升级编译器...
`@Override` 注解是Java语言中用于标记一个方法是重写了父类的特定方法,确保编译器在编译时进行检查,以防止意外地覆盖或丢失方法。本文将深入探讨在Android Studio中如何使用`@Override`进行方法重载以及相关的...
- `@Override` 注解用于标记一个子类中的方法,以表明该方法是覆盖了父类中的同名方法。如果该方法实际上并未覆盖父类中的任何方法,则不应该使用此注解。 #### 三、解决方案 1. **更新 JDK 版本**: - 确保安装...
例如,`@Override`表示该方法重写了超类的方法。注解本身不直接影响程序的执行,但编译器或Java虚拟机(JVM)可以通过反射API读取这些信息并执行相应的处理。 2. **JDK内置注解** - `@Override`: 检查方法是否真正...
启用阶段0或es7.decorators在巴别,然后标记该意图覆盖超类与性质性质@Override 。 class A { a ( ) { /* ... */ } } class B extends A { @ Override a ( ) { /* ... */ } } 如果装饰的属性没有覆盖父...
注解的主要作用包括但不限于文档化、编译时检查以及代码处理。 #### 二、Annotation的基本概念 1. **Annotation的定义** `Annotation`本质上是Java的一种元数据,用于在源代码中插入信息。这些信息可以在编译...
2. **标记法**:设置一个标志变量,当一个`EditText`发生变化时,设置标志,其他`EditText`的监听器检测到标志后不执行计算,直到标志被清除。 例如,使用延时计算的实现: ```java Handler handler = new Handler...
在上面的示例代码中,我们使用一个布尔变量 isAppForeground 来标记 APP 是否在前台。每当某个 Activity 处于 onResume 状态时,我们将 isAppForeground 设置为 true;反之,每当某个 Activity 处于 onPause 状态时...
`@Override`注解用于标记一个方法,表明该方法是重写超类中的方法。这有助于确保你真正地覆盖了父类的方法,而不仅仅是创建了一个同名的新方法。如果方法被标记为`@Override`,但实际上并没有重写任何超类方法,...
// 处理搜索结果,例如在地图上显示标记 } } @Override public void onRouteSearched(RouteResult routeResult, int rCode) { // 路线搜索结果返回事件 } }; } // 启动搜索框服务 检索服务的启动方法 ...
XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,广泛应用于Web服务、配置文件和数据交换等领域。SAX(Simple API for XML)是XML解析的一种方法,它采用事件驱动的方式处理XML文档,对内存...
@Override用于标记重写父类方法,确保编译器检查方法是否真正覆盖了父类方法;@Deprecated标记不再推荐使用的代码,编译器会发出警告;@SuppressWarnings用于抑制特定的编译器警告。 接下来,我们将讨论注解在JUnit...
为了在地图上显示定位点,我们需要创建一个`MapView`对象,并在其上添加标记。在布局XML文件中: ```xml android:id="@+id/bmapView" android:layout_width="match_parent" android:layout_height="match_...
3. **编译检查**:在编译阶段,注释可以指示编译器进行特定的检查,例如`@Override`用于确保方法覆盖了超类方法,`@Deprecated`用于标记不再推荐使用的代码。 ### 基本内置注释 - **@Override**:这个注释用于指定...
这个控件虽然在Android API 16之后被标记为已废弃,但由于其独特的功能和良好的滑动体验,仍然在很多项目中得到应用。不过,对于新项目,开发者可以考虑使用`ViewPager`或第三方库如`CarouselView`来替代`Gallery`,...
// 使用 @Override 标记覆盖方法 @Override public void display() { System.out.println("Display method overridden."); } // 使用 @Deprecated 标记过时方法 @Deprecated public void oldMethod() { System....
[Mandatory]接口或抽象类中的重写方法必须使用 @Override 注解进行标记。反例:对于 getObject() 和 get0bject(),第一个是字母“O”,第二个是数字“0”。为了准确判断覆盖是否成功,需要使用@Override注解。同时,...
`@PostConstruct` 标记的方法会在所有依赖注入完成后调用,而 `@PreDestroy` 标记的方法会在容器关闭前调用。 例如: ```java @Component public class Car { public Car() { System.out.println("car ...
// 标记为用户输入 } @Override public void afterTextChanged(Editable s) { if (isUserInput && s.length() > 0) { editText.setText(""); isUserInput = false; // 输入完成,重置标志 } } }); ``` ...