问题描述
- 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下面那里吗?那有没有捕获有什么差别呢?小白提问麻烦各位大大了
解决方案
这个本身就是生成类对象的方法,只不过我们平时都是这样的A a = new A();这个对象的名字叫做a,而你使用的直接new Thread()这是匿名内部类的使用,是没有名字的(也就是没有引用)然后后面还有.start(),这是直接使用生成的对象的方法,建议你去看一下匿名内部类的使用. 使用了try{}catch(){},这样就是发生了异常,程序也不会崩溃,而会继续执行catch(){}之后的内容,如果你不使用的话,当程序发生一次,程序就会崩溃
解决方案二:
动态构造 Java 类的一种方法: ClassLoader 的设计 (4)
动态构造 Java 类的一种方法: javassist (3)
动态构造 Java 类的一种方法: javassist (1)
解决方案三:
新人请教,这段代码里有个new Thread();按照平时我们得让类继承Thread或者成为Runnable的借口才能创建线程类并重写run方法 是不是只要在方法里面就可以随意创建了
这是一个简写
new Thread() { }.start(); // 启动业务线程
相当于以下
MyThread mt=new MyThread();
mt.start()
解决方案四:
诺一生讲的很好了,关于你说的向上跳出不是很明白是什么意思。
解决方案五:
诺一生讲的很好,但是一般没有在方法内构造类这一说法,在类中构造匿名类倒是有
解决方案六:
这个本身就是生成类对象的方法,只不过我们平时都是这样的A a = new A();这个对象的名字叫做a,而你使用的直接new Thread()这是匿名内部类的使用,是没有名字的(也就是没有引用)然后后面还有.start(),这是直接使用生成的对象的方法,建议你去看一下匿名内部类的使用. 使用了try{}catch(){},这样就是发生了异常,程序也不会崩溃,而会继续执行catch(){}之后的内容,如果你不使用的话,当程序发生一次,程序就会崩溃