问题标签 [instanceof]
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.
php - 为包装类操作 PHP-instanceof-operator
我想为一些类提供一个通用的包装类来拦截和操作一些方法调用。方法-调用-转发,拦截,目前没问题。但是想了一会儿,我发现了一个我没有解决方案的问题:我在我的应用程序中到处使用内置的 instanceof-operator。当然,这将不再起作用,因为包装器不是其中的类的实例。我想继续使用该运算符,而不是用其他函数替换它。
有没有办法解决这个问题?这个运算符是如何工作的?它是否调用了我可能能够在包装器中覆盖的类的核心功能?
我知道这不是操纵该运算符的真正“干净”的解决方案,但我认为这对我来说是最简单的解决方案。正如我们所知,PHP 中有很多东西不是那么干净...... :-)
谢谢你的回答,本
java - 使用 Java 的 instanceOf 是否符合“程序到接口”的设计原则?
如您所知,“程序到接口”设计原则广泛偏爱超类型而不是具体类型或实现。
在Java程序中使用instanceof从超类型派生具体类型是否符合原理?
在我的应用程序中,Storehouse 是一个抽象超类型类,具有几个私有变量和公共 getter 和 setter。
ConcreteStorehouseA 继承自 Storehouse,有很多具体的方法和变量。ConcreteStorehouseB 类似但不同。
我的应用程序收到一个仓库。但是,Storehouse 不是一个有用的类型。因为唯一真正有用的方法包含在具体类型中,所以我使用 instanceof 如下:
使用instanceof是否符合原理?
编辑:
本质上,该应用程序是桌面角色扮演游戏 Shadowrun 的骰子模拟器。具体类型是不同的测试类型——成功测试、反对测试、扩展测试——它们的成功运行都有非常不同的因素和参数。超类型本质上包含骰子池!
java - instanceof 与 getClass( )
我看到使用getClass()
and==
运算符而不是运算符时性能有所提高instanceOf
。
是否有任何指导方针,使用哪一个getClass()
?instanceOf
给定一个场景:我知道要匹配的确切类,即String
(Integer
这些是最终类)等。
使用instanceOf
操作员是不好的做法吗?
java - 在这种情况下替代 instanceof 方法
您好,我想知道有什么更优雅的替代方案来代替这样的东西:
看看有什么替代方案...
谢谢你的建议。
编辑:基类可能有许多子类,而不仅仅是两个,它们的数量可能会随着时间增长
java - 如何检查作为 Class 对象的参数的 instanceof?
我正在尝试构建一个通用类加载器。我需要根据方法参数检查我加载的类,以确定它们是否属于同一类。
该代码主要解释了我正在尝试做的事情。
这是如何实现的?
javascript - 想到更多古怪的 JavaScript 恶作剧
我刚刚通读了Mike Koss 关于 JavaScript 中的面向对象编程。他简要谈到了子分类,并谈到了“另一种子分类范式”。在这个例子之后,科斯写道......
不幸的是,这种技术不允许使用
instanceof
运算符来测试超类的成员资格。但是,我们还有一个额外的好处,那就是我们可以从多个超类中派生(多重继承)
...这让我思考。多重继承的想法似乎很酷!所以我有两组问题:
- 多重继承的想法实用吗?真的实践了吗?有什么优点或缺点吗?
- 我将如何覆盖
instanceof
运算符以将其功能扩展到多重继承?
android - 如何在 Android 中检查异常对象类型?
我想检查从函数返回的 Android 中的异常对象类型以及其他数据。我正在使用以下内容,但这也会触发子类 SSLPeerUnverifiedException,这是我不想发生的事情。
然后我将其更改为以下内容,但是我认为可能有更好的比较检查而不是比较字符串。
jsf - JSF EL:instanceof 保留但尚未实现?
我在 JSF EL 中找到了 instanceof 运算符,但在使用时会引发异常。它显然是保留但没有实施?它什么时候(可能)可用,如果还没有比我目前使用的 JSF 1.2 更新的版本?
java - 是否可以在 switch 语句中使用 instanceof 运算符?
我有一个使用开关盒作为instanceof
对象的问题:
例如:我的问题可以用 Java 重现:
它将如何使用switch...case
?
java - 从 javax.swing.text 对 AbstractDocument.UndoRedoDocumentEvent 尝试 instanceof 时出现 IllegalAccessError
在我的源代码中,javax.swing.text.DefaultCaret.Handler.insertUpdate(DocumentEvent)
我发现了以下几行(从第 1685 行开始):
但是当我尝试这个时:
它会给:
为什么我不能instanceof
反对那个阶级,但DefaultCaret.Handler
可以呢?
使用 java 版本 1.6.0_20
更新:
根据答案,我尝试了以下方法:
文件Foo.java
:
文件Outer.java
:
这工作正常并按预期打印“aww”。
请注意,这两个文件都在包中javax.swing.text
。另请注意,这Foo.java
已经javax.swing.text
在我原来的问题中。
据我所知,包裹没有“密封”。rt.jar
(包含包裹的)的清单javax.swing.text
不包含“密封”。该命令Package.getPackage("javax.swing.text").isSealed()
返回假。
所以我可以instance of
反对我自己的内部类,但不能反对AbstractDocument.UndoRedoDocumentEvent
,即使包中的其他类可以。
任何想法为什么会这样?