问题标签 [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.

0 投票
2 回答
2233 浏览

php - PHP instanceof 在字符串和不可初始化的类上

我需要检查某个类是否扩展或实现了特定接口。

注意类名是一个变量字符串,即不会有这个类的任何实例。

用户应该从类列表中选择一个类,系统应该检查该类是否实现了某个接口。类列表是可变的(根据当前运行的 PHP 软件),其中一些类可以初始化,而另一些则不能。

这是我正在使用的代码:

最后一个测试显示以下错误:

可捕获的致命错误:在第 XX 行的 C:\Users\abcdefghijklmn\debug.php 中不允许实例化“闭包”

我尝试过的事情:

  • 使用$obj=new @$obj();:- 错误被隐藏,但它仍然出现故障/死亡。
  • 在违规块周围使用try{}catch(){}:-没有什么不同
  • 使用'class' instanceof 'class'(其中 $obj 是一个字符串):-false无条件返回

请注意,此方法中使用的强制类初始化......很糟糕。创建实例意味着不必要的内存消耗、速度损失和更容易出错(想象一些奇怪的类,当它在没有参数的情况下实例化时,它会继续破坏你的硬盘;))。所以,如果有任何其他方式,我很想知道它。


编辑:这是(希望)最终代码:-

0 投票
3 回答
3132 浏览

java - 泛型和 instanceof - java

好的,这是我的类,它封装了一个对象,并将 equals 和 String 委托给这个对象,为什么我不能使用实例???

我怎样才能让它工作?谢谢!

0 投票
4 回答
402 浏览

java - Java 在这里对我的“等于”实现做了什么?

今天,我偶然发现了以下内容:

考虑两个类 NewClass 和 NewClass1,它们具有以下“等于”方法:

新类:

新类1:

我觉得奇怪的是 NewClass1 中的等号似乎比 NewClass 中的等号慢(对于 10.000.000 调用 14ms 对 3000ms)。起初,我以为这与“instanceof”检查有关,但如果我替换“return equals((NewClass1) obj);” 用“返回假;” 在 NewClass1 中,它突然运行或多或少同样快。我真的不明白这里发生了什么,因为在我看来,equals(Object) 中的 return 语句实际上不应该被调用。我在这里做错了什么?

以下是我的“基准代码”,以防我在那里犯了一些错误:

0 投票
4 回答
2877 浏览

java - 当用于 2 个不兼容的类时,为什么 `instanceof` 会出错而不是返回 `false`?

我正在阅读:http:
//java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.20.2

他们说:

考虑示例程序:

instanceof表达式不正确,因为没有 的实例Element或其任何可能的子类(此处未显示)可能是 的任何子类的实例Point

为什么这会导致错误,而不是简单地instanceof返回 false?

谢谢,

杰拉格

0 投票
4 回答
54645 浏览

java - Java:实例泛型

没有办法找到泛型的类类型吗?

以上肯定不编译。

0 投票
5 回答
291 浏览

java - 如何找到方法返回的实例?Java 编程

如果我有以下对象:

然后,我在服务中有一个函数,它返回人员列表/数组等,但列表中的某些项目可能是教师,有些可能是学生。

在返回端,我希望用户能够检查每个元素的实例以确定它是学生还是教师。

构建此代码的最佳方法是什么。

所以,在服务中,我想要这样的东西:

0 投票
2 回答
53 浏览

php - 将函数传播给父母

我有一个由一组类组成的 PHP 对象。为简单起见,我们称它为扩展类 B 的类 C 的对象,而类 B 又扩展类 A。在我的代码中的某个时刻,我想通过调用它从接口 I 继承的 doCleanup() 函数来清理对象:

在 CI 类的 doCleanup 函数中,还希望在我的父类中执行任何清理函数(在本例中,是 A 类中的 doCleanup())。但是,对于某些对象,我不确定是否有任何父类实际上实现了接口 I,所以我不确定我是否可以简单地调用parent::doCleanup().

因此,我的问题是,是否有办法检查我的祖先是否实现了该接口,例如通过使用某种instanceof调用?

0 投票
2 回答
3155 浏览

php - Force a dynamically loaded class to extend or implement an interface

Anyone know if it's possible in PHP to force a class to extend or implement an interface without the child class having to declare it?

Example:

Obviously that doesn't work, but I need a way of loading in classes that have no predetermined knowledge of the interface requirements but are forced to abide by them.

My overall goal is to check to see if the class implements the Requirements BEFORE its loaded and it's constructor is called.

So I CANNOT use this:

Because then DingleBerry's constructor is called before I can check if it implements the Requirements. Dig?

0 投票
2 回答
283 浏览

reflection - 如何在 isInstanceOf 调用中使用结构类型?

标题基本上是这样说的。

有没有办法new Object {def foo = "bar"}isInstanceOf[<structural_type_here>]通话中使用 eg 的类型?

0 投票
4 回答
2325 浏览

java - 在 Java 中,我可以在 instanceof 表达式中使用原始类型文字或类型变量吗?

我可以在instanceof表达式中使用原始类型文字或类型变量吗?

我收到编译错误。有没有办法规避这些错误并在instanceof表达式中使用原始类型文字/类型变量?

基本上,我想得到保证,不,我永远无法做到这一点。