ToB企服应用市场:ToB评测及商务社交产业平台

标题: 01java反序列化基础 [打印本页]

作者: 石小疯    时间: 2025-1-2 20:21
标题: 01java反序列化基础
java反射的相关操作

一些重要的方法

  1. // eg.反射获取任意类的任意方法并执行
  2. import java.lang.reflect.Method;
  3. public class ReflectionExample {
  4.     public static void main(String[] args) {
  5.         try {
  6.             // 获取类名
  7.             Class<?> clazz = Class.forName("com.example.SomeClass");
  8.             // 获取方法名和参数类型
  9.             String methodName = "someMethod";
  10.             Class<?>[] parameterTypes = {String.class, int.class};
  11.             // 获取方法
  12.             Method method = clazz.getMethod(methodName, parameterTypes);
  13.             // 创建类的实例
  14.             Object obj = clazz.newInstance();
  15.             // 准备参数
  16.             Object[] arguments = {"example", 123};
  17.             // 执行方法
  18.             Object result = method.invoke(obj, arguments);
  19.             // 打印结果
  20.             System.out.println("Method returned: " + result);
  21.         } catch (ClassNotFoundException e) {
  22.             e.printStackTrace();
  23.         } catch (NoSuchMethodException e) {
  24.             e.printStackTrace();
  25.         } catch (IllegalAccessException e) {
  26.             e.printStackTrace();
  27.         } catch (InstantiationException e) {
  28.             e.printStackTrace();
  29.         } catch (java.lang.reflect.InvocationTargetException e) {
  30.             e.printStackTrace();
  31.         }
  32.     }
  33. }
复制代码
forName

newInstance

newInstance的补充getConstructor

  1. Class clazz = Class.forName("java.lang.ProcessBuilder");
  2. clazz.getMethod("start").invoke(clazz.getConstructor(List.class).newInstance(
  3. Arrays.asList("calc.exe")));
  4. );
复制代码
关于类的私有方法

反射的一些特性

不同语言的序列化对比

PHP序列化

[code]




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4