JAVA注解及应用 (Annotation 功能)

本文详细介绍了Java注解的使用,包括@Deprecated、@Override、@SuppressWarnings等常用注解的功能与应用,并通过示例代码展示了如何在实际项目中合理使用注解,提升代码质量和维护效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JAVA注解及应用

Deprecated

@Deprecated 注释的程序元素,不鼓励程序员使用这样的元素,通常是因为它很危险或存在更好的选择。

Override

表示一个方法声明打算重写超类中的另一个方法声明。

SuppressWarnings

指示应该在注释元素(以及包含在该注释元素中的所有程序元素)中取消显示指定的编译器警告。

package cn.itcast.day2; public class AnottationTest { /** * @param args */ @SuppressWarnings("deprecation") //告诉编译器,不要再提示我,我们知道是过时了的 public static void main(String[] args) { // TODO Auto-generated method stub System.runFinalizersOnExit(true); } @Deprecated //使此方法过时,别人再调用此方法时,就会提示已过时 public static void SayHello() { System.out.println("hi,我过时了的!"); } @Override //表明此方法是覆盖父类的某个方法,写错将无法编译 public String toString() { return "父类方法被覆盖了!"; } }

注解相当于一种标记,加了注解就等于为程序打上了某种标记,没加,则否。以后,javac编译器,开发工具和其它程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记,就去干相应的事。标记可以加在包,类,字段,方法,方法的参数以及局部变量上。

java.lang包中,可以看到jdk提供的最基本的annotation

定义一个最简单的注解:

public @interface MyAnnotation {

}

把它加在某个类上:

@MyAnnotation public class AnnotationTest{

}

用反射进行测试AnnottationTest的定义上是否有@MyAnnotation

根据反射测试的问题,引出@Retention元注解的讲解,其三种取值:

RetetionPolicy.SOURCERettionPolicy.CLASSRetetionPolicy.RUNTIME;分别对应:java源文—-> class文件à内存中的字节码。

演示和讲解@Target元注解

Target的默认值为任何元素,设置Target等于ElementType.METHOD,原来加在类上的注解就报错了,改为用数组方式设置{ElementType.METHOD,ElementType.TYPE}就可以了。

元注解以及基枚举属性值不用记,只要会看jdk提供那几个基本注解的API帮助文档的定义或其源代码,近产索引即可查到,或都直接看java.lang.annotation包下面的类。

import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD, ElementType.TYPE}) public @interface ItcastAnnotation { }

 

package cn.itcast.day2; @ItcastAnnotation public class AnnotationTest { /** * @param args */ @SuppressWarnings("deprecation") //告诉编译器,不要再提示我,我们知道是过时了的 public static void main(String[] args) { System.runFinalizersOnExit(true); if(AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class)){ ItcastAnnotation annotation = (ItcastAnnotation)AnnotationTest.class.getAnnotation(ItcastAnnotation.class); System.out.println(annotation); } } @Deprecated //使此方法过时,别人再调用此方法时,就会提示已过时 public static void SayHello() { System.out.println("hi,我过时了的!"); } @Override //表明此方法是覆盖父类的某个方法,写错将无法编译 public String toString() { return "父类方法被覆盖了!"; } }

 

内容概要:该论文探讨了一种基于粒子群优化(PSO)的STAR-RIS辅助NOMA无线通信网络优化方法。STAR-RIS作为一种新型可重构智能表面,能同时反射和传输信号,与传统仅能反射的RIS不同。结合NOMA技术,STAR-RIS可以提升覆盖范围、用户容量和频谱效率。针对STAR-RIS元素众多导致获取完整信道状态信息(CSI)开销大的问题,作者提出一种在不依赖完整CSI的情况下,联合优化功率分配、基站波束成形以及STAR-RIS的传输和反射波束成形向量的方法,以最大化总可实现速率并确保每个用户的最低速率要求。仿真结果显示,该方案优于STAR-RIS辅助的OMA系统。 适合人群:具备一定无线通信理论基础、对智能反射面技术和非正交多址接入技术感兴趣的科研人员和工程师。 使用场景及目标:①适用于希望深入了解STAR-RIS与NOMA结合的研究者;②为解决无线通信中频谱资源紧张、提高系统性能提供新的思路和技术手段;③帮助理解PSO算法在无线通信优化问题中的应用。 其他说明:文中提供了详细的Python代码实现,涵盖系统参数设置、信道建模、速率计算、目标函数定义、约束条件设定、主优化函数设计及结果可视化等环节,便于读者理解和复现实验结果。此外,文章还对比了PSO与其他优化算法(如DDPG)的区别,强调了PSO在不需要显式CSI估计方面的优势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值