2012-10-04 46 views
0

這裏堅持RandomStringUUID對象是情景: 我:的Java:我如何在運行時

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是一樣的?這不是很清楚,對不起。你想在App已經退出並重新開始之後改變它嗎? – 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種方法來做到這一點......但無論如何。

這將爲您的應用程序的運行時創建一個您的ID爲一次

0

但我不太確定你想達到什麼目的,

你的問題的簡短答案是「是的,你會得到相同的字符串實例」。 稍長的答案是「但你做錯了」。

您確實應該使用持久性框架來幫助您處理這些問題。

+0

我同意OP代碼存在問題_lot_。但我不同意他需要一個保證框架。首先,他應該解釋一下,他是否和當他想隨機UUID是否相同。 – Fildor

+0

@Fildor 我想randomUUID是相同的,我認爲它很清楚,但似乎不是 – kamal