可以在java中强制高级转换类型吗?查看示例.
public class Animal{}
public class Dog extends Animal{}
Dog dog = new Dog();
Animal test = dog;
Run Code Online (Sandbox Code Playgroud)
我有什么:(test instanceof Dog)并且(test instanceof Animal)返回真实.
我想要的是:(test instanceof Dog)== false和(test instanceof Animal)== true
有一种方法可以强制测试只是一个动物吗?或者唯一的方法是创建动物传递狗的构造函数?我试图避免创建一个构造函数,因为我有一个复杂的对象,有很多getter/setter.
谢谢.
我不知道为什么你会关心一个物体是一个Animal但不是一个Dog,毕竟,一个Dog是一个Animal.任何适用于a的东西Dog都应适用于a Animal,否则就会出现设计问题.
但是如果你必须确定,那么调用getClass()(定义Object)来获取Class对象,然后将其与之进行比较Animal.class.
if (Animal.class == test.getClass())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1967 次 |
| 最近记录: |