import java.util.*;public class TreeSetTest{
private Set<Integer> tset = new TreeSet<Integer>();
public TreeSetTest(){
tset = null;
}
public void insert(int num){
tset.add(num);
}
public void show(){
for(int n:tset)
System.out.print(n+" ");
}
public static void main(String...args){
TreeSetTest t = new TreeSetTest();
t.insert(5);
t.insert(4);
t.insert(9);
t.insert(6);
t.insert(1);
t.show();
}
}
运行结果为Exception in thread "main" java.lang.NullPointerException
at TreeSetTest.insert(TreeSetTest.java:10)
at TreeSetTest.main(TreeSetTest.java:20)
为什么会这样呢?
private Set<Integer> tset = new TreeSet<Integer>();
public TreeSetTest(){
tset = null;
}
public void insert(int num){
tset.add(num);
}
public void show(){
for(int n:tset)
System.out.print(n+" ");
}
public static void main(String...args){
TreeSetTest t = new TreeSetTest();
t.insert(5);
t.insert(4);
t.insert(9);
t.insert(6);
t.insert(1);
t.show();
}
}
运行结果为Exception in thread "main" java.lang.NullPointerException
at TreeSetTest.insert(TreeSetTest.java:10)
at TreeSetTest.main(TreeSetTest.java:20)
为什么会这样呢?
解决方案 »
- 问题
- 求 java递归实现树结构,急,在线等。
- Servlet 接收请求如何以秒为单位进行计数 ,怎么实现?(求教高手)
- 怎么判断两个BufferedImage里面的内容是一样的了,也就是怎么判断两张图片是一样的。
- 紧急求助在网页中如何显示用java编写的applet
- [解释]Profile 在下面几个场合中怎么翻译?怎么理解?
- 高分求b/s结构的解决方案
- jbuilder7,8,9我都遇到的一个问题,关于编译
- Root exception is java.net.MalformedURLException: no protocol: iiop//localhost:1
- JAVA中实现一个接口的问题
- 组件JScrollPane ,接口 Scrollable 的问题 ,请教 Swing 高手
- TOMCAT 解压WAR包 只能解析成 tldCache.ser??
private Set<Integer> tset; public TreeSetTest() {
tset = new TreeSet<Integer>();
} public void insert(int num) {
tset.add(num);
} public void show() {
for (int n : tset)
System.out.print(n + " ");
} public static void main(String... args) {
TreeSetTest t = new TreeSetTest();
t.insert(5);
t.insert(4);
t.insert(9);
t.insert(6);
t.insert(1);
t.show();
}
}
import java.util.Set;
import java.util.TreeSet;public class TreeSetTest {
private Set<Integer> tset;
public TreeSetTest() {
tset = new TreeSet<Integer>();
} public void insert(int num) {
tset.add(num);
} public void show() {
for (int n : tset)
System.out.print(n + " ");
} public static void main(String... args) {
TreeSetTest t = new TreeSetTest();
t.insert(5);
t.insert(4);
t.insert(9);
t.insert(6);
t.insert(1);
t.show();
}
}
这种用法第一次见~还请lz解释下
tset = null; //这句去掉
}
tset = null;
}
你把实例化过的对象又设为null,当然会报错
public TreeSetTest(){
}这样就行
实例化了不也是null么?我让test=null了,也没有引用怎么会报错呢?
//你在构造方法中给tset赋值为null,如然后在insert方法中用到了tset.add即为null.add当然报空指针错啦
当一个类要被构造成一个对象的时候,即被new,加载其成员部分,依次为成员变量(即非静态变量)、非静态初始化块、非静态方法、最后才是构造器。
所以,本来tset变量本来有值的,现在,你在构造方法中,要把它设置为空的