package com.camnter.newlife.utils;
import android.util.Log;
import java.lang.reflect.Field;
/**
* Description:ClassUtils
* Created by:CaMnter
*/
public class ClassUtils {
private Field field;
public ClassUtils(String className, String fieldName) {
try {
this.field = Class.forName(className).getDeclaredField(fieldName);
this.field.setAccessible(true);
} catch (NoSuchFieldException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static boolean replaceField(String className, String fieldName,
Object desObj, Object fieldObj) {
Field tempField;
try {
tempField = Class.forName(className).getDeclaredField(fieldName);
tempField.setAccessible(true);
tempField.set(desObj, fieldObj);
return true;
} catch (NoSuchFieldException e) {
// TODO Auto-generated catch block
Log.i("DEX", "" + e.getMessage());
// e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
public Object get(Object desObj) {
if (field == null) {
return null;
}
try {
return field.get(desObj);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public void set(Object desObj, Object fieldObj) {
try {
field.set(desObj, fieldObj);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}