gpt4 book ai didi

java - 将对象强制转换为另一个类

转载 作者:行者123 更新时间:2023-12-01 13:40:44 25 4
gpt4 key购买 nike

我有三门课。

其中 currentsplit 被声明为静态并在 mid.java 中访问

DecDriver.java

public class DecDriver extends Configured implements Tool {
public static Split currentsplit=new Split();
public static void main(String[] args) throws Exception {
}
}

Split.java

import java.util.ArrayList;
import java.util.List;

public class Split{
public List attr_index;
public List attr_value;
double entophy;
String classLabel;
Split()
{
this.attr_index= new ArrayList<Integer>();
this.attr_value = new ArrayList<String>();
}
Split(List attr_index,List attr_value)
{
this.attr_index=attr_index;
this.attr_value=attr_value;
}
void add(Split obj)
{
this.add(obj);
}
}

Mid.java

DecDriver id = new DecDriver();
for(int count=0;count<size_split;count++)
{
index=(Integer) id.currentsplit.attr_index.get(count);
System.out.println("index : "+index);
attr_value=(String)id.currentsplit.attr_value.get(count);
System.out.println("attr_value : "+attr_value);
}

但我有一个场景,我应该将 currentsplit 对象写入 DecDriver 中的文件,并在 Mid.java 中访问该文件,然后继续。

我怎样才能做到这一点?我所做的是将 currentsplit 对象转换为 string 并使用 bufferedwriter 写入 file 中。

DecDriver.java

public class DecDriver extends Configured implements Tool {
public static Split currentsplit=new Split();
public static void main(String[] args) throws Exception {
String objtostring = currentsplit.toString();
//Buffered writer
sptbw.write(objtostring);
.
.
}

然后我尝试读取Mid中的文件并转换到Split对象。

Object s = null ;
String cursplitinfo;
//BufferedReader
while ((cursplitinfo = splitpathbw.readLine()) != null) {
s = cursplitinfo;
}

Split currentsplitobj = (Split) s;

DecDriver id = new DecDriver();
for(int count=0;count<size_split;count++)
{
index=(Integer) currentsplitobj.attr_index.get(count);
System.out.println("index : "+index);
attr_value=(String)currentsplitobj.attr_value.get(count);
System.out.println("attr_value : "+attr_value);
}

但是当我尝试运行我的程序时,它显示:

java.lang.Exception: java.lang.ClassCastException: java.lang.String cannot be cast to pck.Split

我做错了什么吗?

最佳答案

为什么不使用JAVA序列化将对象写入文件。
可以引用如何将对象写入文件 Here

示例:
将对象写入文件。

Split currentsplit=new Split();  

FileOutputStream fout=new FileOutputStream("f.txt");
ObjectOutputStream out=new ObjectOutputStream(fout);

out.writeObject(currentsplit);
out.flush();

从文件中读取对象。

ObjectInputStream in=new ObjectInputStream(new FileInputStream("f.txt"));  
Split s=(Split)in.readObject();

关于java - 将对象强制转换为另一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20811190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com