scala中的反射机制
(2020-03-29 00:04:24)| 标签: scala反射reflect示例 | 分类: 编程技术 | 
====scala中通过反射机制读取属性的值=========
一、大致思路
1、通过getClass()定位到实例类,通过getDeclaredField定位到具体某个属性值
2、通过isAccessible确认属性值是否可以直接读取,不行的话则通过setAccessible(true)设置为可访问权限
3、通过 属性值.getXX(实例类)
的方法读取到具体的属性值数据
二、示例代码
object ReflectTest {
}
输出值为:
false
true
age: 21
false
true
age: 43
false
true
age: 15
====scala中通过反射机制执行函数=========
val classMirror =
ru.runtimeMirror(getClass.getClassLoader) 
     
 //获取运行时类镜像     
val classTest =
classMirror.staticModule("com.testobject") 
     
  //获取需要反射object     
val methods =
classMirror.reflectModule(classTest) 
     
     
    //构造获取方式的对象         
val objMirror =
classMirror.reflect(methods.instance) 
     
     
 //反射结果赋予对象        
val method =
methods.symbol.typeSignature.member(ru.TermName(s"$函数名")).asMethod 
//反射调用函数 
val result =
objMirror.reflectMethod(method)(入参1, 入参2) 
     
 
 //最后带参数,执行这个反射调用的函数      
result.asInstanceOf[String] 
     
     
     
     
     
     
   //结果强转下类型                     
后一篇:DBSCAN聚类算法
					
 加载中…
加载中…