标签: overwrite

强制派生类调用基函数

如果我从另一个派生一个类并覆盖一个函数,我可以通过调用派生类中Base::myFunction()的实现来调用基函数myFunc.

但是有没有办法在我的Base类中定义在任何情况下调用基函数,也没有在覆盖函数中显式调用它?(在执行派生函数之前或之后)

甚至更好,如果我有我的虚拟虚拟函数Base的类,和两个实现的私有函数before()after(),是有可能的定义Base之前,在任何派生类此功能后,类Base类被调用,before()并且after()将被称为?

谢谢!

c++ virtual inheritance overwrite base-class

6
推荐指数
1
解决办法
4042
查看次数

针对特定情况在Java中覆盖hashCode

我知道在使用hashCode和equals时还有其他关于一般最佳实践的问题,但我有一个非常具体的问题.

我有一个类作为实例变量,同一个类的数组.更明确一点,这是代码:

Class Node{
    Node arr[] = new Node[5];
}
Run Code Online (Sandbox Code Playgroud)

我需要覆盖类Node的hashCode,并且数组是确定两个节点是否相同的重要决定因素.如何有效地将数组合并到hashCode的计算中?

- 编辑 -

我正在尝试检查两个节点是否相同,这意味着它们具有相同数量的子节点,并且这些节点导致完全相同的状态.因此,我正在有效地尝试比较两个节点的子树.我想知道我是否可以使用散列来进行此等式检查.

我认为我实际上需要对整个子树进行哈希处理,但鉴于我的类定义的递归性质,我不确定如何去做.

java overwrite hashcode

6
推荐指数
1
解决办法
327
查看次数

包装功能和功能.长度

我们考虑一下我有以下代码

/*...*/
var _fun = fun;
fun = function() {
  /*...*/
  _fun.apply(this, arguments);
}
Run Code Online (Sandbox Code Playgroud)

我刚刚丢失了.length数据_fun因为我试图用一些拦截逻辑包装它.

以下不起作用

var f = function(a,b) { };
console.log(f.length); // 2
f.length = 4;
console.log(f.length); // 2
Run Code Online (Sandbox Code Playgroud)

注释的ES5.1规范规定的是.length定义如下

Object.defineProperty(fun, "length", {
  value: /*...*/,
  writable: false,
  configurable: false,
  enumerable: false
}
Run Code Online (Sandbox Code Playgroud)

鉴于内部逻辑fun需要.length准确,如何在不破坏.length数据的情况下拦截和覆盖此功能?

我有一种感觉,我将需要使用eval和狡猾Function.prototype.toString的构造一个具有相同数量的参数的新字符串.我想避免这种情况.

javascript function overwrite interception

6
推荐指数
1
解决办法
226
查看次数

Magento:Rewrite Block无效

我尝试从magento重写核心文件.不知何故,它不会覆盖代码.我尝试覆盖函数getProduct().

Tipfix /座/产品/ View.php

<?php

class WP_Tipfix_Block_Catalog_Product_View extends Mage_Catalog_Block_Product_View
{

    public function getProduct()
    {

        if (!Mage::registry('product') && $this->getProductId()) {
            $product = Mage::getModel('catalog/product')->load($this->getProductId());
            Mage::register('product', $product);
        }

        //return Mage::registry('product');
    }
}
Run Code Online (Sandbox Code Playgroud)

Tipfix的/ etc/config.xml中

<blocks>
    <WP_Tipfix>
        <class>WP_Tipfix_Block</class>
    </WP_Tipfix>
    <catalog>
        <rewrite>
            <product_view>WP_Tipfix_Block_Catalog_Product_View</product_view>
        </rewrite>
    </catalog>
</blocks>
Run Code Online (Sandbox Code Playgroud)

我知道我做错了什么.

克.莱克斯

overwrite magento

6
推荐指数
1
解决办法
1万
查看次数

如何覆盖Mockito中的settermethod?

我似乎无法弄清楚如何使用Mockito模拟一个简单的setter方法.我有以下课程:

class MyClass {
    private SomeObject someObject;

    public void setSomeObject(SomeObject someObject) {
        this.someObject = someObject;
    }

    public someObject getSomeObject() {
        return someObject;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我只想在调用"setSomeObject"时设置一个新的"SomeObject"实例.此外,应忽略setter中的参数.

我需要这样的东西:

MyClass mockedClass = mock(MyClass.class);
when(mockedClass.setSomeObject([ignoreWhatsInHere]))
    .then(mockedClass.setSomeObject(new SomeObject();
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法让语法为此工作.我只能使用getters()来运行模拟,因为那时我可以返回一些东西.但我无法弄清楚如何为setters()做同样的事情.

所有帮助赞赏.

java setter overwrite mockito

6
推荐指数
1
解决办法
4409
查看次数

operator const char*以奇怪的方式覆盖(?)我的另一个变量

#include <iostream>
#include <sstream>

class Vector
{
    double _x;
    double _y;
public:
    Vector(double x, double y) : _x(x), _y(y) {}
    double getX() { return _x; }
    double getY() { return _y; }

    operator const char*()
    {
        std::ostringstream os;
        os << "Vector(" << getX() << "," << getY() << ")";
        return os.str().c_str();
    }
};
int main()
{
    Vector w1(1.1,2.2);
    Vector w2(3.3,4.4);
    std::cout << "Vector w1(" << w1.getX() << ","<< w1.getY() << ")"<< std::endl;
    std::cout << "Vector w2(" << w2.getX() << ","<< …
Run Code Online (Sandbox Code Playgroud)

c++ const overwrite char operator-keyword

6
推荐指数
1
解决办法
424
查看次数

如何在Emacs中用yank覆盖文本?

我想用下面的方法覆盖文本.有没有办法做到这一点?

杀死环:

text-i-want-to-paste
Run Code Online (Sandbox Code Playgroud)

之前:

abcdefghijklmnopqrstuvwxyz
^
corsor
Run Code Online (Sandbox Code Playgroud)

后:

text-i-want-to-pasteuvwxyz
Run Code Online (Sandbox Code Playgroud)

谢谢.

emacs overwrite yank

6
推荐指数
3
解决办法
1306
查看次数

程序化访问Apple Watch Crown

我知道它已经可用不到48小时,但我想知道是否有人已经想出如何在watchOS 2中以编程方式访问Apple Watch上的数字皇冠?是否有一个Objective-C方法,比如-(void)crownMovedWithTimeStamp(float)timeStamp我可以覆盖实现?(我的想法是这个方法可能是WKInterfaceController的一种方法,并且会以设定的间隔调用(就像每次数字表冠旋转1度角)).就像使用诸如的方法在UIView中接收触摸所做的那样-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event.非常感谢任何帮助,谢谢.

methods sdk objective-c overwrite apple-watch

6
推荐指数
1
解决办法
905
查看次数

检查是否已在JavaScript中覆盖全局属性/函数

JavaScript可以轻松覆盖全局对象的属性和功能.我想找到一种方法来检查全局属性的原始版本是否已被替换.

考虑有人把它放在他们的HTML中:

<script type="text/javascript">
    window.encodeURIComponent = eval;
</script>
<script type="text/javascript" src="myscript.js"></script>
Run Code Online (Sandbox Code Playgroud)

如果myscript.js在某处调用encodeURIComponent函数,它现在将表现得不可预测.那么有一种方法可以检查myscript.js内部是否有人在使用之前覆盖了该功能?

javascript overwrite global-object

5
推荐指数
2
解决办法
2744
查看次数

如何将 JFormattedTextField 保持在非覆盖模式?

我对 JFormattedTextField 有一个问题,即将其保持在非覆盖模式。我找到了如何将其设置为非覆盖,即使用 setOverwriteMode(false)。

但是,虽然此功能允许我在字段中键入而不覆盖,但当焦点丢失并重新输入字段时,overWriteMode 会再次打开!

有没有办法让 overWriteMode 保持 false?我更喜欢一个不会​​在每次失去焦点时将其设置为 false 的解决方案,但如果这是唯一可能的解决方案,那就这样吧。

这就是我现在所拥有的:

    DefaultFormatter format = new DefaultFormatter();
    format.setOverwriteMode(false);

    inputField = new JFormattedTextField();
    inputField.setValue("don't overwrite this!");
    inputField.setColumns(20);
    format.install(inputField);// This does the trick only the first time I enter the field!
Run Code Online (Sandbox Code Playgroud)

我希望有一个人可以帮助我!

Robin 提出的解决方案:

    DefaultFormatter format = new DefaultFormatter();
    format.setOverwriteMode(false);

    inputField = new JFormattedTextField(format); // put the formatter in the constructor
    inputField.setValue("don't overtype this!");
    inputField.setColumns(20);
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助!问候

java swing overwrite jformattedtextfield

5
推荐指数
1
解决办法
2081
查看次数