Java 语法中没大用但是有小用的小玩意
泛型参数上的 &
符号 (多重界限泛型)
public interface IValue // 示例接口
{
int getValue();
}
public static class A // 示例基类
{
int getA() { return 123; }
}
public static class B extends A implements IValue // 示例子类
{
@Override
public int getValue() { return 456; }
int getB() { return 789; }
}
public static <T extends A & IValue> void test(T obj) // 示例泛型方法
{
System.out.println("A: " + obj.getA());
System.out.println("Value: " + obj.getValue());
}
public static void main(String...args)
{
test(new B());
}
使用 <T extends A & IValue>
这样的写法会限制形参类型,
省掉一些 instanceof
的功夫
标签
Java 没有 goto
语句, 但是提供了 语句标签 (label) 辅助流程控制
退出语句块
语句标签可以用来标记/退出一个语句块, 有点像在方法内部做 return
public static void main(String...args)
{
BLOCK: // 语句标签
{
System.out.println(1);
System.out.println(2);
if(true) break BLOCK;
System.out.println(3);
}
}
循环控制
标签还可以用来控制多层嵌套循环的执行
public static void main(String...args)
{
FOR_X: for(int x=0;x<10;x++)
{
FOR_Y: for(int y=0;y<10;y++)
{
FOR_Z: for(int z=0;z<10;z++)
{
if(x==5) break FOR_Y;
else if(x==6) continue FOR_X;
}
}
}
}