import scala.beans.BeanProperty
case class ScalaGirl(@BeanProperty var name:String,@BeanProperty var age:String) {def this()=this(null,null)}
object ScalaMain {
def main(args: Array[String]): Unit = {
var girl=ScalaGirl(“l”,“12”)
//获得反射对象
var girlClass=classOf[ScalaGirl]
classOf[ScalaGirl].getDeclaredFields.foreach(x=>{var method=girlClass.getMethod("set"+x.capitalize,classOf[String]);method.invoke(girl,"like")})
girl.name="love"
girl.age="18"
print(girl)
//获得反射方法
var method=girlClass.getMethod("setName",classOf[String])
method.invoke(girl,"like")
print(girl)
//获得构造函数
var con=girlClass.getConstructor(classOf[String],classOf[String])
var newGirl=con.newInstance("zouren","19")
print(newGirl)
}
}
###ok#######################
case class Person(@BeanProperty var d_area_id:String,@BeanProperty var flow_pn:String,@BeanProperty var src_source_city_pt:String){def this()=this(null,null,null)}
var person=Person(“l”,“12”)
var personClass=classOf[Person]
classOf[Person].getDeclaredFields.filter(!.getName.startsWith("$")).foreach(x=>{
val str = “set”+Array(x.getName).map(.capitalize).head;
println(str);
println()
var method=personClass.getMethod(str,classOf[String]);
method.invoke(person,“like2”)
})
#################################
###test#######################
case class Person(@BeanProperty var d_area_id:String,@BeanProperty var flow_pn:String,@BeanProperty var src_source_city_pt:String){def this()=this(null,null,null)}
var person=Person(“l”,“12”,“33”)
var personClass=classOf[Person]
classOf[Person].getDeclaredFields.filter(!_.getName.startsWith("$")).foreach(x=>{
println(x.getName)
val field = personClass.getDeclaredField(x.getName)
field.setAccessible(true)
print(field.get(person))
field.set(person,“123456”)
})
#################################
#######OK############################
// val resultDF = indexWholeNetDF.flatMap(row=>{
// val whloeNetObj = row.copy()
// whloeNetObj.data_type = GlobalConstants.DATA_WHOLENET
// val nightTouristIndexClass = classOf[NightTouristIndex]
// classOf[NightTouristIndex].getDeclaredFields.filter(!_.getName.startsWith("$")).foreach(x=>{
// if(!unEvaluateFields.contains(x.getName)){
// val rate = if(x.getName.endsWith("_pn")) row.rate_pn else row.rate_pt
// val field = nightTouristIndexClass.getDeclaredField(x.getName)
// field.setAccessible(true)
// field.set(whloeNetObj,evaluateWholeNetNum(if(field.get(whloeNetObj)!=null) field.get(whloeNetObj).toString else null,rate))
// }
// })
// List(row,whloeNetObj)
// })
###############################################