返回信息流本人小白一枚,附件中代码是直接拷贝过来的,不知为何出错?jdk版本是8.
附件(998.2KB)
附件(202KB)
这是一条镜像帖。来源:北邮人论坛 / java / #37053同步于 2014/12/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
小白求解
whwjez
2014/12/14镜像同步24 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
能不能举个简单的例子?什么叫匿名类?源代码在附件中的DownUtil.java和MultiThreadDown.java中
【 在 lixing 的大作中提到: 】
: new Thread()的括号里面跟的是一个类的引用,如果是匿名内部类,则需要定义该类。lz这个貌似是没有定义类啊。
附件(66KB) 17.2.rar
【 在 whwjez 的大作中提到: 】
: 能不能举个简单的例子?什么叫匿名类?源代码在附件中的DownUtil.java和MultiThreadDown.java中
: [upload=1][/upload]
new Thread() {
public void run() {
while(downUtil.getCompleteRate() < 1)
{
// 每隔0.1秒查询一次任务的完成进度,
// GUI程序中可根据该进度来绘制进度条
System.out.println("已完成:"
+ downUtil.getCompleteRate());
try
{
Thread.sleep(1000);
}
catch (Exception ex){}
}
}
}.start();
有兴趣的话,可以看看源码,这个源码还是蛮有意思的,是《疯狂Java》17.2的代码,想实现一个多线程下载。
【 在 lixing 的大作中提到: 】
: 另外,看这个类貌似想实现多线程,用Thread是不可行的,用Runnable接口吧。
【 在 whwjez 的大作中提到: 】
: 有兴趣的话,可以看看源码,这个源码还是蛮有意思的,是《疯狂Java》17.2的代码,想实现一个多线程下载。
如果要实现多线程,那代码就不能像上面这么写了,上面的方法实现不了多线程。
需要使用Runnable接口。
new Thread(new Runnable() {
@Override
public void run() {
while (downUtil.getCompleteRate() < 1) {
// 每隔0.1秒查询一次任务的完成进度,
// GUI程序中可根据该进度来绘制进度条
System.out.println("已完成:"
+ downUtil.getCompleteRate());
try {
Thread.sleep(1000);
} catch (Exception ex) {
}
}
}
}).start();
楼主用的是Eclipse Luna吗?之前的版本不支持java 1.8
右键点击你的project图标,打开preference看看,有一个compliance level,请确认选了1.8。
【 在 lixing 的大作中提到: 】
: new Thread()的括号里面跟的是一个类的引用,如果是匿名内部类,则需要定义该类。lz这个貌似是没有定义类啊。
这是Java 1.8的lambda表达式。如果runnable接口里只有一个方法,那么可以用这种写法。