【问题标题】:IDE plugin to check method boundaries, does it exist?检查方法边界的IDE插件,它存在吗?
【发布时间】:2012-11-19 14:37:58
【问题描述】:

假设您关心代码的清晰度,并希望确保您的 api 用户非常清楚对象是如何创建的。你让他们做类似的事情

new MomentInTime(new DayOfMonth(15), new HourOfDay(10), new MinuteOfHour(49), new SecondOfMinute(0));

DayOfMonthHourOfDay 的每个类都几乎相同,是某种价值存储。

现在,当你使用值的时候,使用Java的Calendar,如果值是非法的,我们会得到某种RunTimeException。太好了。

现在.. 我们是否可以在 IDE 中设置 Min、Max 边界(EclipseIntellij),这会警告我们即将发送给方法的值将导致错误?

是否有一个插件和一个注释可以一起工作来允许这样的警告?

类似于@Boundaries {low=1, high=31} 的东西以及 IDE 真正认识到它会很棒。

如果存在类似的情况,请告诉我。

【问题讨论】:

  • 我建议限制值而不是抱怨,因为有人试图将您的 Int32 参数设置为 0(这会使开发人员感到困惑)。如果 Java 提供类似于 .NET 的 Enum 的东西,那听起来很适合它。
  • 我在代码搜索中看到了一个名为 @IntRange(min=1, max= 100000) 的注解。但是,我不知道它是否满足您的需求。

标签: eclipse plugins eclipse-plugin intellij-idea boundary


【解决方案1】:

看看Contracts for Java。它确实与 Eclipse 进行了初步集成。

interface Time {
  ...

  @Ensures({
    "result >= 0",
    "result <= 23"
  })
  int getHour();

  @Requires({
    "h >= 0",
    "h <= 23"
  })
  @Ensures("getHour() == h")
  void setHour(int h);

  ...
}

【讨论】:

    猜你喜欢
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 2011-08-01
    • 1970-01-01
    相关资源
    最近更新 更多