Какое-то странное требование.
Почему бы не сделать это правильно (или, по крайней мере, способом Java)? Это похоже на попытку получить два результата от функции. Подобно вычитанию ( 2 , 2 ) возвращает 0 и «Доброе утро, сэр».
В любом случае, вы можете попробовать эти два варианта.
1-й. StringBuilder Не лучший вариант для использования, так как вы не "строите" строку.
public static void doStuff(){
String msg = "";
StringBuilder sb = new StringBuilder();
if ( getMessage( sb ) ) {
System.out.println( sb );
}
}
public static boolean getMessage( StringBuilder sb ) {
if ( "".equals( sb.toString() )) {
sb.delete( 0, sb.length() );
sb.append("It was empty");
return true;
} else {
return false;
}
}
2-й StringHolder (любой держатель, если на то пошло) Не слишком стиль Java, но делает работу. Это будет тот, который используется большинством разработчиков Java, которых я знаю.
public static void doStuff(){
String msg = "";
String [] holder = { msg };
if ( getMessage( holder ) ){
System.out.println( holder[0] );
}
}
public static boolean getMessage( String [] holder ) {
if ( "".equals( holder[0] )) {
holder[0] = "It was empty";
return true;
} else {
return false;
}
}
3-й. Вариант. не то, что вы спросили, а то, что я бы сделал. К сожалению, нарушает условие "возврат логического значения".
public void doStuff() {
String msg = "";
String result = getMessage( msg );
if ( result != msg ) {
System.out.println( result );
}
}
public static String getMessage( String msg ) {
if ( "".equals(msg){
return "It was empty";
}
return msg
}
Выбери один.
Примечание
Хотя это нравится не всем (Джон Скит сказал бы: «Это не общепринято»), пожалуйста, взгляните на стиль программирования Java, который я использую (методы, начинающиеся с нижнего регистра и фигурные скобки в одной строке). Иногда важно уважать платформу, на которой вы кодируете. По крайней мере, это то, что я делаю, когда кодирую на С# (очень редко, кстати).
person
OscarRyz
schedule
05.12.2008