2012-10-04 3 views
0

에 RandomStringUUID 개체를 유지할 수 있습니다 방법 시나리오 : 내가 가진 :자바 : 여기 런타임

public class RandomStringUUID { 

    public RandomStringUUID() { 
     final String uuidstring = UUID.randomUUID().toString().replaceAll("-", ""); 
    } 


    public String getRandomStringUUID() { 
     final String uuidst = UUID.randomUUID().toString().replaceAll("-", ""); 
     return uuidst; 
    } 
} 

것은 내가 고유 한 값을 생성하고 곳.

그런 다음에 :

public class AddSingleDomain { 

    public static RandomStringUUID RUUID = new RandomStringUUID(); 

    @Test 
    public void addSingleDomain() { 
     AssertJUnit.assertEquals(DomainsPage.getTitle(), "View Account"); 


     String randomUIDSeed = RUUID.getRandomStringUUID(); 

     System.out.println("Random Domanin Name Prefix: " 
       + randomUIDSeed); 
     System.out.println("Random Domanin Name Prefix: " + RUUID); 


     getDriver().findElement(By.name("vo.zoneName")).sendKeys(
       randomUIDSeed + ".tv"); 

나는 그것을 사용하고, 또 다른 클래스 :

공용 클래스 VerifyDBSingleDomain {

String url = "jdbc:oracle:thin:@a.b.c.d:1521:ms"; 

@Test 
public void VerifyDBSingleDomainTest() { 

    Properties props = new Properties(); 
    props.setProperty("user", "user"); 
    props.setProperty("password", "pass"); 


String sql = "Select zoneid from zone where zonename =" + randomUIDSeed + ".tv"; 

나는 같은 값 "randomUIDSeed를 사용하려면 " VerifyDBSingleDomain 클래스에있는 경우 i : String randomUIDSeed = RUUID.getRandomStringUUID(); 동일한 개체입니까? 어떻게 이것을 동일한 객체로 사용할 수 있으며 런타임 중에 모든 클래스에서 동일한 값을 유지할 수 있습니다.

+1

'RandomStringUUID.getRandomStringUUID()'메소드는 사용자가 호출 할 때마다 새로운 문자열을 반환한다는 점에 유의하십시오. 그게 니가 원하는거야? – Jesper

+0

@kamal 어떤 상황에서 ID가 같을까요? 미안 해요. 미안 해요. 앱을 종료하고 다시 시작한 후에 앱을 변경 하시겠습니까? – Fildor

+0

@Fildor 예, 앱 종료 후 randomUUID 값이 변경되어야합니다. – kamal

답변

0

:

public class RandomStringUUID { 

    private static final String MYUUID = UUID.randomUUID().toString().replaceAll("-", ""); 

    public static String getRandomStringUUID() { return MYUUID; } 
} 

당신은 다음과 같이 사용할 수 있습니다 :

// Anywhere in your code: vv Note that we are using the classname! The method is static. 
String theCommonID = RandomStringUUID.getRandomStringUUID(); 

이 방향에 다만 힌트입니다. 이것은 "완벽한"깨끗한 해결책이 아닙니다. 당신은 구글 "싱글 톤 디자인 패턴"을 원할 수 있습니다. 그리고 지금 당장 ~ 10 가지 다른 방법으로 상상할 수 있습니다.하지만 어쨌든.

귀하의 앱 실행 시간에 번, 번 중 하나가 생성됩니다.

0

그러나 나는 당신이 달성하고자하는 것이 무엇인지 잘 모르겠습니다.

귀하의 질문에 대한 대답은 "네가 똑같은 String 인스턴스를 얻을 것입니다."입니다. 약간 더 긴 대답은 "하지만 당신은 잘못하고있다"입니다.

정말로 이러한 문제를 해결할 수 있도록 지속성 프레임 워크를 사용해야합니다. 당신은이 작은 변경하여 시작할 수

+0

OP 코드에 _100 개의 문제가 있음에 동의합니다. 그러나 나는 그가 persitence framework가 필요하다는 것에 동의하지 않는다. 우선, 그는 randomUUID가 같거나 같아지기를 원한다면 언제 설명해야합니다. – Fildor

+0

@Fildor randomUUID를 같게하고 싶습니다. 분명히하지만 생각하지 않았습니다. – kamal