小编Can*_*lms的帖子

使用枚举切换案例会导致重复

当我通过一个简单的Enum测试器迭代for-each循环和switch语句来输出枚举值时,我看到的行为对我来说似乎很奇怪.

码:

public class EnumTest {

    private Number number;

    public EnumTest(Number number) {
        this.number = number;
    }
    public enum Number {
        ONE,
        TWO,
        THREE,
        FOUR,
        FIVE;
    }
    private void tellItLikeItIs() { 
        switch (number) {   
            case ONE:
                System.out.println("ONE");
            case TWO:
                System.out.println("TWO");
            case THREE:
                System.out.println("THREE");
            case FOUR:
                System.out.println("FOUR");
            case FIVE:
                System.out.println("FIVE"); 
        }
    }
    public static void main(String[] args) {    
        for (Number n : Number.values()) {
            EnumTest et = new EnumTest(n);
            et.tellItLikeItIs();
            System.out.println();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

    ONE
    TWO
    THREE
    FOUR
    FIVE

    TWO …
Run Code Online (Sandbox Code Playgroud)

java switch-statement

0
推荐指数
1
解决办法
180
查看次数

Java Generics extends仍会生成未经检查的强制转换警告

是否指定参数化泛型类型的继承关系不足以确保类型安全?例如:

public class ListCastFunction<F, T extends F> implements Function<F, T> {
    public final T apply(final F from) {
        return (T) from;
    }
}
Run Code Online (Sandbox Code Playgroud)

这仍然会生成编译器警告.如果我们知道T extends F,它真的没有检查吗?

java generics types casting unchecked

0
推荐指数
1
解决办法
514
查看次数

标签 统计

java ×2

casting ×1

generics ×1

switch-statement ×1

types ×1

unchecked ×1