public class veritabanı {
static Connection baglanti;
public static String signupCar(araba araba) throws ParseException{
try{
Connection baglanti=openConnection();
我使用的是NetBeans IDE,我得到'本地變量隱藏字段'警告。在java中隱藏字段的局部變量
我該如何解決這個問題?
public class veritabanı {
static Connection baglanti;
public static String signupCar(araba araba) throws ParseException{
try{
Connection baglanti=openConnection();
我使用的是NetBeans IDE,我得到'本地變量隱藏字段'警告。在java中隱藏字段的局部變量
我該如何解決這個問題?
這只是對IDE的警告,提醒您不要忘記字段和本地變量都具有相同的名稱。
有時,爲局部變量和字段設置不同的名稱是可取的。
有時候,這不是必需的。
這更多是編碼風格的問題。
如果使用相同名稱保留這兩個變量,則不要忘記在字段前加上類名稱:veritabanı.baglanti
。
錯誤非常簡單 - 您在方法中的局部變量和靜態字段上使用相同的名稱。
所以這個方法隱藏了字段。
解決 - 只需將其重命名
之一,你有兩個東西叫做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();
我懷疑你真正想要做的是有靜態方法,signupCar
將由openConnection
創建的Connection
對象指定爲baglanti
。如果是這樣的話,不要再申報baglanti
,只是爲它分配:
public static String signupCar(araba araba) throws ParseException{
try{
baglanti=openConnection();
您已經baglanti的聲明 - static Connection baglanti;
因此,只要使用它像baglanti = openConnection();
或者創建自己的Connection baglanti2 = openConection;
你所做的是在與另一個名稱相同的方法中創建一個新的局部變量。這可能是可取的,但有時它是不想要。如果你的意思是訪問類變量,使用:
public class veritabanı {
static Connection baglanti;
public static String signupCar(araba araba) throws ParseException{
try{
baglanti=openConnection(); //Here
}
如果你的意思是,使一個新的變量,上線使用不同的名稱標明「這裏」
每個人都告訴你重命名他們中的一個,因爲這是最好的做法如果你想要兩個單獨的東西。 (如果您不這樣做,只需在方法中刪除該類型,以便使用現有字段而不是聲明新的本地。)
只是爲了完整性:您沒有已將重命名爲其中一個,這只是大部分時間做的最好的事情。爲了區分它們而不是重命名它們之一,限定字段引用。在該方法中:
veritabanı.baglanti
指現場baglanti
指的是本地的。但是:最好的做法通常只是重命名其中的一個。 (然後限定區域基準反正,或者不這樣做,根據您的風格指南)
可變baglanti在你的函數是一個局部變量和baglanti在你的類的字段,編譯器告訴你 - 嘿,隊友,請注意,您的函數中有一個變量,其名稱與您在該類中的某個字段具有相同的名稱,並且只要該函數中的代碼被執行,它就會被用來代替您的類字段。
如果內部變量名稱相同,則其內部變量的優先級高於全局變量。 在這種情況下,我們可以更改任一變量的名稱或更改全局變量的範圍。
請首先看到[如何回答](https://stackoverflow.com/help/how-to-answer) –
重命名其中之一 – efekctive
這通常是其他地方的錯誤的標誌。你應該重命名其中的一個。 –