Аргумент общего типа, проверяемый параметром класса, может быть взломан, лучше?

Рассмотрим класс:

class OnlyIntegerTypeAllowed {
    OnlyIntegerTypeAllowed(Class clazz) {
        System.out.println(clazz);
        if (clazz != Integer.class)
            throw new RuntimeException();
    }
}

Он предназначен для принятия только аргументов типаInteger, Мы добавилиif-throw проверьте в своем конструкторе. Это очень распространенный способ проверки аргументов типа.

Однако эту проверку можно обойти (взломать, обмануть):

OnlyIntegerTypeAllowed normalWay =
        new OnlyIntegerTypeAllowed(Integer.class);
OnlyIntegerTypeAllowed hacking =
        new OnlyIntegerTypeAllowed((Class) Class.forName(Integer.class.getName()));

И то и другое вышеуказанные две строки имеютнет ошибки компиляции инет исключения брошены!

О, МОЙ БОГ. - есть ли лучший способ обеспечить соблюдение аргумента типа?

Ответы на вопрос(1)

Ваш ответ на вопрос