Добрый вечер! Ребят, подскажите, пожалуйста, а почему у двух static получается разный результат? Я обратился к этой статье. Я понял почему public true, но static завел меня в тупик. Есть предположение, что методы только бывают статичными, а классы нет. Хотя стоп, классы же тоже статичны(внутренние). ЧТО ПРОИСХОДИТ?)
public static void main(String[] args) {
int classModifiers = Solution.class.getModifiers();
System.out.println(isModifierSet(classModifiers, Modifier.PUBLIC)); //true
System.out.println(isModifierSet(classModifiers, Modifier.STATIC)); //false
int methodModifiers = getMainMethod().getModifiers();
System.out.println(isModifierSet(methodModifiers, Modifier.STATIC)); //true
}
public static boolean isModifierSet(int allModifiers, int specificModifier) {
return (allModifiers & specificModifier) > 0;
}
private static Method getMainMethod() {
Method[] methods = Solution.class.getDeclaredMethods();
for (Method method : methods) {
if (method.getName().equalsIgnoreCase("main")) return method;
}
return null;
}