All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.almondtools.picklock.FinalUtil Maven / Gradle / Ivy

package com.almondtools.picklock;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

public final class FinalUtil {

	private static final String MODIFIERS = "modifiers";

	private FinalUtil() {
	}

	public static boolean isFinal(Field field) {
		return (field.getModifiers() & Modifier.FINAL) == Modifier.FINAL;
	}

	public static void makeNonFinal(Field field) {
		try {
			Field modifiersField = Field.class.getDeclaredField(MODIFIERS);
			modifiersField.setAccessible(true);
			modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
		} catch (Exception e) {
			//omit this exception
		}
	}

	public static void ensureNonFinal(Field field) {
		if (isFinal(field)) {
			makeNonFinal(field);
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy