java中静态导入机制用法实例详解

java中静态导入机制用法实例详解

这里主要讲解了如何使用Java中静态机制的用法,这里提供了简单实例大家可以参考下。

静态常量类

在java开发中,我们会经常用到一些静态常量用于状态判断等操作。为了能够在多个地方复用这些常量,通常每个模块都会加一个常量类,举个简单的列子:

import com.sky.OrderMouleConsstants; 

/**
 * Created by gantianxing on 2017/4/21.
 */
public class Test {
  public void main() {
    int orderState = orderService.getOrderState(id);
    if(OrderMouleConsstants.SUCCESS == orderState){
      //订单成功状态逻辑
    }
    if(OrderMouleConsstants.FAIL == orderState){
      //订单失败状态逻辑
    }
  }
}

为了表达常量类的特定使用模块,我们经常会把模块名称加载类名里,导致常量类的名字很长。在写代码的时候,经常来回copy,用户起来很不方便。

其实在jdk1.5开始就已经引入了“静态导入机制”,可以解决这个问题。

静态导入机制

我们可以采用静态导入(static import)的方式 导入常量类,就可以避免用类名来修饰常量名。如下:

Java代码

import static com.sky.OrderMouleConsstants.*; <span style="color: #ff0000;">//这个地方一定要用.* 否则编译不过</span>
/**
 * Created by gantianxing on 2017/4/21.
 */
public class Test {
  public void main() {
    int orderState = orderService.getOrderState(id);
    if(SUCCESS == orderState){ <span style="color: #ff0000;">//不用再加静态类名了</span>
      //订单成功状态逻辑
    }
    if(FAIL == orderState){ <span style="color: #ff0000;">//不用再加静态类名了</span>
      //订单失败状态逻辑
    }
  }
}

用法说明:在import 后面 加上static,并在静态常量类后面加上.* 。在需要使用常量的地方,就不用加上冗长的类名啦。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

时间: 2017-07-09

java 内部类(匿名类,匿名对象,静态内部类)详解及实例

内部类的介绍 定义在另外一个类中的类,叫内部类 成员内部类 1..new 创建成员内部类必须先创建外部类的实例,然后通过.new 创建内部类的对象 2..this 可以通过外部类的类名.this去访问外部类的所有属性和方法. public class Test1 { String name = "asnd"; public static void main(String[] args) { Test1 test1 = new Test1(); Inner mInner = test1.

java实例方法被覆盖,静态方法被隐藏Explain(详解)

被覆盖比较好理解,类似于多态的实现,访问时通过类方法表来访问,你实际是什么类型,访问的方法就是那个类型的方法而不会是你的父类的方法. 被隐藏是指静态方法的访问是根据当前对象的表面类型来决定的,比如 Super s = new Sub(); s.greeting()访问的是Super的静态方法,如果是Sub s = new Sub();则访问的是Sub的静态方法. 换句话说,这个实现不了多态. 此外,静态方法和实例方法不能互相覆盖(会报错),因为他们的在字节码中的的绑定位置不同. 以上这篇java

Java静态代理和动态代理总结

静态代理 第一种实现(基于接口): 1>接口 public interface Hello { void say(String msg); } 2>目标类,至少实现一个接口 public class HelloImpl implements Hello { public void say(String msg) { System.out.println("Hi,"+msg); } } 3>代理类(与目标类实现相同接口,从而保证功能一致) public class He

Java中的动态和静态编译实例详解

Java中的动态和静态编译实例详解 首先,我们来说说动态和静态编译的问题. Q: java和javascript有什么区别?    总结了一下:有以下几点吧: 1.首先从运行环境来说java代码是在JVM上编译成class文件,而javascript则直接在浏览器上加载运行. 2.由第一点可看出,java代码需要编译,而javascript不需要编译. 3.从语言性质来说,java是一种高级编程语言,对变量检查要求严格,javascript只是一个简单的解释性的脚本语言,对变量检查及要求很弱.

java synchronized同步静态方法和同步非静态方法的异同

java synchronized 详解 synchronized关键字有两种用法,一种是只用于方法的定义中,另外一种是synchronized块,我们不仅可以使用synchronized来同步一个对象变量,你也可以通synchronizedl来同步类中的静态方法和非静态方法. synchronized块的语法如下: public void method() { synchronized(表达式) { } } public void method() { synchronized(表达式) {

java 反射 动态调用不同类的静态方法(推荐)

准备调用的类 package ss; public class Use { public static Integer demo( String s ){ System.err.println(s+"<<<<<<成功!"); Integer ss=1; return ss; } } 执行调用的类 public class Ceshi { public static void main(String[] args) { try { String cla

利用java反射机制调用类的私有方法(推荐)

试想一下,如果你可以轻易地调用一个类的私有方法,那么是不是说你的封装都失效了?最近在看java的反射机制,发现居然可以利用java的反射机制去调用其他类的私有方法,至于这能干什么,那就见人见智了.. 我写的一段简易实例代码如下: import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; /** * @author thomaslwq * @version 创建时间:Sep 4, 201

通过java反射机制动态调用某方法的总结(推荐)

如下: public Object invokeMethod(String className, String methodName, Object[] args) throws Exception{ Class ownerClass = Class.forName(className); Object owner = ownerClass.newInstance(); Class[] argsClass = new Class[args.length]; for (int i = 0, j =

java反射之获取类的信息方法(推荐)

本文接上文"老生常谈反射之Class类的使用(必看篇)",以编写一个用来获取类的信息(成员函数.成员变量.构造函数)的工具类来讲解"反射之获取类的信息" 1.获取成员函数信息 /** * 获取成员函数信息 * @param obj */ public static void printClassMethodMessage(Object obj){ //获取类的信息 获取类的类类型 Class c = obj.getClass(); //获取类的名称 System.o

Java动态调用类中方法代码

在Java中,调用类的方法有两种方式:对于静态方法可以直接使用类名调用,对于非静态方法必须使用类的对象调用.反射机制提供了比较另类的调用方式,可以根据需要指定要调用的方法,而不必在编程时确定.调用的方法不仅限于public的,还可以是private的.编写程序,使用反射机制调用Math类的静态方法sin()和非静态方法equals(). 思路如下:使用Math.class.getDeclaredMethod("sin", Double.TYPE);访问指定的方法,其中"sin

java反射之方法反射的基本操作方法

本文接上文"java反射之获取类的信息方法(推荐)",利用反射(invoke)来获取一个类中的方法来执行. 1.定义一个类,包含三个名称相同,参数不同的方法 class A{ public void print(){ System.out.println("Hello,World"); } public void print(int a,int b){ System.out.println(a+b); } public void print(String a,Str

python 动态调用函数实例解析

1. 根据字符串名称 动态调用 python文件内的方法eval("function_name")(参数) 2. 根据字符串 动态调用类中的静态方法,getattr(ClassName,"function_name")(参数) 3. apply(functoin_name,parameters) 这个function_name不是字符串,而是函数对象本身:parameters是参数,类似(a,b,...)这样的格式 4. 当函数不确定参数的数目时候,采用 一个 *

Java的反射机制---动态调用对象的简单方法

唉!我还真是在面试中学习新东东啊,一个公司刚刚给了个测试,不过我很奇怪的是为什么web developer的职位居然考java的反射机制题,不过学习研究一下反射机制对我来说是件好事啦! 先说说什么是java反射机制吧,在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这 种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制.主要功能:在运行时判断任意一个对象所属的类:在运行时构造任意一个类的对 象:在运行时判断任意一个

Java 反射调用静态方法的简单实例

以往都是使用反射调用实例方法,那么反射如何调用静态方法呢?看下面的例子 Class<?> threadClazz = Class.forName("java.lang.Math"); Method method = threadClazz.getMethod("abs", long.class); System.out.println(method.invoke(null, -10000l)); 只需要将invoke方法的第一个参数设为null即可! 以

java 利用java反射机制动态加载类的简单实现

如下所示: ////////////////// Load.java package org.bromon.reflect; import java.util.ArrayList; import java.util.List; public class Load implements Operator { @Override public List<?> act(List<?> params) { // TODO Auto-generated method stub List<