有没有办法在Java中实现类似于C ++的const东西? 具体来说,我有一个像 而且我想 在签名中明确表示它不会修改它的论点, 和 强制它不修改它的参数(最好是在编译时,但插入运行时断言也可以)。 现在我知道java严格按引用传递(我只是戏弄,我知道它是 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我试图通过 facotirising 重复代码来重构一些代码。 让我们想象一下,我最终得到了一个类:
class A {
public:
void method1()
{
do_work(true);
}
void method2() const
{
do_work(false);
}
private:
void do_work(bool flag) {
...
if(flag)
this->data = 0;
}
}
但是,这不会编译,因为 do_work 不是 const,即使使用 flag = false 调用此方法是 const。 有没有办法在不再次拆分实现的情况下“修复”这个问题?
do_work
重构得很差,作为一个“有时是常量”的函数。
将const
和非常量逻辑分开。
class A {
void method1()
{
do_work();
this->data = 0;
}
void method2() const
{
do_work();
}
private:
void do_work() const {
...
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.