2 qolkjh15 qolkjh15 于 2015.07.23 09:42 提问

Java在方法中可以任意构造类吗?

protected void do_button_actionPerformed(final ActionEvent e) {
new Thread() { // 开辟一个新的线程执行费时业务
public void run() {
for (int i = 0; i < 10; i++) { // 循环添加10个列表选项
Runnable runnable = new Runnable() { // 创建Runnable对象
public void run() { // 在run方法中操作Swing界面
listData.add("选项" + listData.size());
list.setListData(listData);
}
};
EventQueue.invokeLater(runnable); // 在事件队列中执行Runnable对象
try {
Thread.sleep(1000); // 阻塞UI线程1秒
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
}
}.start(); // 启动业务线程
}

新人请教,这段代码里有个new Thread();按照平时我们得让类继承Thread或者成为Runnable的借口才能创建线程类并重写run方法     是不是只要在方法里面就可以随意创建了?顺便问下try{}catch{}的捕获方法向上跳出是什么意思,就是显示到esclipse下面那里吗?那有没有捕获有什么差别呢?小白提问麻烦各位大大了

6个回答

u012534908
u012534908   2015.07.23 09:51
已采纳

这个本身就是生成类对象的方法,只不过我们平时都是这样的A a = new A();这个对象的名字叫做a,而你使用的直接new Thread()这是匿名内部类的使用,是没有名字的(也就是没有引用)然后后面还有.start(),这是直接使用生成的对象的方法,建议你去看一下匿名内部类的使用. 使用了try{}catch(){},这样就是发生了异常,程序也不会崩溃,而会继续执行catch(){}之后的内容,如果你不使用的话,当程序发生一次,程序就会崩溃

CSDNXIAOD
CSDNXIAOD   2015.07.23 09:46

动态构造 Java 类的一种方法: ClassLoader 的设计 (4)
动态构造 Java 类的一种方法: javassist (3)
动态构造 Java 类的一种方法: javassist (1)
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

lzp_lrp
lzp_lrp   Ds   Rxr 2015.07.23 09:52

新人请教,这段代码里有个new Thread();按照平时我们得让类继承Thread或者成为Runnable的借口才能创建线程类并重写run方法 是不是只要在方法里面就可以随意创建了

这是一个简写

new Thread() { }.start(); // 启动业务线程

相当于以下
MyThread mt=new MyThread();

mt.start()

tongyi55555
tongyi55555   2015.07.23 10:58

诺一生讲的很好了,关于你说的向上跳出不是很明白是什么意思。

miracle_yao
miracle_yao   2015.07.24 09:51

诺一生讲的很好,但是一般没有在方法内构造类这一说法,在类中构造匿名类倒是有

sina_2831808769
sina_2831808769   Rxr 2015.07.25 13:48

这个本身就是生成类对象的方法,只不过我们平时都是这样的A a = new A();这个对象的名字叫做a,而你使用的直接new Thread()这是匿名内部类的使用,是没有名字的(也就是没有引用)然后后面还有.start(),这是直接使用生成的对象的方法,建议你去看一下匿名内部类的使用. 使用了try{}catch(){},这样就是发生了异常,程序也不会崩溃,而会继续执行catch(){}之后的内容,如果你不使用的话,当程序发生一次,程序就会崩溃

Csdn user default icon
上传中...
上传图片
插入图片