堆栈Java类型转换。对象指向自定义类的实例
有没有一种从Java进行类型转换的方法。对象指向自定义定义类的实例
本质上,我创建了一个堆栈(java.util.Stack),并将my_类类型的实例推入其中。但是当我从堆栈中弹出时,我收到一个Java类型的实例。lang.Object
我是否必须在我的_类中创建一个构造函数,该构造函数可以从Java创建我的_类实例。朗,反对吗
泛型是最好的选择。我对java很陌生,并且没有实现泛型(与C++ STL一样),我一直在做很多类型化,比如-
转换为整数:新整数((Java.lang.Object)。toString())。intValue()
我猜那些日子已经过去了:)谢谢你让我的生活变得轻松
# 1 楼答案
这是一个严肃的问题吗
My_class myClassObj=(My_class)obj
事实上,就像我所知道的任何其他语言一样。 还是我误解了你的问题
编辑
当然,您也可以使用通用堆栈。 只需实际阅读问题的标题;)
# 2 楼答案
可以按如下方式投射对象:
但是,如果将堆栈定义为
my_class
的堆栈,则无需费心进行强制转换:# 3 楼答案
不,你需要仔细阅读Java Generics
# 4 楼答案
关于接受的答复:
“
MyObject someObj = ...; Stack myStack = new Stack(); myStack.push(someObj); someObj = (MyObject) myStack.pop();
”如前所述,是的,
someObj = (MyObject) myStack.pop();
不是最安全的。但是,如果仍然希望强制转换对象,请使用instanceof
例:
Object obj = myStack.pop(); MyObject someObj = null; if( obj instanceof MyObject ) someObj = (MyObject) obj;
# 5 楼答案
您应该使用泛型编写代码。例如,而不是
您可以让堆栈知道以下对象的类型:
如果出于任何原因这不可行,您可以强制执行:
# 6 楼答案
=========================================================================================================