2016-05-23 37 views
-2
import java.util.Date; 
import java.text.SimpleDateFormat; 
class Test 
{ 
    public static void main(String args[]) 
    { 
    Date d; 
    SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy"); 
    try{ 
    d=sdf.parse("20-12-2016",0); 
    } 
    catch(Exception ex) 
    { 
     ex.printStackTrace(); 
    } 
    System.out.println(d); 
    } 
} 

錯誤:變量(Date對象)可能當我編譯這段代碼,我得到尚未初始化

錯誤:變量d可能尚未在

System.out.println(d); 

初始化,但我已經分配它使用解析函數的日期在

d=sdf.parse("20-12-2016",0); 
+0

請在發佈前徹底搜索Stack Overflow。 –

回答

-1

這些位置:

Date d; 
SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy"); 
try{ 
    d=sdf.parse("20-12-2016",0); 
} 
    catch(Exception ex){ 
    ex.printStackTrace(); 
} 
    System.out.println(d); 
} 

是有點危險的,因爲如果你嘗試捕捉不起作用,那麼你傳遞一個非初始化的對象作爲參數(打印未初始化的日期對象)

的IDE是聰明足以防止這樣的事情,這就是它抱怨的原因..

定義它時初始化值.. 一切都會好的。

+0

like Date d = new Date();? – nicky97

+0

是的,這可能是一個很好的初始值.... –

+0

這不是IDE,它是Java編譯器。這是一個名爲* definite assignment *的屬性。 –