在书写代码的时候,一定要规范自己的代码,如果不规范代码,那么有的时候,可能会给你带来不大不小的麻烦,下面有一个小小的例子
这个例子写完后,你会发现,编译器并不让你通过,为什么呢,语法没有问题啊,奇怪吧
可是在仔细看看,你会发现对于if()这个语句,我们是这样来定义的
是不是在例子的代码后面没有加入{}
这个涉及到了一个问题:我们知道,在if后面如果只有一个语句,那么我们会习惯的忽略{},可是在JAVA解析的时候
TestPrintStream1 tt = (TestPrintStream1) o;这个语句会被解析成
TestPrintStream1 tt; tt = new TestPrintStream1 (); 这样,在if{}这个模块中,只执行TestPrintStream1 tt;这个语句而不会执行
tt = new TestPrintStream1 (); ,解析tt = new TestPrintStream1 (); 的时候,就会找不到tt的定义了,因为TestPrintStream1 tt;的作用域已经结束了
所以,在平时,一定要养成良好的代码书写规范,不仅仅会规约我们的书写习惯,还会减少一些看起来很奇怪的问题
public
class
TestPrintStream1
{
public static void main(String[] args) {
Class c = TestPrintStream1.class;
try {
Object o = c.newInstance();
if (o instanceof TestPrintStream1)
TestPrintStream1 tt = (TestPrintStream1) o;// 这里为什么会报错呢,说tt 和 TestPrintStream1不能解析
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Class c = TestPrintStream1.class;
try {
Object o = c.newInstance();
if (o instanceof TestPrintStream1)
TestPrintStream1 tt = (TestPrintStream1) o;// 这里为什么会报错呢,说tt 和 TestPrintStream1不能解析
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
这个例子写完后,你会发现,编译器并不让你通过,为什么呢,语法没有问题啊,奇怪吧
可是在仔细看看,你会发现对于if()这个语句,我们是这样来定义的
if
( a.equals(b))
{
System.out.println("haha");
}
System.out.println("haha");
}
是不是在例子的代码后面没有加入{}
这个涉及到了一个问题:我们知道,在if后面如果只有一个语句,那么我们会习惯的忽略{},可是在JAVA解析的时候
TestPrintStream1 tt = (TestPrintStream1) o;这个语句会被解析成
TestPrintStream1 tt; tt = new TestPrintStream1 (); 这样,在if{}这个模块中,只执行TestPrintStream1 tt;这个语句而不会执行
tt = new TestPrintStream1 (); ,解析tt = new TestPrintStream1 (); 的时候,就会找不到tt的定义了,因为TestPrintStream1 tt;的作用域已经结束了
所以,在平时,一定要养成良好的代码书写规范,不仅仅会规约我们的书写习惯,还会减少一些看起来很奇怪的问题