2017-07-29 22 views
-3
public class veritabanı { 
static Connection baglanti; 


public static String signupCar(araba araba) throws ParseException{  
try{ 
    Connection baglanti=openConnection(); 

我使用的是NetBeans IDE,我得到'本地變量隱藏字段'警告。在java中隱藏字段的局部變量

我該如何解決這個問題?

+3

重命名其中之一 – efekctive

+0

這通常是其他地方的錯誤的標誌。你應該重命名其中的一個。 –

回答

0

這只是對IDE的警告,提醒您不要忘記字段和本地變量都具有相同的名稱。
有時,爲局部變量和字段設置不同的名稱是可取的。
有時候,這不是必需的。
這更多是編碼風格的問題。

如果使用相同名稱保留這兩個變量,則不要忘記在字段前加上類名稱:veritabanı.baglanti

0

錯誤非常簡單 - 您在方法中的局部變量和靜態字段上使用相同的名稱。
所以這個方法隱藏了字段。

解決 - 只需將其重命名

0

之一,你有兩個東西叫做baglanti

如果你真的想要兩個,然後重命名其中的一個:

public class veritabanı { 
static Connection baglanti; 

public static String signupCar(araba araba) throws ParseException{  
try{ 
    Connection connection=openConnection(); 

如果你只想要一個,那麼可以刪除類變量:

public class veritabanı { 

public static String signupCar(araba araba) throws ParseException{  
try{ 
    Connection baglanti=openConnection(); 

或使用類變量,不定義第二個:

public class veritabanı { 
static Connection baglanti; 

public static String signupCar(araba araba) throws ParseException{  
try{ 
    baglanti=openConnection(); 
0

我懷疑你真正想要做的是有靜態方法,signupCar將由openConnection創建的Connection對象指定爲baglanti。如果是這樣的話,不要再申報baglanti,只是爲它分配:

public static String signupCar(araba araba) throws ParseException{  
try{ 
    baglanti=openConnection(); 
0

您已經baglanti的聲明 - static Connection baglanti;

因此,只要使用它像baglanti = openConnection();

或者創建自己的Connection baglanti2 = openConection;

0

你所做的是在與另一個名稱相同的方法中創建一個新的局部變量。這可能是可取的,但有時它是不想要。如果你的意思是訪問類變量,使用:

public class veritabanı { 
static Connection baglanti; 

public static String signupCar(araba araba) throws ParseException{  
try{ 
baglanti=openConnection(); //Here 
} 

如果你的意思是,使一個新的變量,上線使用不同的名稱標明「這裏」

0

每個人都告訴你重命名他們中的一個,因爲這是最好的做法如果你想要兩個單獨的東西。 (如果您不這樣做,只需在方法中刪除該類型,以便使用現有字段而不是聲明新的本地。)

只是爲了完整性:您沒有已將重命名爲其中一個,這只是大部分時間做的最好的事情。爲了區分它們而不是重命名它們之一,限定字段引用。在該方法中:

  • veritabanı.baglanti指現場
  • baglanti指的是本地的。

但是:最好的做法通常只是重命名其中的一個。 (然後限定區域基準反正,或者不這樣做,根據您的風格指南)

0

可變baglanti在你的函數是一個局部變量和baglanti在你的類的字段,編譯器告訴你 - 嘿,隊友,請注意,您的函數中有一個變量,其名稱與您在該類中的某個字段具有相同的名稱,並且只要該函數中的代碼被執行,它就會被用來代替您的類字段。

0

如果內部變量名稱相同,則其內部變量的優先級高於全局變量。 在這種情況下,我們可以更改任一變量的名稱或更改全局變量的範圍。

+0

請首先看到[如何回答](https://stackoverflow.com/help/how-to-answer) –