问题标签 [super]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - uiwebview 没有响应/将触摸传递给超级
所以我想让我的 UIWebview 响应触摸事件。我已经阅读了几个关于此的主题。我创建了一个 UIWebView 的子类,将它添加到我的 UIViewController 中并通过 IB 链接它。在我的子类中,我覆盖了 touches end 并调用了 [super touchEnded]。没有帮助。我覆盖了 hittest,但它也不叫 super!
如果我将此代码添加到我的子类 UIWebView:
NSLog(@"命中");
回归自我;}
然后触摸被转发到超类,但 hittest 不是(!),另外 webview 停止滚动。
好吧,我想在我的 webview 中识别一个触摸并将其传递给 super - 我做错了什么?
编辑:
我想知道,为什么这么多建议包括使用“hittest” - 这导致无法滚动你的 webview ......有什么想法吗?
python - 如何避免使用 super() 进行无限递归?
我有这样的代码:
实例化 B 按预期工作,但实例化 C 无限递归并导致堆栈溢出。我该如何解决这个问题?
java - 格式化输入流的正确方法
我有以下问题:我的程序传递了一个我无法控制其内容的 InputStream。我使用 javax 库解组我的输入流,如果 InputStream 包含 & 字符而不后跟“amp;”,它会正确地抛出异常
我想出的解决方法是创建以下类:
注意:StringUtil 是一个简单的实用程序,我必须将输入流转换为字符串。
有了那个类,我现在调用 JAXB 解组器:
代替
这种方法有效,但由于以下几个原因看起来很奇怪:
1 - 由于 super 必须是构造函数中的第一个元素的限制(尽管我读过它,但我无法理解的限制),我被迫在一行中完成所有处理,使代码远非可读。
2 - 将整个流转换为字符串并返回到流似乎过大
3 - 上面的代码有点不正确,因为流包含 amp;amp; 将被修改为包含 amp;
我可以通过为 FormatInputStream 类提供一种方法来解决 1:
我将在其中执行我目前在 FormattedStream 类的构造函数中执行的相同操作,但由于编码限制而不得不选择不同的接口似乎很奇怪。
我可以通过保持我的 FormattedStream 构造函数简单来解决 2:
并覆盖三个读取方法,但这将涉及更多的编码:与我目前可以利用 replaceAll String 方法的一行代码相比,通过动态替换 & 来覆盖三个读取方法并非易事。
至于 3,这似乎是一个角落案例,我不担心,但也许我应该......
关于如何以更优雅的方式解决我的问题的任何建议?
java - Java:调用调用重写方法的超级方法
我的预期输出:
子
类方法1 超类方法1
超类方法2
实际输出:
子类方法1
超类方法1
子类方法2
我知道从技术上讲我已经覆盖了一个公共方法,但我认为因为我正在调用超级,所以超级中的任何调用都会保留在超级中,这不会发生。关于如何实现它的任何想法?
python - 如何在 Python 中访问超类的类属性?
看看下面的代码:
我有一个类层次结构,每个类都有自己的字典,其中包含一些默认值。如果类的实例没有特定属性,则应返回它的默认值。defaults
如果当前类的字典中不包含该属性的默认值,defaults
则应搜索超类的字典。
我正在尝试使用递归类方法来实现这一点get_default
。不幸的是,程序陷入了无限递归。我的理解super()
显然不足。通过访问__mro__
,我可以让它正常工作,但我不确定这是一个正确的解决方案。
我感觉答案就在这篇文章的某处,但我还没有找到。也许我需要求助于使用元类?
编辑:在我的应用程序中,__getattr__
首先检查self.base
. 如果不是None
,则需要从那里获取属性。只有在其他情况下,必须返回默认值。我可能会覆盖__getattribute__
. 那会是更好的解决方案吗?
编辑 2:下面是我正在寻找的功能的扩展示例。它目前是使用__mro__
(unutbu 早期的建议,而不是我原来的递归方法)实现的。除非有人可以提出更优雅的解决方案,否则我很乐意使用此实现。我希望这能解决问题。
输出:
python - Python:多次派生后查询一个类的父类(“super()”不起作用)
我已经构建了一个使用基类的多个派生的类系统(object->class1->class2->class3):
它按预期工作并打印:
现在我想替换 3 行
像这样:
所以基本上,我想创建一个类系统,我不必输入“classXYZ.doSomething()”。
如上所述,我想获取“当前类的父类”。
将三行替换为:
不起作用(它总是返回当前实例的父类-> class2)并且将导致无限循环打印:
那么有没有一个函数可以给我当前类的父类?
谢谢您的帮助!
亨利
--------------------
编辑:
@Lennart 好吧,也许我弄错了,但目前我认为我没有足够清楚地描述问题。所以这个例子可能会更好地解释它:
让我们创建另一个子类
现在如果我们从 class4 派生一个实例会发生什么?
我认为它清楚地执行:
我们可以翻译成这样:
这绝对不是目标(那将是class3.__init__(y)
)
现在进行大量父类函数调用 - 我不想在我的 super() 调用中使用不同的基类名称重新实现我的所有函数。
我还想提一下,我是python类系统的新手,所以希望你能对我有耐心。
perl - 将 SUPER 引用到对象的超类
请参阅 oop http://perldoc.perl.org/perlobj.html的 perldoc
根据文档:“重要的是要注意 SUPER 是指当前包的超类,而不是对象的超类。”
现在,我处于需要 SUPER 来引用对象的超类的情况。
因此,寻找任何方法来实现它。
java - java中的超级构造函数
请解释
内部没有参数的 Super() 意味着要定义多个参数?这是在“this.xxx”的帮助下完成的吗?
为什么我们在“公共类联系人”本身中定义。为什么我们在这里再次定义并调用它的参数?
python - Python:为什么我不能在类上使用`super`?
为什么我不能super
用来获取一个类的超类的方法?
例子:
(当然这是一个我可以做的微不足道的案例A.my_method
,但我需要这个来处理钻石继承的案例。)
根据super
的文档,我想要的似乎应该是可能的。这是super
的文档:(强调我的)
super()
-> 与super(__class__, <first argument>)
super(type)
-> 未绑定的超级对象
super(type, obj)
-> 绑定super
对象;需要isinstance(obj, type)
super(type, type2) -> 绑定的超级对象;需要 issubclass(type2, type)
[已编辑非相关示例]