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
这通常是其他地方的错误的标志。你应该重命名其中的一个。 –