Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查对象是否实现了接口?_Java_Oop_Interface - Fatal编程技术网

Java 如何检查对象是否实现了接口?

Java 如何检查对象是否实现了接口?,java,oop,interface,Java,Oop,Interface,如何检查某个类是否实现了接口? 当有: Character.Gorgon gor=新字符.Gorgon() 如何检查gor是否实现Monster接口 public interface Monster { public int getLevel(); public int level = 1; } public class Character { public static class Gorgon extends Character implements Monst

如何检查某个类是否实现了接口? 当有:

Character.Gorgon gor=新字符.Gorgon()

如何检查
gor
是否实现
Monster
接口

public interface Monster {

    public int getLevel();

    public int level = 1;
}

public class Character {
    public static class Gorgon extends Character implements Monster {
        public int level;
        @Override
        public int getLevel() { return level; }

        public Gorgon() {
            type = "Gorgon";
        }
    }
}

方法
getLevel()
是否在
Gorgon
中被正确重写,因此它可以返回新创建的
gor
level

Character.Gorgon gor = new Character.Gorgon();
那就做吧

gor instanceof Monster
对于类实例,请执行以下操作:

Class<?> clazz = Character.Gorgon.class;
Monster.class.isAssignableFrom(clazz);
Class clazz=Character.Gorgon.Class;
Monster.class.isAssignableFrom(clazz);
使用


如果您需要类似于
public void doSomething([Object implements Serializable])
的方法,您可以像这样键入它
public void doSomething(Serializable Serializable Object)
。现在,您可以将实现Serializable的任何对象传递给它,但使用
serializableObject
您只能从Serializable接口访问对象中实现的方法。

通常对于任何类的
接口和
立场

AnInterface.class.isAssignableFrom(anInstance.getClass());

我想您需要instanceof关键字。方法参数
public void doSomething([Object implements Serializable]param)
如何?正确的语法是什么?是的,
…isAssignableFrom()
,确定蛇发石的唯一方法是怪物。
AnInterface.class.isAssignableFrom(anInstance.getClass());