добавление метода в класс String в Java / Android, как в категории с целью C на iPhone - PullRequest
3 голосов
/ 24 ноября 2011

Мне нужно add a method to the String class in an Android app, чтобы я мог назвать это как

String myStr;
x = myStr.myNewMethod(3);

Я понятия не имею, как я мог бы сделать это на Java.

ps Я не хочу создавать подкласс String. Это будет означать, что мне нужно все время принуждать и / или объявлять свои строки как новый класс.

Большое спасибо

Ответы [ 2 ]

2 голосов
/ 24 ноября 2011

String является последним классом в Java, что означает, что вы не можете создать его подкласс. Это важная особенность класса, поскольку строки используются повсеместно, особенно для маркеров безопасности и тому подобного. Возможность изменить свое поведение после факта потенциально может вызвать проблемы с безопасностью.

К сожалению, в Java нет возможности добавлять категории. Единственное, что вы могли бы сделать (и сделали), если вам часто нужны какие-то пользовательские функции, - это создать класс утилит, возможно, с некоторыми статическими методами, которые вы затем могли бы import static объединить с кодом вашего приложения.

Это, однако, просто грубый обходной путь, но, вероятно, лучшее, что вы можете получить.

1 голос
/ 24 ноября 2011

Без создания подкласса (наследования) или класса-оболочки (композиции) вы не сможете сделать это.

Просто напишите статический вспомогательный метод, который принимает строку и любые другие параметры, которые вам нужны.

static Foo myNewMethod(String s, int x)
{
    // snip...
    return someFoo;
}

// later...
String myStr = "foo";
Foo f = myNewMethod(myStr, 3);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...