在我的Java代码中保存一些数据时遇到问题。
我有三种不同的方法可以完成各自的任务。我从Php客户端使用Hessian调用这些方法。我不是一次称这三种方法。每个方法都会创建一些数组(包含字符串,int,float),有时我必须使用我之前的方法在本方法中调用创建的那些数组。
有什么方法可以保存那些数组(不在数据库中),可能是一个列表或数组,它不会刷新内存,除非我说洙..
示例
public class top{
Method1(){
String[] stringA = {some string data} ;
}
Method2(){
for(string data : stringA){
I use array of stringA from method1 without calling the whole method1. I need that string value to be save untill i flush it out.
}
}
}
这不是一个完整的代码..甚至不是代码。我只想解释这个问题。
请帮助。
感谢。
答案 0 :(得分:2)
如何将stringA定义为实例变量而不是局部变量?
答案 1 :(得分:1)
您可以将stringA设置为您班级的本地变量。
public class SomeClass {
private String[] stringA;
public void method1(){
stingA = "something";
}
public void method2(){
for(string data : stringA){
I use array of stringA from method1 which out calling the whole method. I need that string value to be save untill i flush it out.
}
}
您也可以使用ArrayList而不是数组作为字符串。这将允许您动态增长列表。如果你想“刷新”它,你可以调用clear()方法
ArrayList<String> myArr = new ArrayList<String>();
myArr.add("string1");
myArr.add("string2");
//clear the ArrayList
myArr.clear()
答案 2 :(得分:0)
如果你想在方法调用之间记住值,它应该是一个实例(类
等级)变量。如果您的是Web应用程序,则可以使用session
变量。
[你的代码不完整,实际上它甚至没有。发布完整代码可帮助有人尝试回答以正确理解问题。]
答案 3 :(得分:0)
我对hessian一无所知,但看起来处理调用的组件是无状态的。 在这种情况下,我同意Nivas的回答。
但是,如果您需要使用存储的额外功能(搜索等)并且需要花费一些硬件资源,您还可以使用具有内存数据库存储的HSQLDB(非常快)。