高手,您好:
这是我写的Java代码:
static String BeiJingMyMemRegTimePath = "D:"+File.separator+"MyDoc"+File.separator+"Dport"+File.separator+"BeiJing"+File.separator+"BeiJingSysMemRegTime.txt";
我定义了一个“String类型的我的操作系统中的地址路径”..
我的操作系统中对应于上述文件路径的文件“BeiJingSysMemRegTime.txt”,他的所处系统的路径位置如下:
文件中的内容是我记录用户的“授权码提交日期距离1970年1月1日的毫秒数”,我想用来做“授权时间到期”的验证功能的书写...
文件中的内容图片如下:
我在之后的代码里,写下了下面的“储存上面的Long型数据的"MyArrayList<Long>"对象数组的定义”......
代码如下:
static MyArrayList MyBJMemUserAuthorizeTime,MyBJCusUserAuthorizeTime,MyYCMemUserAuthorizeTime,MyYCCusUserAuthorizeTime = new MyArrayList(); 因为我想要要这里的“ArrayList”对象数组具备“能够与之后的一个长整型数字进行相加”的能力,并且,保留ArrayList对象数组的“能够向自己的实体添加"新的元素"的功能”,以让我的程序能够面向“不断注册到我的系统中的用户”“进行自己的存储的用户的该字段属性所表示的"用户数量"的运营客户数的扩展”的能力.
所以,我将上面的ArrayList数组,进行了“下面的MyArrayList”的重写...:
package d_port_package;import java.util.*;
public class MyArrayList{ private static ArrayList<Long> list = new ArrayList<Long>();
public void add(long value){
list.add(value);
} public void calculate(int index, long value){
if(index >= list.size()){
throw new RuntimeException("下标越界 " + index);
}
list.set(index, list.get(index) + value);
}}
但是,在我的程序里,在我运行了我的代码之后,我的MyEclipse编译器报出了下面的运行时错误:
编译器显示:
上图中的第89行代码,出现了“空指针异常”..
编译器的错误提示如下:
请问高手:
我的代码,错在什么地方...?
如何修改...?
谢谢高手的点拨!!
一百分奉上!!
一位日日夜夜向着理想奔跑的筑梦者
2013年10月7日星期一早晨6点40分javaArrayListJava SEJava sEJava 运行时错误
这是我写的Java代码:
static String BeiJingMyMemRegTimePath = "D:"+File.separator+"MyDoc"+File.separator+"Dport"+File.separator+"BeiJing"+File.separator+"BeiJingSysMemRegTime.txt";
我定义了一个“String类型的我的操作系统中的地址路径”..
我的操作系统中对应于上述文件路径的文件“BeiJingSysMemRegTime.txt”,他的所处系统的路径位置如下:
文件中的内容是我记录用户的“授权码提交日期距离1970年1月1日的毫秒数”,我想用来做“授权时间到期”的验证功能的书写...
文件中的内容图片如下:
我在之后的代码里,写下了下面的“储存上面的Long型数据的"MyArrayList<Long>"对象数组的定义”......
代码如下:
static MyArrayList MyBJMemUserAuthorizeTime,MyBJCusUserAuthorizeTime,MyYCMemUserAuthorizeTime,MyYCCusUserAuthorizeTime = new MyArrayList(); 因为我想要要这里的“ArrayList”对象数组具备“能够与之后的一个长整型数字进行相加”的能力,并且,保留ArrayList对象数组的“能够向自己的实体添加"新的元素"的功能”,以让我的程序能够面向“不断注册到我的系统中的用户”“进行自己的存储的用户的该字段属性所表示的"用户数量"的运营客户数的扩展”的能力.
所以,我将上面的ArrayList数组,进行了“下面的MyArrayList”的重写...:
package d_port_package;import java.util.*;
public class MyArrayList{ private static ArrayList<Long> list = new ArrayList<Long>();
public void add(long value){
list.add(value);
} public void calculate(int index, long value){
if(index >= list.size()){
throw new RuntimeException("下标越界 " + index);
}
list.set(index, list.get(index) + value);
}}
但是,在我的程序里,在我运行了我的代码之后,我的MyEclipse编译器报出了下面的运行时错误:
编译器显示:
上图中的第89行代码,出现了“空指针异常”..
编译器的错误提示如下:
请问高手:
我的代码,错在什么地方...?
如何修改...?
谢谢高手的点拨!!
一百分奉上!!
一位日日夜夜向着理想奔跑的筑梦者
2013年10月7日星期一早晨6点40分javaArrayListJava SEJava sEJava 运行时错误
(ReadTxt类)
package d_port_package;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
public class ReadTxt {
static ArrayList<String> logData = new ArrayList<String>();
static String text = null;
public static void read(String filePath) {
try {
FileReader input = new FileReader(filePath);
BufferedReader br = new BufferedReader(input);
while (( text = br.readLine()) != null) {
logData.add(text);
}
br.close();
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void readMemoryData(String data){
logData.add(data);
}
public static void readMemoryArrayData(String[] data){
int len = data.length;
for(int i = 0;i<len;i++){
logData.add(data[i]);
}
}
}
但是仔细看代码又感觉不可能。除非你给的代码或环境说明不全。(比如你当中有多线程情况)MyBJMemUserAuthorizeTime
ReadTxt
ReadTxt.logData
这些感觉都不可能为null。是在没办法你只有在89行前面吧
MyBJMemUserAuthorizeTime
ReadTxt
ReadTxt.logData
都打印出来看,确认是否为null。(sysout)ReadText.logData.get(i)这个比较麻烦。循环里面写一下
if( ReadText.logData.get(i)==null){System.out.println("爸爸我错了,我变成null了!!i:"+i) }