Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaSE1.3,不能使用泛型。我的存储/检索自定义对象的解决方案可以吗?_Java_Casting_Arraylist - Fatal编程技术网

JavaSE1.3,不能使用泛型。我的存储/检索自定义对象的解决方案可以吗?

JavaSE1.3,不能使用泛型。我的存储/检索自定义对象的解决方案可以吗?,java,casting,arraylist,Java,Casting,Arraylist,我有一个名为Log的自定义类。我无法创建日志的arraylist,因为我无法使用泛型。因此,我创建了一个标准的arraylist(类型对象),并将我所有的“日志”提交给它。然后,当稍后迭代arraylist时,我只是将“outcoming”对象转换为日志。i、 e Log log = (Log) it.next(); 我不确定这是否有效。。。如果这是最好的主意,即使是这样。非常感谢您的反馈 是的,它会起作用 为了更安全,您可以使用运算符检查对象是否为Log类型 前 如果只放入了Log对象,则只

我有一个名为Log的自定义类。我无法创建日志的arraylist,因为我无法使用泛型。因此,我创建了一个标准的arraylist(类型对象),并将我所有的“日志”提交给它。然后,当稍后迭代arraylist时,我只是将“outcoming”对象转换为日志。i、 e

Log log = (Log) it.next();
我不确定这是否有效。。。如果这是最好的主意,即使是这样。非常感谢您的反馈

是的,它会起作用

为了更安全,您可以使用运算符检查对象是否为
Log
类型


如果只放入了
Log
对象,则只能返回
Log
对象。(是的,这就是前泛型Java的工作原理。遗憾的是目标是1.3…)首先,我对你有感觉(使用Java1.3)。其次,是的,只要迭代器中的对象包含
Log
对象或可以强制转换为
Log
的对象,它就可以工作。首先使用
Object
,然后使用
instanceOf
来确定执行强制转换是否安全,这可能是一种节省,但如果不安全,则可以。啊,带回(不好的)回忆;)@MadProgrammer您是非常正确的,它的最佳实践是,在使用instanceOf方法进行类型转换之前检查对象更安全。用户1436117我认为您应该尝试移动jdk 5或更高版本。我不确定这样做是否更安全-它应该很快可怕地死去。就像演员例外一样。如果你想在它崩溃时做些什么,那么最好在异常情况下使用异常处理。如果通过设计可以添加几种不同类型的元素,我只会使用
instanceof
。。
Object obj = it.next();
if( obj instanceof Log){
    Log log = (Log) obj;
    // Do something
} else {
    //Log a warning or error message
}