Назад к вопросам
Junior — Middle
65
Расскажите о вашем опыте использования конструкции union в программировании.
Компании, где спрашивали
Ви6 Сервисес
Ответ от нейросети
sobes.tech AI
В Java нет конструкции union, как в языках C или C++. Однако, похожий эффект можно достичь с помощью классов и наследования, либо используя классы-обертки с полями разных типов и контролируя, какое поле активно. Например, можно создать класс с несколькими полями и использовать только одно из них, но это не будет экономить память, как union.
Пример имитации union через класс с полями и enum для типа:
public class MyUnion {
public enum Type { INT, STRING }
private Type type;
private int intValue;
private String stringValue;
public void setInt(int value) {
intValue = value;
type = Type.INT;
}
public void setString(String value) {
stringValue = value;
type = Type.STRING;
}
public Type getType() {
return type;
}
public int getInt() {
if (type != Type.INT) throw new IllegalStateException("Not an int");
return intValue;
}
public String getString() {
if (type != Type.STRING) throw new IllegalStateException("Not a string");
return stringValue;
}
}
Таким образом, в Java union не используется напрямую, а подобное поведение моделируется через классы и логику.