在程序中向 Java 语言添加不可变编程规则
Adding immutable programming rules to the Java language within a program
我正在 Java 中编写程序。我发现当范式技术一致时,阅读和调试代码是最容易的,这让我可以很快地假设问题出在哪里和什么。
正如您可能猜到的那样,这样做使我的编程速度更快,因此我想找到一种方法来执行这些规则。
例如,假设我有一个更改对象状态的方法,returns 是一个值。如果在 class 之外调用该方法,我不想看到它在参数括号内解析,如下所示:
somefunction(param1, param2, object.change_and_return());
相反,我希望这样做:
int relevant_variable_name = object.change_and_return();
somefunction(param1, param2, relevant_variable_name);
另一个例子,我想创建一个包含某些打印方法的基础 class,并且我希望用户定义的所有 classes 都派生自该基础 class, java 已经做到了。
在我的对象中,有没有一种方法可以强迫我自己(和其他任何人)遵守这些规则? IE。如果您尝试 运行 违反规则的代码,它将终止并 return 自定义错误报告。此外,如果您编写的代码违反了规则,IDE(我使用的是 eclipse)会将其识别为错误,下划线并调用相应的 javadoc?
对于检查和下划线违规部分:
你可以使用 PMD,它是一个静态代码分析器。
它有一个默认的规则集,你可以编写custom rules匹配你需要的。
但是您的控件在 "PMD language" 中表达起来似乎相当复杂。
PMD 在 Eclipse Marketplace 可用。
对于如果不符合部分会崩溃
没有简单的方法可以做到。
Hard/complex 方式可以是:
- 在 PMD 中编写规则,运行 在编译时分析,解析报告(仍在编译时),return 如果违反规则则报错。
- 写一个 Java Agent 做规则检查,如果违反规则,让它使 VM 崩溃(不确定它是否真的可行,代理是用于检测的)。
- 在代码中的任何位置使用反射来加载 classes,并根据您的规则分析加载的 class 并在违反规则时使 VM 崩溃(严重不要这样做:代码会很丑陋,而且很容易绕过规则。
我正在 Java 中编写程序。我发现当范式技术一致时,阅读和调试代码是最容易的,这让我可以很快地假设问题出在哪里和什么。
正如您可能猜到的那样,这样做使我的编程速度更快,因此我想找到一种方法来执行这些规则。
例如,假设我有一个更改对象状态的方法,returns 是一个值。如果在 class 之外调用该方法,我不想看到它在参数括号内解析,如下所示:
somefunction(param1, param2, object.change_and_return());
相反,我希望这样做:
int relevant_variable_name = object.change_and_return();
somefunction(param1, param2, relevant_variable_name);
另一个例子,我想创建一个包含某些打印方法的基础 class,并且我希望用户定义的所有 classes 都派生自该基础 class, java 已经做到了。
在我的对象中,有没有一种方法可以强迫我自己(和其他任何人)遵守这些规则? IE。如果您尝试 运行 违反规则的代码,它将终止并 return 自定义错误报告。此外,如果您编写的代码违反了规则,IDE(我使用的是 eclipse)会将其识别为错误,下划线并调用相应的 javadoc?
对于检查和下划线违规部分:
你可以使用 PMD,它是一个静态代码分析器。
它有一个默认的规则集,你可以编写custom rules匹配你需要的。
但是您的控件在 "PMD language" 中表达起来似乎相当复杂。
PMD 在 Eclipse Marketplace 可用。
对于如果不符合部分会崩溃
没有简单的方法可以做到。
Hard/complex 方式可以是:
- 在 PMD 中编写规则,运行 在编译时分析,解析报告(仍在编译时),return 如果违反规则则报错。
- 写一个 Java Agent 做规则检查,如果违反规则,让它使 VM 崩溃(不确定它是否真的可行,代理是用于检测的)。
- 在代码中的任何位置使用反射来加载 classes,并根据您的规则分析加载的 class 并在违反规则时使 VM 崩溃(严重不要这样做:代码会很丑陋,而且很容易绕过规则。