scalabeaninfo.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 48 行

SCALA
48
字号
/*                     __                                               *\**     ________ ___   / /  ___     Scala API                            ****    / __/ __// _ | / /  / _ |    (c) 2002-2008, LAMP/EPFL             ****  __\ \/ /__/ __ |/ /__/ __ |    http://scala-lang.org/               **** /____/\___/_/ |_/____/_/ | |                                         ****                          |/                                          **\*                                                                      */// $Id: ScalaBeanInfo.scala 14532 2008-04-07 12:23:22Z washburn $package scala.reflect/** Provides some simple runtime processing necessary to create *  JavaBean descriptors for Scala entities. The compiler creates *  subclasses of this class automatically when the BeanInfo annotation is *  attached to a class.  * *  @author Ross Judson (rjudson@managedobjects.com) */abstract class ScalaBeanInfo(clazz: java.lang.Class[_],                              props: Array[String],                              methods: Array[String]) extends java.beans.SimpleBeanInfo {  import java.beans._    private val pd = new Array[PropertyDescriptor](props.length / 3)  private val md =     for (m <- clazz.getMethods if methods.exists(_ == m.getName))      yield new MethodDescriptor(m)  init    override def getPropertyDescriptors() = pd  override def getMethodDescriptors() = md  // override def getAdditionalBeanInfo() = Array(Introspector getBeanInfo clazz.getSuperclass)  private def init {    var i = 0;    while (i < props.length) {      pd(i/3) = new PropertyDescriptor(props(i), clazz, props(i+1), props(i+2))      i = i + 3;    }  }  }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?