2017-04-10 140 views
-2

我想補充一點,在字符串變量的操作類似於下面Java中(在我的Android實際上項目)自定義函數是否可以在String類中添加自定義方法?

String name="tester"; 
name.isAlreadyEntered(); 

public static boolean isAlreadyEntered(String name){ 
    return (checkInMyDb(name)); 
} 

我要利用這個一些更多的功能。我知道它有點愚蠢的問題。我知道這存在於.Net中的javascript &中。由於我是Java新手,我不知道它的可能性。原諒如果我錯誤地問。但如果可能請幫助我如何得到這個語法

+4

Java不支持向標準類添加新方法的功能。 – khelwood

+0

''String''類是final的,所以你甚至不能對它進行子類化。 – f1sh

+4

沒有多大意義。如果你有一個你的數據庫的類,你可以在那裏添加它,並使用'myDatabase.containsPerson(name)'之類的東西。因爲'isAlreadyEntered()'沒有給你任何關於你期望它被輸入的上下文的情況,所以更具表現力。 – Flikk

回答

1

如果你真的打算增加一個新的方法java.lang.String.java那麼你可能是在一個錯誤的路徑,這隻會在未來導致痛苦和痛苦:d。最好停下來,重新思考重新設計和重構。

反正先您不能在String類中添加新方法。這是最終的,因此你不能也不應該打算分類。如果你打算這樣做,那麼它是一個糟糕的設計,你必須重構。

如果你只是想檢查是否存在String是存在於數據庫中,你可以簡單地聲明它可以接受String類型的參數,檢查數據庫的存在,如果找到否則返回false返回true的方法。

如果上述解決方案不適合您,那麼您可以嘗試使用Composition的takimg幫助。如果你想要一個具有這種方法的對象(它可以告訴對象是否存在於數據庫中),那麼你可以創建一個類,可以決定根據你的上下文需求命名它,我將它命名爲StringContainer。該類可以有一個String類型的實例變量。現在,您可以使用這個新創建的自定義類的對象來構成String的對象,而不是使用String對象。您可以包含一個方法來檢查是否已在數據庫中創建了與此類的對象相對應的條目。

相關問題