首页 > 其他分享 >scala case class和普通class 动态参数赋值

scala case class和普通class 动态参数赋值

时间:2023-07-06 09:44:27浏览次数:36  
标签:case String scala age A1 var class name

普通class赋值,将A类的属性赋值给B类

//动态赋值测试
object DynamicAssignmentTest {

  def main(args: Array[String]): Unit = {
    var aList = List(
      new A1("A1", 12),
      new A1("A2", 13),
    )

    val b1List = scala.collection.mutable.ListBuffer[B1]()
    aList.foreach(
      a => {
        val b = new B1()
        classOf[A1].getDeclaredFields.foreach(f => {
          f.setAccessible(true)
          val bField = b.getClass.getDeclaredField(f.getName)
          bField.setAccessible(true)
          bField.set(b, f.get(a).toString)
        })
        b1List.append(b)
      }
    )

    b1List.toList.foreach(println)
  }

}

class A1 {
  var name: String = _
  var age: Int = _

  def this(name: String, age: Int) {
    this()
    this.name = name
    this.age = age
  }
}

class B1 {
  var name: String = _
  var age: String = _
  var sex: String = _
  var birthday: String = _
  var phone: String = _
}

case Class赋值,需要先利用构造函数 创建出一个对象需要传递参数

object CaseClassTest {
  def main(args: Array[String]): Unit = {

    val a = F(null, null)
    classOf[F].getDeclaredFields.foreach(f => {
      f.setAccessible(true)
      //注意:value的类型得时string,如果是Int 或者别的类型需要.tostring ,否则会类型转换错误
      f.set(a, "123")
    })

    println(a)
  }
}

case class F(var name: String, var age: String)

标签:case,String,scala,age,A1,var,class,name
From: https://www.cnblogs.com/iullor/p/17531234.html

相关文章

  • Java和scala集合互相转换
    使用scala.collection.JavaConverters与Java集合交互。它有一系列的隐式转换,添加了asJava和asScala的转换方法。importscala.collection.JavaConverters._vallist:java.util.List[Int]=List(1,2,3,4).asJavavalbuffer:scala.collection.mutable.Buffer[Int]=lis......
  • spring各版本冲突:Failed to process import candidates for configuration class [com
    今天又发现一个通病##springcloud-springcloudalibaba-springboot的版本对应关系#########报错如下:Failedtoprocessimportcandidatesforconfigurationclass[com.example.SunApplication];nestedexceptionisorg.springframework.core.NestedIOException:ASMC......
  • 【Oracle】使用case when语句导致SQL查询速度很慢的情况
    【Oracle】使用casewhen语句导致SQL查询速度很慢的情况很多时候会使用到casewhen语句去对SQL的多种情况进行处理,decode也用的多,但是通常decode会用在固定值的数据处理上,而casewhen因为可以在其中增加语句,所以比较复杂的时候会用到同时因为casewhen的结果集是从上到下的顺序......
  • macsc软件下载资源- Lightroom Classic 2023(摄影后期图像编辑处理工具)
    哪里可以下载 macsc软件下载资源-LightroomClassic2023(摄影后期图像编辑处理工具)呢?AdobeLightroomClassic2023激活版是一款专业的数字照片处理软件,它可以帮助摄影师对照片进行分类、编辑、调整和输出。它具有强大的图像处理功能,可以对RAW格式的照片进行处理,支持多种文件......
  • Variable 'xxxx' is accessed from within inner class, needs to be final or effect
    问题的原因问题代码:publicstaticvoidmain(String[]args){Integersum=0;Integercount=0;List<Integer>list=newArrayList<>(Arrays.asList(1,2,3,4,5));list.stream().forEach(e->{sum+=e;//这步会编译错误--Varia......
  • vue 中动态class的写法
    https://blog.csdn.net/u012320487/article/details/121806858......
  • spring报错-Caused by: java.lang.IllegalArgumentException: Unsupported class file
    这个错误原因是因为JDK版本过高,改一下版本就行了把里面的19改成8这样就行了......
  • Oracle Case 用法及注意事项
    OracleCase两种用法:注意事项:在条件中一定要增加其他条件的处理或者默认值,否则遇到未包含条件会抛异常>在条件中一定要增加其他条件的处理或者默认值,否则遇到未包含条件会抛异常1.查询语句语法:selectcasefieldnamewhenexp1thenresult1whenexp2thenresult2e......
  • PG在转换null值时,需要注意 CASE WHEN与 COALESCE 的区别
    目录适用范围方案概述实施步骤在ORACLE测试如下在Postgresql测试如下总结参考文档适用范围any方案概述在把ORACLE迁移到PG过程中,我们经常需要转换ORACLE的DECODE,但是如果将更DECODE(C,NULL,0,C)进行转换的话,我们可以选择用CASEWHEN或COALESCE两种方案;但如果是DEC......
  • classfinal加密java代码并且启动
    maven插件方式配置参数解释: 参数说明-file加密的jar/war完整路径-packages加密的包名(可为空,多个用","分割)-libjarsjar/war包lib下要加密jar文件名(可为空,多个用","分割)-cfgfiles需要加密的配置文件,一般是classes目录下的yml或propertie......