标签: instanceof

为什么将对象的原型设置为“Foo”不会使其成为“Foo的实例”?

我正在尝试Object.setPrototypeOf重新设置已转换为 JSON 并返回对象的对象的原型。然而,instanceof似乎并没有按照我预期的方式工作:

class Foo {}

const obj = {};
Object.setPrototypeOf(obj, Foo);
console.log(obj instanceof Foo);
Run Code Online (Sandbox Code Playgroud)

为什么会这样呢?据我所知,instanceof工作基于将给定对象的原型与引用的类进行比较。应该有不同的方法吗?

javascript prototype instanceof ecmascript-6

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

Vue3中如何检查一个对象是否是Vue组件?

我可以vue 2简单地只是

import Vue from "vue"
Run Code Online (Sandbox Code Playgroud)

然后执行以下操作

if (!(myComponent instanceof Vue)) return
Run Code Online (Sandbox Code Playgroud)

有办法做到吗Vue3

instanceof vue.js vuejs3

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

Object []如何克隆

Object[] o = new Object[]{};
System.out.println(o instanceof Cloneable);
Run Code Online (Sandbox Code Playgroud)

这表示为o/p.我不明白为什么?

java arrays instanceof cloneable

4
推荐指数
1
解决办法
912
查看次数

通过Collections.unmodifiable*已经用Collections.unmodifiable*包装的实例是多么低效?

我有一些计件工作由不同的自定义(源代码不可用)框架完成,这些框架可以传回Map实例.不幸的是,这些框架在返回的Map实例中并不一致,这些实例已用Collections.unmodifiableMap包装.为了确保在我的代码中更高程度的不变性(为了更容易的多线程使用),我在这些框架返回的任何内容上统一调用了Collections.unmodifiableMap.

Map<String, Record> immutableMap = framework.getRecordsByName();
//does this created a nested set of unmodifiableMap wrapper instances?
this.immutableField = Collections.unmodifiableMap(immutableMap);
.
.
.
Map<String, Record> maybeImmutableMap = framework.getRecordsByName();
//is there some means to get instanceof to work?
if (!(maybeImmutableMap instanceof Collections.UnmodifiableMap))
{
    this.immutableField = Collections.unmodifiableMap(maybeImmutableMap);
}
Run Code Online (Sandbox Code Playgroud)

我意识到在这部分设计中我可能会遇到性能问题.在某些情况下,我正在调用Collections.unmodifiableMap传递一个实例,该实例已经由同一个调用的框架包装.而且我的重新包装可能会在整个实例中引起额外的方法调用.

似乎使用"instanceof Collections.UnmodifiableMap"不起作用.如果我当前引用的Map实例需要被包装,我找不到任何检测方法(不包括在这种情况下不是选项的反射 - 方式太慢).

问题:

    A)Collections.unmodifiableMap()方法是否检查它是否传递了UnmodifiableMap的实例,如果是这样,只返回相同的引用(从而避免在调用方法之前检查)?
    B)为了主动避免接收修改异常,有没有办法查询Map实例(使用反射除外)来检测它是否可变(或不可变)?
    C)如果A的答案为否,那么JVM/HotSpot是否有一些效率可以消除调用多个方法跳转到核心实例的开销?

java collections unmodifiable instanceof map

4
推荐指数
2
解决办法
3061
查看次数

JavaScript instanceof:无法定义函数参数的实例

我还在学习JavaScript,阅读书籍,使用FireBug,进行实验.

我很惊讶并且坚持下面的事情.

有功能声明:

    var t = function (args){
            ...
    }
Run Code Online (Sandbox Code Playgroud)

假设它是varargs.

我称之为:

<body onload="t({to:100,from:0})">
Run Code Online (Sandbox Code Playgroud)

from通过调用可以获得参数值:

args.from
Run Code Online (Sandbox Code Playgroud)

结果typeof args.fromnumber
看起来很健康.
注意: number是小写的

我对什么是实例感兴趣args.from.
实际上,无法获得其实例值.
尝试:

args.from instanceof Number
args.from instanceof String
args.from instanceof Object
args.from instanceof Boolean
Run Code Online (Sandbox Code Playgroud)

它不是Number- 非常奇怪
它不是Object- 很奇怪
它不是String- 那没关系
它不是Boolean- 那没关系
它既不是null也不'undefined'- 看起来不错.

它是什么?

javascript arguments function typeof instanceof

4
推荐指数
1
解决办法
832
查看次数

Java:在列表中添加或删除元素时避免使用'instanceof'

我在创造一个游戏.游戏有GameMap.为了跟踪GameMap上的事物状态,我想为每个事物创建ArrayLists.问题是,我不想创建单独的方法来添加或从每种类型的ArrayList中删除项目.我是新手,所以当然我能想到的第一件事是'instanceof'运算符.

请记住,目前,GameMap是一个离散类,而不是接口或抽象类.目的是在初始化游戏时实例化GameMap对象.

public class GameMap {

//GameMap has a name
private String mapName;

//GameMap has rooms
private ArrayList<Room> roomsOnMap;

//GameMap has items
private ArrayList<Item> itemsOnMap;

//GameMap has people
private ArrayList<Person> peopleOnMap;

//construct GameMap with rooms, items, and people
private GameMap(String mapName, ArrayList someRooms, ArrayList someItems, ArrayList somePeople)
{
    this.mapName = mapName;
    this.roomsOnMap = someRooms;
    this.itemsOnMap = someItems;
    this.peopleOnMap = somePeople;
}

public void addObject(Object o)
{
    //HOW DO I AVOID THIS?
    if(o instanceof Room)
    {
        roomsOnMap.add((Room) o);
    }
    else if(o …
Run Code Online (Sandbox Code Playgroud)

java arraylist instanceof

4
推荐指数
1
解决办法
765
查看次数

instanceof用于多种类型

我正在为MiniJava编写TypeChecker,而ExpOp需要检查两个输入的表达式是否都是Integer使用加号,减号,次数.

如何在if包含表达式的语句中编写一行代码,并检查它们是否都是(instanceof)的实例Integer

这就是我现在拥有的:

n.e1.accept(this) n.e2.accept(this) instanceof Integer
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助.

java integer instanceof

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

如何检查父类的实例?

在PHP中有两个类: class parentTroll {...}class troll extends parentTroll {...}

然后有一个对象 $troll = new troll();

怎么检查$troll instanceof parentTroll?此行现在返回false.

php instanceof

4
推荐指数
1
解决办法
5474
查看次数

为什么AS告诉我`(ob instanceof Button)`总是`false`?

为什么AS告诉我这(ob instanceof Button)总是false

此外,它给了"暗示" 'Cast to Button'.如果我接受提示,没有任何改变.

  void setTextSizeForField(int textSize, Object ... obs){
    for(Object ob: obs)
           if (ob instanceof EditText) ((EditText) ob).setTextSize ( textSize );
      else if (ob instanceof TextView) ((TextView) ob).setTextSize ( textSize );
      else if (ob instanceof Button)   ((Button)   ob).setTextSize ( textSize/10 );
  }
Run Code Online (Sandbox Code Playgroud)

消息的全文是:

Condition 'ob instanceof Button' is always 'false' less... (Ctrl+F1) 
This inspection analyzes method control and data flow to report possible conditions that are
 always true or false, expressions …
Run Code Online (Sandbox Code Playgroud)

instanceof android-studio

4
推荐指数
1
解决办法
782
查看次数

java中的instanceOf运算符

为什么Java中的这行代码不能打印消息?

System.out.println("a instanceof String:"+a instanceof String);
Run Code Online (Sandbox Code Playgroud)

为什么它只是打印真实而不是之前的字符串???

java instanceof

4
推荐指数
1
解决办法
240
查看次数