groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Winnebeck, Jason" <Jason.Winneb...@windstream.com>
Subject RE: Calling a static method by packagename.method
Date Thu, 07 Apr 2016 15:47:03 GMT
Math is a class, not a package. So if you create a class jira (it really should at least start
with a capital in Groovy, so JIRA or Jira) with static methods, you can access it like you
do with Math. Note in your example, “import static java.lang.Math.*” actually is allowing
you to use constants like PI without putting Math.PI in front – your import actually does
nothing because you use Math.PI and Math is part of java.lang, which is a default import.
Below you can see a proper way:

package org.matz.utils

class Jira{
  static void createTicket() {}
}

And in your script:

import org.matz.utils.* //Now you can reference any class in this package by its name alone,
including Jira

Jira.createTicket()

Jason

From: Guy Matz [mailto:guymatz@gmail.com]
Sent: Thursday, April 07, 2016 11:34 AM
To: users@groovy.apache.org
Subject: Calling a static method by packagename.method

Hello!  I have some static methods defined and am able to access them after I import, e,.g.
import static org.matz.utils.jira.*

With that import I can call the methods, e.g. createTicket, but I would like to be able to
call it as jira.createTicket, as is possible with the Math package, e.g.

import static java.lang.Math.*
println "PI is ${PI} (${Math.PI})"

my method declaration in jira.groovy is (including the namespace):
package org.matz.jenkins

def static void createTicket(String changelog, String summary, Map config) { ... }

Does anyone know what I need to do to either my definitions, or import, or something else
to be able to refer to the createTicket method as jira.createTicket?  I would like to be able
to do this to avoid name collisions as well as to be able to make explicit which "class" I'm
calling the method on.

Thanks!
Guy


----------------------------------------------------------------------
This email message and any attachments are for the sole use of the intended recipient(s).
Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the
intended recipient, please contact the sender by reply email and destroy all copies of the
original message and any attachments.
Mime
View raw message