
java中如何实现动态强转?
java中如何实现动态强转?比如说我在一个集合里面用存放的是Object类型,但在集合中的有猫和狗,由于父类没有我要调用的子类方法,我在for循环的时候需要动态的判断当前...
java中如何实现动态强转?
比如说我在一个集合里面用存放的是Object类型,但在集合中的有猫和狗,由于父类没有我要调用的子类方法,我在for循环的时候需要动态的判断当前对象的实际类型并加以强转,这该如何实现呢? 展开
比如说我在一个集合里面用存放的是Object类型,但在集合中的有猫和狗,由于父类没有我要调用的子类方法,我在for循环的时候需要动态的判断当前对象的实际类型并加以强转,这该如何实现呢? 展开
展开全部
public class Dog(){}
public class Cat(){}
public class Demo()
{
public static void main(String[] args)
{
Dog d = new Dog();
Cat c = new Cat();
List<Object> list = new ArrayList<Object>();
list.add(d);
list.add(c);
for (int i = 0; i < list.size(); i++)
{
if(list.get(i) instanceof Dog)
{
System.out.println("这是一个dog类型");
}
}
}
}
更多追问追答
追问
No,我的意思是用类似getClass()这样的方法获取对象的实际类型,然后通过获取的实际类型,在进行准确强转,这个可以实现吗?
追答
你是指Class.forName这个方式?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java不需要你强制转化的,你只要把子类去继承父类,实现自己的类,然后设置一个方法,它的形参就是父类,在这个方法中,可以直接调用子类的方法,并且在使用这个方法的时候把子类传递进来
追问
我现在就想知道怎么动态强转啊,有办法实现吗?任何方式都行
追答
object dog 传递参数就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你为什么要将对象存到Object的类型里头,应该存到Animal里头,然后Animal(为父类或者接口,这里父类更合适)里头定义一个方法,直接调用,就能够动态绑定的。
追问
我现在就想知道怎么动态强转啊,有办法实现吗?任何方式都行
追答
这样写了,就不需要转换了,Java动态绑定,会自动运行子类的方法。这叫多态。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询