#java
#java
Вопрос:
Я работаю на Java, и у меня есть метод, который возвращает пару, т.е. (Строка, целое число). На другом этапе программы я хочу извлечь только строку. Как мне это сделать?
Спасибо.
Комментарии:
1.
returns a pair
как? это кортеж или KeyValuePair?2. Строка someNewString = SomeObject.someMethod().SomeStringValue
3. Может помочь немного кода, чтобы показать, что у вас есть / чего вы хотите…
4. Пара? Можете ли вы указать свой точный возвращаемый тип?
5. Спасибо всем. Я понял. Я думаю, это был мозговой пердеж. Все еще очень новичок во всем этом, поэтому я усваиваю вещи на ходу. Идея «SomeObject.getwhatIwant()» просто вылетела у меня из головы.
Ответ №1:
добавьте другой метод, возвращающий String
только и используйте его в упомянутом другом месте вашей программы
Ответ №2:
Если вы создаете объект, вы можете легко получить значение из объекта типа getString() (частный случай) : newString = p1.getString ;
Ответ №3:
Как вы возвращаете пару? Это может быть с помощью объекта или массива.
Если это объект, который вы возвращаете, он, вероятно, выглядит следующим образом…
public ResultObject MyMethod() {
String s = "foo";
int i = 42;
return new ResultObject(s, i);
}
public class ResultObject() {
public String s;
public int i;
public ResultObject(String s, int i) {
this.s = s;
this.i = i;
}
}
И вы можете получить доступ к результату следующим образом
ResultObject r = MyMethod();
System.out.println(r.s); // "foo"
System.out.println(r.i); // "42"
Если вы возвращаете массив, он, вероятно, выглядит следующим образом…
public Object[] MyMethod() {
String s = "foo";
int i = 42;
return new Object[] { s, i };
}
И вы можете получить доступ к результату следующим образом
Object[] r = MyMethod();
System.out.println(r[0]); // "foo"
System.out.println(r[1]); // "42"
Возврат результирующего объекта предпочтительнее, потому что массив заставляет вас полагаться на порядок результатов, менее описателен при доступе к результирующим объектам (r[0] по сравнению с r.somename), подвержен исключениям, выходящим за рамки, и не типизирован (вам придется привести ваши результирующие объекты к типу, которым они должны быть).
Ответ №4:
Object[] method(int param1, int param2){
//do something
return new Object[]{"string", 1};
}
....
String value = (String)obj.method(param1, param2)[0];
Комментарии:
1. Я думаю, вам не хватает приведения к String
Ответ №5:
Для получения большего, чем возврат, используя карту взамен.
Para mais de um retorno utilize um Map como retorno.
public Map<String, Integer> method(){
Map<String,Integer> map = new HashMap<String, Integer>();
String s = "foo";
Integer i = 99;
map.put(s,i);
return map;
}