我正在使用Calendar
访问当前年份。警告 - 访问静态字段年
这是我的代码...
import java.util.Calendar;
Calendar c = c.getInstance();
int year = c.get(c.YEAR);
代码编译和运行良好,但它会显示警告信息:“警告,访问静态字段”有什么问题,或者我应该做的更好的东西?
我正在使用Calendar
访问当前年份。警告 - 访问静态字段年
这是我的代码...
import java.util.Calendar;
Calendar c = c.getInstance();
int year = c.get(c.YEAR);
代码编译和运行良好,但它会显示警告信息:“警告,访问静态字段”有什么问题,或者我应该做的更好的东西?
使用Calendar.getInstance()
和Calendar.YEAR
,静态字段不应该使用实例对象访问。
而不是做,这样做。 getInstance()
方法是Calendar
类的静态方法,这就是为什么你会收到警告。
ADD
同样为Calendar.YEAR
它会发出警告,因为静态字段是使用编译时类型访问的,而不是对象的运行时类型,这会导致很难发现错误。
例子:
public class AAA{
public static String HELLO = "HI";
}
public class BBB extends AAA{
public static String HELLO = "Hello World";
}
AAA test = new BBB();
System.out.println(test.HELLO); //Will print String from AAA
//instead of "Hello World"
没有static
,将打印的 “Hello World”。
为了防止这些错误,您应该始终通过声明它们的类来访问静态变量,而不是使用实例。编译器警告你,因为没有理由不使用类名。
这是不好的做法,因为它使得它不太明显,你正在访问一个静态字段。 – 2011-01-14 17:43:19