2017-07-29 40 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) –