使用Java 8 新类进行注解

错误

开始看Thinking in java 4th第20章注解(详见该书中文版P629-630),运行书中的代码,找不到com.sun.mirror.apt.* com.sun.mirror.declaration.* ,那么两个包下相关的类也都会找不到

分析

书中jdk版本是1.5,而我的jdk版本是1.8。com.sun.mirror这个包在java 7 就不建议使用,在java 8被废弃。

解决

知道了原因,就好解决了,下面提供两种解决方法:

第一种(建议):

com.sun.mirror 这个包被官方废弃,当然有相应替代的类出现,查看对应的代替类

把旧类替换为新类,就可以了

第二种

下载包含com.sun.mirror的tools.jar库文件apt-mirror-api-0.1.jar ,引入到工程中就可以了。

库文件包含的类

Files contained in apt-mirror-api-0.1.jar: 

META-INF/MANIFEST.MF
META-INF/maven/com.moparisthebest.aptIn16/apt-mirror-api/pom.properties
META-INF/maven/com.moparisthebest.aptIn16/apt-mirror-api/pom.xml
com.sun.mirror.apt.AnnotationProcessor.class
com.sun.mirror.apt.AnnotationProcessorEnvironment.class
com.sun.mirror.apt.AnnotationProcessorFactory.class
com.sun.mirror.apt.AnnotationProcessorListener.class
com.sun.mirror.apt.AnnotationProcessors.class
com.sun.mirror.apt.Filer.class
com.sun.mirror.apt.Messager.class
com.sun.mirror.apt.RoundCompleteEvent.class
com.sun.mirror.apt.RoundCompleteListener.class
com.sun.mirror.apt.RoundState.class
com.sun.mirror.declaration.AnnotationMirror.class
com.sun.mirror.declaration.AnnotationTypeDeclaration.class
com.sun.mirror.declaration.AnnotationTypeElementDeclaration.class
com.sun.mirror.declaration.AnnotationValue.class
com.sun.mirror.declaration.ClassDeclaration.class
com.sun.mirror.declaration.ConstructorDeclaration.class
com.sun.mirror.declaration.Declaration.class
com.sun.mirror.declaration.EnumConstantDeclaration.class
com.sun.mirror.declaration.EnumDeclaration.class
com.sun.mirror.declaration.ExecutableDeclaration.class
com.sun.mirror.declaration.FieldDeclaration.class
com.sun.mirror.declaration.InterfaceDeclaration.class
com.sun.mirror.declaration.MemberDeclaration.class
com.sun.mirror.declaration.MethodDeclaration.class
com.sun.mirror.declaration.Modifier.class
com.sun.mirror.declaration.PackageDeclaration.class
com.sun.mirror.declaration.ParameterDeclaration.class
com.sun.mirror.declaration.TypeDeclaration.class
com.sun.mirror.declaration.TypeParameterDeclaration.class
com.sun.mirror.type.AnnotationType.class
com.sun.mirror.type.ArrayType.class
com.sun.mirror.type.ClassType.class
com.sun.mirror.type.DeclaredType.class
com.sun.mirror.type.EnumType.class
com.sun.mirror.type.InterfaceType.class
com.sun.mirror.type.MirroredTypeException.class
com.sun.mirror.type.MirroredTypesException.class
com.sun.mirror.type.PrimitiveType.class
com.sun.mirror.type.ReferenceType.class
com.sun.mirror.type.TypeMirror.class
com.sun.mirror.type.TypeVariable.class
com.sun.mirror.type.VoidType.class
com.sun.mirror.type.WildcardType.class
com.sun.mirror.util.DeclarationFilter.class
com.sun.mirror.util.DeclarationScanner.class
com.sun.mirror.util.DeclarationVisitor.class
com.sun.mirror.util.DeclarationVisitors.class
com.sun.mirror.util.Declarations.class
com.sun.mirror.util.SimpleDeclarationVisitor.class
com.sun.mirror.util.SimpleTypeVisitor.class
com.sun.mirror.util.SourceOrderDeclScanner.class
com.sun.mirror.util.SourcePosition.class
com.sun.mirror.util.TypeVisitor.class
com.sun.mirror.util.Types.class

参考:Java注解–关于AnnotationProcessor类
导入tools.jar包后还是找不到com.sun.mirror包 jdk1.8.0
无法解析导入 com.sun.mirror
com.sun.mirror的jar包
Getting Started with the Annotation Processing Tool, apt

关注我的公众号,轻松了解和学习更多技术
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛瑄

文章不错,请博主吃包辣条

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值