您的位置:首页 > 移动开发 > Android开发

android myclass

2015-06-17 16:52 211 查看
package com.example.myreflect.util;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class MyClass {

private Class<?> class1;
private Method method1;

private MyClass(Class<?> class1,String name, Class<?>... parameterTypes) throws NoSuchMethodException {
super();
this.class1 = class1;
this.method1=class1.getMethod(name, parameterTypes);
}
public static MyClass build(String className,String name, Class<?>... parameterTypes) throws ClassNotFoundException, NoSuchMethodException
{
return new MyClass(className, name, parameterTypes);

}
public static MyClass build(Class<?> class1,String name, Class<?>... parameterTypes) throws ClassNotFoundException, NoSuchMethodException
{
return new MyClass(class1, name, parameterTypes);

}
private MyClass(String className,String name, Class<?>... parameterTypes) throws ClassNotFoundException, NoSuchMethodException {
super();
this.class1 = forName(className);
this.method1=class1.getMethod(name, parameterTypes);
}

public Class<?> getClass1() {
return class1;
}

public void setClass1(Class<?> class1) {
this.class1 = class1;
}

public Method getMethod1() {
return method1;
}

public void setMethod1(Method method1) {
this.method1 = method1;
}

public static Class<?> forName(String className)
throws ClassNotFoundException {

return Class.forName(className);
}

public Object invoke(Object receiver, Object... args)
throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {

return method1.invoke(receiver, args);
}

/*
private void test() throws Exception {
Class<?> class001 = Class.forName("");
Method method001 = class001.getMethod("", new Class[] {});
method001.invoke(null, new Object[] {});

}
private void test2() throws Exception {
//Log.i(tag, msg)
MyClass class1=new MyClass("android.util.Log", "i", new Class[] {String.class,String.class});
class1.invoke(class1.getClass1(), "tag","ok");

}
*/

}


package com.example.myreflect;

import com.example.myreflect.util.MyClass;

import android.app.Activity;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.view.View;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void logstatic(View view) {
try {
MyClass class1 = MyClass.build("android.util.Log", "i",
new Class[] { String.class, String.class });
class1.invoke(class1.getClass1(), "tag", "ok");

} catch (Exception e) {
e.printStackTrace();
}

}

public void log(View view) {
try {

TelephonyManager telephonyManager = (TelephonyManager) getSystemService(
Activity.TELEPHONY_SERVICE);
// telephonyManager.getDeviceId();
MyClass class1 = MyClass.build(
"android.telephony.TelephonyManager", "getDeviceId",
new Class[] {});
String result = (String) class1.invoke(telephonyManager);
Log.i("xx", result);

Log.i("fuck",(String) MyClass.build("android.telephony.TelephonyManager",
"getDeviceId", new Class[] {}).invoke(telephonyManager));

} catch (Exception e) {
e.printStackTrace();
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: