我碰巧看到了java.util.Collections类。一个不能实例化这个类。我想这是由于存在一个私人Constructor。何时使用不可实例化的类而不是枚举?
的实例可以则在此创建way-
Class collections = java.util.Collections.class;
Constructor cons = collections.getDeclaredConstructor();
cons.setAccessible(true);
Collections instance = (Collections) cons.newInstance();
首先为什么没有在Java API的创造者停止这种行为?
它使被觉得我应该何时真的喜欢一个非实例级以上的枚举?
这是两个完全不同的问题。第一个问题的答案是Java的反射让你打破了一些Java规则。这是设计。如果你用反射来破坏规则,期望被你打破的东西咬伤。第二个问题是以意见为基础,因此是焦点话题。 –
'Collections':自java 1.2;枚举:自java 5; '2 <5' – fabian
也许他们应该在该私有构造函数中抛出Exception –