【问题标题】:How to change method signature with custom annotation如何使用自定义注释更改方法签名
【发布时间】:2018-01-10 23:19:56
【问题描述】:

长话短说我想要

@Version(1)
public Boolean isAlive() {
    return true;
}

@Version(2)
public Boolean isAlive() {
    return false;
}

编译。然后使用 AOP 将流映射到基于全局常量的正确方法。使用 Java 8 可以吗?

我知道还有其他设计模式不会遇到这个问题,但我遇到了这个问题,想知道是否有人知道答案。

【问题讨论】:

  • 这些方法是否属于同一个类?
  • "这可能使用 Java 8 吗?" - 不是没有进一步的黑魔法。注释只是文档或运行时信息的附加信息。您提供的代码在语法上不正确(您有名称冲突)。您必须调整编译器才能编译。

标签: java annotations aop method-signature


【解决方案1】:

我想长话短说

...找到一个人为的解决方案来修复您的无效Java代码。这不是 AOP 的用途。你的设计刚刚坏了。顺便说一句,你的主题

如何使用自定义注解更改方法签名

也是错误的,因为您根本不想更改方法签名。相反,您想要不可能的事情:让编译器接受两个具有相同签名的方法(只有不同​​的注释)。

我也长话短说:你想要的既不合理也不可能。对不起。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多