Пробовал это в консоли, и он работает.
var aFileParts = ['<a id="a"><b id="b">hey!</b></a>'];
var oMyBlob = new Blob(aFileParts, {type : 'text/html'}); // the blob
window.open(URL.createObjectURL(oMyBlob));
enum
типы, которые определены как вложенные типы, всегда неявно static
(см. JLS §8.9. Перечисления )
Вы не можете иметь статический вложенный тип внутри нестатического (например, «внутренний класс», см. JLS §8.1.3. Внутренние классы и экземпляры Enclosing ).
Поэтому вы не можете иметь enum
внутри нестатического вложенного типа.
Уже достаточно информации из + Joachim Sauer, я просто добавляю дополнительные данные.
Вы можете определить внутреннее перечисление только в том случае, если ваш внутренний класс является статическим вложенным внутренним классом. См. Ниже
private static class DbResource {
public enum DB {
MERGE_FROM, MERGE_TO, MAIN;
}
}
Если вы объявили enum следующим образом:
enum Suit {SPADES, HEARTS, CLUBS, DIAMONDS}
Компилятор Java синтетически сгенерировал для вас следующий класс:
final class Suit extends java.lang.Enum<Suit> {
public static final Suit SPADES;
public static final Suit HEARTS;
public static final Suit CLUBS;
public static final Suit DIAMONDS;
private static final Suit[] $VALUES;
public static Suit[] values();
public static Suit valueOf(java.lang.String);
private Suit();
}
Нет намерения создавать другие экземпляры этого класса, отличные от тех статических полей, которые уже определены в нем (как вы могли бы сделать вывод из его частного конструктора), но, что наиболее важно, и, как упоминалось в принятом ответе, внутренний класс не может иметь статические члены ( JLS §8.1 .3. Внутренние классы и экземпляры Enclosing Instances ), и поскольку класс синтетического enum делает это, он делает его неприемлемым как внутренний класс.