Tag: type safety

Java:如何编写接受实现给定接口的Enum常量的generics函数?

所以我有一堆枚举,它们都扩展了一个接口: public interface MyInterface {} 然后我有几个扩展界面的枚举: public enum A implements MyInterface {} public enum B implements MyInterface {} 我想要一个只接受扩展此接口的枚举的函数。 我不能做: public void MyFunction(MyInterface input) 因为,在函数内部,我使用EnumSet.of(输入)创建一个EnumSet。 我做了 public <T extends Enum> void myFunction(T input) 因为,在函数内部,我需要创建一个需要传递给另一个函数的Map。 那么有没有任何类型安全的方法来做这个没有铸造? 编辑:更正的接口定义。

字符串被分配给List而没有编译错误

据我所知,Java中generics的主要目的之一是提供编译时类型安全性。 如果它被编译,代码将运行没有问题。 那么为什么要编译以下代码? public static void main(String[] args) { String s = getList(); } private static T getList() { return (T)new ArrayList(); } 它汇编很好。 我的类型安全编译在哪里? getList()方法与String类没有任何共同之处。