Class clasz = Constants.Constants_A.getDeclaringClass();
Constants con = Enum.valueOf(Constants.class, "Constants_A");
Constants con2 = (Constants)Enum.valueOf(clasz, "Constants_B");
我用Constants.class可以编译通过。用Clazz接收一个Constants枚举类型的Class对象放进去,就编译不通过,必须要向下转型为Constants才能编译通过是为什么??
→_→ 因为这个传参本来就是想知道你这数据是什么类型,你传Class等于没传,就像你养了一只宠物,人家问你什么宠物,你说就是宠物呀,所以它是猫?是狗?是鱼?别人怎么知道
Class<Constants> clasz = Constants.Constants_A.getDeclaringClass();
需要声明类型编译器才知道
语法和语义问题,建议参考java api文档。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!