gpt4 book ai didi

java - 检查父类(super class)的智能方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:00:32 24 4
gpt4 key购买 nike

public  boolean isUserControled(){      
return action.getClass().getSuperclass().toString().equals("class logic.UserBehaviour");
}

我认为这段代码是不言自明的。有没有更聪明的方法来做到这一点?

谢谢

最佳答案

(action instanceof logic.UserBehaviour) 如果 action 是扩展 UserBehavior 类型的对象,则返回 true。

摘自 http://download.oracle.com/javase/tutorial/java/nutsandbolts/op2.html

The Type Comparison Operator instanceof

The instanceof operator compares an object to a specified type. You can use it to test if an object is an instance of a class, an instance of a subclass, or an instance of a class that implements a particular interface.

The following program, InstanceofDemo, defines a parent class (named Parent), a simple interface (named MyInterface), and a child class (named Child) that inherits from the parent and implements the interface.

class InstanceofDemo {
public static void main(String[] args) {

Parent obj1 = new Parent();
Parent obj2 = new Child();

System.out.println("obj1 instanceof Parent: " + (obj1 instanceof Parent));
System.out.println("obj1 instanceof Child: " + (obj1 instanceof Child));
System.out.println("obj1 instanceof MyInterface: " + (obj1 instanceof MyInterface));
System.out.println("obj2 instanceof Parent: " + (obj2 instanceof Parent));
System.out.println("obj2 instanceof Child: " + (obj2 instanceof Child));
System.out.println("obj2 instanceof MyInterface: " + (obj2 instanceof MyInterface));
}
}

class Parent{}
class Child extends Parent implements MyInterface{}
interface MyInterface{}

输出:

obj1 instanceof Parent: true
obj1 instanceof Child: false
obj1 instanceof MyInterface: false
obj2 instanceof Parent: true
obj2 instanceof Child: true
obj2 instanceof MyInterface: true

使用 instanceof 运算符时,请记住 null 不是任何对象的实例。

关于java - 检查父类(super class)的智能方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5523954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com