/*******************************************************************************
* Copyright(c) 2005-2009 Huawei Tech. Co., Ltd.
* All rights reserved.
*
* Author: xbliuc
* Date : 2011-3-20
*******************************************************************************/
package com.huawei.m2m.codegen.core.jet.xpath;
import java.lang.ref.SoftReference;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
/**
* 软引用
*/
public class Test
{
private String name;
private String pass;
private Test(String name, String pass)
{
this.name = name;
this.pass = pass;
}
private static final Set<SoftReference<Test>> softReference = new HashSet<SoftReference<Test>>();
/**
* TODO 添加方法注释
* @param names
* @param passs
* @return Test
*/
public static Test valueOf(String names, String passs)
{
Iterator<SoftReference<Test>> iterator = softReference.iterator();
while (iterator.hasNext())
{
SoftReference<Test> ref = iterator.next();
Test test = ref.get();
if (test != null && test.name.equals(names)
&& test.pass.equals(passs))
{
return test;
}
}
Test test = new Test(names, passs);
softReference.add(new SoftReference<Test>(test));
return test;
}
/**
* TODO 添加方法注释
* @param args
*/
public static void main(String[] args)
{
Test test = Test.valueOf("a", "b");
Test test2 = Test.valueOf("a", "b");
Test test3 = Test.valueOf("aa", "b");
System.out.println(test == test2); //return true
}
}
* Copyright(c) 2005-2009 Huawei Tech. Co., Ltd.
* All rights reserved.
*
* Author: xbliuc
* Date : 2011-3-20
*******************************************************************************/
package com.huawei.m2m.codegen.core.jet.xpath;
import java.lang.ref.SoftReference;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
/**
* 软引用
*/
public class Test
{
private String name;
private String pass;
private Test(String name, String pass)
{
this.name = name;
this.pass = pass;
}
private static final Set<SoftReference<Test>> softReference = new HashSet<SoftReference<Test>>();
/**
* TODO 添加方法注释
* @param names
* @param passs
* @return Test
*/
public static Test valueOf(String names, String passs)
{
Iterator<SoftReference<Test>> iterator = softReference.iterator();
while (iterator.hasNext())
{
SoftReference<Test> ref = iterator.next();
Test test = ref.get();
if (test != null && test.name.equals(names)
&& test.pass.equals(passs))
{
return test;
}
}
Test test = new Test(names, passs);
softReference.add(new SoftReference<Test>(test));
return test;
}
/**
* TODO 添加方法注释
* @param args
*/
public static void main(String[] args)
{
Test test = Test.valueOf("a", "b");
Test test2 = Test.valueOf("a", "b");
Test test3 = Test.valueOf("aa", "b");
System.out.println(test == test2); //return true
}
}