关于 java中的枚举类型

咖喱给给 发布于 2017/01/10 16:03
阅读 321
收藏 0
我有一个枚举类,这个类包含A,B两个对象 有共同的方法C();
我在外部调用了枚举类的A对象的C()方法.问: 我在C()方法中如何判断是A调用的而不是B呢?
加载中
0
叶飞飘渺
叶飞飘渺
方法C里面可以这样实现
C(){
    if(this.equals(valueOf("A"))){
        //A调用的
     }
}
0
kakai
kakai

引用来自“叶飞飘渺”的评论

方法C里面可以这样实现
C(){
    if(this.equals(valueOf("A"))){
        //A调用的
     }
}
正解!还有一种方法
C() {
    if(this instanceof A) {
        System.out.println("被A调用");
    } else if(this instanceof B) {
        System.out.println("被B调用");
    }
}



叶飞飘渺
叶飞飘渺
回复 @咖喱给给 : 是的,Enum 的equals的源码实现就是 == public final boolean equals(Object other) { return this==other; }
咖喱给给
回复 @叶飞飘渺 : 可以直接用this == 的方式判断
kakai
kakai
回复 @叶飞飘渺 : 嗯
叶飞飘渺
叶飞飘渺
instanceof 只能用于class 不能用于 enum
返回顶部
顶部