Това е някакво странно изискване.
Защо не го направите по правилния начин (или поне по java)? Това е като да се опитвате да получите два резултата от функция. Like subtract( 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
}
Избери едно.
Забележка
Въпреки че не всеки харесва това (Jon Skeet би казал „Не е общоприето“), моля, погледнете стила на кодиране на Java, който използвам (методи, започващи с малки букви и скоби в същия ред). Понякога е важно да уважавате платформата, в която кодирате. Поне това правя, когато кодирам на C# (между другото много рядко)
person
OscarRyz
schedule
05.12.2008