日期:2014-05-20  浏览次数:21028 次

关于ECLIPSE中的警告
本帖最后由 sanyawa 于 2012-11-18 11:36:27 编辑 1.Eclipse 中的警告一般是什么情况,也就是说问题大不大?


2. 下面这段代码中,红色地方警告说:应该以静态方式访问类型 Thread 中的静态方法 sleep(long);
请问怎么理解这个警告的意思,应该如何处理呢?
public class tmk2 extends Applet implements Runnable {
  //滚动的字符
    private String str="欢迎光临";
    //用于绘制界面的Graphics类对象
    private Graphics myGraphics;
    //字体队形
    private Font font;
    //图片用于绘制画面
    private Image myImg;
    private int x=0;
   private  Thread th;
.............
 public void start()
    {
        if(th == null)
        {
         th =  new Thread(this);
         th.start();
        }
     }
.............
  public  void run(){
        while(true)
        {
          //repaint方法,每次调用它都会调用都会引发update方法
           repaint();
           //当信息移动出窗口时从头开始
           if (x>getSize().width) 
           {
            x=0;
           }
           try
           {
              th.sleep(50);           }
           catch (InterruptedException e)
           {
            e.printStackTrace();
           }
        }      
     }
------最佳解决方案--------------------
现在不推荐使用Thread.sleep(1000);
使用 TimeUnit.SECONDS.sleep(1);
------其他解决方案--------------------
静态方法通过类调用,而不是通过类的实例调用。因为静态方法是类方法。  

eclipse的的警告懒得话可以无视。有洁癖的可以在消除掉。
------其他解决方案--------------------
TimeUnit的sleep方法直观。SECONDS.sleep(1),一看就是休眠1秒
------其他解决方案--------------------
建议重视每一个警告。如果确定没问题可以suppresswarning。
------其他解决方案--------------------
引用:
现在不推荐使用Thread.sleep(1000);
使用 TimeUnit.SECONDS.sleep(1);


谢谢推荐,但是还是没有回答我的第二个问题,为何报警呢?

还有你推荐的理由、