我是靠谱客的博主 魔幻白羊,这篇文章主要介绍Groovy 类名称赋值为变量使用(newInstance & new)类创建实例一般方式类作为参数传递DEMO2 抽象工厂DEMO3 -- 变量,现在分享给大家,希望可以做个参考。

类创建实例一般方式

http://groovy-lang.org/objectorientation.html#_class

class Person {  String name  Integer age def increaseAge(Integer years) {  this.age += years } }


def p = new Person()

 

类作为参数传递

有些场景下,需要将类作为变量传递

http://groovy-lang.org/objectorientation.html#_class

class Runner { static <T> T run(Class<T> taskClass) { def tasks = taskClass.newInstance()  def params = [jdk:6, windows: false]  tasks.class.declaredMethods.each { m ->  if (Modifier.isPublic(m.modifiers) && m.parameterTypes.length == 0) {  def onlyIf = m.getAnnotation(OnlyIf)  if (onlyIf) { Closure cl = onlyIf.value().newInstance(tasks,tasks)  cl.delegate = params  if (cl()) {  m.invoke(tasks)  } } else { m.invoke(tasks)  } } } tasks  } }



// create a new instance of the class passed as an argument (the task class)

 

 

DEMO2 抽象工厂

http://groovy-lang.org/design-patterns.html#_example

def guessFactory = [messages: GuessGameMessages, control: GuessGameControl, converter: GuessGameInputConverter] def twoupFactory = [messages: TwoupMessages, control: TwoupControl, converter: TwoupInputConverter] class GameFactory { def static factory def static getMessages() { return factory.messages.newInstance() } def static getControl() { return factory.control.newInstance() } def static getConverter() { return factory.converter.newInstance() } }

 

 

GameFactory.factory = twoupFactory def messages = GameFactory.messages def control = GameFactory.control def converter = GameFactory.converter println messages.welcome def reader = new BufferedReader(new InputStreamReader(System.in)) while (control.moreTurns()) { def input = reader.readLine().trim() control.play(converter.convert(input)) } println messages.done

 

DEMO3 -- 变量

 

class Greet {
    def salute() { println "Hello !" }
}
 
g = new Greet()  // create object
g.salute()


def  class_var = Greet
// h = new class_var()
h = class_var.newInstance()
h.salute()

 

转载于:https://www.cnblogs.com/lightsong/p/8655019.html

最后

以上就是魔幻白羊最近收集整理的关于Groovy 类名称赋值为变量使用(newInstance & new)类创建实例一般方式类作为参数传递DEMO2 抽象工厂DEMO3 -- 变量的全部内容,更多相关Groovy内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部