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:[email protected]]
Sent: Thursday, April 07, 2016 11:34 AM
To: [email protected]
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.

Reply via email to