java数组的另一种用法

你可以非常简单地用一个enum构建一个单例或者工具类。

import java.io.Serializable;

public enum SafeSingleton implements Serializable{
	INSTANCE;
	SafeSingleton(){
		//
	}

	public void singleton(){
		System.out.println("hello!!");
	}
}
	@Test
	public void test16() {
		// Collections2.filter(unfiltered, predicate);
		SafeSingleton.INSTANCE.singleton();
	}

每一个enum实例,一个不同的子类

你可以重载一个enum实例的方法。这将高效的给一个enum的实例一个自己的实现。

package guava;

public enum Operation {
	PLUS {
		double eval(double x, double y) {
			return x + y;
		}
	},
	MINUS {
		double eval(double x, double y) {
			return x - y;
		}
	},
	TIMES {
		double eval(double x, double y) {
			return x * y;
		}
	},
	DIVIDE {
		double eval(double x, double y) {
			return x / y;
		}
	};

	abstract double eval(double x, double y);
}
	@Test
	public void test(){
		double eval = Operation.DIVIDE.eval(12, 2);
		System.out.println(eval);
	}
时间: 2024-10-12 21:21:51

java数组的另一种用法的相关文章

java中String的21种用法

(构造函数必须new出来) * public String (char[] vaue)                         将一个字符数组变成字符串(构造函数) * public String (char[] vaue,int offset,int count)    将制定范围内的字符数组变为字符串(构造函数) * public String (byte[],bytes)                        将一个byte数组变为字符串(构造函数) * public St

java中 this 的三种用法

Java中this的三种用法 调用属性 (1)this可以调用本类中的任何成员变量 调用方法(可省略) (2)this调用本类中的成员方法(在main方法里面没有办法通过this调用) 调用构造方法 (3)this调用构造方法只能在本构造方法中调用另一个构造方法(4)this 调用构造方法必须写在第一行 eg: 1 public class ThisDemo { 2 private int id; 3 private String name; 4 public ThisDemo(){ //(1)

java中super 的两种用法

通过用 static 来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说它类似于 C 语言中的全局函数和全局变量.但是,并不是说有了这种便利,你便可以随处使用,如果那样的话,你便需要认真考虑一下自己是否在用面向对象的思想编程,自己的程序是否是面向对象的. 好了,现在开始讨论 this&super 这两个关键字的意义和用法. 在 Java 中, this 通常指当前对象, super 则指父类的.当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用

java中this的几种用法

1.     当成员变量和局部变量重名时,在方法中使用this时,表示的是该方法所在类中的成员变量.(this是当前对象自己) 如:public class Hello { String s = "Hello"; public Hello(String s) { System.out.println("s = " + s); System.out.println("1 -> this.s = " + this.s); this.s = s;

java数组复制的几种常见用法

1.1数组复制的几种常见用法 1.1.1System.arraycopy的用法 int[] src = {1,3,5,7,9,11,13,15,17}; int[] dest = {2,4,6,8,10,12,14,16,18,20}; //从src中的第一个元素起复制三个元素,即1,3,5复盖到dest第2个元素开始的三个元素 System.arraycopy(src, 0, dest, 1, 3); System.out.println(Arrays.toString(dest)); 结果为

[java]static关键字的四种用法

在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们先来了解一下static关键字及其用法. static关键字 1.修饰成员变量 在我们平时的使用当中,static最常用的功能就是修饰类的属性和方法,让他们成为类的成员属性和方法,我们通常将用static修饰的成员称为类成员或者静态成员,这句话挺起来都点奇怪,其实这是相对于对象的属性和方法来说的.请看下面的例子:(未避

[java]final关键字的几种用法

在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们来了解一下final关键字及其用法. final关键字 在java中,final的含义在不同的场景下有细微的差别,但总体上来说,它指的是"这是不可变的".下面,我们来讲final的四种主要用法. 1.修饰数据 在编写程序时,我们经常需要说明一个数据是不可变的,我们成为常量.在java中,用final关键字修饰

java数组扩增的三种方式

java数组声明的时候必须声明其长度,但当我们想对数组进行扩增的时候该怎么办呢? 下面三种方式都可以进行扩增,最后一种也最为方便. 1 /** 2 * 手动循环扩增 3 */ 4 int[] arr = { 1, 2, 3 }; 5 int[] tempArray = new int[arr.length * 2]; 6 for (int i = 0; i < arr.length; i++) { 7 tempArray[i] = arr[i]; 8 } 9 //tempArray = { 1,

Java 数组声明的几种方式

Java数组定义声明的几种方法: 1. 类型名称[] 变量名=new 类型名称[length]; 2.类型名称[] 变量名={?,?,?}; 3.类型名称[] 变量名=new 类型名称[]{?,?,?}; 代码样例: public class Example1 { public static void main(String []args){ //数组定义的几种方法 // 1. 类型名称[] 变量名=new 类型名称[length]; int []a=new int[4]; a[0]=1; a[