小编Som*_*one的帖子

上限有限泛型VS超类作为方法参数?

据我所知,使用上限有限泛型并使用超类作为方法参数都接受相同的可能参数.哪个是首选,两者之间有什么区别?

上限有限泛型作为参数:

public <T extends Foo> void doSomething(T foo) {}
Run Code Online (Sandbox Code Playgroud)

超类作为参数:

public void doSomething(Foo foo) {}
Run Code Online (Sandbox Code Playgroud)

java generics

7
推荐指数
1
解决办法
766
查看次数

switch语句中的重复局部变量

我使用Eclipse收到此错误.

重复的局部变量斗篷

我真的不明白为什么我会遇到这样的错误.这是我的代码:

switch (frame) {  // frame is an integer
case 0:
    Sprite cape = modules.get(Module.CAPE);
    //cape.setRegion(region);
    cape.translateY(+1);
    break;
case 1:
    Sprite cape = modules.get(Module.CAPE);
    //cape.setRegion(region);
    cape.translateY(-1);
    break;
default:
    throw new IllegalArgumentException(
            "Undefined frame number: " + frame);
}
Run Code Online (Sandbox Code Playgroud)

为什么cape变量对于每种情况都是本地的,而不是switch语句?

java eclipse switch-statement

6
推荐指数
3
解决办法
3588
查看次数

从Enum对象获取枚举值

如果我要宣布这样的枚举

public enum Foo {A, B, C}
Run Code Online (Sandbox Code Playgroud)

然后我可以使用枚举值

Foo[] values = Foo.values();
Run Code Online (Sandbox Code Playgroud)

但是,如果我想将Foo作为泛型类型传递,就像这样,我无法获取值,因为它是通用的.

class Bar<E extends Enum<E>> {

    public Bar(E e) {
        E[] values = e.values(); // not possible
    }

}
Run Code Online (Sandbox Code Playgroud)

是否有可能以任何其他方式迭代枚举值?

java enums

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

标签 统计

java ×3

eclipse ×1

enums ×1

generics ×1

switch-statement ×1