gpt4 book ai didi

java - stringTokenizer java 的克隆值

转载 作者:搜寻专家 更新时间:2023-11-01 03:18:16 25 4
gpt4 key购买 nike

我设置了一个 stringTokenizer,我想为另一个进程准备一份它的副本。有没有办法做到这一点?我的代码:

StringTokenizer itr = new StringTokenizer(theBigString);
itr.nextToken();
// My goal is to get a new StringTokenizer after the first token
//StringTokenizer itrCopy = new StringTokenizer(itr.toString());

有什么办法可以做到这一点吗?

最佳答案

这可能无法准确回答您的问题,但引用 StringTokenizer docs ,

StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.

不幸的是,这并没有具体说明为什么不鼓励使用它。原因是,无论如何您都必须将整个字符串加载到内存中才能使用 StringTokenizer,这意味着您的内存并没有受到严重限制,所以为什么不使用 split ?今天使用 StringTokenizer 的唯一原因几乎是当您将 returnDelims 设置为 true(如果不同的分隔符对您意味着不同的事情),因为您可以不要使用 split 来做到这一点。

如果您仍有理由使用 StringTokenizer,那么您的问题就很严重了。 StringTokenizer 不是Serializable,您不能从它继承并使其成为Serializable,因为它没有 void 构造函数。这意味着您唯一的方法是使用反射,可能与某些第 3 方序列化库一起使用,可能将其序列化为 XML/JSON。但是缺少默认构造函数也可能会限制您在此处的选择。反序列化时,您必须先使用一些虚拟字符串构造分词器,然后通过反射设置其字段。

关于java - stringTokenizer java 的克隆值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40098187/

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