标签: instanceof

为什么在一个instanceOf后施放?

在下面的示例中(来自我的coursepack),我们希望为Square实例c1提供一些其他对象的引用p1,但前提是这两个对象是兼容的类型.

if (p1 instanceof Square) {c1 = (Square) p1;}
Run Code Online (Sandbox Code Playgroud)

我在这里不明白的是,我们首先检查p1确实是一个Square,然后我们仍然施展它.如果是Square,为什么演员?

我怀疑答案在于明显和实际类型之间的区别,但我仍然感到困惑......

编辑:
编译器将如何处理:

if (p1 instanceof Square) {c1 = p1;}
Run Code Online (Sandbox Code Playgroud)

Edit2:
问题是instanceof检查实际类型而不是表观类型?然后演员改变了表观类型?

谢谢,

JDelage

java polymorphism instanceof

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

"instanceof Void"总是返回false吗?

这种方法能true以某种方式返回吗?

public static <T> boolean isVoid(T t)
{
    return t instanceof Void;
}
Run Code Online (Sandbox Code Playgroud)

java generics instanceof void

23
推荐指数
2
解决办法
5897
查看次数

Object.create和prototype链的等效实例

考虑这样一个带有原型链的对象:

var A = {};
var B = Object.create(A);
var C = Object.create(B);
Run Code Online (Sandbox Code Playgroud)

如果C在其原型链中有A,如何检查运行时?

instanceof 不合适,因为它的设计与构造函数一起使用,我在这里没有使用它.

javascript instanceof object-create

23
推荐指数
1
解决办法
2773
查看次数

Java - 是否有像instanceof这样的"子类"?

我重写了equals()方法,我需要知道对象是否是Event的子类的实例(Event是超类).我想要像"obj subclassof Event"这样的东西.怎么做到这一点?

提前致谢!

java equals subclass instanceof

22
推荐指数
3
解决办法
3万
查看次数

Java实例与更改对象

我需要一个方法,我可以传递一个参数,我假设它是一个类(不确定),在该方法中,instanceof将用于检查x是否是传递的类的实例.

我该怎么做?我尝试了一些但没有用的东西.

java dynamic instanceof

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

在Java中捕获instanceof

在我的应用程序中,我有一个2d实体数组来表示网格.网格中的每个位置都可以为空或由实体占用(在这种情况下,它只是一个人或墙).现在我instanceof用来检查一个实体是一个人还是一堵墙.

我正在考虑为每个实体提供一个方法,该方法返回一个enum说明其类型的方法,即墙实体将返回EntityType.WALL.我想知道这是否是最好的想法,删除使用instanceofinstanceof适合在这种情况下?

java enums instanceof

22
推荐指数
3
解决办法
1617
查看次数

抛出并捕获异常,或使用instanceof?

我在变量中有一个异常(没有抛出).

什么是最好的选择?

Exception exception = someObj.getExcp();
try {
    throw exception;
} catch (ExceptionExample1 e) {
    e.getSomeCustomViolations();
} catch (ExceptionExample2 e) {
    e.getSomeOtherCustomViolations(); 
}
Run Code Online (Sandbox Code Playgroud)

要么

Exception exception = someObj.getExcp();
if (exception instanceof ExceptionExample1) {
    exception.getSomeCustomViolations();
} else if (exception instanceof ExceptionExample2) {
    exception.getSomeOtherCustomViolations();
}
Run Code Online (Sandbox Code Playgroud)

java performance exception instanceof throws

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

在PHP中按类(instanceof)切换

可以if( .. instanceof ...), elseif(... instanceof ...), ... 用开关替换块吗?

例如:

<?php
$class = ..... //some class

if($class instanceof SomeClass) {
    //do something
} elseif($class instanceof SomeAnotherClass) {
    //do something else
}
Run Code Online (Sandbox Code Playgroud)

php instanceof switch-statement

21
推荐指数
3
解决办法
8435
查看次数

为什么instanceof不能使用Generic?

可能重复:
Java:Instanceof和Generics

我正在尝试编写一个将通用List转换为特定类型List的函数.找到下面的代码

public <T>List<T> castCollection(List srcList, Class<T> clas){
    List<T> list =new ArrayList<T>();
    for (Object obj : srcList) {
       if(obj instanceof T){
            ...
       }
    }
    return list;
}
Run Code Online (Sandbox Code Playgroud)

obj instanceof T显示编译错误 -

无法对类型参数T执行instanceof检查.请改为使用其擦除对象>,因为将在运行时擦除其他泛型类型信息.

任何澄清或获得预期结果的方法?

提前致谢.:)

java generics instanceof typeerror

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

在Kotlin中获取变量的类型

如何在Kotlin中找到变量类型?在Java中有instanceof,但Kotlin不存在:

val properties = System.getProperties() // Which type?
Run Code Online (Sandbox Code Playgroud)

instanceof kotlin

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