abstract class Object {
public function __get($strProperty) {
$objReflect = new ReflectionClass($this);
$strProperty = strtoLower($strProperty[0]) . substr($strProperty, 1);
foreach ($objReflect->getDefaultProperties() as $key => $strProp) {
$key = strtoLower($key[0]) . substr($key, 1);
if ($key == $strProperty) {
return $this->{$key};
}
}
}
public function __set($strProperty, $strData) {
$objReflect = new ReflectionClass($this);
$strProperty = strtoLower($strProperty[0]) . substr($strProperty, 1);
foreach ($objReflect->getDefaultProperties() as $key => $strProp) {
$key = strtoLower($key[0]) . substr($key, 1);
if ($key == $strProperty) {
$this->{$key} = $strData;
}
}
}
}
================================================================================
import java.lang.reflect.Field;
import java.lang.reflect.Type;
public class test {
/* …… Private vars …… */
private int var1;
private char var2;
private long var3;
private Integer var4;
private String var5;
/* …… Public functions …… */
public void set_vars() {
var1 = 42;
var2 = 41;
var3 = 40;
var4 = Integer.valueOf(39);
var5 = "Hello world";
}
public Object get(String var_name) throws Exception {
System.out.print("getlled: ");
Field f = this.getClass().getDeclaredField(var_name);
Type t = f.getGenericType();
String type_name = t.toString();
if (type_name.equals("boolean")) {
return Boolean.valueOf(f.getBoolean(this)); }
else if (type_name.equals("byte")) {
return Byte.valueOf(f.getByte(this)); }
else if (type_name.equals("char")) {
return Character.valueOf(f.getChar(this)); }
else if (type_name.equals("double")) {
return Double.valueOf(f.getDouble(this)); }
else if (type_name.equals("float")) {
return Float.valueOf(f.getFloat(this)); }
else if (type_name.equals("int")) {
return Integer.valueOf(f.getInt(this)); }
else if (type_name.equals("long")) {
return Long.valueOf(f.getLong(this)); }
else if (type_name.equals("short")) {
return Short.valueOf(f.getShort(this)); }
else {
return f.get(this); }
}
public Object set(String var_name, Object var_value) {
/* Analogous to the universal getter; use the functions
* Field.set*(Object obj, * value)
* and
* Field.set(Object obj, Object value)
* as seen on http://java.sun.com/javase/6/docs/api/java/lang/reflect/Field.html
*/
return null;
}
/* …… Main …… */
public static void main(String[] argv) {
test b = new test();
b.set_vars();
try {
System.out.println(b.get("var1 System.out.println(b.get("var2 System.out.println(b.get("var3 System.out.println(b.get("var4 System.out.println(b.get("var5}
catch (Exception e) {
System.out.println("OMG An exception!"); }
}
};